Dao Code
面向 DeepSeek V4 的终端编程助手,以前缀缓存和自校正降低长任务成本。
按维度查看评分与理由
证据显示有权限门、审批、敏感目标保护、危险命令拦截、秘密扫描、SSRF防护、目录信任、审计日志等安全机制,但部分机制(如秘密扫描、SSRF)仅在SECURITY.md中声明,未在代码中验证。数据流透明度不足:未详细说明数据如何传输、存储和删除。依赖安全:npm audit警告均来自开发工具链,但未提供运行时依赖的漏洞扫描结果。外部影响:有审批门和沙箱选项,但默认未启用沙箱。回滚:有shadow-git检查点,但未说明恢复的可靠性。来源归属:作者为tigicion,但未验证身份。
自一致性:README、SECURITY.md、package.json等文件描述一致,但版本号不一致(README说v0.3.0,package.json为0.4.17)。依赖可用性:依赖列表完整,但未验证所有依赖的可用性。失败消息:未提供错误处理或用户提示的示例。
受众和场景:面向开发者,支持多种安装方式和使用模式。能力边界:明确列出工具和权限模式,但未说明所有限制。触发精度:命令和配置描述清晰,但未提供详细示例。环境适配:支持多平台,但未说明Windows下的特殊注意事项。
信息架构:README结构清晰,但缺少详细的API文档。安装说明:提供了多种安装方式,但未验证。命名稳定性:命令名`dao`稳定,但版本号不一致。示例和FAQ:有示例,但无FAQ。已知限制:未明确列出。许可证:MIT,但版权年份为2026。版本和变更日志:有CHANGELOG.md,但未提供内容。维护责任:未明确说明维护者或贡献指南。
输出可用性:提供了丰富的功能,但未验证实际输出。边际价值:相比Claude Code有成本优势,但未独立验证。成本效益:提供了成本数据,但未独立验证。
声明可追溯:成本数据声称可追溯至evals/runs,但未提供具体日志。跨来源佐证:未提供第三方验证。事实与推断分离:部分声明(如成本对比)未明确区分事实和推断。
- 版本号不一致:README声称v0.3.0,但package.json为0.4.17,可能造成混淆。
- 安全机制(如秘密扫描、SSRF防护)仅在SECURITY.md中声明,未在代码中验证,实际效果未知。
- 依赖安全:npm audit警告均来自开发工具链,但未提供运行时依赖的漏洞扫描结果。
- 沙箱(DAO_SANDBOX)默认未启用,用户需自行开启以增强安全性。
- 成本数据声称可追溯,但未提供具体日志,无法独立验证。
这个 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。
常见问题
需要什么凭据?
dao 可按引导保存,或在命令中使用 --api-key 并指定 --provider deepseek。它会未经允许修改项目吗?
default、acceptEdits、auto、plan 模式及 allow/ask/deny 规则调整。--yolo 会自动批准操作。长任务中断后如何恢复?
.dao/sessions/<id>/events.jsonl 和状态快照;异常退出后可用 dao -c 恢复最近会话。/restore 可从 .dao/shadow.git 回退最近一轮变更,不会改写项目原有 .git 历史。