Feishu 群组
您的 OpenClaw 代理需要具备的条件,以成为一个好的 Feishu 群组聊天参与者。
Feishu 群组消息包含发送者名称的元数据。DM 不包含 —— 它们只包含一个不透明的 open_id。没有设置,您的代理将假设所有 DM 来自同一个人。
解决方法:在 USER.md 中嵌入一个 open_id → 名称查找表。由于工作空间文件被注入到系统提示中,代理可以瞬间匹配发送者 —— 无需工具调用。运行捆绑的同步脚本来拉取您的组织的联系人:
python3 scripts/sync_feishu_contacts.py
这将在 USER.md 中填充一个表格:
飞书通讯录 (App Name)
飞书 DM 不携带发送者姓名。使用 inbound metadata 的 chat_id(格式
user:ou_xxx)匹配下表识别发送者。
| 姓名 | open_id |
|---|
| Alice | ou_abc123 |
| Bob | ou_def456 |
重要:Feishu open_id 是每个应用程序的。使用不同 Feishu 应用程序的多个 OpenClaw 实例必须使用自己的凭据拉取联系人。
更新 USER.md 后,重新启动网关。工作空间文件在启动时被缓存;/new alone 不会拾取更改。通过 crontab 设置每周自动同步:
0 7
1 python3 /path/to/scripts/sync_feishu_contacts.py ~/.openclaw/openclaw.json my_app ~/workspace/USER.md
添加到 AGENTS.md 或 SOUL.md:
何时响应:
直接 @mentioned
可以为对话添加真正的价值
机智或相关的内容自然适合
何时保持沉默:
随意的闲聊,您没有什么可以添加的
有人已经很好地回答了
"是的" / "好" / 只有表情符号的领域
一般规则:
不要主导对话 —— 参与,不要独白
每条消息最多一个反应
保持回复简洁 —— 尊重群组的注意力
始终使用发送者的实际名称(从联系人表中查找)
永远不要假设 DM 来自您的 "主要人类" —— 任何人都可以给您发送消息
保持对话隔离 —— 永远不要泄露 A 对 B 说了什么
在 DM 中比在群组中更彻底(该人特意来找您)
Feishu 不支持 Markdown。遵循以下规则:
无 Markdown:无
粗体,# 标题或
链接 在消息中
无表格:使用简单的列表代替
纯文本:使用换行和间距进行结构
代码块:Feishu 支持代码块 —— 稀疏使用
添加到 SOUL.md 或 AGENTS.md:
不同用户的对话内容彼此隔离
不要向 B 泄露 A 与您讨论的内容,即使 B 是管理员
每个人的 DM 是一个私人空间
在群组聊天中,不要分享任何人的私人信息
添加到您的启动序列:
识别消息发送者:Feishu DM 不携带发送者姓名,只有 open_id(inbound metadata 的 chat_id 格式 user:ou_xxx)。
提取 open_id,在 USER.md 的飞书通讯录表格中匹配找到姓名。
不要假设 DM 对方就是主人 —— 任何人都可能给您发私聊。
群聊消息自带 Sender 元数据可以直接使用。
隐私
仅存储名称和 open_id(无电子邮件,电话或 PII)
open_id 不透明,只在您的 Feishu 应用程序中有意义
应用程序凭据在运行时从 openclaw.json 中读取,永远不会存储在技能文件中