[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2797":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":28,"discoverSource":29},2797,"feishu-bot-chat-plugin","Leochens\u002Ffeishu-bot-chat-plugin","Leochens","OpenClaw plugin for bot-to-bot @ communication in Feishu group chats",null,"JavaScript",141,17,91,3,0,2,4,29,6,49.67,false,"main",true,[],"2026-06-12 04:00:16","# Feishu Bot Chat Plugin\n\nOpenClaw 插件，实现飞书群聊中多个 Bot 之间的 @ 互相通信。\n\n## 为什么需要这个插件\n\n飞书支持 Bot 之间通过 @ 直接通信（需开通权限），但 Bot 需要知道群里有哪些其他 Bot、如何正确使用 `\u003Cat>` 标签、以及何时该 @ 何时不该 @。\n\n这个插件解决的问题：\n1. **自动发现** — 自动识别群内所有 Bot 及其 open_id，无需手动配置\n2. **协作规则注入** — 向每个 Bot 的 system prompt 注入可用 Bot 列表和协作规则\n3. **格式转换** — 将 `@botName` 文本自动转为飞书 `\u003Cat>` 标签\n4. **消息过滤** — 过滤非 @ 的 Bot 消息，避免无关触发\n\n## 前置条件\n\n每个参与协作的 Bot 应用需要在飞书开发者后台开通：\n\n**`im:message.group_at_msg.include_bot:readonly`**（接收群聊中机器人 @机器人的消息）\n\n路径：开发者后台 → 应用 → 权限管理 → 搜索上述权限 → 开通\n\n开通后，Bot A 在群里 @ Bot B 时，Bot B 的 webhook 会原生收到这条消息。\n\n## 工作原理\n\n```\n用户 @ Bot A → Bot A 回复并在消息中使用 \u003Cat> 标签 @ Bot B\n                         ↓\n              飞书原生投递：Bot B 的 webhook 收到消息\n                         ↓\n              Bot B 处理任务，回复时 @ 回 Bot A\n                         ↓\n              飞书原生投递：Bot A 收到结果，汇总回复用户\n```\n\n### 三个 Hook\n\n| Hook | 作用 |\n|------|------|\n| `before_prompt_build` | 注入群内可用 Bot 列表和协作规则到 system prompt |\n| `message_sending` | 将 `@botName` 文本替换为飞书 `\u003Cat user_id=\"...\">` 标签 |\n| `inbound_claim` | 过滤非 @ 的 Bot 消息；检测原生投递状态；注入发送者信息 |\n\n### 自动发现\n\n插件启动时自动从 OpenClaw 配置中发现所有飞书 Bot：\n\n1. 读取 `bindings` — 找到所有 `channel=feishu` 且有 `accountId` 的 agent\n2. 读取 `channels.feishu.accounts` — 获取每个 account 的 `appId`、`appSecret`\n3. 调用飞书 `bot\u002Fv3\u002Finfo` API — 获取每个 Bot 的 `open_id` 和真实名称\n4. 缓存到 `~\u002F.openclaw\u002Ffbc-registry\u002Fregistry.json`（24 小时有效）\n\n### 群成员过滤\n\n`before_prompt_build` 时会调用飞书群成员 API，只向 Bot 展示当前群内实际存在的其他 Bot，避免 @ 不在群里的 Bot。\n\n## 安装\n\n```bash\n# 从 ClawHub 安装\nopenclaw plugins install feishu-bot-chat\n\n# 或从本地安装\nopenclaw plugins install .\n\n# 启用插件\nopenclaw plugins enable feishu-bot-chat\n```\n\n重启 gateway：`openclaw gateway --force`\n\n插件会自动发现所有绑定了飞书 account 的 agent，无需额外配置。\n\n## 配置（可选）\n\n默认零配置即可工作。如需手动指定 Bot 列表（覆盖自动发现），可在 `openclaw.json` 中配置：\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"feishu-bot-chat\": {\n        \"enabled\": true,\n        \"config\": {\n          \"botRegistry\": {\n            \"agent-id-1\": {\n              \"accountId\": \"feishu-account-id\",\n              \"botOpenId\": \"ou_xxxxxxxxxxxxxxxx\",\n              \"botName\": \"显示名称\"\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n## 自动发现缓存\n\n发现结果缓存在 `~\u002F.openclaw\u002Ffbc-registry\u002Fregistry.json`，24 小时有效。\n\n- gateway 重启时如果缓存有效，不重复调 API\n- 删除该文件可强制重新发现\n- 新增 agent 绑定后，缓存会自动检测到不完整并重新发现\n\n## 调试\n\n插件将详细日志写入 `logs\u002Fa2a-debug-YYYY-MM-DD.log`（按天轮转）：\n\n```bash\ntail -f logs\u002Fa2a-debug-$(date +%Y-%m-%d).log\n```\n\n## 构建\n\n打包为 zip 用于上传 ClawHub：\n\n```bash\nnpm run build\n# 输出: dist\u002Ffeishu-bot-chat-{version}.zip\n```\n\n## 限制\n\n- 仅支持飞书群聊场景（`channelId === 'feishu'`）\n- 需要每个 Bot 应用开通 `im:message.group_at_msg.include_bot:readonly` 权限\n- 飞书卡片中的 `\u003Cat>` 标签不会触发 webhook 投递，Bot 需使用纯文本消息 @\n- 自动发现需要 agent 在 bindings 中有 `accountId` 匹配\n\n## 内置 Skills\n\n插件提供 6 个 A2A 协作 Skill，群聊中自动生效：\n\n| Skill | 说明 |\n|-------|------|\n| `a2a-collaboration-guide` | 协作规则速查手册（始终激活） |\n| `a2a-task-decompose` | 任务分解与分配指南 |\n| `a2a-result-merge` | 多 bot 结果汇总 |\n| `a2a-interrupt` | 协作中断与取消处理 |\n| `a2a-status-check` | 协作状态查询与进度汇报 |\n| `a2a-mode-switch` | 协作模式切换（独立\u002F指定\u002F全力） |\n\n## License\n\nMIT\n","Feishu Bot Chat Plugin 是一个用于飞书群聊中多个 Bot 之间通过 @ 进行互相通信的 OpenClaw 插件。其核心功能包括自动发现群内所有 Bot 及其 open_id、向每个 Bot 的 system prompt 注入可用 Bot 列表和协作规则、将 `@botName` 文本自动转为飞书 `\u003Cat>` 标签以及过滤非 @ 的 Bot 消息，避免无关触发。该插件适用于需要在飞书群聊环境中实现多 Bot 协同工作的场景，如任务分解与分配、结果汇总等。安装简单，支持零配置启动，并提供详细的调试日志以帮助开发者快速定位问题。","2026-06-11 02:51:15","CREATED_QUERY"]