acp-link — ACP 代理服务器
源码目录:packages/acp-link/
PR: #292
新增时间:2026-04-18
一、功能概述
acp-link 是一个 ACP (Agent Client Protocol) 代理服务器,将 WebSocket 客户端桥接到 ACP agent 的 stdio 接口。它让 ACP agent(如 Claude Code)可以通过 WebSocket 远程访问,而不仅限于本地 stdio。
核心特性
- WebSocket → stdio 桥接:将浏览器/远程客户端的 WebSocket 连接转换为 ACP agent 的 stdin/stdout NDJSON 流
- 会话管理:创建、加载、恢复、列出、关闭会话
- 权限审批流程:客户端可远程审批 agent 的工具权限请求
- RCS 集成:可与 Remote Control Server (RCS) 连接,将 ACP agent 注册到 RCS 并通过 Web UI 交互
- HTTPS 支持:内置自签名证书生成,支持安全连接
- Token 认证:自动生成或通过环境变量配置认证 token
二、架构
独立模式
RCS 集成模式
文件结构
三、安装与使用
基本用法
CLI 参考
四、认证
默认启动时自动生成随机 token。客户端连接时需通过 query 参数传递:五、RCS 集成
acp-link 支持将 ACP agent 注册到 Remote Control Server,通过 Web UI 远程操控。连接方式
注册流程(两步)
- REST 注册:通过
POST /v1/environments/bridge向 RCS 注册环境 - WS identify:建立 WebSocket 连接后发送
identify消息(携带 agentId),替代完整register
六、权限模式
permissionMode 传递链
权限模式通过整条链路传递:Web UI → RCS → acp-link → ACP agent。 支持的权限模式:default— 每次请求权限确认auto— 自动判断acceptEdits— 自动接受编辑plan— 规划模式dontAsk— 不询问bypassPermissions— 绕过权限(需 sandbox 环境)
fallback 链
当客户端未显式传递 permissionMode 时,使用以下 fallback 链:七、权限管道(2026-04-18 改进)
模式同步
applySessionMode 在 agent 切换权限模式时同步 appState.toolPermissionContext.mode,确保内部权限上下文与 ACP 客户端状态一致。
统一权限流水线
createAcpCanUseTool 接入 hasPermissionsToUseTool 统一权限流水线,替代原来分散的处理逻辑。支持 onModeChange 回调,模式变更时实时同步。
bypass 检测
bypassPermissions 模式增加可用性检测 — 仅在非 root 或 sandbox 环境中允许启用,防止权限绕过的安全风险。