第 12 章 学习路径与资源:从这本书到"你能维护它"
12.1 推荐学习顺序
第一周 · 会用
•
完成本书第 1、3、4 章;
•
在自己常用的 2-3 个项目上跑 dsh,记录它做得好的和做得不好的;
•
把 headless 命令接进一个真实的 CI/脚本。
第二周 · 会改
•
完成本书第 6、7、8 章;
•
写一个自己真正需要的工具插件(检索、发消息、查数据库……都行);
•
把它打包,装进自己的 profile。
第三周 · 会懂
•
精读第 9 章,配合官方 docs/architecture.zh.md;
•
通读 docs/cordis-tutorial/(官方 Cordis 教程,7 课,按顺序做);
•
选一个子系统文档精读(docs/subsystems/),比如 tools、session、sandbox。
第四周 · 会分享
•
给插件仓库打 dsh-plugin 话题;
•
在 GitHub Discussions / 社区写你的实践总结;
•
参与官方仓库的 issue 和 PR 讨论,读 CONTRIBUTING.md。
12.2 官方文档地图(都在仓库 docs/ 下)
#dwivNZTBlwch text { white-space: pre; }#dwivNZTBlwch .fb0 { stroke: var(--N900-FG, 0.15); }#dwivNZTBlwch .fb0 {stroke: rgba(31,35,41, 0.15)}#dwivNZTBlwch .fx0 { stroke-miterlimit: 10; }#dwivNZTBlwch .fx0 {stroke-miterlimit: 10}#dwivNZTBlwch .fa1 { fill: rgb(187, 191, 196); }#dwivNZTBlwch .fa1 {fill: rgb(187, 191, 196)}#dwivNZTBlwch .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#dwivNZTBlwch .fx1 {font-style: normal}#dwivNZTBlwch .fx2 { text-anchor: middle; }#dwivNZTBlwch .fx2 {text-anchor: middle}#dwivNZTBlwch .fx3 { dominant-baseline: central; }#dwivNZTBlwch .fx3 {dominant-baseline: central}#dwivNZTBlwch .fx4 { stroke: none; }#dwivNZTBlwch .fx4 {stroke: none}#dwivNZTBlwch .fc0 { fill: var(--text-caption); }#dwivNZTBlwch .fc0 {fill: #646a73}#dwivNZTBlwch .fa2 { fill: var(--text-link-disabled); }#dwivNZTBlwch .fa2 {fill: rgb(187, 191, 196)}#dwivNZTBlwch .fa3 { fill: rgb(232, 239, 250); }#dwivNZTBlwch .fa3 {fill: rgb(232, 239, 250)}#dwivNZTBlwch .fx5 { font: 700 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#dwivNZTBlwch .fx5 {font-style: normal}#dwivNZTBlwch .fx6 { text-anchor: start; }#dwivNZTBlwch .fx6 {text-anchor: start}#dwivNZTBlwch .fx7 { dominant-baseline: alphabetic; }#dwivNZTBlwch .fx7 {dominant-baseline: alphabetic}#dwivNZTBlwch .fc1 { fill: rgb(30, 42, 58); }#dwivNZTBlwch .fc1 {fill: rgb(30, 42, 58)}#dwivNZTBlwch .fx8 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#dwivNZTBlwch .fx8 {font-style: normal}#dwivNZTBlwch .fx9 { font: 400 12px LarkHackSafariFont, LarkEmojiFont, Consolas, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Noto Sans", Tahoma, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", STHeiti, SimHei, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", system-ui; }#dwivNZTBlwch .fx9 {font-style: normal}#dwivNZTBlwch .fc2 { fill: rgb(26, 58, 122); }#dwivNZTBlwch .fc2 {fill: rgb(26, 58, 122)}#dwivNZTBlwch .fx10 { font: 400 11px LarkHackSafariFont, LarkEmojiFont, Consolas, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Noto Sans", Tahoma, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", STHeiti, SimHei, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", system-ui; }#dwivNZTBlwch .fx10 {font-style: normal}#dwivNZTBlwch .fb1 { fill: var(--N900-FG, 0.15); }#dwivNZTBlwch .fb1 {fill: rgba(31,35,41, 0.15)}#dwivNZTBlwch .fb2 { fill: rgb(201, 212, 230); }#dwivNZTBlwch .fb2 {fill: rgb(201, 212, 230)}#dwivNZTBlwch .fa4 { fill: var(--bg-body); }#dwivNZTBlwch .fa4 {fill: #fff}AB123456789101112想看什么去哪架构总览Cordis 入门Cordis 动手教程Agent 生命周期/时序工具执行流水线能力 seam事件生产/消费映射配置字段全集子系统详解实操手册术语表(7 课)(自动生成)(30+ 个)(加包、加工具、加 LLM 适配器等)docs/architecture.zh.mddocs/cordis-primer.zh.mddocs/agent-lifecycle.zh.mddocs/tool-execution-pipeline.zh.mddocs/capability-seams.zh.mddocs/event-producer-consumer.zh.mddocs/glossary.zh.mddocs/cordis-tutorial/docs/config-catalog.zh.mddocs/subsystems/docs/cookbook/
12.3 值得动手的仓库目录
•
examples/:headless-agent、jsonrpc-agent、acp-agent、mcp-memory、web-schedule 等真实组合;
•
packages/:核心包源码,从 core/ 和 llm/ 读起;
•
apps/cli/:命令行的完整行为参考;
•
native/:沙箱等原生能力(进阶)。
12.4 给想持续跟进的你
•
Watch 官方仓库:Release 和提交都看得到;
•
订阅社区列表:awesome-deepseek-harness 类仓库帮你筛生态;
•
建立自己的小工具箱:把常用 patch、插件、命令整理成自己的 profile 仓库,这是你最好的资产;
•
输出:把你踩过的坑、写的插件、跑通的流程写成文章——生态刚起步,第一波"教程作者"的位置还在抢。
12.5 结语
DeepSeek Harness 目前还只是 0.1 的开发者预览版。但框架级的东西往往就是这样:先理解它的人,定义它之后的模样。
你现在手里的这本书,就是一张门票。剩下的路,靠你在 apply(ctx) 里一笔一笔写出来。
附录里有命令速查表和术语表,随时翻。