所有页面
本页内容

智能体工具

每个编程智能体都自带工具:读取文件、运行命令、编辑代码。OAR 在此基础上额外添加了一小组工具,让智能体能够做只有中继才能做的事:与其他会话协作,发布网页预览,以及向你提出一个只需轻点一下就能回答的问题。

你从不需要自己调用这些工具。你用日常语言提出请求,由智能体选择工具。本章节帮助你了解智能体能做什么、哪些操作需要你批准,以及它具体发送什么、得到什么。

工具 #

工具 智能体用它做什么 页面
relay_tool 列出、读取、启动、停止和监视其他会话,并向它们发送提示词,可以是此中继上的会话,也可以是已配对中继上的会话。一个工具,23 个操作。 relay_tool
preview 将本地开发服务器或文件夹发布到公开链接上,列出其会话的预览并关闭它们。 preview
ask_user 以带按钮的卡片向你提问并等待回答。 ask_user

你可以提出哪些请求 #

一些请求以及智能体会使用的工具:

你写 智能体使用
“启动三个会话,让它们各自审阅这些文件夹中的一个,然后汇总它们的发现。” relay_tool:create_session、wait、read_session
“询问 @build-box 上的会话部署是否成功。” relay_tool:list_sessions、send
“监视那些会话,并在某个会话提问或失败时告诉我。” relay_tool:subscribe
“我的 Claude 套餐在此中继上还剩多少?” relay_tool:usage
“启动开发服务器,并给我一个能在手机上打开的链接。” preview:create
“在你更改 schema 之前,先和我确认。” ask_user

按提供商 #

工具的作用在每个提供商上都相同。不同的是提供商的智能体是否获得该工具,以及它们看到的工具名称。

提供商 relay_tool preview 提问卡片
Claude 有,名称为 mcp__relay__relay_tool 有,名称为 mcp__relay__preview Claude 自带的 AskUserQuestion,由 OAR 以卡片形式展示
Claude API 0.9.18 新增 有,名称为 mcp__relay__relay_tool 有,名称为 mcp__relay__preview Claude 自带的 AskUserQuestion,由 OAR 以卡片形式展示
DeepSeek 0.9.17 新增 有,名称为 mcp__relay__relay_tool 有,名称为 mcp__relay__preview Claude Code 的 AskUserQuestion,由 OAR 以卡片形式展示
GitHub Copilot 和 OpenAI,SDK 引擎 有,名称为 relay_tool 无工具:改为告知智能体如何调用中继的预览 API OAR 的 ask_user
GitHub Copilot 和 OpenAI,扩展引擎 有,通过 OAR 的 MCP 服务器(oar) 有,通过 OAR 的 MCP 服务器(oar) Copilot 自带的 ask_user,由 OAR 以卡片形式展示
Cursor 有,名称为 relay_tool 有,名称为 preview OAR 的 ask_user
Grok 有,通过 OAR 的 MCP 服务器(oar) 有,通过 OAR 的 MCP 服务器(oar) 无
Claude Cloud 无 无 Claude 自带的 AskUserQuestion,由 OAR 以卡片形式展示

为什么名称不同

通过模型上下文协议(MCP)接收工具的提供商会把服务器名称放在工具名称前面。Claude、Claude API 和 DeepSeek 的智能体从一个名为 relay 的服务器获得 OAR 的工具,因此 preview 显示为 mcp__relay__preview。Grok 和 Copilot 的扩展引擎从一个名为 oar 的服务器获得这些工具,并各自以自己的方式给名称加前缀。无论哪种情况,都是同一个工具。

Claude API 和 DeepSeek 对话在中继主机上运行 Claude Code,因此它们的智能体获得的工具与 Claude 对话完全相同。参见 Claude API 和 DeepSeek。

Claude Cloud 会话在 Anthropic 的沙箱中运行,而不是在你的机器上。中继的工具无法进入其中:云端会话没有 relay_tool 也没有 preview。其他会话中的智能体仍然可以用 relay_tool 启动、读取和停止云端会话,或向它发送提示词。

Grok 和 Copilot 的扩展引擎从 OAR 附加到智能体的一个小型 MCP 服务器获得工具。为中继设置环境变量 OAR_MCP_SERVER=0 会关闭该服务器;这些智能体就没有 relay_tool,也没有 preview 工具,而是被告知如何调用预览 API。

工具何时存在 #

工具 智能体在什么情况下拥有它
relay_tool 至少有一个中继已配对,或者 Settings → Relays → Agent sessions → Agents may start and use sessions on this relay(设置 → 中继 → 智能体会话 → 智能体可以在此中继上启动和使用会话)已开启。两者都没有时,就完全不提供该工具。
preview 在提供该工具的提供商上始终拥有。它能否发布取决于预览通道,该通道在你设置之前是关闭的;通道关闭时,工具会返回原因。
ask_user 在提供该工具的提供商上始终拥有。

会话是否获得 relay_tool,在其智能体进程启动时确定。你配对第一个中继或开启智能体会话后,已经在运行的对话可能要等其智能体重新启动后才有该工具。0.9.18 新增 该工具的新名称同样如此:在你更新到 0.9.18 时正在运行的会话可能仍以 remote_relay 的名称拥有它;参见名称。

你始终掌控什么 #

  • 凡是超出对话范围的功能,默认都不开启。 智能体会话在你开启之前是关闭的,已配对的中继在每个对话中保持锁定,直到你提及它,预览通道在你配置之前也是关闭的。
  • 审批卡片。 智能体在对话中启动的第一个会话、它第一次在中继上监视会话,以及 ask 和 plan 中继模式下的每个写入操作,都会先通过提问卡片征求你的同意。
  • 这些工具从不给智能体令牌。 对另一个中继的调用通过你自己的中继进行,它持有那个中继的令牌。但这不是沙箱:智能体以中继的用户身份运行,能够从磁盘读取配置文件和数据库。参见 OAR 暴露什么。
  • 预览链接是公开的。 任何拥有预览链接的人都无需登录即可打开它。智能体被告知在给你链接时要说明这一点。智能体只能列出和关闭它自己对话的预览 0.9.14 新增;Settings → Previews(设置 → 预览)显示并关闭所有预览。

详细信息见每个工具的页面:relay_tool → 权限与批准 和 preview → 限制。

不是工具 #

智能体在 OAR 中做的一些事情无需 OAR 的工具即可完成:

  • 回复中的图片、视频和音频。 智能体会被告知可以通过绝对路径嵌入媒体文件;中继会内联显示它。这是提示词中的一条指令,不是工具。Copilot 扩展引擎上和 Claude Cloud 中的智能体不会收到这条指令。
  • 输入区中的 /preview。 你可以通过输入 /preview 自己发布、列出和关闭预览(输入区)。这不消耗智能体的轮次,并且适用于所有提供商。
  • 计划看板。 当智能体完成规划时,OAR 会显示一个 Plan ready(计划已就绪)看板。在 Claude 和 DeepSeek 上,它来自 Claude Code 自带的计划工具,由 OAR 接收并显示。
源代码

供贡献者和感兴趣的读者参考:这些工具在 OAR 仓库中的位置。每个工具只定义一次,与提供商无关,位于 shared/ 下,再通过一个小型适配器接入每个提供商。

文件 其中包含什么
shared/remote-relay-contract.mjs relay_tool:描述、参数、操作、权限、限制、错误码、输入检查
shared/remote-relay-tool-core.mjs relay_tool:每个提供商适配器所做的调用,以及何时提供该工具
server/services/remote-relay-dispatcher.mjs relay_tool:每个操作做什么、执行前的检查、等待回复
shared/relay-events.mjs 事件订阅:事件类型、限制、事件消息的文本
server/services/relay-event-service.mjs 事件订阅:存储它们并传递事件
shared/preview-tool-core.mjs preview:描述、参数、输入检查、调用
server/services/preview-registry-service.mjs preview:预览本身及其限制
shared/ask-user-bridge.mjs 提问卡片:从智能体的问题到卡片,再返回
server/claude-worker/claude-sdk-adapter.mjs Claude、Claude API 和 DeepSeek:relay MCP 服务器和 AskUserQuestion 桥接
server/cursor-worker/cursor-turn-runner.mjs Cursor:作为自定义工具的 relay_tool、preview 和 ask_user
server/copilot-worker/copilot-sdk-session-process.mjs Copilot SDK 引擎:作为会话工具的 relay_tool 和 ask_user
server/mcp/oar-mcp-server.mjs 用于 Grok 和 Copilot 扩展引擎的 oar MCP 服务器
server/relay-tools.md Copilot 引擎获得的关于这些工具的常驻指令