跳到主要内容

消息渠道接入

将 Agent 或 Assistant 接入外部消息平台时,需要配置平台授权、消息路由、应用或机器人权限及凭据。

打开控制台 → 触发配置 → 新建触发配置,即可查看当前 AstraBox 部署中已安装的消息平台。每个已安装的适配器都会提供对应的设置入口和配置字段。

层级职责
消息平台管理应用或机器人身份、权限设置和事件订阅。
消息平台适配器维持消息产品连接,并把连接状态、消息和事件转换为统一协议。
AstraBoxAstraBox 保存消息平台触发配置及其只写凭据,将每个外部会话映射到 Session,并记录任务处理与回复投递状态。

平台授权与消息路由​

AstraBox 的消息平台触发配置有三个独立的配置维度:

维度解决的问题配置方式
平台授权应用或机器人如何获得收发消息的权限。消息平台提供的凭据和设置。
消息路由某条上行消息应使用哪个 Agent 或 Assistant,以及哪个 Session。触发配置选定的目标,以及平台提供的外部会话。
执行身份由哪个 AstraBox 账号执行并拥有对话。Agent 触发配置的消息执行身份;Assistant 触发配置固定使用归属用户的账号。

消息平台凭据用于授权应用或机器人连接,不会把消息参与者认证为 AstraBox 用户。执行账号由配置的消息执行身份决定:Agent 触发配置在适配器支持时默认使用 Agent 创建者,该 Agent 的创建者、指定管理员和平台管理员可以选择其他受支持的模式;Assistant 触发配置始终使用归属用户的账号。应按目标用户范围设置机器人的可见性和平台权限;只希望部分账号能使用时,在允许的发送者中列出这些账号。

接入消息平台​

所有已安装的消息平台都采用相同流程:

  1. 创建触发配置: 打开控制台 → 触发配置 → 新建触发配置,选择 Agent 或 Assistant,再选择消息平台。
  2. 创建应用或机器人: 使用 AstraBox 表单链接的官方开发者控制台。
  3. 配置权限和事件: 允许应用或机器人接收目标消息并发送回复。按照平台要求选择长连接或 Webhook 等连接方式。
  4. 填写凭据: 完成 AstraBox 显示的字段并创建触发配置。字段由已安装的适配器定义,凭据只允许写入。
  5. 按页面提示完成回调配置: 如果触发配置详情页显示回调地址,将其复制到消息平台的事件或 Webhook 设置中。把应用或机器人加入目标会话,然后发送消息。
备注

使用回调的接入方式依赖创建触发配置时显示的 AstraBox 公网地址。如果该地址发生变化,请先在消息平台中更新回调地址,再继续接收消息。

消息路由​

固定 Agent 或 Assistant​

每个消息平台触发配置都属于一个 Agent 或一个 Assistant。该触发配置接收的所有上行消息都由所选目标处理。Assistant 的触发配置只能由其归属用户管理,并且始终以归属用户身份运行,参见 Assistant。

允许的发送者​

允许的发送者列出触发配置接收哪些账号的消息,每行一个,原样使用所选适配器显示的发送者格式和示例。例如,Satori 的 Telegram 适配器使用 telegram:123456789;Generic JSON webhook 使用请求中的 sender 原值,如 user123。不要自行添加或删除平台前缀。

列表为空时接收平台投递的所有账号。列表不为空时,列表之外账号的消息会被忽略:不会开始任何工作,也不会作为上下文进入之后的回复。Assistant 的触发配置必须列出归属用户的账号,因为机器人的私聊对任何找到它的人都开放。

发往会话的不只是回复。Agent 程序之后在这次会话中主动产生的内容,例如定时任务的结果或完成的后台任务,也会投递到这里。

消息执行身份​

消息执行身份决定触发配置的消息以哪个 AstraBox 账号执行。该账号拥有这些对话、提供对话所用的连接器,并能在控制台中看到它们。该 Agent 的创建者、指定管理员和平台管理员可以修改:

设置消息的执行账号
Agent 创建者创建该 Agent 的账号。适配器支持此模式时的默认设置。
指定的一个账号在执行账号用户 ID中填写的身份提供商用户 ID。
每位发送者关联的账号平台管理员在触发配置页面的关联账号中为该发送者关联的账号。

Assistant 的触发配置固定使用归属用户的账号,不能选择其他执行模式。

Agent 管理者可以选择本人的执行账号;指定他人账号仍需平台管理员。修改执行策略不会授予发送者的个人账号或连接器权限。账号关联仍由平台管理员管理,适配器的模式限制以及部署安装的执行身份校验继续生效。API 客户端通过 GET /api/v1/channel-providers?agent_id=<id> 读取该 Agent 的编辑能力;不能管理该 Agent 的调用者收到 404。

选择“每位发送者关联的账号”时,即使在同一个群里,每位发送者也各自拥有与 Agent 的对话,Agent 的访问设置对每个关联账号生效。出现以下情况时,AstraBox 会告知发送者消息未被回复的原因,绝不会以其他人的身份回复:

  • 发送者没有关联账号;
  • 关联账号无权使用该 Agent;
  • 消息回复的是其他账号的对话,或点击了该对话中的按钮。

有些平台的工作属于具体的人,因此只能以关联账号执行;这类平台的触发配置不提供其他设置。

Agent 何时回应​

回应策略决定 Agent 回应群组中的哪些消息。Agent 不回应的消息会保留为上下文,并在 Agent 回应下一条消息时一并引用给它。

策略回应的消息
全部回应(all)每条消息
仅被提及时回应(mentions)私信、提及 Agent 的消息,以及对 Agent 的回复
参与后由模型判断(participated)同 mentions;在 Agent 已经回应过的话题中,还会由模型判断每条普通消息
由模型主动判断(proactive)同 mentions;还会由模型判断每条普通消息

后两种策略由模型判断,依据是触发配置中的判断指令,它说明 Agent 何时应该发言。这两种策略需要标题模型,或部署安装的回应判断器;参见消息平台回应判断器。

会话映射​

平台授权完成后,消息路由流程如下:

  1. 用户在私聊、群组、频道或话题中发送消息。
  2. 适配器验证并规范化平台事件。
  3. AstraBox 持久记录这条平台消息,避免重复投递导致 Agent 执行两次。
  4. 稳定的外部会话标识用于为所选 Agent 或 Assistant 创建或复用 Session。
  5. Agent 处理消息,AstraBox 记录向消息平台投递回复的结果。

私聊、群组、频道和话题使用消息平台提供的稳定标识。这些标识与 AstraBox 的身份认证和资源所有权相互独立。

注意

消息平台触发配置绑定的 Agent 或 Assistant 创建后不能更换。如需将平台连接交给其他目标,请创建新的触发配置。

图片与文件​

参与者随消息发送的图片和文件会随这条消息一起交给 Agent,回复引用为上下文的更早消息里的文件也一样。每个文件写进会话工作区的 uploads/{输入 id}/{文件名},消息里会写明这些路径。Agent 的引擎接受图片输入、且文件是 PNG、JPEG、GIF 或 WebP 时,图片还会作为图片交给模型;否则 Agent 只把它当作文件收到。一条消息最多 10 个文件,每个不超过 25 MiB。

AstraBox 按 Satori 代理规则,通过送来这条消息的适配器读取文件:只读适配器自己的 internal: 链接,或适配器登记过前缀的链接(Discord 为其 CDN)。读不到或超过上限的文件不会被静默丢弃:消息会告诉 Agent 哪个文件没能取回以及原因。音频和视频仍以链接形式留在消息正文里。

提问与审批​

Agent 在继续之前需要提问或请求审批时,会话会收到到此为止的回复,后面跟着问题及编号选项。参与者可以用以下任一方式作答:

  • 在 Telegram 和 Discord 上点击选项按钮。
  • 回复问题所在的消息,写上选项编号;问题允许时也可以直接写自己的答案。
  • 只发送选项编号;可多选时用逗号分隔多个编号。

随后 Agent 会继续同一个任务,并发出后续回复。包含多个问题的表单会逐个提问。发送其他任何消息都表示参与者不再作答:AstraBox 会停止正在等待的任务,并把这条消息作为新请求处理。作答和点击按钮仍需通过触发配置的发送者及执行账号检查;使用关联账号模式时,参与者不能替其他账号的对话作答。

凭据接入​

在对应开发者平台创建应用或机器人、配置必要权限并取得凭据,然后在新建触发配置中填写。所选适配器会提供准确的非敏感设置和只写凭据字段。

备注

凭据只在创建或更新消息平台触发配置时写入,绝不会明文回显。替换凭据时,会替换该适配器要求的完整凭据集合。

配置应用或机器人​

创建应用或机器人​

从 AstraBox 表单打开官方开发者控制台。创建应用或机器人,并为这个消息平台触发配置分配独立身份。

配置权限和事件​

只授予 Agent 处理目标会话所需的消息和事件权限。启用平台要求的事件订阅和连接方式。

发布或启用应用​

按照消息平台要求发布或启用应用。将可见范围设为目标组织、工作区、群组或用户,再把机器人加入需要接收消息的位置。

获取凭据​

复制 AstraBox 表单要求的凭据。对于使用回调的连接,请先创建触发配置,再登记详情页显示的回调地址。

相关​