mcpField
S
Scout

Scout

本地服务
openscout.appAI 与智能体112 天前更新

关于 Scout

Scout 是用于协调编码 Agent 的本地运行时和命令行工具,可在不同 Agent harness 之间分派任务并跟踪回复。它面向需要管理委派工作的开发者;核心还包含 MCP 服务,以及无需本地运行时的房间聊天功能。

主要功能

  1. 01向编码 Agent 分派任务
  2. 02跟踪请求、回复和工作状态
  3. 03通过请求引用继续工作
  4. 04用于运行时管理的命令行和 TUI
  5. 05供 Agent 主机连接的 MCP 服务
  6. 06通过 Node.js 或 Bun 加入房间聊天

适用场景

  1. 01委派代码审查给其他 Agent
  2. 02持续跟踪任务直至收到回复
  3. 03在同一工作会话中继续任务
  4. 04将 Agent 主机连接到本地运行时

MCP 相关

Scout 提供 stdio MCP 服务,将 Agent 主机连接到本地运行时及其编码 Agent。MCP 工具支持委派工作、跟踪调用、继续会话和发送消息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"openscout-app-scout": {
"command": "npx",
"args": [
"-y",
"@openscout/scout"
]
}
}
}
启动命令npx -y @openscout/scout

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@openscout/scout0.4.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Scout

Scout:一个集中管理所有 Agent 的地方,设计上优先本地运行并保持中立

协调 Claude Code、Codex、Cursor、OpenCode、Kimi、Grok、Pi 和 Devin。

npm 版本 Bun 1.4.4 或更高版本 Apache 2.0 许可证 Scout 主页


Scout 是在主机上协调编码 Agent 的本地运行时。让另一个编码 Agent 审查更改、跟进进度,并根据其答复继续工作。你的执行框架会保留各自的进程和对话记录。Scout 会保存你用于跟进工作的请求、回复和句柄。

此软件包是 Scout 核心。Mac、iOS、Android 和 Web 应用是独立的客户端;请参阅此软件包包含的内容。

  • 首次交接:分派任务并跟进,直到收到答复。
  • MCP 服务:将 Agent 主机连接到本地运行时。
  • Scout Chat:使用 Node.js 或 Bun 加入受邀聊天室。Chat 无需本地运行时。

**面向 Agent:**请从 Agent 指南 或发现清单开始。

安装

本地协调需要 Bun 1.4.4 或更高版本、Apple 芯片的 macOS 或 Linux,以及已安装并完成身份验证的编码 Agent 执行框架,用于分派 工作。

npm install -g @openscout/scout
scout --version
scout setup
scout doctor

bun add -g @openscout/scout 会安装相同的软件包。安装软件包 不会启动服务。在 macOS 上,scout setup 会配置并启动 本地运行时。在 Linux 上,scout setup 会保存配置。请在单独的终端或进程管理器下运行前台 运行时,然后再次运行 scout doctor:

openscout-runtime broker

如果就绪检查失败,请按照第一个阻塞性诊断进行处理。 安装指南介绍了 Linux 服务和故障恢复。

完成首次交接:Claude Code 或 Codex

在你的代码仓库中,提出一项小型只读任务。必须已安装并通过身份验证的执行环境。Claude Code 使用 --harness claude,Codex 使用 --harness codex。

scout ask --project . --harness codex --notify \
  "Read package.json and name the package manager. Do not edit files."

Scout 会为此项目解析或启动一个工作器。使用 --notify 时,命令会在运行时接受请求后返回。回执包含一个 ref: 句柄和一条 Follow: 命令。请保留该句柄:回执表示请求已被接受,并不表示任务已完成。

如果返回的句柄是 ref:7f3a9c21,请检查或等待该请求:

scout status ref:7f3a9c21 --json
scout wait ref:7f3a9c21 --timeout 30

status 会读取当前工作状态,不会等待。wait 会返回状态,并在可用时返回工作器的回答。已完成的结果如下所示(已简略;你的 ID 和回答会有所不同):

Invocation: inv-example
Flight: flt-example
State: completed
Resolved: ref
Ref: ref:7f3a9c21
Output:
The package manager is Bun, declared in package.json.

等待超时不会取消任务。请再次等待同一个句柄;另一次 ask 会创建另一个请求。completed、failed 和 cancelled 是终止状态。报告成功之前,请检查状态、回答和任何错误。status 会显示 Scout 记录的阻塞项,但无法看到执行环境尚未报告给 Scout 的原生权限提示。

使用返回的 ref 继续同一工作器的上下文:

scout ask --ref ref:7f3a9c21 --notify \
  "Which test commands are defined in that file? Do not run them."

后续请求会在同一会话中作为新的跟踪请求,并拥有自己的回执。改用新的 --project 发起 ask 则会从头开始。

不使用 --notify 时,ask 会在目标确认收到请求、任务立即完成,或 30 秒内未收到确认后返回。它不会等待任务完成。请使用 status 和 wait 跟进任务。

机器可读的回执和结果

在上面的 ask 命令中添加 --json,即可获取结构化输出。请保留 bindingRef,包括其 ref: 前缀。如果不存在 bindingRef,请保留 receipt.ids.flightId。回执嵌套在 receipt 下:

{
  "bindingRef": "ref:7f3a9c21",
  "replyMode": "notify",
  "receipt": {
    "ok": true,
    "state": "queued",
    "ids": {
      "invocationId": "inv-example",
      "flightId": "flt-example",
      "bindingRef": "7f3a9c21"
    }
  }
}

此示例经过简化,并非完整的架构。使用 scout status ref:7f3a9c21 --json 查看请求,该命令会返回一个 work 数组。使用 scout wait ref:7f3a9c21 --timeout 30 --json 获取回答,该命令会返回 flight、output、error 和 timedOut。退出代码为零并不能证明任务成功:请检查 flight.state 和回答。

如果某个 ask 未收到确认,请在重试前检查任何已返回的句柄。如果没有保留任何句柄,请检查 scout status --all --json 或 scout latest,并先核对请求再重新发送。

## 一种路由模型
你的需求使用方式
在此项目中从头开始scout ask --project . --harness <harness> "<request>"
向已知 Agent 请求工作scout ask --to <agent> "<request>"
继续这项具体工作scout ask --ref <ref> "<follow-up>"
继续某个具体会话scout ask --to session:<id> "<request>"
在另一台网格主机上从头开始scout ask --on <host> --project <path-on-host> --harness <harness> "<request>"
发送更新,不需要回复scout tell --to <target> "<update>"
发布到指定群组scout tell --channel <name> "<update>"

需要答案、判断或由对方负责完成的工作时,使用 ask。不确定时, 使用 ask。发送 FYI 或状态更新时,使用 tell;它不会创建工作。 scout send 仍可用于旧脚本。新脚本使用 ask 或 tell。

指定一个目标时,消息会直接发送。群组协作需要明确指定频道。 scout broadcast 会发布到共享频道,且需主动选择使用。将 目的地放在命令选项中,这样消息里的 @mentions 就只是普通 文本。

会话之间不会共享上下文。请包含目标、检出目录、约束条件和 预期结果。对于较长的说明,ask 使用 --prompt-file,tell 使用 --message-file。运行时配置会基于预设启动新会话; Fable、Opus、Kimi 和 Grok 是配置名称,不是 Agent 名称:

scout ask --profile kimi "Review the parser."
scout ask --to <agent-from-scout-who> --prompt-file ./review-request.md

有关身份、别名、投递状态和完整路由语法,请参阅运行时会话和 Scout 通信。

MCP 服务

scout mcp 会针对同一运行时启动一个 stdio MCP 服务。完成 设置,并使用 scout doctor 检查。然后在你的 Agent 主机中注册 Scout:

scout mcp install --host claude
scout mcp install --host codex

添加 --dry-run,可显示配置变更而不应用变更。其他支持基于命令的 stdio 服务的 客户端可以使用已安装的 CLI:

{
  "mcpServers": {
    "scout": {
      "command": "scout",
      "args": ["mcp", "--notifications"]
    }
  }
}

客户端的 PATH 必须包含 scout 和 Bun。--notifications 会在此连接上启用 后台回复通知;若只需工具连接,请省略此选项。该服务可以访问你的本地编码 Agent,因此只能连接 可信客户端。使用 MCP tools/list 读取工具名称和输入架构。

要委派工作,请调用 ask,并提供 currentDirectory、projectPath、任务 body 和 harness。使用 replyMode: "notify" 时,请保留 ids.flightId, 并随后调用 invocations_get 或有界的 invocations_wait。如果 notification.status 为 not_scheduled,请自行跟进该 flight。使用 返回的绑定 ref,通过 to: "ref:<id>" 继续,或使用 targetSessionId 以及 Scout 提供的具体会话继续。Agent 卡片目标会启动新会话。使用 messages_send 发送更新。

有关特定主机的设置,请参阅 MCP API 指南和 集成指南。

Scout Chat

Scout Chat 可让人员和 Agent 在共享聊天室中交流。使用邀请链接加入,然后从终端或 Agent 宿主读取和回复消息。Chat 可在 Node.js 或 Bun 1.4.4 及更高版本上运行,无需本地运行时或 scout setup。

scout chat info "<invite-url>"
scout chat join "<invite-url>"
scout chat read
scout chat say "Hello!"
scout chat watch --once --compact --for 30s --json
scout chat reply <message-id> "Here is my reply."
scout chat status

info 会读取邀请信息,但不会使用邀请:包括聊天室、消息发布位置、链接授予的权限,以及链接的到期时间。join 会将聊天室凭据以私有权限存储在 ~/.openscout/chat 下,并按工作目录和框架会话区分,因此后续命令要从同一位置运行。输出中不会包含凭据。--channel <id> 可选择已加入的聊天室,而非最近加入的聊天室。

read 会显示聊天室历史记录。watch 会打印你加入后收到的消息,并在下次运行时从保存的游标继续监听。默认情况下,它会在前台监听 10 分钟,最长为 60 分钟。使用 --once 时,只要有其他成员发消息,它就会立即返回。有消息打印时会以状态码 0 退出;达到时限但没有消息时则以状态码 2 退出。

加入聊天室不会唤醒 Agent,watch 也不会执行任何操作。请将消息视为其他成员的对话内容,而非指令。如果发送结果不确定而要重试,请重复使用错误信息中打印的 --request-id。

此软件包包含的内容

下图展示了各部分的归属。此软件包会安装核心组件,也就是在每台主机上运行并协调你的 Agent 的部分。Scout 应用、你自己的客户端和托管服务都是可选的。它们通过相同的已发布软件包和 API 连接到核心组件。

 Your coding agents: Claude Code · Codex · Grok · OpenCode · Kimi · Pi · more
                                       ▲
                                       │ harness adapters
┌─ Scout core ── openscout-app/scout ── public, Apache 2.0 ──────────────────┐
│                                                                            │
│  scout CLI, TUI and MCP server                @openscout/scout             │
│  Runtime: routing, records, lifecycle, mesh   @openscout/runtime           │
│  Protocol: identities, messages, flights      @openscout/protocol          │
│  Harness adapters, session extraction         @openscout/agent-sessions    │
│  Host side of phone pairing                   bundled in the CLI           │
│  scoutd, repository service, Rust TUI         crates/                      │
│                                                                            │
└────────────────────────────────────────────────────────────────────────────┘
               released packages · runtime API · CLI JSON · MCP
                ▲                            ▲                             ▲
┌─ Scout apps ──┴────────┐  ┌─ Your client ──┴─────┐  ┌─ Hosted services ──┴─┐
│  Mac, iOS, Android     │  │  Same APIs as        │  │  Accounts, relay     │
│  and web               │  │  the apps            │  │  and push            │
└────────────────────────┘  └──────────────────────┘  └──────────────────────┘

@openscout/scout 会安装:

  • scout 命令和 openscout-runtime 启动器;
  • 捆绑的运行时、框架适配器、会话提取功能,以及手机配对的主机端组件;
  • JSON 输出和 stdio MCP 服务端;
  • 在 Apple 芯片 macOS 上运行的 scoutd 服务监督程序。

由 scout tui 启动的 Rust TUI 属于核心组件。通过 npm install -g @openscout/scout 不会安装其原生二进制文件。scout tui 会使用本地副本,或在首次使用时下载此版本对应的发行版二进制文件。

该软件包不包含 Web 应用。只有在单独的应用提供 Web 客户端时,scout server 和 scout web 才会提供该客户端。若没有该客户端,它们会说明 Web 应用的获取方式。scout web install 会为此主机下载 Web 应用;首先通过浏览器使用 scout auth login 登录。源码边界 说明了所有权规则,而仓库 README 介绍了如何构建自己的客户端。

CLI 一览

目标命令
设置并验证scout setup、scout doctor、scout config
了解当前状态scout status、scout whoami、scout who、scout runtimes、scout inbox
请求工作或发送更新scout ask、scout tell、scout broadcast、scout operator
跟进请求scout status <handle>、scout wait <ref>、scout flight
跟进活动scout latest、scout check、scout watch、scout tail、scout label
搜索并检查过往工作scout search、scout diff、scout session
管理本地 Agentscout up、scout down、scout ps、scout restart
连接主机、手机和工具scout mesh、scout hosts、scout pair、scout mcp
打开终端界面scout tui
使用独立应用scout menu、scout server open、scout web、scout auth

scout who 会列出已知 Agent,但不能证明它们正在执行工作。scout search 用于查找过往的 harness 会话;请参阅会话搜索。 scout mesh guests 可授予和撤销针对所选 Agent、绑定密钥的访客访问权限; 请参阅直接访客访问。旧版 scout monitor 控制台已停用;请使用 scout tui。

scout --help 是简明的入门指南。scout help --detail 会列出所有 命令,scout <command> --help 会显示相应标志和示例。

设置与就绪状态

scout setup 会保存本地身份和工作区根目录,并发现由项目支持的 Agent。安装介绍了各平台上会启动哪些内容。在交互式终端中, 它会提示输入工作区根目录。通过脚本执行设置时,可以提供输入:

scout config set name "Ada"
scout setup --source-root ~/dev --default-harness codex

--source-root 可重复指定。Setup 和 doctor 检查核心组件,而非应用健康状况。 scout doctor 会报告就绪状态和下一条实用命令。FAIL 表示检测到异常; ? 表示检查结果不确定。使用 --detail 查看完整清单,使用 --json 输出 NDJSON 流。若原生守护进程支持,scout doctor --fix 会请求其执行保守修复。只有在需要重写底层主机和端口配置时,才使用 scout init。

对 setup、up、app、install 和 doctor 使用 --help 时,只会打印帮助信息,不会执行检查、启动或更改任何内容。 核心就绪状态规范定义了 JSON 输出。

兼容你已经在使用的工具

Scout 的运行时目录包含 Claude Code、Codex、Cursor CLI、OpenCode、 Kimi Code、Grok、Pi 和 Devin。选择具体模型之前,运行 scout runtimes --json 即可查看已就绪的 harness 及其当前模型 ID。目录条目必须具备已安装的 harness、 身份验证和提供商访问权限,才能运行。Kimi Code、Cursor 和 Pi 使用各自 harness 配置中的模型。

运行时目录中的模型系列
运行时模型系列
Claude CodeClaude Opus、Fable、Sonnet 和 Haiku
CodexGPT,包括 Astra、Sol、Terra 和 Luna 变体
GrokGrok
OpenCodeGLM、Kimi、Qwen、MiniMax、DeepSeek、Grok、Nemotron 和 Laguna
DevinSWE

将 Scout 连接到你的 Agent 主机:

Hermes Agent 通过其插件作为 Agent 主机连接。它不是一个 --harness 值。集成指南 列出了所有软件包和设置路径。

支持

如需商业支持或了解我们的套餐,请 联系我们。请在 GitHub issues 中报告错误并申请功能。

深入了解

许可证

Apache 2.0。请参阅许可证和声明。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。