所有页面
本页内容

智能体会话 0.9.7 新增

开启智能体会话后,智能体可以把任务的一部分交给同一台中继上的其他会话。它会启动这些会话、给每个会话一条提示词、等待它们并阅读它们的回答。它启动的每个会话都是你列表中的一个普通对话:你可以打开它、随时查看它的进展、回答它的问题并停止它。

典型用途:

  • 拆分工作。 “为每个包启动一个会话,让它更新该包的依赖并运行测试,然后告诉我哪些失败了。”
  • 听取第二种意见。 “在你开始之前,让一个使用其他模型的会话审查这个计划。”
  • 使用其他提供商。 “让一个 Cursor 会话编写迁移,你自己检查它的结果。”
  • 在另一个文件夹中工作。 “在文档仓库中启动一个会话,让它相应地更新安装页面。”

这不需要第二台中继。对于另一台中继上的会话,中继必须已配对;参见命名中继。

启用 #

此功能默认关闭。

  1. 打开 Settings → Relays(设置 → 中继)。
  2. 在 Agent sessions(智能体会话)下,开启 Agents may start and use sessions on this relay(智能体可以在此中继上启动和使用会话)。

这要求中继至少启用了一个提供商。从那时起,此中继上的智能体可以列出并阅读这里的每个会话、给会话发提示词、启动会话、等待它、回答它的问题、停止它的本轮并将其归档。关闭开关后,此中继就会重新对它们关闭。

已经打开的对话

会话在其智能体进程启动时获知自己拥有哪些工具。在你打开开关之前就已经在运行的对话,可能要等到它的智能体重新启动后才能启动会话:对话 ⋯ 菜单中的 Kill session(强制结束会话) 可以做到,中继重启也可以。

审批卡片 #

对话中的智能体第一次想要启动会话时,必须询问你。该对话中会出现一张审批卡片,列出提供商、文件夹或仓库以及提示词:

This agent wants to start sessions on this relay (claude, the default folder).
Sessions it starts use this relay's accounts.
你的选择 会发生什么
Allow(允许) 会话启动。此对话的智能体可以再启动更多会话而无需再次询问,中继重启后也是如此。
Deny(拒绝) 那一次调用被拒绝。

0.9.16 新增 当智能体为新会话指定一个会话分组时,卡片的详情行会说明它要去哪里,例如 Group: Release 2.4 (grp_…)。分组会在卡片出现之前被查找;不存在则会直接拒绝,不显示卡片。

审批属于该对话,而不属于中继:另一个对话中的智能体会为自己单独询问。

在 ask 和 plan 中继模式下,你会被更频繁地询问。在那里,每个会改变什么的操作都会先询问:启动会话、给会话发提示词、回答它的问题、0.9.16 新增 更改它的设置、停止它以及归档它。

规则 #

规则
最多 4 个同时工作 一个对话的智能体启动的会话中,最多 4 个可以同时有排队或运行中的轮。在其中一个完成之前,第五个会被拒绝。
仅一层 智能体启动的会话自身不能启动会话,0.9.16 新增 除非你为那个会话允许了(见下文)。
不能作用于自身 智能体不能给它所在的对话发提示词、停止它、归档它、等待它或回答它,0.9.16 新增 也不能更改它的设置。
0.9.16 新增 更改设置 智能体可以自由更改它自己对话所启动的会话的设置。其他任何会话——你的或其他智能体的——每个对话都需要你 Allow 一次。参见 update_session。
30 条提示词后询问你 当智能体向其他智能体发送了 30 条提示词而中间没有你的消息时,下一条会在卡片上询问你。Allow 会重新开始计数。0.9.16 新增 只有你写的消息才算作你的:中继事件、用量上限后的续发消息以及重启后的留言都不会重置计数。发给其他会话的定时提示词也计入。
你的账户 智能体启动的会话运行在此中继的提供商账户上,并计入它们的用量。
不会为你清理 中继从不会自己归档这些会话。它们会留在你的列表中,直到你归档或删除它们,或者智能体归档了其中一个。

让已启动的会话启动会话 0.9.16 新增 #

智能体启动的会话不能自己再启动会话。要为某个这样的会话解除这一限制,打开它的 🧠 对话框,并开启 Agents in this conversation may start sessions (even though an agent started it)(允许此对话中的智能体启动会话,即使它由智能体启动)。这个开关只会出现在智能体启动的会话上。

其他规则仍然适用于它:最多 4 个同时工作、你对第一个会话的 Allow,以及 Agents may start and use sessions on this relay。只有你可以设置这个开关:此中继或已配对中继的智能体都会被拒绝。智能体在 list_sessions 和 read_session 中会看到它是 "mayCreateSessions": true。

智能体可以启动什么 #

使用中继上已启用的任何提供商的会话:GitHub Copilot、OpenAI、Claude、Claude API、Cursor、Grok、DeepSeek 或 Claude Cloud。OpenAI Image 对话不能以这种方式启动。

  • 在文件夹中。 智能体可以指定工作文件夹。如果不指定,会话会使用中继的默认文件夹。
  • 在仓库中(Claude Cloud)。 云端会话使用一个 GitHub 仓库和可选的分支,而不是文件夹。它在 Anthropic 的沙盒中对一个全新克隆进行工作,所以智能体必须告诉它要在哪个分支上工作以及要推送。

智能体还可以选择模型、中继模式和推理强度。它没有指定的部分会沿用它所工作的会话。

新会话对启动它的对话一无所知。它只会得到智能体为它写的提示词。如果某个已启动的会话似乎缺少上下文,那里就是要看的地方:打开它并阅读第一条消息。

你会看到什么 #

  • 在对话列表中,智能体启动的会话带有 via agent · "title"(经由智能体 · “title”),其中标题是智能体所在对话的标题。同一行也显示在标题栏中该会话标题的下方;点击它会打开那个对话。
  • 0.9.11 新增 在分组中。 会话缩进显示在启动它的对话下方,位于一个会话分组中,其标题行汇总了正在运行什么以及什么在等你。0.9.16 新增 当智能体指定了已有分组时,会话会改放在那个分组中。
  • 在消息上,智能体发送的提示词带有一个徽标,包含同样的标记和智能体的模型,这样你就能把它与你自己的消息区分开。
  • 在智能体的回复中,每次调用都显示为一条带有 🛰️ 的活动行:操作及其所指向的会话。
  • 提问。 如果已启动的会话提出问题,它的卡片照常在该会话中等待。启动它的智能体会被告知这个提问;它会被指示把提问带给你而不是自己回答,除非你让它自行决定。

智能体会等待多久 #

当智能体给会话发送提示词时,它会等待回复一段时间,时间到了就得到当时已有的内容;之后它还可以再等。开关下方的滑块 Longest wait per tool call(每次工具调用的最长等待)设置单次等待的最长时间:默认 10 分钟,范围为 2 到 60 分钟。

当此中继的智能体等待已配对中继上的会话时,这一限制也适用,这就是为什么无论开关是否打开,滑块都可以移动。

等待中的轮仍会计入 Settings → General(设置 → 常规) 下的 Max turn duration(单轮最长时长)。如果工作耗时超过一轮应有的时长,智能体可以改为监视这些会话,并在它们完成时被唤醒。

按提供商 #

提供商 可以启动和使用其他会话 可以被智能体启动
Claude 是 是
GitHub Copilot 和 OpenAI(两种引擎) 是 是
Cursor 是 是
Grok 是 是
DeepSeek 0.9.17 新增 是 是
Claude Cloud 否:中继的工具无法进入云端沙盒 是,用仓库代替文件夹
OpenAI Image 否 否

除此之外,智能体会话对每个提供商的工作方式都一样。

无法正常工作时 #

现象 原因与解决办法
智能体说它没有这个工具 开关已关闭,或者该对话的智能体在你打开开关之前就已启动。参见启用。
智能体报告 REMOTE_RELAY_SESSION_LIMIT 它的四个会话仍在工作中。它必须等待其中一个完成。
智能体报告 REMOTE_RELAY_NESTED_SESSION 智能体本身运行在一个由智能体启动的会话中。只有你自己对话的智能体才能启动会话。
智能体报告 REMOTE_RELAY_PROVIDER_UNAVAILABLE 它请求的提供商未在此中继上启用。0.9.18 新增 在计费开关上,还可能是:Claude API 或 Claude 未设置,或本月的上限已达;remoteCode 会指明是哪个。
智能体等待时本轮结束 等待耗尽了 Max turn duration。让它使用更短的等待时间,或改为监视这些会话。

所有错误码都列在错误下。