Plugin
Chat 插件
Chat 插件如何将 Agent 连接到聊天渠道
Chat 插件
Chat 插件将 Agent 连接到 Telegram、飞书、QQ 等聊天渠道。它处理收到的消息,将它们路由到 Agent 会话,并将回复发送回渠道。
功能
- 监听已配置渠道的消息
- 为每个对话创建或复用会话
- 将用户消息路由到 Agent
- 将 Agent 回复发送回渠道
- 在消息进入 Agent 前执行按 Agent 隔离的 Chat Access 准入
配置
渠道在 Agent 配置的 plugins.chat.channels 下配置。CLI 管理的项目会把这段配置保存在全局 DB 中:
{
"plugins": {
"chat": {
"channels": {
"telegram": {
"enabled": true,
"channelAccountId": "telegram-main"
},
"feishu": {
"enabled": true,
"channelAccountId": "feishu-work"
}
}
}
}
}渠道账号
实际的机器人凭证存储在 CLI 全局 DB 中(由 City 管理)。Agent 配置只通过 channelAccountId 引用它们。
Chat Access
外部用户第一次发送消息时,Chat Plugin 会在当前 Agent 的 .downcity/chat/access.db 中记录 Principal,并在没有 Grant 时创建 pending Request。管理员使用 Request ID 批准或拒绝:
downcity chat access requests --agent <agentId> --status pending
downcity chat access approve <requestId> --agent <agentId>身份由渠道、当前 Chat 账号和平台用户 ID 共同确定。批准只对目标 Agent 生效,不会成为 City 全局权限,也不会传播到其他 Plugin。
支持的渠道
- Telegram
- 飞书 (Lark)
飞书依赖
@downcity/plugins 默认不再安装飞书 / Lark SDK。如果你在本地嵌入 SDK 宿主中启用飞书渠道,需要在宿主应用里安装:
npm install @larksuiteoapi/node-sdk@^1.66.0现有 SDK import 可以保持不变:
import { ChatPlugin, FeishuChannel } from "@downcity/plugins";不启用飞书的应用不需要安装飞书 SDK。
继续阅读: