跳到主要内容
路径文档

ACP 自动化服务器

一句话版:@deepseek-ai/dsh-acp 通过 ACP JSON-RPC stdio 暴露 Harness 运行时。源码 0.1.5-alpha.1(5dda764ed3)已从旧的纯自动化文本桥扩展到会话导航、模型选项、MCP 与更丰富的更新。

先看 源码 / npm 通道:以下是源码版能力,不代表旧 npm 默认版本已具备相同接口。

启动与组合​

# 在已构建的官方源码目录中
pnpm dsh --profile acp --help
pnpm dsh --profile acp

出厂 profile 位于 packages/bundle/acp-app,替代已移除的 ACP demo bin。它提供应用组合与 DeepSeek 路由;协议桥由 packages/acp/acp 拥有。stdout 专用于协议帧,诊断走 stderr。

能力协商​

initialize 广告 ACP v1、HTTP MCP 与会话 list / resume / close;也接受标准 stdio MCP。图像输入取决于持久附件能力与配置的模型路由;audio、embedded context 未广告。authMethods 返回空数组,不表示远端 MCP 无需自己的凭据。

应读取协商结果,不把所有功能写死为始终可用。

方法契约​

方法当前行为
session/newcwd 为绝对路径;发布新 Agent 前先校验并连接 stdio / HTTP MCP
session/listnewest-first 的可恢复根会话,支持 cwd 过滤与分页
session/resume规范化 cwd 校验后恢复非活跃持久会话,不回放 transcript
session/close取消并 drain 目标及后代,flush / dispose,保留持久日志
session/set_config_option选择 model 或 reasoning_effort,返回完整选项状态
session/prompt保持 text / resource link / 支持的图片顺序;每会话一个在途 prompt,该 turn 固定模型路由
session/cancel / $/cancel_request取消活跃工作;会话取消也覆盖自主活动
session/update已提交 assistant / thought 内容、通用工具生命周期、配置与上下文用量更新
session/request_permission客户端回应桥接的一次性 allow / reject 请求

AcpConfig 的 provider / model 在插件 seam 上可选,由出厂 profile 提供路由。sessionListPageSize 默认 100。模型与 reasoning 选项应在开始前校验,而非 prompt 中途切换。

MCP 与权限​

ACP 客户端提交的 MCP server 是受信进程配置:stdio command / environment 与 HTTP URL / header 可启动进程或发送凭据。发现失败会回滚尚未发布的 Agent。SSE MCP 与 ACP-transport MCP 不在当前实现范围。

权限桥提供一次性 allow / reject 选项,客户端应基于请求回应,而非将所有工具默认视为已批准。实际文件与网络策略仍归组合中的 Harness 服务。

更新与生命周期​

更新内容已超出旧的“只发已提交文本”,但不是直接透传未提交的 provider token delta;thought 与工具活动有明确更新路径。resume 恢复运行时状态但不回放 transcript,需要历史的客户端应单独处理这个边界。

关闭一个会话会释放其所属树而保留日志;连接断开或插件 disposal 会 drain 该连接持有的会话与资源。idle 区间可能包含注入工作及后代活动,不等于一条 prompt 的专属因果响应。

边界与验证​

当前未广告 session/load、会话删除 / fork、额外目录、ACP modes / commands / plans / terminals、客户端文件系统或 elicitation。使用编辑器功能前先核对源码能力。

用 ACP 客户端实际走 initialize → new → prompt → updates → permission response → close,再 list / resume 已持久化根会话。运行 help 只验证入口,不代表完成真实模型往返。

源码 owner:packages/acp/acp/src/index.ts 及其请求 / 会话 helper、packages/bundle/acp-app/cordis.patch.yml。

下一步​