Jedan binary, heksagonalni dizajn, nula SDK zavisnosti. Evo kako sve ovo drži vodu.
Ports-and-adapters. Svaki sloj zavisi samo od interfejsa ispod. Ne pričamo o spaghetti kodu.
Svaka korisnička poruka prolazi kroz isti ciklus. Engine ne zna ništa o provajderu — vidi samo događaje.
Provajderi se registruju preko init() + llm.Register(). Engine zove llm.Resolve("provider/model") i dobija Provider interfejs. Ništa komplikovano, ako čitaš.
net/http, bufio, encoding/json. Bez SDK zavisnosti. Gemini, Alibaba i LiteLLM koriste WithCompat() koji isključi OpenAI specifične štoseve. Klin bez čekića.Svaki poziv alata prolazi kroz registar. Pisanje fajlova traži potvrdu korisnika. Undo vraća poslednje pisanje. Bez „pa ja sam mislio“.
Orkestrator delegira specijalistima. Spoke vraćaju strukturirani JSON. Više delegacija ide paralelno. Kao tim koji radi, ne kao tim na sastanku.
Agent referencira MCP server po imenu. Menadžer ga pokrene, rukuje se, otkrije alate i name-spejsuje ih. Bez ručne pelene.
Kad response_schema postoji u frontmatter-u, engine forsira validan JSON preko nativnog mehanizma svakog provajdera. Bez parsiranja regex-om kao u 2018-oj.
| Karakteristika | AgentCTL | Cursor | GitHub Copilot | Aider | Continue |
|---|---|---|---|---|---|
| Interfejs | CLI / TUI | IDE (VS Code fork) | IDE plugin | CLI | IDE plugin |
| Definicija agenta | Markdown fajlovi | Ugrađeno | Ugrađeno | Config flagovi | JSON config |
| Više provajdera | ✓ 6 provajdera | ~ 3 | ✗ samo OpenAI | ✓ Mnogo | ✓ Mnogo |
| Lokalni modeli | ✓ Ollama | ~ Ograničeno | ✗ | ✓ | ✓ |
| MCP podrška | ✓ Stdio | ✗ | ✗ | ✗ | ✓ |
| Sub-agenti | ✓ Hub-and-spoke | ✗ | ✗ | ✗ | ✗ |
| Strukturirani izlaz | ✓ JSON schema | ✗ | ✗ | ✗ | ✗ |
| Potvrda za pisanje | ✓ Uvek | ✓ Diff prikaz | ~ Auto | ✓ | ✓ |
| Verzionisanje | ✓ Git ugrađen | ~ IDE git | ~ IDE git | ✓ Auto-commit | ✗ |
| Veličina binary-a | 7.8 MB | ~500 MB | Plugin | pip install | Plugin |
| Zavisnosti | ✓ Nula | Electron | VS Code | Python | VS Code |
| Cena | Besplatno (+ API) | $20/mes | $10/mes | Besplatno (+ API) | Besplatno (+ API) |
Bez specifičnog provajderskog koda u engine-u ili alatima. Menjaj backend bez diranja jezgra. Onako kako treba.
Bez SDK zavisnosti. Svaki HTTP poziv je obični net/http. Lako se debaguje, lako se forka.
macOS Keychain ili Linux libsecret. Nikad u config fajlovima. Nikad u plain tekstu. Nikad u javnom git logu.
Agenti, veštine, alati, MCP serveri — sve definisano u Markdownu sa YAML frontmatter-om. Bez UI klikača.
K8s, Terraform, Helm preko shell-a — bez client-go, bez verzionog vezivanja, binary ostaje mali.
ConfigSource, Secrets, StateStore interfejsi. Menjaš implementaciju bez diranja engine-a.