MCP / ACP / LSP 扩展协议¶
拥抱开放生态:Model Context Protocol、Agent Client Protocol、Language Server Protocol 与 Skills。
DeepSeek Harness 绝不是一个孤立的系统,它全面支持并融合了业界主流的开放通信协议。
核心文件速查¶
| 路径 | 职责 | 重要度 |
|---|---|---|
packages/mcp/mcp-client/src/index.ts |
Anthropic MCP 协议客户端接入 | ⭐⭐⭐ |
packages/acp/acp/src/index.ts |
自动化专用的 Agent Client Protocol 网关 | ⭐⭐⭐ |
packages/lsp/lsp/src/index.ts |
统一 Language Server Protocol 适配层 | ⭐⭐ |
packages/skill/skill/src/index.ts |
Skill 技能动态注册、搜索与加载器 | ⭐⭐⭐ |
1. MCP (Model Context Protocol) 客户端¶
DSH 原生支持接入任何标准的 MCP Server(如 GitHub MCP、PostgreSQL MCP、Brave Search MCP)。
- 当配置了外部 MCP 服务后,mcp-client 会在启动时通过 JSON-RPC 自动握手并拉取其暴露的 Tools 和 Resources;
- 这些工具会被自动转换为 DSH 标准的 ToolSchema 并注册到 ctx.tools 中;
- 模型调用 MCP 工具时,DSH 自动代理转发并回灌结果。
2. ACP (Agent Client Protocol) 自动化网关¶
除了人机交互的 Web GUI 之外,DSH 还专为 CI/CD、自动化评估和 IDE 插件提供了 ACP(Agent Client Protocol) 服务(packages/acp):
- 允许外部 IDE(如 VS Code、Cursor、JetBrains)通过标准的 ACP 协议操控 DSH;
- 无头(Headless)环境下执行端到端基准测试(Benchmark)和代码评测。
3. LSP (Language Server Protocol) 代码智能¶
为了让 Agent 具备像资深工程师一样的代码语义导航能力,DSH 封装了 LSP 服务:
- 支持后台与 TypeScript/Pyright/Rust-Analyzer 等语言服务器交互;
- 提供 find_definitions(跳转定义)、find_references(查找引用)、document_symbols(提取大纲)等能力;
- 相比盲目的全库文本 grep,LSP 能让 Agent 精准定位类型与调用图,极大地减少无效探索。
4. Skills 技能系统¶
Skill 是一种可动态加载的结构化知识包:
- 每个 Skill 包含一个 SKILL.md,定义了在特定任务下的专业工作流与最佳实践;
- packages/skill/tool-skill 提供了 skill 发现与加载工具;
- 只有当用户任务与特定技能匹配时,Agent 才会按需加载详细指南,避免所有规则一直塞在 Prompt 中浪费 Token。
本章思考与自测¶
- 思考题:MCP 工具与 DSH 内置的本地工具(如
fs或bash)在沙箱权限控制上有什么区别? - 自测题:为什么 DSH 将 Skill 的内容设计为"按需加载"而不是在一开始就全部拼接到 System Prompt 中?