Skip to content

External control (chat) ​

通过 Telegram、Slack 或 Discord 操控 OpenTraderWorld。你发给 bot 的消息会变成你的某个 agent persona 的一次运行,并在聊天中回答,访问范围恰好是你所选 token 允许的范围。

默认关闭,并且不增加它自己的权限系统:上限是一个 MCP token,与应用内助手使用的是同一个。

你的机器上不会新增任何监听 ​

三种传输方式都是主动外连:Telegram long polling、Slack Socket Mode、Discord gateway。没有需要发布的公网 URL,没有需要开放的端口,也没有可供攻击的入站路由,所以在默认仅限 localhost 的安装上以及 NAT 之后都能原样工作。

你已经用于通知的渠道只能发送(Slack 或 Discord 的 webhook URL 是只写的)。接收需要真正的 bot,所以绑定带有它自己的凭据:

平台需要粘贴的凭据平台上的配置
TelegramBotFather 的 bot token无需其他
Slack两个 token,xapp-… 和 xoxb-…,以空格或换行分隔开启 Socket Mode、message.im 事件、chat:write 范围
Discordbot tokenDirect Messages intent(私信不需要特权的消息内容 intent)

设置一个 ​

  1. 设置 → 通知:如果还没有渠道,请创建一个。这是回复路径。
  2. 设置 → MCP:创建或编辑一个 token,设置其按模块的级别,并勾选允许外部访问。
  3. 设置 → 外部控制:新建绑定,选择渠道、persona 和该 token,粘贴 bot 凭据(或从保险库接入),可选地设置新聊天默认使用的服务商和模型,然后启用该绑定。
  4. 打开该分区的开关。绑定会在几秒钟内显示已连接。
  5. 配对:点击配对,然后从应该被允许操控的账号把 6 位数字验证码发给你的 bot。它只能使用一次,有效时长按配对码有效期所设(默认一小时,可选 5 分钟到一天)。

在有人完成配对之前,bot 不会回答任何人,包括你。

由哪个模型回答 ​

每个聊天都带有自己的服务商和模型,与应用中的对话完全一样。绑定设置的是新聊天开始时的默认值:手机端的对话通常值得用比浏览器中同一个 persona 更便宜、更快的模型。留空则聊天沿用 persona 的设置。

在绑定表单中更改默认值。从聊天本身更改某个聊天:

  • /provider 列出已配置的服务商,/provider 2 或 /provider openrouter 把该聊天切换到其中一个(这会把模型重置为该服务商的默认模型,因为模型 id 属于某一个供应商)。
  • /model 列出该服务商的模型,/model 3 按位置选择,/model haiku 在恰好只有一个 id 匹配时按文本选择。

该选择只保留在这个聊天中,不会影响其他任何东西。/new 会丢弃对话,因此下一个对话会再次从绑定的默认值开始。

权限 ​

token 决定一次回答能触及的一切:每个模块的无权限、读取、读取 + 写入、完全,与 MCP 页面上完全一致。external 标志不会扩大任何东西,它只表示该范围可以从外部访问。

  • **一个绑定一个 token,一个渠道一个绑定。**吊销 token 只会停止该绑定,不影响其他,而且审计记录仍会说明调用是从哪条路径进来的。
  • 使用专用的 token,并从只读开始。之后可以放宽,无需重新配对。
  • 过期的 token,或失去该标志的 token,会在下一条消息时停止该绑定,而不是等到下次重启。

谁可以操控 ​

聊天是一个地点,而不是一个身份,所以权限绑定到平台的发送者 id:

  • 只回答已配对的发送者。其他任何人都会被忽略且不回复,这是有意为之:拒绝回复会让陌生人知道这个 bot 是真的。
  • 已配对的发送者会列在绑定上。点击其中一个即可移除。
  • **仅限私信。**群组会让多人写入一个可能拥有写入授权的 agent 的提示词。

写入总会询问 ​

每次写入都会在聊天中带着确切的方法、路径和请求体询问你,并等待回复。只有 yes、y、ok、okay、approve、oui 或 go 才算批准;其他任何内容或沉默都视为拒绝,并告知 agent 已被拒绝。

persona 的自动批准写入设置不会沿用。它是在应用中已认证的会话里勾选的;不会跟着你到手机上。

一条消息会经过什么 ​

按顺序,全部经过:

  1. 设置 → 外部控制中的全局开关
  2. 绑定已启用
  3. token 仍带有 external,且未过期
  4. 私聊
  5. 发送者在允许列表中
  6. 每个绑定每分钟 12 条消息的速率限制

随后,运行本身受 MCP 目录允许列表的约束:无论 token 怎么说,账户、网络、机密、文件存储和数据清除路由都无法访问,绑定的管理也是如此。任何 agent 都无法创建绑定、生成配对码或扩大自己的权限范围。

安全说明 ​

  • **bot token 就是访问权限。**持有它的人可以在该绑定的级别上与你的实例交谈,发送者允许列表仍然挡在前面。请把它存放在保险库中,并从只读开始。
  • 提示词注入才是真正的风险,而不是传输方式。agent 读取的内容(邮件、订阅源、入站 webhook)可能携带指令。遏制它的与应用中遏制它的是同一套东西:目录允许列表、token 的级别,以及上面的写入确认。
  • 配对码为六位数字,一次性且有时间限制,只存在于点击配对到被兑换之间。如果验证码会在屏幕上停留,请在分区标题中缩短窗口。
  • bot 凭据静态密封,绝不会被打印,包括在错误信息中。
  • 在演示模式下被整体禁用。

限制 ​

  • **仅限文本。**没有图表,也没有文件;图表仍然只在应用中。
  • **没有逐 token 流式输出。**聊天平台只提供消息编辑,且会对其限速,所以回复以大约一秒半为一块落下,并在平台上限处分段(4096、3000 和 2000 个字符)。
  • 命令:/new 为该聊天开始一个新对话,/provider 和 /model 列出并切换该聊天使用的回答来源,/whoami 显示你配对时使用的 id,/help。
  • 重启会丢弃待处理的写入确认。没有任何东西会在未经确认的情况下运行,只是会再次询问你。