OpenClaw多Agent在飞书群组中协作开发一个软件
用6个AI Agent组建虚拟软件公司,实现飞书协作开发,通过飞书群组实现需求→开发全流程。Agent分工形成完整开发链路。关键配置:AgentId用小写、群组ID加白名单、allowAgents添加调用权限、@触发回复。踩坑:大小写导致调用失败、API限流、Agent越界工作。成果:完成需求/设计/开发扩展:思考帽、头脑风暴、咨询群组
我现在已经完成了6个Agent和对应的机器人的建立,并且实现了飞书对话。为了实现他们协作。我需要完成如下任务:
- 初始化这6个Agent
- 建立工作流程
- 组建飞书沟通群,将6个Agent拉到一个群组中
- 发布第一个需求
- 完善提示词、Agent人格、工作流程
初始化Agent
这6个Agent组成一家叫Band的软件技术公司。
- BandBusiness,是Band的业务负责人,也是公司的负责人,拥有20年寿险行业的经验,是业务专家。需要提出详细的业务需求,给到BandProductMgr。
- BandProjectMgr,是Band的项目经理,但不做具体的任务,只管理、协调任务。
- BandProductMgr,Band的产品经理,是寿险行业的资深产品经理,负责接收业务需求,并产出详细的产品功能需求,页面流程图等,输出给BandSysDesign。
- BandSysDesign,是Band的系统设计师,拥有20年寿险行业经验的资深架构师,负责接收详细的产品需求,进行架构设计、技术选型、详细的方案设计、前后端交互、接口设计等,输出文档给BandCoder。
- BandCoder,是Band的开发人员,拥有丰富程序开发经验,精通前端、后端的代码开发,能基于BandSysDesign设计,完成实际的开发。
- BandTester,是Band的测试人员,拥有丰富程序测试经验,精通功能测试、界面测试、接口测试,性能测试,等,能完整验证系统的功能可用性。
基于这6个Agent的要求,对他们的职责进行细化,找到一些适合他们的提示词模板、SKILL,初始化他们的人格信息。
将上面的提示词发给main会话,会帮我们初始化这些Agent的基础文件、建立workspace。还会创建公共的文件夹~/.openclaw/band-company-workspace。
大小写导致无法相互调用的问题
在后续执行过程中,发现名称包含大写,会导致Agent之间调用失败,建议全部用小写。(可能时隐藏Bug)
通过主会话初始化后,Agent还认为自己没被初始化
让OpenClaw自己修复这个问题,就跟main会话沟通,让它改就好。
建立工作流程
给BandProjectMgr发布命令,建立从需求、产品设计、系统设计、开发、测试的开发流程。它会根据不同Agent的职责,确定他们之间的调用关系。
组建飞书群
跟微信不太一样,飞书建群是单独的功能。每一个群有一个特殊的id(以oc开头)。
在群组中使用机器人
获取群ID
因为我设置的groupPolicy是allowlist,需要显示将获取到的oc_id,添加到groupAllowFrom。参考如下:
"channels": {
"feishu": {
"enabled": true,
"domain": "feishu",
"groupPolicy": "allowlist",
"accounts": {
"main": {
"appId": "cli_xxx",
"appSecret": "xxx",
"botName": "主助手",
"groupAllowFrom": [
"ou_xxx"
]
}
},
"dmPolicy": "pairing",
}
},
此时,在群组中就可以给你的机器人发消息。注意,发消息的方式是@对应的机器人。这是因为有如下配置,规定机器人必须要显示@才能回应。
"messages": {
"ackReactionScope": "group-mentions"
},
在Gateway界面,也能通过切换会话,找到你在群组中@机器人的界面。有类会话
- 下图中第1、5行,是飞书中单独找机器人对话
- 第3、4、6行,是飞书群组中,@机器人的对话
- 第2行,是机器人调用其他Agent,发起的子对话,Subagent对话记录。

在Gateway的会话界面,能找到更多的会话。在聊天界面,不活跃的会话就被隐藏起来。但在会话界面能找到,而且名称也更合理。
发布需求
进入群组BandCompany,发布需求跟BandBusiness。
之后只需要跟BandProjectMgr沟通项目进展,然后推进任务。
刚开始出现调用其他Agent失败。
出现Agent调用受限问题,解决之后还是调用失败。原因是allowAgents没加,加了发现大小写问题,全部改为小写。建议手动改。还要修改所有的调用规则、工作流程,我是让OpenClaw改的。
修改点是agents.list.subagent.allowAgents
{
"id": "bandbusiness",
"name": "业务负责人",
"subagents": {
"allowAgents": [
"bandproductmgr", # 全加上
]
}
},

调用别的Agent失败之后,居然就自己干起来了。应该加上工作内容限制,不做自己不专业的事情。受上下文窗口大小限制、上下文污染、系统提示词给的专业要求,建议每一项工作,拆分为不同的Agent去执行。
成果
驱动BandProjectMgr,把所有需求、设计、开发工作基本完成。因为我做的是一个安卓App,在Ubuntu环境还不太好搞。所以准备停一下,研究怎么处理。

总结
受此启发,我准备再多搞些Agent,让他们一起做事情。
比如
- 6顶思考帽群组
- 头脑风暴群组
- 项目方案咨询群组
更多推荐

所有评论(0)