OpenClaw Feishu Multi-Agent
Goal
让 OpenClaw 的多个独立 agent 在同一个飞书群里协作:
- - 协调者 agent 负责读群消息、决定谁处理
- 群里能看到显式 INLINECODE0
- 被点名的 agent 会主动回群
- agent 之间可以继续串联讨论
先判断是哪种场景
场景 A:用户已经有多 agent
优先检查并修复:
- 1. INLINECODE1
- INLINECODE2
- 各 agent 的
IDENTITY.md / INLINECODE4 - 会话存储是否把 Feishu 群上下文写坏
- gateway 重启后是否恢复
场景 B:用户还没有多 agent
先帮助用户定义角色表,再补齐:
- 1. agent roster
- Feishu account bindings
- 协调协议
- 各 agent 身份文件
- 验证话术
核心规则
规则 1
飞书里的 <at> 只是“给人看见谁被点名了”。
规则 2
OpenClaw 里的 sessions_send 才是“真正唤醒另一个 agent”。
规则 3
每一次委派都必须同时做两步:
- 1. 在飞书群里发可视化 INLINECODE7
- 用
sessions_send 向目标 agent 投递任务
少一步都不算成功。
规则 4
INLINECODE9 默认使用 sessionKey:
CODEBLOCK0
不要给 sessions_send 传 agentId。
推荐实施顺序
- 1. 盘点角色、agentId、Feishu accountId、Open ID、职责和触发词
- 标准化 INLINECODE13
- 把协调者 agent 写成“默认总调度”
- 把专业 agent 写成“收到 sessions_send 后直接回群”
- 检查
openclaw.json 的 agents.list、bindings、 INLINECODE17 - 检查群 session 是否保持
channel=feishu、 INLINECODE19 - 重启 gateway
- 用真实飞书话术验证
角色设计要求
不要把方案写死成 Steve / Jonathan / Brendan / Seth。
始终把角色抽象成:
- -
coordinator: 默认调度者 - INLINECODE21 : 一个或多个专业 agent
角色名、人设、职责、触发词都应该允许自定义。
你需要产出的东西
根据用户场景,通常会创建或更新:
- - INLINECODE22
- INLINECODE23
- INLINECODE24
- 可选:一个团队协作 skill,避免 agent 退回单 bot 多角色思路
修复时重点检查
1. 路由遗漏
如果协调者只叫了部分 agent:
- - 检查它的默认召集规则
- 检查“其他人 / 大家 / 团队一起讨论”是否被错误窄化
2. sessions_send 超时
超时不等于没收到。继续检查:
- - 目标 agent session 是否生成
- 目标 agent 是否进入长时间工具执行
- 日志里是否出现 nested run / timeout
3. 会话写坏
如果目标 agent “像是收到了,但没回群”,重点检查 session store:
- -
channel 是否被错误写成 INLINECODE26 - INLINECODE27 是否缺失
- INLINECODE28 是否缺失
- INLINECODE29 是否还是 INLINECODE30
参考文件
Utility Scripts
1. 统一入口
优先使用统一入口,避免记多个脚本名:
CODEBLOCK1
如果想一把跑完“生成 -> 落地 -> 审计”:
CODEBLOCK2
加上 --write --backup 才会真正写入 ~/.openclaw/。
2. 生成可落地模板
当用户还没配好多 agent,或希望把角色表转换成可落地文档时,运行:
CODEBLOCK3
产出:
- - INLINECODE33
- INLINECODE34
- INLINECODE35
- INLINECODE36
INLINECODE37 现在会同时带出:
- - INLINECODE38
- INLINECODE39
- INLINECODE40
- INLINECODE41
- INLINECODE42
3. 审计现有配置
当用户已经有多 agent,想快速检查 openclaw.json 是否与角色表一致时,运行:
CODEBLOCK4
重点检查:
- - INLINECODE44
- INLINECODE45
- INLINECODE46
- INLINECODE47
- INLINECODE48
4. 半自动落地到 ~/.openclaw/
当用户希望把角色表直接应用到自己的 OpenClaw 环境时,先 dry-run:
CODEBLOCK5
确认无误后再写入:
CODEBLOCK6
这个脚本会:
- - 合并
openclaw.json 里的 INLINECODE51 - 合并 INLINECODE52
- 合并 INLINECODE53
- 打开 INLINECODE54
- 打开 INLINECODE55
- 补齐 INLINECODE56
- 写入 INLINECODE57
- 可选写入各 agent 的 INLINECODE58
5. 修复 Feishu 群 session
当某个 agent “像是收到了,但没回群”,优先检查并按需修复 session metadata:
CODEBLOCK7
如需直接写回:
CODEBLOCK8
交付风格
- - 中文说明为主
- 代码、路径、键名、命令用英文
- 默认提供通用模板,不绑定用户现有角色名
OpenClaw 飞书多智能体协作
目标
让 OpenClaw 的多个独立智能体在同一个飞书群里协作:
- - 协调者智能体负责读取群消息、决定由谁处理
- 群里能看到显式的 提及
- 被点名的智能体会主动回群
- 智能体之间可以继续串联讨论
先判断是哪种场景
场景 A:用户已有多个智能体
优先检查并修复:
- 1. ~/.openclaw/openclaw.json
- ~/.openclaw/PROTOCOL.md
- 各智能体的 IDENTITY.md / SOUL.md
- 会话存储是否把飞书群上下文写坏
- gateway 重启后是否恢复
场景 B:用户还没有多个智能体
先帮助用户定义角色表,再补齐:
- 1. 智能体名册
- 飞书账号绑定
- 协调协议
- 各智能体身份文件
- 验证话术
核心规则
规则 1
飞书里的 只是让人看见谁被点名了。
规则 2
OpenClaw 里的 sessions_send 才是真正唤醒另一个智能体。
规则 3
每一次委派都必须同时做两步:
- 1. 在飞书群里发送可视化
- 用 sessions_send 向目标智能体投递任务
少一步都不算成功。
规则 4
sessions_send 默认使用 sessionKey:
text
agent:{targetAgentId}:feishu:group:oc_xxx
不要给 sessions_send 传递 agentId。
推荐实施顺序
- 1. 盘点角色、agentId、飞书 accountId、Open ID、职责和触发词
- 标准化 ~/.openclaw/PROTOCOL.md
- 把协调者智能体写成默认总调度
- 把专业智能体写成收到 sessions_send 后直接回群
- 检查 openclaw.json 的 agents.list、bindings、tools.agentToAgent.allow
- 检查群 session 是否保持 channel=feishu、chatType=group
- 重启 gateway
- 用真实飞书话术验证
角色设计要求
不要把方案写死成 Steve / Jonathan / Brendan / Seth。
始终把角色抽象成:
- - coordinator: 默认调度者
- specialists: 一个或多个专业智能体
角色名、人设、职责、触发词都应该允许自定义。
你需要产出的东西
根据用户场景,通常会创建或更新:
- - ~/.openclaw/PROTOCOL.md
- ~/.openclaw/openclaw.json
- {agentDir}/IDENTITY.md
- 可选:一个团队协作技能,避免智能体退回单 bot 多角色思路
修复时重点检查
1. 路由遗漏
如果协调者只叫了部分智能体:
- - 检查它的默认召集规则
- 检查其他人 / 大家 / 团队一起讨论是否被错误窄化
2. sessions_send 超时
超时不等于没收到。继续检查:
- - 目标智能体 session 是否生成
- 目标智能体是否进入长时间工具执行
- 日志里是否出现 nested run / timeout
3. 会话写坏
如果目标智能体像是收到了,但没回群,重点检查 session store:
- - channel 是否被错误写成 webchat
- deliveryContext.to 是否缺失
- accountId 是否缺失
- chatType 是否还是 group
参考文件
实用脚本
1. 统一入口
优先使用统一入口,避免记多个脚本名:
bash
python .cursor/skills/openclaw-feishu-multi-agent/scripts/managefeishumulti_agent.py --help
如果想一把跑完生成 -> 落地 -> 审计:
bash
python .cursor/skills/openclaw-feishu-multi-agent/scripts/managefeishumulti_agent.py bootstrap \
--roles .cursor/skills/openclaw-feishu-multi-agent/roles.example.json \
--output-dir /tmp/openclaw-feishu-artifacts \
--apply-identities
加上 --write --backup 才会真正写入 ~/.openclaw/。
2. 生成可落地模板
当用户还没配好多个智能体,或希望把角色表转换成可落地文档时,运行:
bash
python .cursor/skills/openclaw-feishu-multi-agent/scripts/renderfeishumulti_agent.py \
--roles .cursor/skills/openclaw-feishu-multi-agent/roles.example.json \
--output-dir /tmp/openclaw-feishu-artifacts
产出:
- - PROTOCOL.generated.md
- openclaw.generated.json
- roles.generated.json
- identities/*.IDENTITY.generated.md
openclaw.generated.json 现在会同时带出:
- - agents.list
- bindings
- channels.feishu.accounts
- tools.sessions.visibility
- tools.agentToAgent.allow
3. 审计现有配置
当用户已经有多个智能体,想快速检查 openclaw.json 是否与角色表一致时,运行:
bash
python .cursor/skills/openclaw-feishu-multi-agent/scripts/auditfeishumulti_agent.py \
--roles /path/to/roles.json \
--config ~/.openclaw/openclaw.json
重点检查:
- - agents.list
- bindings
- channels.feishu.accounts
- tools.sessions.visibility
- tools.agentToAgent.allow
4. 半自动落地到 ~/.openclaw/
当用户希望把角色表直接应用到自己的 OpenClaw 环境时,先 dry-run:
bash
python .cursor/skills/openclaw-feishu-multi-agent/scripts/applyfeishumulti_agent.py \
--roles /path/to/roles.json \
--apply-identities
确认无误后再写入:
bash
python .cursor/skills/openclaw-feishu-multi-agent/scripts/applyfeishumulti_agent.py \
--roles /path/to/roles.json \
--apply-identities \
--write --backup
这个脚本会:
- - 合并 openclaw.json 里的 agents.list
- 合并 channels.feishu.accounts
- 合并 bindings
- 打开 tools.sessions.visibility=all
- 打开 tools.agentToAgent.enabled=true
- 补齐 tools.agentToAgent.allow
- 写入 ~/.openclaw/PROTOCOL.md
- 可选写入各智能体的 IDENTITY.md
5. 修复飞书群 session
当某个智能体像是收到了,但没回群,优先检查并按需修复 session metadata:
bash
python .cursor/skills/openclaw-feishu-multi-agent/scripts/repairfeishugroup_sessions.py \
--roles /path/to/roles.json \
--group-id oc_xxx
如需直接写回:
bash
python .cursor/skills/openclaw-feishu-multi-agent/scripts/repairfeishugroup_sessions.py \
--roles /path/to/roles.json \
--group-id oc_xxx \
--fix --backup
交付风格
- - 中文说明为主
- 代码、路径、键名、命令用英文
- 默认提供通用模板,不绑定用户现有角色名