Idé for fremtidig implementering: Claude Code-lignende agent-loop som kan bruke Grok, Gemini, OpenRouter eller lokale modeller. Rust CLI med Read/Edit/Bash/Grep/Glob-verktøy og LiteLLM-integrasjon. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Proposal: synops-agent — modell-agnostisk agent-harness i Rust
Problemstilling
Claude Code er kraftig, men bundet til Anthropic-modeller. Vi ønsker samme type agent-loop (tool use → execute → loop) med valgfri modell (Grok, Gemini, OpenRouter, lokale modeller via Ollama).
Konsept
Et Rust CLI-verktøy som implementerer en agent-loop med verktøy. Bruker LiteLLM (allerede i stacken) for API-oversettelse, eller snakker direkte med leverandør-APIer.
Arkitektur
synops-agent --model grok-3 --prompt "fiks buggen i auth.ts"
│
├── Sender prompt + tool-definisjoner til LLM
├── LLM svarer med tool_calls
├── Agent kjører verktøy (Read, Edit, Bash, etc.)
├── Sender verktøy-resultater tilbake
└── Loop til LLM svarer uten tool_calls
Verktøy (subset av Claude Code)
| Verktøy | Funksjon |
|---|---|
read_file |
Les fil (med offset/limit) |
write_file |
Skriv fil |
edit_file |
Finn-og-erstatt i fil |
bash |
Kjør shell-kommando |
grep |
Søk i filer (ripgrep) |
glob |
Finn filer etter mønster |
API-abstraksjon
Alle store LLM-APIer støtter function calling / tool use, men med ulike formater:
- OpenAI-kompatibelt (Grok, OpenRouter, lokale):
tools[]medfunctionschema - Gemini:
functionDeclarationsitools[] - Anthropic:
tools[]medinput_schema
LiteLLM oversetter mellom disse, men vi kan også gjøre det direkte i Rust for lavere latens og færre avhengigheter.
Integrasjon med Synops
- Maskinrommet kan spawne
synops-agentsom en jobb - Deler verktøykasse med andre CLI-verktøy (synops-common)
- Kan bruke
ai_job_routingfor å velge modell per kontekst - Logger i
ai_usage_logsom alle andre AI-kall - Kan erstatte
synops-respondfor chat-svar med valgfri modell
Differensiatorer vs Claude Code
- Modell-agnostisk (hele poenget)
- Kan kjøres headless / i jobbkø (ikke interaktiv)
- Integrert med Synops sin graf (kan bruke synops-search, synops-node etc.)
- Enklere verktøysett (ikke IDE-integrasjon, bare fil+shell)
- Rust = rask oppstart, lav ressursbruk
Åpne spørsmål
- Streaming vs batch? (Streaming gir bedre UX i chat, batch er enklere)
- Maks iterasjoner / kostnadsstopp?
- Kontekstvindu-håndtering for store kodebaser?
- Skal det være en lib (synops-agent-core) + CLI (synops-agent)?
Prioritet
Ikke hasteoppgave. Bygges når vi har behov for multi-modell agent-loop, f.eks. for billigere batch-jobber (Gemini Flash) eller spesialiserte modeller (Grok for sanntidsinformasjon).