Skip to content

附录:与官方架构对照

这张表帮你把 mini-dsh 学到的每一个概念映射回官方仓库 —— 学完本教程,你已经能读懂 deepseek-ai/deepseek-harness 的大半结构。

概念对照

官方概念官方位置mini-dsh差异说明
Cordis 插件框架vendor/(vendored Cordis 源码)src/context.ts语义对齐;waterfall 简化为单值传递
服务仓库 ctx.<key>packages/core/*ctx.service()/get()官方用声明合并实现类型安全,mini 用泛型
会话事件日志packages/core/sessionsrc/session.ts事件类型子集;官方有投影/回放/分叉
system prompt 组装packages/core/system-promptSystemPrompt(在 agent.ts)官方还组装工具 schema 进提示词
工具注册表与管线packages/core/toolssrc/tools.ts事件名一致(tools/pre-execute 等)
Agent 循环packages/core/agent-loopsrc/agent.tsturn/step 语义一致,事件子集
LLM 缝隙packages/llm/llm + llm-deepseeksrc/llm.ts同为 OpenAI 兼容 chat/completions + SSE
技能packages/skillplugins/skills.ts官方有 catalog/loader 工具,mini 简化为两个工具
Shell 能力packages/shellplugins/shell.ts官方走 subprocess/sandbox 服务链
文件系统packages/fsplugins/filesystem.ts官方支持策略事件 fs/*,mini 内联在工具里
Profile/Bundlepackages/bundle/*boot.ts官方是 YAML 组合 + patch 覆盖层
沙箱packages/sandbox / e2b未实现教学版明确不做,生产必须补
Web UIapps/websrc/web.ts零依赖单页版
CLIapps/clisrc/cli.tschat/run/web 三形态

事件对照

官方事件分发模式mini-dsh说明
agent/requestwaterfall✅ 同款请求可改写
agent/pre-stepwaterfall⏭ 合并用 agent/request 覆盖核心场景
agent/turn-stoppingserial⏭ 简化maxSteps 兜底
tools/pre-execute / post-executewaterfall✅ 同款策略拦截点
tools/executeemit✅ 同款审计观察点
assistant/chunkemit✅ 同款UI 流式渲染
llm/stream生成器✅ 同款词汇一致

官方 turn flow 完整版 vs mini

text
官方:
turn/start
  agent/pre-step(可拒绝/改写输入)
  step/start
    agent/request -> llm/stream -> assistant/chunk* -> assistant/message
    tool/call* -> tools/pre-execute -> tools/execute -> tools/post-execute -> tool/result*
  step/end
  (工具欠一次请求,或新输入到达 -> 下一个 step)
  agent/turn-stopping(serial,可中止)
turn/end

mini-dsh:
turn/start
  step/start
    system-prompt(waterfall) -> agent/request(waterfall)
    -> provider.stream -> assistant/chunk* -> assistant/message
    -> tools.execute(pre/execute/post) -> tool/result
  step/end
  (有工具调用 -> 下一个 step;maxSteps 兜底)
turn/end

官方仓库阅读指南

学完本教程,建议按这个顺序读官方源码:

  1. docs/cordis-primer.md —— 你已经会了,速览确认
  2. docs/architecture.md —— 全局地图
  3. packages/core/agent-loop/src/agent.ts —— 找 turn() / step 循环,和 07 章 对照
  4. packages/llm/llm-deepseek/src/adapter.ts —— 看 DeepSeek 适配器怎么处理流与工具调用
  5. packages/skill —— 看技能系统的完整形态(catalog + loader 工具)
  6. docs/subsystems/core.md —— 生成的 API 参考

延伸阅读

已知简化(诚实清单)

官方有,mini 没有说明
沙箱/权限系统生产必须;教学版工具直接执行
子代理(subagent)官方可派生子任务代理
会话分叉/回放 UI日志已支持,未做上层
工具 schema 运行时校验官方用 zod;mini 参数 any
上下文压缩(compaction)长会话的上下文管理策略
HMR 热重载官方开发体验的一部分
类型化事件(声明合并)官方工程细节,mini 用字符串事件名

这些缺口是绝佳的练习课题——比如「给 mini-dsh 加一个沙箱插件:监听 tools/pre-execute 拦截危险命令」。你现在已经知道该从哪里下手。

看完本教程之后

  • 想了解 DeepSeek Harness 与 Claude Code / Pi / Cursor 等主流 coding agent 的架构对比,见与主流 Coding Agent 对比
  • 想直接上手官方 dsh:npx @deepseek-ai/dsh web

基于 MIT 许可的 deepseek-ai/deepseek-harness 设计理念 · 本教程为独立教学项目,与 DeepSeek 官方无隶属关系