huangjunsen0406 /
mini-dsh
Node.js,无构建步骤 文档:README / ARCHITECTURE / LEARNING 各有中英两份 mini-dsh 是按 DSH 概念手写的最小 Agent 运行时,建在官方的 @deepseek-ai/cordis 上。src 目录 22 个文件、2000 多行,一个下午能读完。 和其他「手写 AI Agent」的区别 网上多数手写 agent 教程,最后落在一个 while 循环加几个工具调用上。跑得起来,但它没回答…
huangjunsen0406 /
Node.js,无构建步骤 文档:README / ARCHITECTURE / LEARNING 各有中英两份 mini-dsh 是按 DSH 概念手写的最小 Agent 运行时,建在官方的 @deepseek-ai/cordis 上。src 目录 22 个文件、2000 多行,一个下午能读完。 和其他「手写 AI Agent」的区别 网上多数手写 agent 教程,最后落在一个 while 循环加几个工具调用上。跑得起来,但它没回答…
Node.js,无构建步骤 文档:README / ARCHITECTURE / LEARNING 各有中英两份 mini-dsh 是按 DSH 概念手写的最小 Agent 运行时,建在官方的 @deepseek-ai/cordis 上。src 目录 22 个文件、2000 多行,一个下午能读完。 和其他「手写 AI Agent」的区别 网上多数手写 agent 教程,最后落在一个 while 循环加几个工具调用上。跑得起来,但它没回答真实 harness 里最难的那个问题:这些东西是怎么被组织起来的。 mini-dsh 保留的是架构,不是循环: Cordis Context / Plugin / Service —— 插件容器与依赖注入 Session Event Log -> deriveMessages() —— 历史是从事件日志推导出来的,不是往数组里 push Tool Registry -> register / schemas / execute LLM Provider Adapter Agent Loop -> model -> tool -> model -> answer Agent Loop 不知道 Bash 是什么,也不知道 Context7 是什么,它只认识 ctx.tools。Agent 自己只是薄薄一层包装:sessionId + model + loop。这是整个项目里最值得学的一点。 为了证明「Everything is a Plugin」不是口号,它接了官方的 @deepseek-ai/dsh-mcp-client + Context7:MCP 工具经由同一个 ctx.tools.register 进来,Agent Loop 一行不改。Context7 连不上时 CLI 照常启动,只是少了那几个工具。 明确写了「没做什么」 README 单开一节列出故意省略的东西:maxSteps、token/成本预算、compaction、无进展检测、stop hooks、steering 队列、完整权限系统、TUI/Web UI,并说明为什么理解 Agent Harness 的核心不需要它们。 也包括那个后果:循环唯一的正常终止条件是模型不再请求工具,所以理论上坏的模型或工具链可以一直转下去。这个项目是拿来学的,不要当生产运行时用。 说清楚边界,比假装完整有用。 想自己写一遍 不建议先通读仓库。先扫一遍 ARCHITECTURE.md 建立整体图景,然后新开一个空项目,跟着 LEARNING.md 一个里程碑一个里程碑自己写下来。 test/core.test.js 当行为文档用,每个 runtime 配一个例子。其中一个用例是 agent 连续调用 20 次工具才结束,用来证明循环里确实没有步数上限。 截图 写文件和执行 bash 前会先问 [Y/n];agent 运行时按 Esc 取消当前这一轮。
Discuss this product