Dirge: AI асистентът по програмиране, който не забравя нищо
Dirge: AI асистентът, който не забравя нищо
Познавам доста хора, дето са се отказали от AI coding agents. Не защото не работят, а защото всеки път се налага да започват от нулата. Сядаш, обясняваш архитектурата на проекта, форматирането, конвенциите — и следващата сесия? Пак отначало. Чиста загуба на време.
Е, Dirge решава точно този проблем.
Направен в Rust, направен да бъде бърз
Първото нещо, дето ще забележиш, е колко малко ресурси му трябват. Само 8MB RAM на idle, 36MB binary и нито една runtime зависимост. Сравни това с Electron базираните алтернативи, дето гризат по няколко гигабайта преди още да си написал ред код.
За мен това е важно, защото AI инструментите не бива да са като първокласни диви. Трябва да са тихи, ефективни и готови за работа — не гладни зверове, дето убиват перформанса на машината ти.
TUI-то е терминално и се базира на ratatui и crossterm. Keyboard-driven, с live token streaming, branching session tree за историята и конфигурируеми информационни панели. Точно интерфейсът, който разработчиците искаме: бърз, пътен с информация и без мишка.
Агент, който не се предава
Тук Dirge става интересен. Agent loop-ът не е просто "изпрати промпт, получи отговор, изпълни команди".
В реалността моделите халюцинират tool calls. Пратят malformed JSON. Разбират погрешно пътища. Стандартните агенти се чупят на тези места — или крашват, или влизат в безкрайни лупове, или ти дават боклук, дето после трябва да чистиш ръчно.
Dirge ремонтира malformed tool calls. Валидира всеки file write през tree-sitter преди да го запише на диска. Има circuit breakers за repeat loops.
Но най-хубавото? Когато моделът продължава да се проваля, Dirge не се предава. Инжектира recovery checkpoint, предполага какво е имал предвид (коя команда или път), и ако това не стане — автоматично преминава към по-силен модел. Това е разликата между агент, дето се блъска в стената, и такъв, дето всъщност свършва работата.
Памет, която остава
Името "dirge" е подходящо. Ако не знаеш — dirge е песен, петана за мъртвите, за да не се загубят. В контекста на AI агенти, Dirge прави същото с контекста на твоя проект.
Има two-tier memory system. Hot tier-ът държи фактите inline, където моделът има незабавен достъп. Останалото отива в searchable breadcrumb index. И има глобален cross-project tier за личните ти предпочитания — как обичаш да форматираш кода, любимите си patterns, нещата, дето те дразнят. Това се запазва между сесии и между проекти.
Между сесиите, post-session orchestrator извлича поуки и курира паметта и уменията. Ако си прекарал 20 минути в дебъгване на сложен Rust lifetime issue с конкретен pattern, Dirge го помни. Следващия път като удариш нещо подобно, имаш контекст.
Дългите сесии използват durable, incrementally-refreshed checkpoints, закачени към стабилна identity. Resume-вайки compacted session, възстановяваш live state-а — не застоял snapshot. Ако си опитвал да подновиш седмична задача и си прекарвал 30 минути в re-orientation, ще разбереш защо това е важно.
Smart Routing и поддръжка на Multiple Providers
Dirge не те заключва към един AI provider. Поддържа OpenAI, Anthropic, DeepSeek, Gemini, Ollama, OpenRouter, GLM — плюс всеки OpenAI-съвместим endpoint. OpenRouter е default-а, така че работи out of the box за повечето потребители.
Но ето къде става интересно: можеш да рутираш различни задачи към различни модели. Main loop, review, escalation, summarization и subagent ролите могат да сочат към различни модели. Искаш евтин и бърз модел за рутинни едити, но по-мощен за complex refactoring? С Dirge това е тривиална конфигурация.
Сигурност без компромиси
Dirge взима сигурността сериозно. Unified permission engine с един Policy Decision Point, четири режима, operation-based правила и session allowlists. Командата /why проследява точно коя политика е взела решението и защо. Без black boxes.
За параноиците (а трябва да си параноик) има sandbox mode. Bash командите се пускат изолирано с bubblewrap за namespaced jail, или можеш да ползваш hardware-изолирани libkrun microVMs. Defense in depth отгоре върху permission engine-а.
Направен за сериозна разработка
Освен core agent loop-а, Dirge включва неща, дето сериозните разработчиците имат нужда:
Phased planning workflow-ът минава през explore → plan → implement → review като контекстно-изолирани фази. Read-only агент мапва кода, втори чертае плана, после write-disabled reviewer пуска кода и връща пропуските за bounded retry. Като да имаш architectural review вграден в работния процес.
Spec-driven workflow-ът проследява промените като SQLite rows (не чупливи markdown файлове). Proposals, requirement deltas и task checklists с реален status — active change-ът винаги се инжектира в контекста, а архивирането формира durable memory.
Code intelligence идва от tree-sitter integration, с inline LSP diagnostics за 10+ езика, показани директно в tool output-а, така че агентът оправя compile errors в същия ред. Край на "опитай това... build fails... пак опитай" лупите.
А ако ти трябва дебъгване? Dirge има вграден Debug Adapter Protocol client, който управлява реални дебъгери — сетва breakpoints, стъпва през кода, инспектира stacks и променливи — директно от agent loop-а.
Extensible by Design
Janet plugin system-ът хваща целия lifecycle: intercept tools, rewrite prompts, register commands. Има и Claude-съвместими skills, load-вани on demand. И поддръжка за MCP/ACP — Dirge може да бъде както tool provider, така и consumer. Можеш да имаш Claude Code, дето делегира имплементационни задачи на Dirge и ги review-ва.
Накратко
Dirge не се опитва да е най-флашният AI coding tool. Опитва се да е най-надеждният. Memory persistence-ът, error recovery-ът, token-efficient I/O-то (файловете се четат като skeletons когато е възможно, oversized outputs се relay-ват на диска със summaries), multi-provider гъвкавостта — всичко това се сумира в агент, дето всъщност работи с теб с времето вместо да reset-ва всеки път.
За разработчици, дето са се уморили да започват отначало. За стартъпи, дето имат нужда от консистентна AI помощ без vendor lock-in. За всеки, дето е бил burnt от AI, дето е забравил всичко важно — Dirge си струва да се разгледа.
Инсталира се с една линия от crates.io (cargo install dirge-agent), сложи API key-а и започни да кодиш. Просто е.
Dirge пее за мъртвите, за да не се загубят. Dirge coding agent-ът пее за твоя контекст, за да не се загуби нищо от това, което сте изградили заедно.