课程总纲 / 阶段 2 · 使用
L11

进阶二:生态接入与自动化

把 dsh 接进你的工具生态,并学会把它当"引擎"驱动。

预计阅读 25 分钟难度 ★★★☆☆全景课,为开发阶段铺路

一、MCP:外部工具的通用插头Model Context Protocol

MCP是一个开放协议:外部程序("MCP 服务器")按标准格式把自己的能力暴露给模型,任何支持 MCP 的智能体都能用它的工具。dsh 的接法:一个 MCP 服务器 = 一个插件——挂上后,它提供的工具自动进入 ctx.tools 注册表,模型即可调用,不需要为每个工具写胶水代码。像 USB:任何设备只要做成 USB 口,就能插上电脑。

对比原生 dsh 插件MCP 服务器
语言TypeScript任意(进程外独立运行)
进程同进程内独立进程,协议通信
能力全都能做(工具/服务/事件/UI)主要是提供工具
适合深度集成复用现成生态、跨产品共享

二、Skills:用 Markdown 教模型做事Skills

Skill(技能)= 一份 Markdown 写的"某类任务标准做法"说明书,模型按需加载、照着流程办事——零代码。机制:section(提示词段落)+ 工具注册,被调用时技能内容注入上下文。典型用途:团队编码规范、发布流程、工单填写标准——流程知识都能技能化。相当于给新员工一本 SOP 手册:不需要改他的脑子(代码),给他文档就行。

三、Hooks:复用已有钩子资产Hooks

团队若已有 Claude Code / Codex 的 hook 配置(在固定时机拦截/注入行为的规则),dsh 的 dsh-hooks-claude-code / dsh-hooks-codex 桥能直接映射这些配置到自己的扩展点:

Claude Code hook 时机dsh 扩展点
会话开始agent/session-start
模型请求前agent/pre-step / agent/request
工具执行前后tools/pre-execute / tools/post-execute
轮次将停agent/turn-stopping

四、子智能体:派分身干活Subagents

子智能体(subagent)= 主智能体派出去干分支任务的"下属",干完汇报。ctx.subagents 是一个提供者注册表,同一个接口后面对着五花八门的实现:spawn-in-process(进程内新生一个)、fork(分叉当前会话去干)、acp / codex / claude-code(委托给另一个产品的智能体)、dsh-sdk(经 SDK 起一个进程外的 dsh)。能力缝的威力:模型只管说"派个人去查 X",至于"人"是谁——人肉分身还是隔壁公司——是配置一行的事。

五、定时任务与后台工作Scheduled & Background

六、当引擎用:SDK 与 ACPEmbedding dsh

前三项是"给智能体加能力";这一项是把整个 dsh 变成你自己程序的一个部件

入口语言/形态适合
Python SDKPython 库公司内部系统、数据管线里嵌智能体
JSON-RPC SDKTypeScript 客户端 + 服务器插件TS 技术栈的进程外集成
ACP 服务器Agent Client Protocol(JSON-RPC over stdio)自动化客户端按标准协议驱动
两条 SDK 都投影同一个循环:agent-loop / SessionEventMap 变更时,TS 和 Python 的预期输出必须同步更新(官方贡献规则)——行为一致性由 CI 保障,选语言不必纠结差异。

七、选型速查Decision Table

我想……写代码吗
复用一个现成的外部工具MCP不写(装服务器即可)
教模型团队流程Skill写 Markdown
迁移已有 hook 资产Hooks 桥不写
并行处理分支任务subagent配置即可
在自己产品里嵌智能体SDK / ACP写(但是写你自己的应用)
深度定制 dsh 行为TS 插件(阶段 3)
MCP
外部工具服务器的开放协议;一服务器一插件。
Skill
Markdown 写的任务流程说明书,模型按需加载。
subagent
被派出去干活的下属智能体,提供者可换。
ACP
自动化专用的标准协议服务器(stdio JSON-RPC)。
✏️ 动手练习
  1. 打开 examples/mcp-memory/README.md 看一个 MCP 接入实例。
  2. 找一个你团队重复劳动的流程(如发布检查清单),试着起草一份 Skill 的 Markdown 骨架。
  3. 浏览 packages/subagent/README.md,确认六种子智能体提供者的名字。
📝 自测(点击展开答案)
1. MCP 服务器接入 dsh 后,它的工具怎么进入模型视野?
一服务器一插件:挂上后工具自动进 ctx.tools 注册表,schema 随提示词组装自动可见,无需胶水。
2. Skill 和插件的本质区别?
Skill 是数据(Markdown 流程文档,模型按需读);插件是代码(注册工具/服务/监听器)。教流程用 Skill,加能力用插件。
3. 团队已有一套 Claude Code hooks,迁移成本?
接近零:dsh-hooks-claude-code 桥把 hook 配置直接映射到对应 dsh 扩展点。
4. cron 到点时,智能体空闲和忙碌分别发生什么?
空闲:followup 唤醒(source 标记 cron);忙碌:inject() 注入通知,下次被认领时看到。
5. 你要在公司 Java 系统里驱动 dsh,最现实的路径?
进程外协议:ACP 服务器(JSON-RPC over stdio)或 JSON-RPC SDK 起的服务——协议是跨语言边界。
权威出处:extension-cookbook(功能→机制表) · skill/README.md · subagent/README.md · sdk/README.md · acp/README.md · python/sdk/README.md