aa1143/NamiDSH
学习资源用约一千行 TypeScript 复刻 DeepSeek Harness 的插件骨架,适合想读懂工业级 Agent 框架的开发者。
项目介绍
DeepSeek Harness(DSH)代码量很大,直接读源码门槛高。NamiDSH 把它的骨架按原样缩小:迷你版 Cordis 插件框架、由 11 个包组成的迷你版 DSH,以及一个浏览器里能对话的网页 Agent。文件结构、API、插件写法、包名和职责都与 DSH 对应,读完之后再去看原项目,每个文件都能找到位置。
迷你版 Cordis 约 680 行,保留了依赖注入、异步加载、错误隔离、热插拔和五种事件。tests/compat.ts 里的 14 个场景会分别在迷你版和 DSH 仓库中真正的 Cordis 上运行,README 称两边输出逐行一致。Agent 部分沿用 DSH 的分层:服务定义(ctx.llm、ctx.tools、ctx.sessions)、服务提供者(DeepSeek 适配器、文件工具)和使用方(agent-loop、webserver)彼此分开,换模型、加工具只需要再挂一个插件。
快速开始
需要 Node.js 22.18 及以上,可以直接运行 TypeScript,不用编译。
npm install # 只链接 packages/*,不下载运行时依赖
npm start # 打开 http://localhost:3000
不设置 API Key 时使用离线假模型,可以问「现在几点」「项目里有哪些文件」。要接 DeepSeek:
API_KEY=sk-xxx npm start
还支持这些环境变量:BASE_URL(默认 https://api.deepseek.com)、MODEL(默认 deepseek-v4-flash)、PORT、WORKSPACE。启动后在浏览器打开提示的本地地址即可对话。
想自己验证框架行为是否一致:
node tests/compat.ts
CORDIS=/path/to/deepseek-harness/vendor/cordis/lib/index.js node tests/compat.ts
第二条命令需要本地有一份 DSH 源码,路径按自己的目录替换。
学习材料
配套 7 篇文章,分别对应具体文件:一切皆插件、Context、Fiber 生命周期、服务与依赖注入、事件总线、一次提问的完整旅程,以及和真 Cordis 的逐行对照。Markdown 在 docs/ 目录,也有可视化版本,左边架构图高亮当前模块,右边显示对应代码行。
使用约束
- 必须 Node.js 22.18 及以上,项目依赖运行时直接执行 TypeScript,没有编译产物可回退。
- 接 DeepSeek 需要有效的 API Key 和网络;离线假模型只能处理项目自带的演示工具。
- 文件工具是只读的(
read_file、list_dir),范围限于配置的 workspace。 - 迷你版 Cordis 有意省略了 isolate / intercept、mixin / accessor、
ctx.set、@Inject装饰器和生成器形式的 effect,理由是 DSH 基本没用到;依赖这些特性的代码在迷你版上行为不同。 - 代码以 MIT 许可发布。
HotRepo 点评
项目创建于 2026 年 11 月初,目前只有 2026-11-06 的 TypeScript 新项目榜记录:在约三小时的观察窗口内净增 21 Star,总数到 130,Fork 15 个;同一时段的采样从 109 涨到 130。只有一条快照,也没有全部语言日榜名次,不足以判断走势,能确认的是发布后出现过一小波集中关注。它的价值偏向教学而非生产使用:真正支撑「缩小来学」这个说法的是 14 个双跑兼容场景和一张与 DSH 各包一一对应的映射表。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。