- 发送出站消息(状态更新、工件、报告)。
- 接收入站消息(用户在群聊中提问;智能体回答)。
- 在敏感工具调用后面设置人工审批,以交互式卡片的形式交付。
为什么频道是组织范围的
频道是组织在外部即时通讯平台中的身份 — 而不是个人的热线。当智能体向飞书群组发送卡片时,消息承载了配置该频道的组织的权限:机器人注册到该组织的飞书租户,群组成员是该组织内的同事,审批/审计跟踪属于该组织。 FIM One 一对一地镜像了这种映射:| FIM One | 外部即时通讯平台 |
|---|---|
| 组织 | 飞书租户/企业(及其管理员) |
| 频道 | 由该租户拥有的机器人 + 群聊 |
| 组织成员 | 该租户内可以审批、接收通知或对卡片做出反应的人 |
| 智能体(组织发布) | 代表组织行动的 AI 工作者 |
FeishuGateHook(审批路由)和完成通知(智能体配置的频道)都遵守相同的组织身份边界。
支持的平台
| 平台 | 状态 | 入站 | 出站 | 审批卡片 |
|---|---|---|---|---|
| Feishu (Lark) | GA | 是 | 是 | 是 (feishu_gate hook) |
| Slack | 计划中 | — | — | — |
| DingTalk | 计划中 | — | — | — |
Channels 如何与 Hooks 交互
feishu_gate hook 是 Feishu channel 的主要消费者。当智能体即将调用标记为 requires_confirmation: true 的工具时,hook 会:
- 解析组织的活跃 Feishu channel。
- 渲染包含工具名称和参数的交互式审批卡片。
- 将卡片发布到配置的群聊(
chat_id)。 - 暂停工具调用,直到群成员点击批准或拒绝。
- 根据审批结果恢复(或中止)工具调用,并通过 SSE 流式传输决策。
model_config_json.hooks.class_hooks = ["feishu_gate"] 在智能体上附加 hook,或在智能体编辑器中切换。
创建频道
- 以组织所有者或管理员身份登录。
- 转到组织设置 → 频道 → 新建频道。
- 选择频道类型(例如 Feishu),填入凭证,选择目标聊天,然后保存。
- 点击发送测试消息以验证双向连接。
安全说明
- 应用密钥和加密密钥在静止状态下使用后端的
FERNET_SECRET_KEY进行加密。 - 回调端点(
/api/channels/{id}/callback)在处理事件前验证每个签名是否与存储的encrypt_key/verification_token匹配。 - 只有目标群组聊天的成员才能批准或拒绝批准卡片 — FIM One 不会授予超出消息平台已有权限之外的额外权限。