dirge-code/dirge

Dynamic Intent Resolution Grounding Engine

解决的问题

Dirge 是一个高性能、轻量级的编码代理,旨在快速且轻量运行,同时即使使用较便宜或较弱的 LLM 也能保持高可靠性。它通过实现一个健壮的代理循环和分层内存系统,解决了代理编辑器常见的问题——如高内存消耗、上下文窗口退化以及会话连续性丢失。

工作原理

Dirge 使用原生 Rust 编写,以实现速度和低资源占用。它采用「健壮的代理循环」来修复格式错误的工具调用,并在写入磁盘前通过 tree-sitter 验证写入内容。它不依赖向量嵌入,而是使用内联 grep 和 SQLite FTS5 进行搜索,认为这对长期对话记忆更有效。

为管理上下文,它使用有界预算(默认 250k 令牌)和两级内存系统:重要条目保留在内联,其他条目则降级到面包屑索引。会话结束后,一个后处理协调器会将学习成果提取到持久化的项目记忆和技能中。它还集成了 LSP 诊断和 tree-sitter 以提供代码智能,并可作为 MCP 服务器暴露,供其他代理委派任务。

适用人群

希望获得一个快速、原生的编码代理,支持多种 LLM 提供商(包括通过 Ollama 使用本地模型),并偏好低开销、非 JS 基础工具的开发者。

主要亮点

  • 极致高效:原生 Rust 二进制文件,内存占用极低(约 8–15MB),远低于基于 JS 的代理。
  • 健壮性:使用 tree-sitter 验证代码写入,并为无进展的循环实现断路器机制。
  • uma 权限引擎:单一策略决策点,配合 /why 命令可追溯授权决策。
  • 多提供者路由:可在同一会话中将不同角色(主循环、评审、摘要)路由到不同模型。
  • 项目记忆:持久化的项目级记忆和内置的面向代理的看板式问题板。
  • 多模态支持:支持剪贴板图像粘贴,适用于视觉模型。
  • Janet 插件系统:通过 Janet 插件和 Claude 兼容技能在运行时可扩展。

相关

  • 项目
  • Dispatch
  • 项目
  • 项目
  • 项目