
你好,我是郑工长。
最近很多玩 OpenClaw 的朋友可能有这样的想法:主 agent 用得好好的,为什么还要搞多 agent?这不是给自己找麻烦吗?
我的回答很简单:如果你只是玩玩,一个 agent 够了。但如果你想把 OpenClaw 真正用到生产环境,多 agent 不是可选项,是必选项。
今天我把多 agent 架构的完整实现方案复盘一下,从为什么创建、怎么创建、到怎么使用,一次性讲透。看明白了吗?这背后,是从单兵作战到集团军作战的范式转变。
为什么需要多 agent?别把鸡蛋放在一个篮子里
很多人一开始都是一个 agent 走天下,配置、技能、记忆全在一起。用起来挺方便,但时间一长,问题就来了。
问题一:配置冲突
主 agent 要用便宜的模型跑定时任务,但你想用更好的模型写文章。改吧,怕影响现有任务;不改吧,内容质量上不去。这就是典型的配置耦合问题。
工程第一定律:不同的职责,应该有不同的配置。混在一起,早晚出问题。
问题二:技能污染
主 agent 装了各种技能,有的用来管理系统,有的用来写文章,有的用来查数据库。时间一长,自己都忘了哪些技能是干嘛的。想卸载一个,又怕影响其他功能。
问题三:记忆混乱
主 agent 的记忆文件里,既有系统配置记录,又有文章内容记录,还有日常对话记录。想找点什么东西,翻半天找不到。
记忆不是仓库,是索引。什么都有,等于什么都没有。
问题四:权限风险
主 agent 能访问所有资源,一旦某个技能出问题,可能影响整个系统。这就是权限过度集中的风险。
看明白了吗?多 agent 不是炫技,是工程演进的必然结果。就像公司大了要分部门一样,agent 多了要分职责。
怎么创建多 agent?三个核心配置文件
创建新 agent 不难,难的是理解每个配置的作用。我把多 agent 的配置结构拆解一下,你照着做就行。
目录结构
~/.openclaw/agents/
├── main/ # 主 agent(系统管理)
│ ├── agent.json
│ └── models.json
│
└── content-creator/ # 内容创作 agent
├── agent.json
└── models.json
agent.json:定义 agent 的身份和职责
{
"name": "内容创作助手",
"description": "专注于内容创作的 Agent,擅长文章生成、视频脚本、知识库管理",
"identity": {
"name": "内容助手",
"emoji": "✍️",
"style": "专业、高效、内容创作导向"
},
"workspace": "/Users/zhenggongzhang/.openclaw/workspace-content",
"defaultModel": "dashscope/qwen3.5-plus",
"skills": [
"content-creation",
"notion",
"mysql"
],
"capabilities": {
"contentCreation": true,
"articleGeneration": true,
"videoScript": true,
"hotTopicAnalysis": true
},
"constraints": {
"readOnlyProjects": [
"/Users/zhenggongzhang/Desktop/myproject/zgz-ai"
]
}
}
关键字段说明:
| 字段 | 作用 | 建议 |
|---|---|---|
| name | agent 名称,用于识别和切换 | 用中文,好记 |
| workspace | 独立工作空间 | 每个 agent 独立目录 |
| defaultModel | 默认使用的模型 | 根据用途选择 |
| skills | 加载的技能列表 | 只加载需要的技能 |
| constraints | 访问限制 | 最小权限原则 |
models.json:定义可用的模型和 API Key
{
"providers": {
"dashscope": {
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "sk-xxx",
"api": "openai-completions",
"models": [
{
"id": "qwen3.5-plus",
"name": "Qwen3.5 Plus (阿里)",
"maxTokens": 8192
}
]
},
"zhipu": {
"baseUrl": "https://open.bigmodel.cn/api/paas/v4",
"apiKey": "xxx",
"api": "openai-completions",
"models": [
{
"id": "glm-4.7-flash",
"name": "GLM-4.7-Flash",
"maxTokens": 4096
}
]
}
},
"defaultModel": "dashscope/qwen3.5-plus"
}
关键建议:
| 建议 | 说明 |
|---|---|
| 按用途选择模型 | 内容创作用好模型,系统管理用便宜模型 |
| 多个 provider 备份 | 防止单点故障 |
| defaultModel 明确 | 避免意外使用错误模型 |
工作空间隔离:每个 agent 有自己的"家"
~/.openclaw/workspace-content/
├── SOUL.md # agent 的灵魂和风格
├── USER.md # 用户信息
├── IDENTITY.md # 身份定义
├── TOOLS.md # 工具配置笔记
├── MEMORY.md # 长期记忆(可选)
├── memory/ # 每日记忆
│ └── 2026-02-23.md
├── skills/ # 专属技能
│ └── content-creation/
工作空间隔离的好处:
- ✅ 记忆独立,不会混淆
- ✅ 技能独立,不会冲突
- ✅ 配置独立,不会互相影响
- ✅ 数据独立,便于备份和迁移
创建后如何使用?三种切换方式
方式一:命令切换
/agent content-creator # 切换到内容创作 agent
/agent main # 切换回主 agent
/agent # 查看当前 agent
方式二:定时任务指定 agent
{
"id": "xxx",
"agentId": "content-creator", // ← 指定 agent
"name": "内容创作 - 早间探索",
"payload": {
"model": "dashscope/qwen3.5-plus",
"message": "请执行内容创作技能..."
}
}
优点:
- ✅ 任务与 agent 绑定
- ✅ 自动执行,无需人工切换
- ✅ 使用正确的技能和配置
多 agent 的最佳实践:职责分离
主 agent(main)
| 职责 | 说明 |
|---|---|
| 系统管理 | 配置修改、Gateway 重启、cron 管理 |
| 通用对话 | 日常聊天、问题咨询 |
| 跨 agent 协调 | 管理多个 agent 的任务 |
| 系统监控 | 查看日志、状态检查 |
配置建议:
- 使用便宜模型(如 glm-4.7-flash)
- 加载系统管理技能
- 访问所有资源的权限
内容创作 agent(content-creator)
| 职责 | 说明 |
|---|---|
| 内容创作 | 写文章、生成视频脚本 |
| IP 内容 | 需要特定风格的内容 |
| Notion 管理 | 知识库管理、文档保存 |
| 数据库操作 | MySQL 查询、数据管理 |
配置建议:
- 使用好模型(如 qwen3.5-plus)
- 加载内容创作技能
- 只读访问项目代码
常见问题解答
Q1:多 agent 会消耗更多资源吗?
A:不会。agent 只是配置隔离,不是进程隔离。多个 agent 共享同一个 Gateway 进程。
Q2:agent 之间能通信吗?
A:可以。通过 sessions_send 工具,一个 agent 可以发送消息给另一个 agent。但一般不需要,各自做好自己的事就行。
Q3:需要为每个 agent 配置不同的 API Key 吗?
A:不需要。多个 agent 可以共用同一个 API Key。但如果想分开计费或限制配额,可以配置不同的 Key。
Q4:切换 agent 后,之前的对话历史还在吗?
A:在。每个会话绑定到创建时的 agent,切换 agent 不影响已有会话。
Q5:多少个 agent 合适?
A:具体看需求。
- 1 个主 agent(系统管理)
- N 个专用 agent(内容创作、数据分析等)
总结
多 agent 不是炫技,是工程演进的必然结果。
当你只有一个 agent 时,所有东西都混在一起,配置、技能、记忆、权限。用起来方便,但时间一长,问题就来了。
当你有了多个 agent,每个 agent 有自己的职责、配置、技能、记忆。就像公司分部门一样,各司其职,互不干扰。
真正的工程进步,不是把功能堆得更多,而是把结构设计得更合理。
从单兵作战到集团军,不是数量变化,是玩法的本质提升。
强大的不是 agent,是你的架构设计。架构不对,再强也发挥不出来。





