Dao Code
面向 DeepSeek V4 的终端编程助手,以前缀缓存和自校正降低长任务成本。
这个 Agent 能做什么,适合哪些场景?
Dao Code 是一个以 `dao` 命令运行的 TypeScript 终端编程助手,面向 DeepSeek V4 的 1M 上下文。它通过 Ink TUI 接收任务,在 agent loop 中流式调用模型,并在模型请求工具时经过审批后读写代码、执行命令和继续迭代。项目提供 24 个工具,以及持久记忆、反思层、自动压缩、会话恢复、影子 Git 检查点和 Definition-of-Done 验证等长任务机制。它可通过独立二进制、npm 或源码安装,但运行中的模型调用依赖 DeepSeek API;MCP、Skills、Hooks 和部分配置格式与 Claude Code 兼容。
用户在交互式 dao 或一次性 dao "任务" 中提交需求后,src/agent/loop.ts 调用 streamChat,流式展示推理和回答。模型可调用 read_file、list_dir、grep_files、file_search 读取和搜索项目,使用 write_file、edit_file、multi_edit、notebook_edit 修改文件,并通过 exec_shell 运行前台或后台命令;写入和执行默认需经过审批门。它还能用 todo_write 维护任务表,用 verify_done 执行 /dod 指定的验收命令,用 memory_read 和 memory_write 检索或记录跨会话信息,并用 agent、task_send、message_parent 调度子代理。会话事件写入 .dao/sessions/,大工具输出可溢写到 .dao/spill/,/restore 则基于独立的 .dao/shadow.git 快照回退最近一轮改动。
- 使用 DeepSeek API 的开发者,想在本地终端让助手阅读仓库、修改代码并运行测试。
- 维护大型代码库的工程师,需要在长任务中使用待办清单、自动压缩和 `/dod` 验收命令减少任务漂移。
- 需要严格控制写文件和执行 Shell 操作的团队,可在 `.dao/settings.json` 中配置 `allow`、`ask`、`deny` 权限规则。
- 已有 Claude Code 的 `settings.json`、`SKILL.md`、`hooks.json` 或 `mcp.json` 配置,希望迁移到 DeepSeek 驱动终端工作流的用户。
- 要运行多项独立排查或实现工作的开发者,可通过 `tasks[]`、后台任务或 Git worktree 隔离的子代理执行。
这个 Agent 有哪些优点和局限?
- 围绕 DeepSeek 前缀缓存设计字节稳定前缀,并让反思和记忆在复用主缓存的 fork 中运行;`/cost` 可直接展示命中率与开销。
- 默认审批门、分层 `allow/ask/deny` 规则和复合命令分段检查,为文件修改与 Shell 执行提供可配置控制。
- 长任务机制较完整:会话日志恢复、独立影子 Git 快照、待办重注入、卡住检测和可执行的完成条件验证均有明确入口。
- 支持 Skills、MCP、Hooks、自定义子代理与斜杠命令,并声明可复用 Claude Code 的相关配置格式。
- 核心模型路径明确围绕 DeepSeek V4,文档没有给出 OpenAI、Anthropic 或其他模型提供商的适配方式。
- 实际编码能力、联网模型调用和初始配置都依赖 DeepSeek API key 与网络连接。
- 自动批准模式 `--yolo` 或 `/yolo` 会跳过批准;虽然 deny 规则仍生效,采用前仍需谨慎配置权限。
- README 展示的成本与评测结果基于特定的 7 个真实开源修复任务和当时价格,不能直接视为所有仓库或任务的成本保证。
如何安装或部署这个 Agent?
可直接下载 Releases 中对应平台的二进制,或运行 curl -fsSL https://raw.githubusercontent.com/tigicion/dao-code/master/install.sh | sh。使用 npm 时需要 Node.js 20 或更高版本:npx dao-code 可试用,npm i -g dao-code 后使用 dao。也可从源码执行 git clone https://github.com/tigicion/dao-code.git && cd dao-code,然后运行 npm install && npm run build && npm link。首次执行 dao 时按提示输入 DeepSeek API key;配置会保存到 ~/.dao/config.json。
如何使用这个 Agent?
启动交互式会话:dao。带 API key 的一次性调用示例:dao --api-key sk-xxx --provider deepseek "tell me a joke"。在会话中可用 /init 生成 DAO.md,/mode 切换权限模式,/cost 查看 token 与缓存命中率,/compact 压缩上下文;dao -c 可恢复上次异常中断的会话。若要定义完成条件,执行 /dod <command>,再由 verify_done 运行该命令确认退出码为 0。
这个 Agent 与同类方案有什么区别?
Dao Code 的交互和扩展配置以 Claude Code 为参照,但模型目标是 DeepSeek V4。它声明可直接使用 Claude Code 格式的 settings.json、SKILL.md、hooks.json 与 mcp.json,并自动映射部分工具名;同时在所列 7 条任务 token 轨迹的重新计价中,报告其 DeepSeek 成本约为 Claude Opus 4.8 的 1/30、Claude Sonnet 4.6 的 1/18。