试试Dirge:这个AI编程助手终于不会"失忆"了
每次都要重新解释项目?Dirge 可能是你一直在找的 AI 编程助手
说实话,大部分 AI 编程工具就像雇了个临时工。每次对话结束,它就把你项目的情况忘得一干二净。下次再用,你得从头解释代码结构、你的编码习惯、各种约定。反复几次,真的很累。
Dirge 就是来解决这个问题的。这是一个用 Rust 原生开发的编程 agent,它的核心思路很简单:上下文值得被记住。
轻量到让人惊讶
第一次看到 Dirge 的资源占用,我有点意外。
空闲状态只占 ~8MB 内存,二进制文件 36MB,不依赖任何运行时。这跟那些基于 Electron 的替代品形成鲜明对比——那些家伙可能在你还没开始写代码之前,就已经吃掉好几 GB 内存了。
AI 编程工具不应该是个娇气的大爷。它应该安静、高效、随叫随到,而不是一打开终端就开始吃机器性能。
界面是纯终端的 TUI,用 ratatui 和 crossterm 构建。全程键盘操作,有实时 token 流输出、分支会话树追踪对话历史,还有可配置的信息面板。这就是开发者真正想要的那种界面——快、信息密度高、告别鼠标。
一个不会轻易崩溃的 Agent
Dirge 的 agent 循环很有意思。它不是简单的"发 prompt、收回复、执行工具"就完事了。
现实情况是这样的:模型会幻觉出根本不存在的工具调用,会输出格式错误的 JSON,会理解错文件路径。普通的 agent 在这种情况下要么直接崩溃,要么陷入死循环,要么输出一些你还得手动收拾的垃圾。
Dirge 怎么应对?它会修复格式错误的工具调用,用 tree-sitter 在写入磁盘之前验证每一个文件修改,还有防止死循环的熔断机制。
最厉害的是:当模型一直失败,Dirge 不会直接摆烂。它会注入一个恢复检查点,猜测模型原本想做什么(是调用某个工具,还是操作某个路径)。如果还不行,就自动升级到更强的模型。这就好比一个是撞墙的傻子,一个是真能把事情做成的聪明人。
持久化的记忆
"Dirge"这个名字很贴切。挽歌,本来是引导亡者安息的歌。在 AI agent 的语境里,Dirge 做的就是类似的事——确保项目的上下文不会走丢。
它实现了一套两级记忆系统。热层把常用的事实直接内联,模型能立刻访问。其他的放进可搜索的面包屑索引。还有一个全局跨项目层,存放你的个人偏好——代码格式化风格、喜欢的模式、讨厌的写法。这些跨会话、跨项目永久保存。
两次会话之间,后处理编排器会提取学习成果,整理记忆和技能。比如你花了 20 分钟用某个模式调试 Rust 生命周期问题,Dirge 会记住。下次遇到类似情况,它就有上下文了。
长周期会话使用持久化、可增量刷新的检查点,绑定到稳定身份。恢复压缩后的会话能还原运行状态,而不是一个过时的快照。如果你有过这种经历——一周前的编码任务,想继续做的时候花了 30 分钟重新熟悉上下文——你就能理解这个功能有多重要。
灵活的模型路由
Dirge 不绑死在一个 AI 提供商上。它支持 OpenAI、Anthropic、DeepSeek、Gemini、Ollama、OpenRouter、GLM,还有任何兼容 OpenAI 协议的端点。默认用 OpenRouter,开箱即用。
但更有意思的是:你可以把不同任务路由到不同模型。主循环、代码审查、问题升级、总结、子 agent,这些角色可以分别指向不同的模型。想用便宜快速的模型处理日常改动,复杂重构交给更强的模型?Dirge 让这种配置变得很简单。
安全方面不含糊
Dirge 有统一权限引擎,一个策略决策点,四种模式,基于操作的规则,还有会话白名单。/why 命令能追溯是哪个策略做出了决定、为什么。不存在黑箱。
对于偏执狂(你应该偏执),有沙盒模式。用 bubblewrap 构建命名空间 jail 隔离运行 bash 命令,或者用硬件隔离的 libkrun microVM。在权限引擎之上再加一层深度防御。
认真的开发工具
除了核心 agent 循环,Dirge 还塞进了认真开发者需要的功能:
阶段性规划工作流把探索→计划→实现→审查拆成上下文隔离的阶段。只读 agent 先梳理代码结构,第二个 agent 起草计划,然后禁写的审查 agent 执行代码,把漏洞反馈给主循环重试。相当于把架构评审内置到工作流里了。
规格驱动工作流用 SQLite 行记录变更(而不是脆弱的 markdown 文件)。提案、需求变更、带真实状态的待办清单——活跃的变更始终注入上下文,存档形成持久记忆。
代码智能方面,tree-sitter 集成在工具输出里直接展示 10+ 种语言的 LSP 诊断信息,让 agent 能同一轮次修复编译错误。不用再经历"试这个修复...编译失败...再试一次"这种循环。
需要调试?Dirge 内置了 Debug Adapter Protocol 客户端,可以驱动真实调试器——设断点、单步执行、检查栈和变量——直接在 agent 循环里完成。
可扩展设计
Janet 插件系统能钩住完整生命周期:拦截工具调用、改写 prompt、注册命令。也支持按需加载 Claude 兼容技能。MCP/ACP 支持意味着 Dirge 可以既是工具提供者也是消费者——比如让 Claude Code 把实现任务交给 Dirge,自己做审查。
最后
Dirge 不是想做最花哨的 AI 编程工具。它想做最可靠的。
记忆持久化、错误恢复、token 高效的 I/O(文件尽可能以骨架形式读取,超大输出Relay到磁盘并附带摘要)、多提供商灵活性——这些加在一起,是一个能真正长期陪你工作的 agent,而不是每次会话都从零开始。
对于受够了从零解释的开发者、需要稳定 AI 辅助又不想被供应商绑定的创业团队、或者被那种"关键时刻忘光光"的 AI 伤害过的任何人——Dirge 值得试试。
一行命令从 crates.io 安装(cargo install dirge-agent),设置一个 API key,开工。上手就这么简单。
挽歌是让亡者不被遗忘的歌。Dirge,这个编程 agent,是一个确保你的 AI 从不忘记你们共同构建的一切的系统。