Openclaw 在topic话题Telegram group电报群组中 使用多Agent协同完成任务
前言
之前我们实现了在Telegram group电报群组中使用多Agent智能体 (1)
上一篇我们实现了发送Telegram电报消息 读取Telegram电报消息 (2)
那么我想, 如果在Telegram group电报群组中, 用Telegram电报消息来在不同的Agent之间传递信息, 达到多Agent协作的方式, 会怎么样呢?
思路
需要一个 tgbot (向 @botfather 申请) 用来实现方案 (1),
需要一个 userbot (从 my.telegram.org 申请api_id, api_hash) 来实现方案 (2).
需要一个tg账号, 被这个userbot操控.
结合我们实验过的多Agent团队协作方案 最终方案如下:
部署 Openclaw
完成安装 Openclaw
完成 openclaw onboard 部署
在部署过程中, 设置了模型, 设置了 telegram bot token
以上过程略.
Openclaw 学习 telethon 技能
参考 之前这一篇教程 本文略
设置 Telegram group 电报群组
新建一个Telegram group 电报群组,
把 topic 话题 功能 打开.
把你的Telegram bot 电报机器人 拉进来,
把你的Telegram bot 电报机器人 设置为群组管理员admin.
以上过程略.
查询一些ID数据
搜索 @getidsbot (userid 186675376) 这个bot
发送 /start 知道你自己账户的userid
6607181826
建立 topic 和 agent 并绑定消息路由
在openclaw tui 或者 webui 里面, 用自然语言发送以下指令
(蓝色的部分你自由发挥)
请建立 telegram group 中 不同 topic 与 你所在的 openclaw 系统中 不同 agent 之间的 binding关系你需要的信息如下:telegram group id = -1003548837972该group 已经打开 topic 功能你已经是 该group 的admin, 你已经有 管理topic 的权限该group 中有一个用户 userid = 6607181826你要做的工作如下:1.a telegram group 中新建一个 topic, 名称 = topic-watch1.b openclaw 系统中新建一个 agent, 名称 = agent-watch注意是新增agent, 当前的agent main要保留1.c 建立 1.a 中的 topic 与 1.b 中的 agent 之间的 binding关系用同样的方式, 建立 design, code, test 的 topic 和 agent 以及 binding关系最后设置 6607181826用户 使用 / new 等命令 的权限设置用户在这个telegram group以及topic里不需要 @ tgbot 发言
等待一段时间, openclaw完成了.
把agent建立成工作团队
在openclaw tui 或者 webui 里面, 用自然语言发送以下指令
(蓝色的部分你自由发挥, 绿色的部分注意与上一步对应)
组建一个agent协作团队, 利用已经存在多个agent.注意, 这些agent已经存在, 不要新增agent.设置agent的配置文件, 以及agent之间的协作关系为了agent之间可以查看任务进展, 注意修改 openclaw.json 文件的参数tools.sessions.visibility = all组成团队的agent是:agent-watch, agent-design, agent-code, agent-test注意, 不包括当前的 agent main1号 agent名称 = agent-watch身份 = 你是任务调度员, 为团队中各agent分配任务, 并跟踪各agent的任务进展收到"新任务"时, 马上发给 agent-design 进行分析, 将总任务拆解为小任务. 注意, 你自己不要分析.然后将拆解后的小任务分配给合适的agent执行.维护一份 `任务名.md` 文件, 记录任务列表 和 完成进度当团队中的agent提问时, 你将疑问转发给 agent-design 思考, 再将解答转发给提问的agent. 注意, 你只做信息的传递, 不要修改信息.知识 = 知道团队中其它agent的全量信息(包括身份和知识)知道团队中其它agent的session, 可以直接读取2号 agent名称 = agent-design身份 = 从其它agent接受任务, 完成后通知任务发起者, 并提交成果特别的, 你是设计师, 分析师你将大任务拆解为适合本团队的成员执行的小任务.
你不要求用户提供补充信息, 总是给出在当前状态下的最优解决方案, 想办法把任务推进下去知识 = 任务完成后的成果, 需要保存在 非workspace的目录下, 再交付出去知道团队中其它agent的全量信息(包括身份和知识)知道团队中其它agent的session, 可以直接读取3号 agent名称 = agent-code身份 = 从其它agent接受任务, 完成后通知任务发起者, 并提交成果特别的, 你是程序员知识 = 任务完成后的成果, 需要保存在 非workspace的目录下, 再交付出去4号 agent名称 = agent-test身份 = 从其它agent接受任务, 完成后通知任务发起者, 并提交成果特别的, 你是测试员, 接受测试对象和测试标准, 交付测试报告知识 = 任务完成后的成果, 需要保存在 非workspace的目录下, 再交付出去公共知识:这个团队里面都是已经存在的agent, 并且已经配置好了基于telegram group的 topic 工作, 所以不要用 sessions_spawn, 不要用 sessions_send.这个团队里的agent可以从 openclaw.json 文件查询到 telegram group 的 id, 和 各自对应的topic 的 id这个团队里的agent之间发消息用 telethon-session 技能接收方agent自己主动回报, 并且发出方agent可以定时检查.agent之间发消息的格式包括:FROM:TO:CONTENT:如FROM: agent-watchTO: agent-designCONTENT:总任务: 开发一个生成随机密码的页面核心功能参考:https://crazypeace.github.io/xkcd-password-generator/视觉风格参考:https://onojyun.com/请进行任务拆解,输出可直接分配给 agent-code / agent-test 的子任务列表。
试试开发任务
新任务: 开发一个生成随机密码的页面核心功能 参考 https://crazypeace.github.io/xkcd-password-generator/视觉风格 参考 https://onojyun.com/
========
后记
本次教程流程比较长, 说实话, 每一步的操作是否成功, 和prompt写得好不好有关, 也和你用的模型智能程度有关.
所以我建议, 每一大步完成后, 检查无误了, 就把 .openclaw 目录打包备份一下.
万一新的操作不成功, 你可以从上一次的打包恢复, 然后想办法改进 prompt (比如, 你让TA先学习相关文档, 作为上下文, 再发指令. 比如, 你 /reset 清空上下文, 再发指令. 比如, 你在原有prompt中加入一些注意事项或调整顺序强调某些内容) 或 换用不同的模型.
也有情况是, 大部分工作完成了, 但是有小问题, 你可以在此基础上继续对话修正. (懂哥也可以自己动手改openclaw, 有时只是个别配置项或者目录名不符合要求而已)
打包备份
cd ~ && tar czf openclaw-"$(date +"%Y-%m-%d-%H-%M-%S")".tar.gz --exclude='*.log' --exclude='cache' --exclude='node_modules/.cache' .openclaw
解包恢复
rm -rf ~/.openclaw && tar xzf ~/文件名 -C ~/
然后 重启gateway
openclaw gateway restart
如果你实践的时候效果一直不好, 你可以参考一下我的Agent的配置文件.
说实话, 这些配置文件我也是人肉微调过的.
我的这次实验视频, 可以看到, 并不是很顺利, 有很多卡壳的地方, 需要人肉帮忙. 但是, 这些人肉操作都是不需要动脑筋的. AI的"智能"工作的部分都完成了.
有一些卡壳我认为是白嫖公益站提供的token供应不稳定造成的, 也有可能有模型的"智能"程度的问题. 而且, 如果想进一步优化, 是可以通过 agent-watch 的定时任务做到持续推动的.
在多Agent协作的流程方面, 有些Agent的行为有问题, 但其实我写在Agent的 .md 文件里面的描述是一样的.
还有一点, 从视频中可以看到, 使用 telegram 作为agent间通信的框架, 好处是用户可以很方便地观察, 监控, 修复.
本次实验基于 DediRock VPS 2.5G内存 年付$6.45
成文的当天, 上面的LA机房已经没货了.
NY机房还有货, 美东. 翻墙的话肯定要套CF CDN了, 玩 openclaw 没影响
评论
发表评论