从零到一:DeepSeek Harness 完整学习路径
本路径与 七天学会 DeepSeek Harness Day 1–7 逐日对齐。每日含 Morning / Afternoon / Evening 三段学习、挑战任务、验收标准 与 实验室链接。建议文档学习与动手实验比例约 四六开。
学习路径总览
| Day | 主题 | 核心产出 | 实验室 |
|---|---|---|---|
| 1 | Harness 架构与 Cordis | 跑通 Web UI,画出组件图 | 内核可视化器 |
| 2 | 插件系统 | 最小插件 mount/unmount | 泄漏调试 |
| 3 | 四种预设 | 预设对比报告 | 预设实验室 |
| 4 | 工具与安全 | 审批矩阵草案 | 审批模拟器 |
| 5 | Session 与可观测 | Resume/Fork 实操 | learn Day5 |
| 6 | 多 Agent | Spawn 子任务实验 | learn Day6 |
| 7 | 开发发布 | 发布 dsh-plugin | 社区 |
开课前准备
| 项目 | 要求 |
|---|---|
| 环境 | Node >= 18,Git,编辑器 |
| 账号 | 模型 API Key(DeepSeek 或兼容 OpenAI) |
| 时间 | 每日约 3–4 小时 × 7 天 |
| 阅读 | 入门、快速开始 |
Day 1:Harness 架构认知与 Cordis 内核
当日目标
理解 Agent = Model + Harness。完成当日学习后,你应能独立说明该主题在 Cordis 运行时中的位置,并与 开发指南 术语一致。
Morning(09:00–12:00)— 理论建构
Morning 段聚焦读与讲:先读文档,再对照官方架构。Day 1 推荐阅读 入门介绍(Day1)、开发指南(Day2+)、最佳实践(Day4+)相关章节。
深入讲解(Day 1):
DeepSeek Harness 的核心命题是 Agent = Model + Harness。大模型(Model)提供语言推理与 tool call 意图;Harness 提供持续运行的环境:Cordis 插件内核挂载模型适配器、工具管道、Session 存储、Web UI 与 MCP 客户端。与「每次 HTTP 请求无状态调用 API」不同,Harness 维护 Session 状态机,使得多轮工具调用、审批等待、上下文压缩可在同一进程内完成。
Cordis 五核心概念(以官方文档为准,通常包括):插件生命周期、依赖解析、服务 provide/inject、可逆 effect、事件总线。Everything is a Plugin 意味着更换能力即挂载/卸载插件,而非 fork 整仓代码。生产 implications:升级 Bundle 即变更插件组合,必须验证 Teardown 与 Patch 兼容性。
请在 Morning 结束前完成 快速开始 的一键启动,打开 内核可视化器,观察插件 mount 顺序动画,记录至少三个插件名称及其依赖关系。
Afternoon(14:00–17:00)— 动手实验
主题:一键启动、内核可视化、五核心概念
Afternoon 强调手比眼快:每遇到一个配置项,问「它属于 Bundle、Profile 还是 Patch?」每写一行 ctx.effect,立即写 Teardown。
Evening(19:30–21:00)— 挑战与复盘
挑战任务:在 lab 截图插件挂载动画;手绘架构图
验收标准:
- 能解释 Cordis 与 Model 的分工;Web UI 可对话
- 笔记已提交或本地存档,含至少一张 lab 截图链接
- 能向同伴讲解当日一个原理(无笔记念稿)
反思三问:
- 今日哪个概念最容易与 LangChain 混淆?
- 若上生产,今日哪条配置最危险?
- 明日预习需要的前置知识是什么?
Day 2:插件系统深度解析
当日目标
apply / effect / provide。完成当日学习后,你应能独立说明该主题在 Cordis 运行时中的位置,并与 开发指南 术语一致。
Morning(09:00–12:00)— 理论建构
Morning 段聚焦读与讲:先读文档,再对照官方架构。Day 2 推荐阅读 入门介绍(Day1)、开发指南(Day2+)、最佳实践(Day4+)相关章节。
深入讲解(Day 2):
插件是 { name, apply(ctx) }。apply 是同步入口,在此注册服务、工具、路由;禁止在 apply 内启动无 Teardown 的长生命周期资源。ctx.effect(() => { setup(); return teardown; }) 是生产契约:setup 在 mount 后运行,teardown 在 unmount 必运行。
Bundle / Profile / Patch 三层:Bundle 声明「有哪些插件、默认配置」;Profile 选择环境(standard/code/...);Patch 是 git 管理的 diff。学习路径中所有「改配置」应练习写 Patch 文件,而非只点 UI。
服务系统允许插件互相 inject 依赖。设计接口时面向「契约」而非具体实现,便于测试 mock 与 Teardown。Day2 下午编写最小插件时,刻意制造一个「无 Teardown 的 setInterval」再在 leak lab 观察内存,建立肌肉记忆。
Afternoon(14:00–17:00)— 动手实验
主题:最小插件、Teardown、Bundle 三层
Evening(19:30–21:00)— 挑战与复盘
挑战任务:编写 hello 插件;泄漏 lab 循环挂载
验收标准:
- Teardown 无泄漏;能说明 Patch 作用
- 笔记已提交或本地存档,含至少一张 lab 截图链接
- 能向同伴讲解当日一个原理(无笔记念稿)
反思三问:
- 今日哪个概念最容易与 LangChain 混淆?
- 若上生产,今日哪条配置最危险?
- 明日预习需要的前置知识是什么?
Day 3:四种预设模式
当日目标
Standard/Code/Minimal/Creator。完成当日学习后,你应能独立说明该主题在 Cordis 运行时中的位置,并与 开发指南 术语一致。
Morning(09:00–12:00)— 理论建构
Morning 段聚焦读与讲:先读文档,再对照官方架构。Day 3 推荐阅读 入门介绍(Day1)、开发指南(Day2+)、最佳实践(Day4+)相关章节。
深入讲解(Day 3):
四种预设不是皮肤,是不同的 Agent 能力边界:
| 预设 | 工具丰富度 | Token | 风险 | 典型场景 |
|---|---|---|---|---|
| Standard | 中 | 中 | 中 | 通用助手 |
| Code | 高 | 高 | 中高 | 仓库开发 |
| Minimal | 低 | 低 | 低 | CI/评测 |
| Creator | 最高 | 高 | 高 | 隔离创作 |
Creator 必须在独立环境使用,参见 最佳实践 · Creator 隔离。评测 Minimal 与生产 Standard 不可混 Pool。
在 预设对比实验室 用同一 prompt(如「列出当前目录并写 README」)跑四预设,记录:工具调用次数、总 token、是否完成、是否触发审批。
Afternoon(14:00–17:00)— 动手实验
主题:预设对比、Creator 安全、Profile Patch
Evening(19:30–21:00)— 挑战与复盘
挑战任务:同一任务四预设对比表
验收标准:
- 能推荐场景;Creator 风险说清
- 笔记已提交或本地存档,含至少一张 lab 截图链接
- 能向同伴讲解当日一个原理(无笔记念稿)
反思三问:
- 今日哪个概念最容易与 LangChain 混淆?
- 若上生产,今日哪条配置最危险?
- 明日预习需要的前置知识是什么?
Day 4:工具、沙箱与审批
当日目标
工具管道、沙箱、MCP。完成当日学习后,你应能独立说明该主题在 Cordis 运行时中的位置,并与 开发指南 术语一致。
Morning(09:00–12:00)— 理论建构
Morning 段聚焦读与讲:先读文档,再对照官方架构。Day 4 推荐阅读 入门介绍(Day1)、开发指南(Day2+)、最佳实践(Day4+)相关章节。
深入讲解(Day 4):
工具管道阶段:Schema 注册 → 模型可见 → 调用解析 → 沙箱检查 → 审批策略 → 执行 → 结果写入 Session Log。任一阶段失败都应返回模型可理解的错误,避免 silent fail。
沙箱诚实边界:限制 workspace 路径,不承诺防恶意插件。审批矩阵应多维分级,见 最佳实践。MCP 工具从外部 server 动态进入图谱,风险取决于 server,Harness 侧需 server 白名单 + 分级审批。
Day4 挑战:设计 5 类工具 × 5 种路径/命令场景的审批表,并在 approval-sim 模拟通过/拒绝/人工。
Afternoon(14:00–17:00)— 动手实验
主题:Schema、审批矩阵、approval-sim
Evening(19:30–21:00)— 挑战与复盘
挑战任务:提交 5×5 审批矩阵表
验收标准:
- 能配置沙箱路径;模拟器走通审批
- 笔记已提交或本地存档,含至少一张 lab 截图链接
- 能向同伴讲解当日一个原理(无笔记念稿)
反思三问:
- 今日哪个概念最容易与 LangChain 混淆?
- 若上生产,今日哪条配置最危险?
- 明日预习需要的前置知识是什么?
Day 5:会话、事件溯源与可观测性
标签:Session | 课程页:Day 5 | 实验:Lab
当日目标
Log、Resume/Fork/Replay、OTel。完成当日学习后,你应能独立说明该主题在 Cordis 运行时中的位置,并与 开发指南 术语一致。
Morning(09:00–12:00)— 理论建构
Morning 段聚焦读与讲:先读文档,再对照官方架构。Day 5 推荐阅读 入门介绍(Day1)、开发指南(Day2+)、最佳实践(Day4+)相关章节。
深入讲解(Day 5):
Session Log 事件类型包括(概念上):user_message、assistant_message、tool_call、tool_result、approval_request、compression、fork_point 等。append-only 保证审计与 Replay。
Resume:同一 session_id 继续;Fork:新 session_id 继承某 checkpoint 后独立演化;Replay:调试重放,生产写工具应禁用或隔离。
OpenTelemetry:除 model latency 外必看 dsh.tool.* 与 Session 体积。上下文压缩在 token 水位线触发,保留 system + 近期目标 + 关键 tool 错误原文。
Afternoon(14:00–17:00)— 动手实验
主题:长 Session 压缩、指标清单
- 打开 课程 Day 5 跟随实验步骤。
- 在本地仓库创建
learning-notes/day5.md记录命令、截图路径、问题与解决。
Evening(19:30–21:00)— 挑战与复盘
挑战任务:Fork 分支实验;列 OTel 指标
验收标准:
- Resume 成功;说明压缩策略
- 笔记已提交或本地存档,含至少一张 lab 截图链接
- 能向同伴讲解当日一个原理(无笔记念稿)
反思三问:
- 今日哪个概念最容易与 LangChain 混淆?
- 若上生产,今日哪条配置最危险?
- 明日预习需要的前置知识是什么?
Day 6:多 Agent 与高级编排
标签:多Agent | 课程页:Day 6 | 实验:Lab
当日目标
Spawn/Fork、工作流/计划。完成当日学习后,你应能独立说明该主题在 Cordis 运行时中的位置,并与 开发指南 术语一致。