目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
无下游(叶子/被消费端)
同一拓扑层(Layer 7,层次遍历层序):
dsh-acpdsh-api-session-controllerdsh-experimental-browser-use-stagehand-nativedsh-experimental-computer-use-cua-driver-mcpdsh-experimental-computer-use-cua-driver-nativedsh-hooks-claude-codedsh-plugin-managerdsh-subagent-acpdsh-subagent-claude-codedsh-subagent-codexdsh-subagent-dsh-sdkdsh-subagent-fork-in-processdsh-subagent-spawn-in-processdsh-tool-subagentdsh-tool-subagent-controldsh-workflow-ptc
插件信息
| 包名 | @deepseek-ai/dsh-acp |
|---|---|
| 分组 | G01 · ACP 协议 |
| 拓扑层 | Layer 7(层次遍历:被依赖方先于依赖方) |
| 源码路径 | packages/acp/acp |
| 来源层 | L3 其余插件(独立于 bundle 装配的扩展/变体/示例) |
① 实现逻辑
以 Cordis 函数插件把 ACP(Agent Client Protocol)服务端挂在 stdio JSON-RPC 上:apply() 先捕获注入的 sessionPersistence,构造 AcpSession 映射,并在 SDK 的 agent app 上注册 initialize/newSession/resumeSession/listSessions/closeSession/setSessionConfigOption/prompt/cancel 处理器 (src/index.ts:97-391)。每个会话由 AcpSession 组合一个未发布的 Agent(ctx.agents.create/resume,安装模型选择并挂载 ACP MCP 服务器)(src/session.ts:126-169),再把已提交的 session 事件(assistant/message、tool/call、tool/result)投影为有序 ACP update 通知 (src/session.ts:345-389, src/updates.ts:16-85)。协议侧另有内容准入(文本/图片严格 base64 校验、拒绝 audio/resource 块)与模型/推理配置选项读写 (src/content.ts:123-204, src/model-control.ts:92-134)。权限请求走 approval/request waterfall,只提供一次性 allow/reject 选项,不推断持久授权 (src/index.ts:155-173)。
内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件
上游依赖
下游依赖
外部 seam
② 注册/提供(provides)
- acp(自动化 ACP 服务端:JSON-RPC stdio 上的 initialize/newSession/resumeSession/listSessions/setSessionConfigOption/closeSession/prompt/cancel 方法族,供 dsh-subagent-acp 等程序化客户端驱动)
- 被代理 Agent 的会话生命周期,以及 model 与 reasoning_effort 标准配置选项(configOptions)
- approval/request 一次性权限决策通道(allow-once / reject-once,不产生持久授权)
③ 依赖(depends_on · 上游前驱)
dsh-agentE1+E2
组合并驱动被代理 Agent,安装模型选择引用
src/session.ts:13 import + src/session.ts:128 ctx.agents.create
dsh-mcp-clientE1+E2
把 ACP 声明的 MCP 服务器挂成 Agent 作用域 MCP 客户端
src/mcp.ts:8 import + src/mcp.ts:32 agentCtx.plugin(McpClient, config)
dsh-token-meterE2
向客户端上报上下文占用(usage_update)
src/updates.ts:6 import + src/updates.ts:95 ctx.get('tokenMeter')
dsh-user-approvalE2
声明合并权限 waterfall 并提供一次性决策
src/index.ts:52 import + src/index.ts:155 ctx.on('approval/request')
④ 被依赖(dependents · 下游消费者)
无下游(叶子/被消费端)