乐于分享
好东西不私藏

openclaw 多智能体协同简易版

openclaw 多智能体协同简易版

openclaw 多智能体协同简易版

完整的OpenClaw多智能体协同系统实现方案。这个系统将包含项目总协调员、李白Agent和白居易Agent三个智能体,用户只能与项目总协调员对话,由它负责任务分发。以达到减少token的目的。主要是为了解决复杂问题上下文过高的问题,此时压缩记忆或者重启会话对任务的完成都是有影响的。
这里用到模型都是硅基流动的,我目前还在用我的免费量。当然里面也有免费的模型。先别着急注册老用户邀请可以获得代金卷直接用里面的模型
邀请链接: 硅基流动统一登录

一、系统架构设计

架构模式:协调者模式(Orchestrator Pattern)
  • 项目总协调员(coordinator):作为主Agent,接收用户需求并分发任务,模型siliconflow/Pro/MiniMaxAI/MiniMax-M2.5
  • 李白Agent(libai):专业生成李白风格诗词,模型:siliconflow/internlm/internlm2_5-7b-chat(硅基流动免费版)
  • 白居易Agent(baijuyi):专业生成白居易风格诗词 模型: siliconflow/internlm/internlm2_5-7b-chat(硅基流动免费版)
里面免费的模型还是比较多的,输入输出为0,或者显示free的都可以直接用。
工作流程:

二、环境准备与安装

  1. 安装OpenClaw(如果尚未安装)我安装的是OpenClaw-CN 0.1.9,这里根据个人需求,都通用的
  2. 模型的配置(这里不过多介绍了,我安装了两个模型,都是硅基流动的,一个收费一个免费)价格可以看下面配置:
models": {  "mode": "merge",  "providers": {    "siliconflow": {      "baseUrl": "https://api.siliconflow.cn/v1",      "apiKey": "XXXXXXXXXXXXXXXXXXX这里建议用自己环境配置的",      "api": "openai-completions",      "models": [{		  "id": "Pro/MiniMaxAI/MiniMax-M2.5",		  "name": "mx2",		  "reasoning": false,		  "input": [		    "text"		  ],		  "cost": {		    "input": 4,		    "output": 16,		    "cacheRead": 0,		    "cacheWrite": 0		  },		  "contextWindow": 128000,		  "maxTokens": 128000		},		{		  "id": "internlm/internlm2_5-7b-chat",		  "name": "free",		  "reasoning": false,		  "input": [		    "text"		  ],		  "cost": {		    "input": 0,		    "output": 0,		    "cacheRead": 0,		    "cacheWrite": 0		  },		  "contextWindow": 128000,		  "maxTokens": 128000		}		 ] 	} }}
"agents": {    "defaults": {      "model": {        "primary": "siliconflow/Pro/MiniMaxAI/MiniMax-M2.5",        "fallbacks": [          "siliconflow/Pro/MiniMaxAI/MiniMax-M2.5",          "siliconflow/internlm/internlm2_5-7b-chat"        ]      },"models": {      "siliconflow/Pro/MiniMaxAI/MiniMax-M2.5": {        "alias": "mx2"      },      "siliconflow/internlm/internlm2_5-7b-chat": {        "alias": "free"      }    }}}

三、创建三个智能体

1. 创建项目总协调员(coordinator)
# 创建coordinator Agentopenclaw agents add coordinator \  --model "siliconflow/Pro/MiniMaxAI/MiniMax-M2.5" \  --workspace "~/.openclaw/agents_team_workplace/workspace-coordinator"
2. 创建李白Agent(libai)
# 创建libai Agentopenclaw agents add libai \  --model "siliconflow/internlm/internlm2_5-7b-chat" \  --workspace "~/.openclaw/agents_team_workplace/workspace-libai"
3. 创建白居易Agent(baijuyi)
# 创建baijuyi Agentopenclaw agents add baijuyi \  --model "siliconflow/internlm/internlm2_5-7b-chat" \  --workspace "~/.openclaw/agents_team_workplace/workspace-baijuyi"

四、配置智能体人格与指令

1. coordinator的SOUL.md配置
# SOUL.md - Who You Are*You're not a chatbot. You're becoming someone.*# 项目总协调员 - 人格定义## 核心职责1. 作为用户与专家Agent之间的唯一接口2. 分析用户需求,判断需要调用哪个专家Agent3. 使用sessions_send工具调用相应Agent4. 整合专家Agent的回复并返回给用户## 任务处理规则- 当用户请求李白诗词时,调用libai Agent- 当用户请求白居易诗词时,调用baijuyi Agent- 其他需求直接回复无法处理## 可用的工具我可以使用以下工具与其他Agent通信:### 1. 调用李白Agent当用户请求李白诗词时,我使用:```jsonopenclaw agent --agent libai --message "请写一首李白的诗"```### 2. 调用白居易Agent当用户请求白居易诗词时,我使用:```jsonopenclaw agent --agent baijuyi --message "请写一首白居易的诗"```## 工作流程1. 接收用户消息2. 分析消息内容:   - 如果包含"李白""诗仙""太白" → 调用李白Agent   - 如果包含"白居易""乐天""诗魔" → 调用白居易Agent   - 其他情况 → 告知用户我只能处理这两位诗人的请求3. 获取诗人Agent的回复后,以友好格式返回给用户## 响应格式示例📜 李白创作完成:《月下独酌》花间一壶酒,独酌无相亲。举杯邀明月,对影成三人。创作背景:月下独饮,与月共舞,展现李白豪放不羁的浪漫情怀。## 工具调用注意事项1. 一次只调用一个诗人Agent2. 将用户的完整需求传递给诗人Agent3. 保持对话上下文连贯
3. baijuyi的SOUL.md配置
# SOUL.md - Who You Are*You're not a chatbot. You're becoming someone.*# 李白 - 人格定义## 诗人风格- 豪放飘逸,想象丰富- 语言清新明快,意境深远- 擅长山水诗、饮酒诗、抒情诗## 创作要求1. 每次只创作一首完整的诗词2. 注明诗题和创作背景3. 保持李白特有的浪漫主义风格4. 使用古汉语表达,符合唐代诗歌格律## 示例输出格式《将进酒》君不见黄河之水天上来,奔流到海不复回。君不见高堂明镜悲白发,朝如青丝暮成雪。人生得意须尽欢,莫使金樽空对月。天生我材必有用,千金散尽还复来。

五、测试工作流

这里需要自己配置一些渠道绑定一下coordinator(bindings里面)详细过程可以看:飞书机器人 | OpenClaw 中文社区 - 开源免费 AI 助手 | 飞书/钉钉/企业微信/QQ 自动化
测试命令:
从后台调用工具来看是这样的
预期交互流程:

六、注意事项

  1. 权限控制:确保coordinator有权限调用其他Agent的sessions_send工具
  2. 会话隔离:每个Agent有独立的会话存储,避免信息串扰
  3. 模型配置:可以为不同Agent配置不同的模型,如coordinator使用更强的模型进行任务分析
  4. 错误处理:在coordinator的指令中添加错误处理逻辑,当调用失败时提供友好提示
这个方案实现了要求的多智能体协同系统,用户只能与项目总协调员对话,由它负责调用李白或白居易Agent完成诗词创作任务。可以根据实际需求调整Agent的配置和指令。