AgentConnect
连接与自动化

集成概览

Agent 如何接入各个渠道——机器人、集成、共享机器人,以及在任何对话中都可用的命令。

集成把一个 Agent 与一种触达它的方式绑定在一起。支持的类型如下:

平台Agent 响应的内容接入方式
Slack频道、话题和私信添加到 Slack,或连接自己的 Slack App
Microsoft Teams一对一聊天、群聊和团队频道管理员通过 Microsoft 登录连接,或注册自己的机器人
Telegram私信和群组消息来自 @BotFather 的机器人令牌
Discord频道、话题和私信机器人令牌;AgentConnect 会生成邀请链接
Lark / 飞书群组消息和一对一聊天一键应用配置,或 App ID 和密钥
Google Chat空间中的 @ 提及和私信创建 Chat 应用,连接其服务账号的 JSON 密钥
钉钉私信和群组 @ 提及企业内部应用的 Client ID 和 Client Secret;选择国内版或国际版
QQ私聊和群组 @ 提及官方机器人的 AppID 和 AppSecret;仅限自托管
GitHubIssue、PR、评论、部署和发布事件安装 GitHub App,并授权 Agent 使用仓库
GitLabIssue、Merge Request、评论和发布事件通过 OAuth 连接;AgentConnect 为各 Agent 创建服务账号
Azure DevOpsAzure Repos 中的 PR 和评论通过 Microsoft 登录连接,或使用自己的应用
Gitea / ForgejoIssue、PR、评论和评审每个组织连接一个专用机器人用户的令牌
Linear委派的 Issue 和 @ 提及在 Linear 中授权工作区
Webhook外部系统的 JSON 事件创建 Webhook,将请求发送到生成的端点

在 Agent 页面(集成 → 添加集成)或 Agent 列表中添加集成。

添加集成并选择平台

机器人是身份,集成是绑定

对于聊天平台来说,真正存在于你的 Slack 工作区、Telegram 群组、Discord 服务器或 Lark / 飞书租户中的是一个机器人——一个拥有自己令牌的持久身份。集成把这个机器人绑定到一个 Agent。

  • 删除集成会释放机器人而不是销毁它——可以通过使用已有机器人选择器把它复用给另一个 Agent。
  • 机器人在集成 → 消息应用中按组织统一管理:参见机器人。

平台卡片会根据 Agent 所在 Daemon 支持的能力和部署设置启用。QQ 仅限自托管。具体前提和自托管配置见各平台指南。

绑定频道

没有频道选择器:把机器人邀请进频道,它就会出现在 AgentConnect 中。在 Agent 的集成卡片上打开频道设置,先选择会话模式。

会话模式

会话模式决定 Agent 如何组织这个对话中的工作:

  • 自动——协调会话阅读频道主聊天中的消息,以及没有任务负责的话题消息。它可以把请求交给正在处理同一件事的任务、在消息的话题中开启新任务、直接回答简单问题,或保持安静。@ 提及 Agent 的消息必须被处理;如果协调会话未能处理,就会为它开启任务。之后大家直接在任务的话题中与任务交流。协调会话决定期间,支持消息反应的平台会显示 🤔。
  • 按话题——每条通过触发条件的主聊天消息开启自己的会话,话题内的回复延续该会话。
  • 单一会话——对话中通过触发条件的消息,无论在主聊天还是话题中,都进入同一个长会话。发送 !new 可开始新会话。

自动模式由协调会话判断哪些消息需要回复,无需再配置下面的触发条件;菜单会隐藏这一组,底部仍可选择关闭。自动模式不能与按决策或共享机器人的或按决策选择同时使用;请先把该行切换为按话题。

在任务的话题中,!new 会重新开始该任务,!stop 会停止它,直到有人在那里再次提及该 Agent。在对话根部,!new 会开启新的协调会话,已开启的任务保持不变;!stop 会停止协调会话当前的一轮。在会话中打开协调会话,可在任务标签页查看它的任务,以及每个任务为自身进度保留的摘要。

自托管的守护进程默认运行自动模式,除非其 config.json 设置了 "features": { "autoSessionMode": false };这样的守护进程会按按话题处理自动模式的对话。

触发条件:按话题和单一会话

选择按话题或单一会话后,再通过触发条件选择哪些消息会激活 Agent。可用选项取决于平台:

  • @ 提及——被提及时回复;未提及的后续消息会在 Agent 已加入的话题(thread)中继续。
  • 所有消息——对频道里的每条消息都运行该频道的 Agent。

通过频道行上独立的 + 决策控件添加决策,让 Agent 只在判断结果符合规则时回复。已有的规则显示为按决策;点击它的 × 控件移除规则,即可回到普通频道设置。

Linear 的形态相同,只是名单不同:它的对话是工作区的团队,在你连接的那一刻就会列出;团队行只接受 @ 提及、按决策或关闭——每个 Linear 事件本来就是发给该应用的。

关闭对话

关闭单独放在菜单底部,停止对该频道消息的响应,包括提及、已有的话题关联、控制命令或共享机器人回退。收起菜单后,按钮显示自动、按话题 · @ 提及或其他已选设置;关闭时只显示关闭。选择一种会话模式会重新启用已关闭的对话。

关闭会让机器人留在频道中、保留过去的会话,只是屏蔽入站激活。定时任务或另一个 Agent 的主动交接仍然可以在那里发消息。机器人实际的频道或服务器成员身份请在聊天平台上管理。

新频道默认

Agent 集成卡片底部的新频道默认设置决定新发现的频道和群组对话如何开始:

  • 自动——平台和 Agent 的 Daemon 支持时的默认值;否则使用按话题,通过 @ 提及触发。
  • @ 提及 · 按话题——每个话题使用独立会话,通过提及激活。
  • 关闭——等待有编辑权限的人启用对话。

修改默认值不会影响已有对话和一对一私信。受限 Agent 的对话,以及平台识别为外部的对话,仍然初始为关闭。助手模式下,支持的对话在自动模式可用时固定使用协调会话,否则固定为单一会话;这会覆盖普通的会话模式选择,但保留关闭状态。

私信

有人给机器人发消息后,私信就会出现,每个 Agent 各自控制自己的私信对话。一对一私信通过开启 / 关闭控制是否回复。Slack 还提供按话题和单一会话;助手模式下,Slack 私信在支持自动模式时使用协调会话。Telegram、Discord 和 Lark / 飞书的一对一私信本身就是一个连续会话。群组对话使用各平台支持的会话模式,Slack 群组私信支持全部三种。受限 Agent 的对话初始为关闭,直到有权限的编辑者启用它们。

共享机器人

通常是一个机器人对应一个 Agent。共享 Slack 机器人可以通过单一身份服务多个 Agent,而已连接的 Linear 工作区始终如此——你在它上面启用的每个 Agent 都通过部署中唯一的 Linear 应用工作。在集成 → 消息应用中展开机器人,为每个频道选择默认分发 Agent:Slack 里只有一个“@Assistant”,背后按频道由不同的专家 Agent 负责。或按决策选择则改为按对话、用一个决策挑选专家 Agent。

频道触发条件作用于共享机器人。将其切换为关闭会停止该频道中经由该机器人的路由。

受限 Agent

当 Agent 的团队可见范围为指定成员时,它的聊天对话同样受限。新发现的频道和私信初始为关闭,直到有权限的编辑者在集成卡片上逐一启用。每个 Agent 之后也可以选择关闭作为显式静音。参见团队可见范围。

在其他对话中读取和发消息

有人让 Agent 在另一个对话(不是它正在回答的这个)中读取或发消息时,Agent 是替这个人去做,范围不会超出这个人自己能做的。它正在回答的对话始终对它开放。

它只在提问的人能看到的对话里读取消息、线程、表情回应或书签:

  • 公开频道:这个人是该工作区的正式成员,而不是访客;
  • 这个人所在的私密频道或群组私信;
  • 这个人自己和 Agent 的私信。别人的私信永远不能读取。

它只在提问的人自己也能发消息的地方发消息、添加表情回应、安排定时消息、发起对话,或修改书签、画布和列表。发什么由这个人决定。有三种情况各有规则:

  • 私信只发给你所在组织的成员:在 Slack 上,是该工作区的正式成员,不是访客。
  • 与其他组织共享的对话(例如 Slack Connect 频道)只以草稿形式接收来自其他对话的消息。你所在组织的一位成员(通常是提问的人)会在 Slack 私信中收到一张卡片,选择 Approve 或 Discard。无人处理的草稿在 24 小时后过期。
  • 没有人发起的运行,例如 Webhook、GitHub 事件或另一个 Agent 的请求,只读取公开频道和它自己的对话,也只在它自己的对话里发消息。定时任务代表最后编辑它的人;没有人编辑过时,代表创建它的人。

Agent 用到来自私密对话的内容时,会说明出处。请求被拒绝时,它会说无法在这里分享或无法发到那里,但不会透露那个对话是否存在。

Slack 和 Lark / 飞书能知道一个对话里有谁。Telegram 和 Discord 不能,所以在这两个平台上,只有平台显示为公开的群组或频道才算数:有公开 @用户名 的 Telegram 群组,或服务器里所有人都能查看的 Discord 频道。

跨平台交接

把同一个 Agent 连接到多个聊天平台后,它就可以从一个对话向另一个对话发起主动交接。只在两个你信任并已批准互通信息的消息工作区之间使用此功能。目标端会开启自己的关联会话,而不是合并两个平台的会话记录。

在另一个平台上,或通过 Agent 的另一个机器人,AgentConnect 必须先通过提问的人在个人资料 → 登录方式中关联的聊天账号,认出这个人是你所在组织的成员。之后,Agent 按这个人为目标对话所在工作区关联的聊天账号来判断:公开频道要求这个人是正式成员,私密频道或群组私信要求这个人是其中的成员。如果这个人没有为那个工作区关联账号,Agent 只在这个人能在会话中打开 Agent 会话的对话里读取或发消息。Telegram 和 Discord 账号无法关联,所以在这两个平台上始终按这条规则。在 AgentConnect Cloud 上,可以关联的是 Slack 账号,所以可以从 Slack 交接到 Agent 已经有会话、而且这个人能打开这个会话的 Telegram、Discord 或 Lark / 飞书对话。从 Telegram 或 Discord 交接到 Slack 或 Lark / 飞书则不行:AgentConnect 无法知道那里的人是谁,所以他们只能触达同一个机器人上的其他频道和群组。自托管部署还可以关联 Lark 和飞书账号。参见在受信任的工作区之间交接对话。

对话内命令

使用这些命令可以直接控制当前对话,而不必让模型来做。Slack 使用 !,因为 Slack 把 / 命令保留给了应用。

操作其他平台Slack
停止并静音/stop!stop
取消当前轮次/cancel!cancel
恢复/resume!resume
排队一条消息/queue <message>!queue <message>
查看会话状态/status!status
更改模型、推理强度或权限/models、/effort、/permission相同的命令,改用 !
切换快速模式/fast on、/fast off!fast on、!fast off

在按话题模式和自动模式的任务话题中,停止还会让该话题静音,直到有人再次提及 Agent 或使用恢复。在单一会话模式和自动模式的主聊天中,停止只中断当前轮次,不会让对话静音;要停止响应,请选择关闭。取消只中断当前轮次。

运行时设置命令(/models、/effort、/permission、/fast)只有在 Agent 的聊天中可以做什么为对话、批准并修改设置时才生效。在开启了遵循 Slack 访问权限的 Slack 上,只有 Agent 的编辑者能使用它们,其他人会私下收到提示,告知谁可以修改。在 Telegram 和 Discord 上,这些命令会出现在原生命令菜单中,注册的名称是 /models 而不是 /model(手动输入时两者都接受)。

当工具调用需要批准时,Slack、Telegram、Discord、Lark / 飞书和 Google Chat 会在对话中发布一张审批卡片,除非 Agent 设为和 agent 对话。谁能回答这张卡片也由这项设置决定;参见当运行请求权限时。

Agent 应该有多“健谈”?

Agent 的输出模式决定哪些内容会送达平台:极简只保留一条实时更新的回复,低会发布回复,中会加上工具和计划,高还会包含推理和工具输出,无则只把运行保留在 Web 会话中。完整的会话记录始终可以在会话中查看。

How is this guide?

本页目录

How is this guide?