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
- 專案
- 專案
- 專案