Appearance
OpenClaw最厉害的地方不是单一功能,而是能让不同渠道对应不同身份,每个身份干自己擅长的事。
为什么要分身份
刚开始用OpenClaw的时候,所有消息都扔给一个代理处理,结果时间一长就乱套:
- 企业微信里的技术问题,代理回答得像客服
- 微信公众号里的投资咨询,代理回答得像程序员
- 元宝渠道里的闲聊,代理一本正经地写代码
后来才知道,OpenClaw支持不同身份不同代理,就像一家公司里有众多岗位一样。
多渠道架构
配置了三套身份,对应三个渠道:
1. 研发助手(dev)- 企业微信 + 元宝渠道
身份定位:技术问题解决者
工作范围:
- 代码调试和优化
- 系统架构设计
- 数据处理和分析
- 自动化脚本编写
配置示例:
json
{
"id": "dev",
"name": "研发助手",
"skills": ["Self-Improving Agent"],
"workspace": "/root/.openclaw/agents/dev/workspace",
"model": {
"primary": "kimi/kimi-k2.5",
"fallbacks": ["kimi/kimi-k2.6-thinking", "bailian/qwen3-coder-next"]
}
}绑定渠道:
json
[
{"agentId": "dev", "match": {"channel": "wecom"}},
{"agentId": "dev", "match": {"channel": "yuanbao"}}
]2. 投资顾问(invest)- 微信公众号
身份定位:投资分析专家
工作范围:
- 医药行业投资分析
- 供应链领域数字化趋势
- 新药研发进展跟踪
- 投资组合管理
配置示例:
json
{
"id": "invest",
"name": "柴哥 - 投资顾问",
"skills": ["Self-Improving Agent"],
"workspace": "/root/.openclaw/agents/invest/workspace",
"model": {
"primary": "longCat/LongCat-Flash-Thinking-2601",
"fallbacks": ["kimi/kimi-k2.6-thinking", "bailian/qwen3.5-plus"]
}
}3. 主代理(main)- 默认处理
身份定位:通用助手(更重要的是安装和配置共用技能)
json
{
"id": "main",
"workspace": "/root/.openclaw/workspace",
"model": {
"primary": "longCat/LongCat-Flash-Thinking-2601",
"fallbacks": ["bailian/qwen3.5-plus", "kimi/kimi-k2.6"]
}
}身份隔离的好处
1. 专业度更高
研发助手专注技术,投资顾问专注分析。每个身份都有自己的知识库和技能,相互做数据隔离。
2. 上下文更清晰
企业微信里的对话,研发助手知道你在说技术问题。微信公众号里的对话,投资顾问知道你在说投资问题,不会混淆上下文。
3. 工作空间隔离
- 研发助手:
/root/.openclaw/agents/dev/workspace - 投资顾问:
/root/.openclaw/agents/invest/workspace
文件、配置、记忆都是独立的。
4. 模型策略不同
| 身份 | 模型 | 擅长领域 |
|---|---|---|
| dev | kimi系列 | 代码 |
| invest | LongCat | 长文本分析 |
| main | qwen3 | 通用 |
配置关键点
1. 绑定规则要精确
json
"bindings": [
{"agentId": "dev", "match": {"channel": "wecom"}},
{"agentId": "invest", "match": {"channel": "openclaw-weixin", "accountId": "ae***1-im-bot"}},
{"agentId": "main", "match": {"channel": "openclaw-weixin", "accountId": "5***f-im-bot"}}
]注意:匹配规则要精确,特别是有多个微信公众号的时候,要用accountId区分。
2. 匹配顺序原则
精确匹配优先:有accountId的放前面,模糊匹配放后面。
json
// ✅ 正确 - 精确匹配放前面
"bindings": [
{"agentId": "invest", "match": {"channel": "openclaw-weixin", "accountId": "ae4*337ce3f1-im-bot"}},
{"agentId": "main", "match": {"channel": "openclaw-weixin"}}
]
// ❌ 错误 - 模糊匹配放前面会优先匹配
"bindings": [
{"agentId": "main", "match": {"channel": "openclaw-weixin"}},
{"agentId": "invest", "match": {"channel": "openclaw-weixin", "accountId": "ae4*337ce3f1-im-bot"}}
]3. 模型备份策略
每个身份都要有自己的模型备份链:主模型挂了,自动切换到备用模型。
技能配置策略
三种方案对比
| 方案 | 优点 | 缺点 |
|---|---|---|
| 全局技能共享 | 统一管理,省心 | 所有agent都会加载 |
| 按需配置 | 灵活 | 维护成本高 |
| 技能分层 | 平衡 | 需设计 |
推荐:技能分层
- 全局技能:所有agent共享(如Self-Improving Agent)
- 局部技能:特定agent专用(如Code-Review只给dev)
json
// 全局配置
"agents": {
"defaults": {
"skills": ["Self-Improving Agent"]
}
}
// agent级别配置
{
"id": "dev",
"skills": ["Self-Improving Agent", "Code-Review"]
}Session日志管理
Session长度管理策略
| 策略 | 适用场景 | 优缺点 |
|---|---|---|
| 自动压缩(safeguard) | 开发调试 | 智能但可能丢失上下文 |
| 定期重置 | 重要项目 | 彻底但丢失上下文 |
| 选择性清理 | 日常维护 | 灵活但易误删 |
| 分层存储 | 生产环境 | 最佳 |
分层存储建议
- 短期记忆:当前session,保留完整上下文
- 中期记忆:最近7天,保留关键信息
- 长期记忆:历史session,只保留摘要
快速清理命令
bash
# 删除特定session
rm /root/.openclaw/agents/dev/sessions/xxx.jsonl
# 保留最近N个session
ls -t /root/.openclaw/agents/dev/sessions/ | tail -n +10 | xargs rm常见错误排查
错误一:channel名称写错
bash
# 验证channel名称
jq '.agents.list[] | .id' /root/.openclaw/openclaw.json错误二:accountId缺失
多个公众号时,必须用accountId区分,否则会匹配失败。
错误三:agentId拼写错误
bash
# 检查bindings
jq '.bindings' /root/.openclaw/openclaw.json调试技巧
bash
# 检查日志
tail -f /root/.openclaw/logs/commands.log | grep "binding"
# 重启生效
openclaw gateway restart总结
OpenClaw的多身份配置核心要点:
| 要点 | 说明 |
|---|---|
| 身份分离 | 不同专长用不同agent |
| 工作空间隔离 | 上下文不会混淆 |
| 模型策略 | 根据专长选最适合的模型 |
| 技能分层 | 全局共享+局部专用 |
| 精确匹配优先 | accountId放前面 |
| Session管理 | 分层存储+定期清理 |
