@tagword/tagword-group-chat
v0.1.0
Published
Multi-agent group chat sync plugin for OpenClaw (Feishu-first, multi-channel ready).
Maintainers
Readme
tagword-group-chat
OpenClaw 扩展插件:在同一 OpenClaw 运行时内,让多个 Agent(各自绑定飞书机器人账号)在同一条 Feishu 群里共享「谁在群里、谁在 @ 谁、协作意图是什么」等结构化语义。群消息经 group_chat 发送的同时,由网关 sessions_send 注入其他 Agent 的会话,避免仅靠飞书侧推送导致机器人之间互相不可见。
架构边界(适用模型)
| 模型 | 是否在本插件范围内 |
|------|-------------------|
| 单 OpenClaw 进程 / 单网关:多个 agent:*,多个 Feishu accountId,同群协作 | 是。本插件的设计前提。 |
| 多个 OpenClaw 实例(多台机、多套网关、彼此独立部署)拼成「多 Agent 系统」 | 否。跨实例联邦、跨集群路由、服务发现均不在本仓库范围;需在更高一层自行集成。 |
| 单 Agent + 单机器人:只在群里回一句话 | 不必用本插件。会话内渠道回复即可;装插件仅增加 SQLite 与 ingest 运维成本。 |
一句话:解决的是 OpenClaw 内部的 multi-agent 协作面,不是 multi-OpenClaw 拓扑。
功能概要
group_chat:飞书群 纯文本(支持 create / reply / thread 等模式),并按成员与@解析生成 receiver / cc / intent,经网关同步到相关会话。get_group_members:从本地 SQLite 读取当前群内已观测到的机器人成员(与发群前成员补全逻辑一致)。- SQLite:
gc_group_members、gc_group_map、gc_events(可选 hooks)等;成员来自 ingest 解析网关日志,调用工具前可按配置对近期日志做成员补全(详见 docs/guide.md)。 - Feishu 优先:通道与正则以飞书日志为准;结构为多 channel 预留。
非目标(明确排除)
- 不替代 OpenClaw 核心、不托管网关、不实现跨 OpenClaw 部署 的消息总线。
- 不在此仓库内提供飞书图片/文件/卡片消息类型(当前 Open API 路径为文本)。
- 不保证无 ingest / 无 cron 时成员表完整;生产环境需按文档配置日志 ingest。
环境要求
- Node.js ≥ 18
- OpenClaw 已配置 Feishu(
channels.feishu.accounts)与 gateway(port、auth.token),且插件在openclaw.json中启用 - 网关日志目录可被 ingest 读取(默认与覆盖见 docs/guide.md)
安装与构建
源码(开发或定制)
git clone https://github.com/tagword/tagword-group-chat.git
cd tagword-group-chat
npm install
npm run build在 openclaw.json 的插件 installs 中指向本目录;入口以 package.json → openclaw.extensions 为准(./dist/index.js)。
npm
npm install @tagword/tagword-group-chat将插件路径指向 node_modules/@tagword/tagword-group-chat(包内已含 dist/ 时通常无需再执行 build)。
维护者:本机 npm 发布认证(Automation token)
- 在 npmjs.com 生成 Automation 或 Granular token(勿贴到聊天或仓库)。
- 在本机终端执行(仅你自己的终端,
NPM_TOKEN不要写进任何会提交的文件):
export NPM_TOKEN='你的token'
./scripts/configure-npm-auth.sh脚本会把 token 写入用户级 ~/.npmrc,并执行 npm whoami 校验。之后在同一用户下可直接 npm publish --access public。
成员数据(必做)
无 ingest 则成员表为空,工具无法按设计解析群内多机器人。至少应配置定时任务,例如:
node dist/ingest/feishu-log-sync.js --run-once完整参数、环境变量与 cron 示例见 docs/guide.md#ingest。
文档
| 文档 | 说明 |
|------|------|
| docs/guide.md | 运维与第三方:ingest、cron、环境变量、排障 |
| docs/agent-brief.md | Agent / workspace:可嵌入 AGENTS.md、TOOLS.md 的节选 |
| example-config/ | 配置示例 |
| SECURITY.md | 安全披露 |
许可与声明
本项目以 MIT 许可发布,为独立第三方插件,与 OpenClaw 官方无隶属关系。
