中继
缺少人工智能编码代理的人类检查点。
给你的人工智能代理一个“暂停和询问”按钮——在运行之前检查、纠正或丰富每一步。
作者 安德里亚· andeyalee@outlook.com
Relay beside your IDE — the agent pauses, you review & answer, it continues. All in one tools/call.
______________________________________________________________________
为什么要接力?
AI编码代理功能强大,但 盲目自主的代理是有风险和浪费的。如果没有检查点,代理就会偏离正轨,犯下错误,导致多轮纠正,并在浪费的请求上消耗掉宝贵的计划配额。
Relay添加了一个 人在环(HITL)检查点 任何具有MCP能力的代理。代理调用一个工具-- relay_interactive_feedback --以及 块 直到你提交你的 回答 (文本、图像、文件)。结果返回到 相同 JSON-RPC往返。你能及早发现问题,准确指导 重视每一个请求 --没有云仪表板,没有额外的SaaS,只有IDE旁边的原生桌面窗口。
主要优势
| 适用于任何MCP IDE | 一流的支持 光标, 克劳德代码, 帆板运动,并为其他人提供通用模式。 |
| 100%本地 | 所有数据都保留在您的机器上——仅环回HTTP,零遥测,没有电话回家。 |
| 一个常驻GUI | 具有多标签会话管理的单个持久窗口(不是每个请求的弹出窗口)。 |
| 无ARG_MAX限制 | retell 以HTTP JSON正文(高达16 MiB)的形式传输,而不是shell argv。 |
| 会话连续性 | relay_mcp_session_id 链接变成连贯的会话 MM-DD高:毫米:秒 标签。 |
| 丰富的反馈 | 文本、截图、文件附件——代理在一次往返中需要的一切。 |
| 保存您的计划配额 | 及早发现错误并精确指导——不再浪费宝贵的修正时间来处理额外的请求。 |
______________________________________________________________________
多IDE支持
启动Relay并选择您的IDE。每种模式都解锁了IDE特定的功能——一键MCP注入、定制的规则提示和(对于Cursor)实时使用监控。
Click a card to enter that IDE mode — all settings, CLI commands, and MCP config adapt automatically.
| IDE | MCP注入 | 规则提示 | 使用情况监控 |
|---|---|---|---|
| 光标 | ✅ | ✅ | ✅ |
| 克劳德代码 | ✅ | ✅ | — |
| 帆板运动 | ✅ | — | — |
| 其他 | 手动 | -- | -- |
______________________________________________________________________
快速开始
macOS——看门人/隔离: CI已建成 .app 捆包是 不 苹果公证(需要支付 开发者ID 证书)。从浏览器下载可获得 com.apple.quarantine 属性,可以触发“无法打开”或“损坏”警告。如果没有付费证书 不 为所有用户提供全自动修复;选项包括:
- 推荐: 在Finder中, 控制单击(或右键单击)应用程序→ Open 并确认一次(存储该应用程序的异常)。
- CLI(一次性): 将应用程序复制到后清除隔离
Applications(如果您的路径不同,请调整路径):
xattr -dr com.apple.quarantine "/Applications/Relay.app"2.启动并选择IDE --快跑 relay 点击您的IDE卡,或直接进入:
relay gui-cursor # Cursor mode
relay gui-claudecode # Claude Code mode
relay gui-windsurf # Windsurf mode3.MCP接线 --将IDE指向Relay二进制文件。光标示例:
{
"mcpServers": {
"relay-mcp": {
"command": "/path/to/relay",
"args": ["mcp-cursor"],
"autoApprove": ["relay_interactive_feedback"]
}
}
}光标 用途.cursor/mcp.json(每个回购,与~/.cursor/mcp.json). 对于 WSL代理+Windowsrelay.exe,添加--exe_in_wsl:["mcp-cursor", "--exe_in_wsl"]. 看 docs/HTTP_IPC.md 了解详情。
或使用 设置→ 环境与MCP 在Relay内部进行一键设置,并直接复制MCP JSON:
Settings → Environment & MCP — PATH detection, one-click MCP injection, copy JSON, pause MCP.
4.安装规则提示 首选 设置→ 规则提示 只需单击一下即可安装。这会教会代理人打电话 relay_interactive_feedback 每次转弯和保持 relay_mcp_session_id.
Settings → Rule prompts — one-click install into your IDE's rule configuration.
光标规则文件 --一键安装写入 relay-interactive-feedback.mdc 在...之下 用户 ~/.cursor/rules/ (Windows: %USERPROFILE%\.cursor\rules\).该路径与回购路径是分开的 .cursor/rules/;如果您只使用,请复制或符号链接到那里 项目 规则。
特工仍然跳过 relay_interactive_feedback? 确保MCP服务器 relay-mcp 已启用;在提示(或设置)时批准工具 "autoApprove": ["relay_interactive_feedback"]);编辑磁盘上的规则文件后重新加载游标。规则文件指导模型——它们不是硬保证。
______________________________________________________________________
在循环中传递人(端到端)
快速启动步骤2-4后,每个转弯都遵循此路径(运输细节: docs/HTTP_IPC.md;词汇: docs/TERMINOGY.md):
sequenceDiagram
participant Agent
participant Mcp as relay_mcp-ide
participant Http as GUI_HTTP_127.0.0.1
participant You
Agent->>Mcp: tools/call relay_interactive_feedback (retell, session, commands/skills…)
Mcp->>Http: POST /v1/feedback → request_id
Http->>You: tab shows retell
You->>Http: Answer / dismiss / idle cutoff
Http-->>Mcp: GET …/wait → JSON result
Mcp-->>Agent: same tools/call response- MCP运行 --IDE启动
relay mcp-(stdio),例如。mcp-cursor匹配的GUI是relay gui-(通常已经开放)。 - 代理调用工具 --非空
retell. 新会话: 省略relay_mcp_session_id(或为空)并发送commands和skills(每个可能[]只有当主机真正不暴露任何东西时)。 继续: 通过relay_mcp_session_id根据之前的结果。 - MCP到达GUI --阅读
gui_endpoint_.json在你的 配置和路径 目录(例如。gui_endpoint_cursor.json),或产卵relay gui-等待≤~45秒。然后POST /v1/feedback和块上GET /v1/feedback/wait/:id直到选项卡完成。 - 你互动 --提交 回答,附加文件,关闭,或让约60分钟的空闲清理返回为空
human(与从代理人的角度解雇相同)。 - 返回相同的JSON-RPC --主体包括
relay_mcp_session_id,human,cmd_skill_count,可选attachments.下一个转弯 必须 发送那个relay_mcp_session_id除非开始一个新标签。
规则与MCP: 步骤4 规则提示 安装写入 relay-interactive-feedback.mdc 在...之下 用户 ~/.cursor/rules/ (仅光标)。规则鼓励循环; relay-mcp 在MCP设置中 执行 它
______________________________________________________________________
建筑
flowchart LR
IDE[IDE / Agent] -->|stdio JSON-RPC| MCP["relay mcp-{ide}"]
MCP -->|read or spawn| GUI["relay gui-{ide}"]
MCP |127.0.0.1 Bearer| HTTP[Tauri HTTP API]
HTTP UI[Vue tabs]
UI --- User((You))
MCP -->|JSON result| IDErelay mcp-{ide}--Stdio MCP服务器(clap).手柄initialize,tools/list,tools/call.在一个连接上同时进行人工回合。可选的自动回复规则。relay/relay gui---Tauri应用+HTTP开启127.0.0.1:0.写入gui_endpoint_.json(例如。gui_endpoint_cursor.json)与{ port, token, pid };在出口处清理。- 桥 --MCP读取端点文件;如果丢失,则产卵
gui-{ide}民意调查时间约为45秒。然后POST /v1/feedback→GET /v1/feedback/wait/:id。等待在提交、驳回、取代或空闲约60分钟时解决。
______________________________________________________________________
MCP工具: relay_interactive_feedback
| 参数 | 必填 | 含义 |
|---|---|---|
retell | 是 (非空) | 此回合的用户可见助手回复,逐字逐句。 |
relay_mcp_session_id | 如果你有一个 | 继续同一会话;返回JSON结果。 |
commands | 新选项卡: 必需的 | 斜线补全的IDE命令数组。 [] 只有当主人真的没有。 |
skills | 与命令相同 | IDE技能数组。相同的合并/重复数据消除规则。 |
暂停MCP (设置):哨兵 >> --在恢复之前不要再打电话。
Slash completion — commands and skills populate the palette with optional category badges.
______________________________________________________________________
功能一览
- 多标签中心 --每个请求都会打开或刷新一个选项卡。
relay_mcp_session_id合并流。标签显示 MM-DD高:毫米:秒 带有转弯状态颜色指示器。 - 富有的作曲家 --Enter可提交,Shift+Enter可换行,⌘/Ctrl+Enter可提交并关闭。粘贴图像、附加文件——它们显示为
attachments在工具结果中。 - 光标使用监控 --自动检测您的游标令牌(跨平台解密),在实时弹出窗口中查看计划配额、请求历史记录和预测的配额耗尽。
- 自动回复 —
auto_reply_oneshot.txt/auto_reply_loop.txt立即0|reply无需打开UI即可响应。 - 本地存储 —
feedback_log.txt,qa_archive/.jsonl,可配置附件保留期(默认30天)。 - 命令行界面 —
relay feedback --retell "…"在stdout上打印JSON;--timeoutCI/自动化。
Settings → Cache — attachment + log usage, open folder, auto-clean.
______________________________________________________________________
CLI参考
| 命令 | 角色 |
|---|---|
relay | 打开IDE选择页面 |
relay gui-cursor | 在光标模式下启动GUI |
relay gui-claudecode | 在Claude Code模式下启动GUI |
relay gui-windsurf | 在Windsurf模式下启动GUI |
relay mcp-cursor | 用于Cursor的MCP stdio服务器(IDE运行的内容) |
relay mcp-claudecode | Claude Code的MCP stdio服务器 |
relay mcp-windsurf | 用于Windsurf的MCP stdio服务器 |
relay feedback --retell "…" | 终端试用; --timeout, --relay-mcp-session-id |
每个IDE模式只允许一个GUI进程;赤裸的 relay (无模式)可以运行多个实例。
______________________________________________________________________
配置和路径
数据位于操作系统应用程序数据目录下(directories::ProjectDirs → config_dir()):
| 操作系统 | 路径 |
|---|---|
| macOS | ~/Library/Application Support/com.relay.relay-mcp/ |
| Linux | ~/.config/relay-mcp/ |
| 窗户 | %APPDATA%\relay\relay-mcp\config\ |
关键文件: feedback_log.txt, qa_archive/*.jsonl, ui_locale.json, gui_endpoint_.json (例如。 gui_endpoint_cursor.json), relay_gui__alive.marker, mcp_pause.json, attachment_retention.json, auto_reply_*.txt,遗产 gui_endpoint.json 在适用的情况下。
______________________________________________________________________
构建
npm install
npm run build # Vite frontend
cargo build --manifest-path src-tauri/Cargo.toml --release
npm run tauri build # installers / .app / etc.开发:
npm run lint && npm run typecheck
npm run tauri:dev图标 (从 src-tauri/icons/source/relay-icon.svg):
npm run icons:buildCI:lint,typecheck,fast, cargo fmt, clippy -D warnings, cargo test --看 docs/RELEASING.md.
______________________________________________________________________
文档
| 文档 | 内容 |
|---|---|
| docs/HTTP_IPC.md | HTTP API,超时,WSL路径重写 |
| docs/RELAY_MCP_SESSION_ID.md | 会话ID和选项卡标签 |
| docs/TERMINOGY.md | 词汇表+二进制文件/端点文件 |
| docs/RELEASING.md | 发布与CI |
______________________________________________________________________
隐私
数据保留在设备上。 所有答案、日志、附件和设置仅在操作系统用户路径下写入。GUI和MCP进程通过以下方式进行通信 127.0.0.1 --什么都不会离开你的机器。
没有遥测。 Relay不提供分析SDK、崩溃报告器或远程仪器。本地文件,如 feedback_log.txt 可能包含敏感内容——请相应地处理它们。
______________________________________________________________________
致谢
受...启发 交互式反馈mcpRelay用驻留GUI和承载身份验证的本地HTTP层替换了每个请求的子流程UI。
______________________________________________________________________
