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,所以绑定带有它自己的凭据:
| 平台 | 需要粘贴的凭据 | 平台上的配置 |
|---|---|---|
| Telegram | BotFather 的 bot token | 无需其他 |
| Slack | 两个 token,xapp-… 和 xoxb-…,以空格或换行分隔 | 开启 Socket Mode、message.im 事件、chat:write 范围 |
| Discord | bot token | Direct Messages intent(私信不需要特权的消息内容 intent) |
设置一个
- 设置 → 通知:如果还没有渠道,请创建一个。这是回复路径。
- 设置 → MCP:创建或编辑一个 token,设置其按模块的级别,并勾选允许外部访问。
- 设置 → 外部控制:新建绑定,选择渠道、persona 和该 token,粘贴 bot 凭据(或从保险库接入),可选地设置新聊天默认使用的服务商和模型,然后启用该绑定。
- 打开该分区的开关。绑定会在几秒钟内显示已连接。
- 配对:点击配对,然后从应该被允许操控的账号把 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 的自动批准写入设置不会沿用。它是在应用中已认证的会话里勾选的;不会跟着你到手机上。
一条消息会经过什么
按顺序,全部经过:
- 设置 → 外部控制中的全局开关
- 绑定已启用
- token 仍带有
external,且未过期 - 私聊
- 发送者在允许列表中
- 每个绑定每分钟 12 条消息的速率限制
随后,运行本身受 MCP 目录允许列表的约束:无论 token 怎么说,账户、网络、机密、文件存储和数据清除路由都无法访问,绑定的管理也是如此。任何 agent 都无法创建绑定、生成配对码或扩大自己的权限范围。
安全说明
- **bot token 就是访问权限。**持有它的人可以在该绑定的级别上与你的实例交谈,发送者允许列表仍然挡在前面。请把它存放在保险库中,并从只读开始。
- 提示词注入才是真正的风险,而不是传输方式。agent 读取的内容(邮件、订阅源、入站 webhook)可能携带指令。遏制它的与应用中遏制它的是同一套东西:目录允许列表、token 的级别,以及上面的写入确认。
- 配对码为六位数字,一次性且有时间限制,只存在于点击配对到被兑换之间。如果验证码会在屏幕上停留,请在分区标题中缩短窗口。
- bot 凭据静态密封,绝不会被打印,包括在错误信息中。
- 在演示模式下被整体禁用。
限制
- **仅限文本。**没有图表,也没有文件;图表仍然只在应用中。
- **没有逐 token 流式输出。**聊天平台只提供消息编辑,且会对其限速,所以回复以大约一秒半为一块落下,并在平台上限处分段(4096、3000 和 2000 个字符)。
- 命令:
/new为该聊天开始一个新对话,/provider和/model列出并切换该聊天使用的回答来源,/whoami显示你配对时使用的 id,/help。 - 重启会丢弃待处理的写入确认。没有任何东西会在未经确认的情况下运行,只是会再次询问你。