工作台能力渠道

工作台能力

频道配置

CogineWork 默认在本地工作台里使用。你也可以把某个智能体接到企业 IM、社区平台、消息总线和语音系统。 频道配置属于每个智能体;同一个实例里,不同智能体可以使用不同的机器人凭据和访问策略。

推荐先打开 Work → 连接,查看当前智能体已接入和可用的渠道。凭据和行为在 Work → 智能体 → 该智能体 → 连接 里编辑。高级用户也可以使用:

bash
coginework channels list --agent-id default
coginework channels config --agent-id default

频道凭据只应填写在对应的密码字段或受控配置中,不要写入智能体提示词、工作区文件、日志或截图。

内建频道

当前公开配置入口包括:

类型频道
本地控制面Console
企业与团队 IMFeishu/Lark、WeCom、Slack、Mattermost、Matrix
社区与个人消息Discord、Telegram、QQ、OneBot v11、iMessage、WeChat iLink、Xiaoyi、Yuanbao
机器与语音MQTT、Voice、SIP

Console 是必需的第一方渠道,会保持启用。这里的 Console 就是本地工作台自己,不是已经去掉的「控制」页。 其他频道都是可选连接;能否启动还取决于相应 SDK、平台权限、网络连通性和组织策略。

外部频道的安全显示默认值

外部频道默认只发送最终回答和明确面向用户的内容,不公开 Agent 的内部执行细节:

字段外部频道默认值说明
show_tool_callsfalse隐藏工具名、参数、命令和调用状态
show_tool_resultsfalse隐藏原始工具输出和内部进度
show_thinkingfalse隐藏 thinking/reasoning
tool_call_max_length200工具调用预览的最大字符数;0 表示不截断
tool_result_max_length500工具结果预览的最大字符数;0 表示不截断

根配置 show_tool_details 默认是 true,并统一决定所有频道在已启用工具消息时显示详情还是摘要;它 不会开启工具消息,也不控制 thinking。Console 默认开启自己的工具、thinking 和 usage 显示,但同样 服从这个全局详情开关。Console 的每频道显示默认值不会传播到 Feishu、Discord 或插件频道。

如确需排障,可按单个频道显式开启对应的正向开关。建议先在测试机器人和测试会话中启用,完成后关闭。 长度设为 0 时不截断工具调用或工具结果。

旧配置中的 filter_tool_messages 和 filter_thinking 只用于升级兼容。迁移时会反转旧负向语义: 旧值为 true 时对应的 show_* 为 false,旧值为 false 时对应的 show_* 为 true;已有合法的 show_* 字段优先。 迁移会先验证并备份配置,再原子替换;失败不会通过重置其他 Agent、凭据或会话来“修复”。

通用访问控制

所有外部频道继承以下通用字段:

json
{
  "enabled": true,
  "dm_policy": "allowlist",
  "group_policy": "allowlist",
  "allow_from": ["approved-user-or-room-id"],
  "require_mention": true,
  "dm_disabled": false,
  "group_disabled": false
}
  • dm_policy / group_policy 可设为 open 或 allowlist。
  • allow_from 中使用平台提供的稳定用户或会话标识,不使用昵称做授权。
  • require_mention 适合群聊机器人,避免处理未点名的普通讨论。
  • dm_disabled / group_disabled 可以完全关闭对应入口。
  • 组织策略中的 channels.use 和 channels.configure 仍会在服务端生效;UI 是否显示开关不构成授权。

群聊会话

支持 share_session_in_group 的频道可以选择群成员共用一个上下文,或按发送者隔离:

  • Feishu 和 OneBot 默认 false,群成员分别使用独立会话。
  • Matrix 与 WeCom 保留各自现有默认值;修改前应先确认现有群历史与业务预期。
  • 开关只影响新消息的会话路由,不应合并、改写或删除已有历史。
  • 即使共享对话上下文,ACL、审批、审计和回复路由仍以真实发送者身份处理。

对需要讨论连续性的固定小群,可以显式开启共享;对包含不同权限成员的群,建议保持发送者隔离。

Feishu / Lark

中国区使用 domain: "feishu",国际版使用 domain: "lark"。需要 app_id 和 app_secret; 事件订阅场景还可以配置 encrypt_key、verification_token。streaming_enabled 控制 CardKit 流式卡片。

json
{
  "channels": {
    "feishu": {
      "enabled": true,
      "domain": "feishu",
      "app_id": "<app-id>",
      "app_secret": "<secret>",
      "streaming_enabled": true,
      "share_session_in_group": false
    }
  }
}

domain 也接受经过策略允许的完整 HTTP(S) gateway URL。自定义 endpoint 属于高风险配置,必须通过 服务端校验和组织策略,不能靠插件声明的 manifest.trust 自动获得权限。

新默认会隐藏工具调用、结果和 thinking,包括普通消息、流式更新、错误、审批与 history/replay 等路径。 这不会隐藏明确面向用户交付的最终图片、音频、视频或文件。

Discord

配置 bot_token 后,可按需设置代理、媒体目录和 streaming_enabled。所有显示字段都是正向语义: 开关为 true 才展示对应内容,保存、reload 和进程重启后不会反转。

若启用 accept_bot_messages,需额外评估机器人互相触发和消息回路风险。上线前应使用固定 Bot 版本完成 私聊、群聊、显式开关、重连和回复路由测试。

OneBot v11

OneBot 通过 reverse WebSocket 接入 NapCat、go-cqhttp 或 Lagrange。CogineWork 默认只监听 loopback:

json
{
  "channels": {
    "onebot": {
      "enabled": true,
      "ws_host": "127.0.0.1",
      "ws_port": 6199,
      "access_token": "",
      "share_session_in_group": false,
      "media_base64": false,
      "media_base64_max_mb": 10,
      "media_download_max_mb": 50
    }
  }
}
  • 监听地址改为非 loopback 时,必须设置 access_token,否则频道拒绝启动。
  • NapCat 端和 CogineWork 端 token 必须一致。
  • 引用回复会展开为受限上下文;文本和媒体按 OneBot 能力分别投递。
  • 入站远程媒体会经过 URL、redirect、大小、类型、超时、目标 Workspace 和 File Guard 校验。
  • media_base64 只应在确认网关和消息大小限制后开启。

Matrix

Matrix 支持 access token 登录,也支持 user_id + password 登录;homeserver 末尾的 / 会自动规范化。 可选能力包括 E2EE、流式更新、结构化 mention、群成员会话隔离和历史条数限制。

json
{
  "channels": {
    "matrix": {
      "enabled": true,
      "homeserver": "https://matrix.example.com",
      "user_id": "@bot:example.com",
      "access_token": "<token>",
      "encryption": true,
      "streaming_enabled": true,
      "history_limit": 50,
      "share_session_in_group": true
    }
  }
}

瞬时 homeserver 登录失败会有界重试,并可在 stop/reload 时取消。启用 E2EE 前应确认运行环境已提供兼容的 加密后端;缺失依赖时频道应明确失败,而不是退化为不受控明文行为。

Telegram

配置 bot_token,按需设置 base_url、HTTP 代理、typing 和 streaming。polling 遇到 409 Conflict 时会终止冲突 poller 并有界恢复,不会静默启动多个长期 poller。reload/stop 会取消后台任务并关闭 client。

QQ

QQ 频道需要 app_id 和 client_secret,支持 C2C、群和频道消息。每种会话保留独立 session 与 reply route, 避免并发用户、群成员或不同消息类型之间错投回复。max_reconnect_attempts 控制重连上限。

其他内建频道

  • iMessage:仅 macOS,读取 Messages 数据库;启用前确认系统隐私权限和媒体目录。
  • Mattermost:配置服务器 URL 与 Bot Token,保留 thread/reply 语义,可开启 typing。
  • MQTT:配置 broker、subscribe/publish topic、QoS 和 TLS;适合机器消息,不等同于多人聊天授权模型。
  • Slack:使用 Bot Token 与 App Token 的 Socket Mode,支持 edit-in-place streaming 和 thread。
  • WeCom:配置 bot_id、secret 与 WebSocket URL,支持 streaming 和群共享会话。
  • WeChat iLink:推荐通过 Console 扫码取得短期 token;token 文件默认位于受控本地路径。
  • Xiaoyi:配置 AK、SK 和 Agent ID;主动发送失败会显式报告,session ID 会规范化。
  • Yuanbao:配置 App ID、App Secret;空 API domain 和缺失 proto descriptor 有安全 fallback。
  • Voice:使用 Twilio ConversationRelay;需要单独配置号码、STT/TTS 和 webhook。
  • SIP:提供 dev 与 LiveKit 形态;必须设置并发、通话时限、SIP/RTP 和凭据边界。

机器人身份冲突

多个 Agent 使用同一个 Bot identity 时,CogineWork 会阻止或警告潜在冲突,以避免重复消费、reply route 覆盖和平台限流。诊断只显示频道和 Agent 上下文,不会输出 token、secret 或其派生比较值。

主动发送

主动通知必须先查询已存在的用户和会话,再使用精确标识发送:

bash
coginework chats list --agent-id default --channel feishu

coginework channels send \
  --agent-id default \
  --channel feishu \
  --target-user '<user-id>' \
  --target-session '<session-id>' \
  --text '通知内容'

不要猜测 target user/session,也不要用昵称代替查询结果。主动发送仍受频道配置、ACL 和组织策略约束。

插件频道

插件可以注册 BaseChannel 子类、schema-driven 配置字段、图标和文档链接。插件频道进入与内建频道相同的 manager、显示默认、访问策略和生命周期,不需要自行复制一套 Console 表单。

CLI 会在生成频道配置菜单前加载已安装插件。插件可提供自定义 configurator;没有提供时会使用基本的 enabled/bot-prefix 回退表单。把现成插件装进桌面见插件;开发接口见开发频道插件。

排障顺序

  1. 确认保存后的有效配置:
bash
coginework channels list --agent-id <id>
  1. 检查组织策略是否允许 channels.use 与 channels.configure。
  2. 核对机器人权限、事件订阅、稳定用户/群 ID 和平台侧回调地址。
  3. 检查是否有 Bot identity 冲突、重复 poller 或 endpoint/token 不匹配。
  4. 在测试机器人中验证私聊、群聊、回复、媒体、streaming、重连和主动发送。
  5. 仅在必要时临时开启受限诊断显示,完成后关闭。

自动化和 mock 测试不能替代真实平台验收。若涉及 Feishu 或 Discord 的显示问题,只有固定 Bot/version/config 下的真实消息、reload、重启、history/replay、错误与审批路径都通过后,才应把对应 Issue 标记为已验证。

相关页面:工作台 · 智能体 · 插件 · 开发频道插件 · 命令行 · 工作台配置