From 2605f6de25387d53ade4b0907a4f9b7ffbc1bb71 Mon Sep 17 00:00:00 2001 From: vegard Date: Thu, 19 Mar 2026 07:41:26 +0000 Subject: [PATCH] synops-agent: motivasjon (erstatter claude -p) + lib/CLI/API-arkitektur MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dokumentert hvorfor Claude Code ikke egner seg som tjeneste (treg oppstart, høyt minne, ingen API, låst til Anthropic). synops-agent som tre bruksmåter: lib (embed i maskinrommet), CLI (erstatter Claude Code), API (HTTP-endepunkt for appen). Konkret brukstabell for chat, orkestrering, bakgrunnsjobber og bruker-chat. Co-Authored-By: Claude Opus 4.6 (1M context) --- docs/proposals/agent_harness.md | 61 +++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 10 deletions(-) diff --git a/docs/proposals/agent_harness.md b/docs/proposals/agent_harness.md index 2deff8e..f60fca0 100644 --- a/docs/proposals/agent_harness.md +++ b/docs/proposals/agent_harness.md @@ -10,6 +10,40 @@ Claude Code brukes til å *utvikle og teste* synops-agent. Målet er at synops-agent kan ta over hele arbeidsflyten: interaktiv utvikling, autonome oppgaver, daemon-drift. Med hvilken som helst modell. +### Hvorfor ikke Claude Code som tjeneste? + +Vi har vurdert å bruke Claude Code direkte for AI-tjenester i Synops +(chat-svar, orkestrering, bakgrunnsjobber). Det er ikke egnet: + +- **Lang instansieringstid** — sekunder til oppstart per invokasjon +- **Høy minnebruk** — hundrevis av MB per instans, skalerer ikke +- **Ingen API** — kun terminal-grensesnitt, ikke programmerbart +- **Låst til Anthropic** — kan ikke bruke billigere/raskere modeller +- **Ikke designet for embedding** — ment som interaktivt utviklerverktøy + +synops-agent løser alle disse: + +- **Rask oppstart** — Rust binary, millisekunder +- **Lavt minnebruk** — Rust, ingen runtime overhead +- **API og CLI** — lib (embed i maskinrommet) + CLI (standalone) +- **Modell-agnostisk** — velg riktig modell per oppgave +- **Designet for embedding** — kan kjøre som HTTP-endepunkt, + jobbkø-worker, eller daemon + +### Bruksområder i Synops + +synops-agent erstatter dagens `claude -p` invokasjon i maskinrommet +og åpner for nye muligheter: + +| Bruk | I dag | Med synops-agent | +|------|-------|------------------| +| Chat-svar (@bot) | `claude -p` (tregt, dyrt) | Inline, rask, valgfri modell | +| Orkestrering | Shell-scripts + `claude -p` | Native agent-loop | +| Transkripsjons-oppsummering | `synops-summarize` → LiteLLM | Agent med kontekst | +| Kode-generering | Claude Code (manuelt) | Autonom med tasklist | +| Bakgrunnsjobber | Jobbkø → CLI-verktøy | Agent som jobbkø-worker | +| Bruker-chat i appen | Ikke mulig (for tregt) | Sub-sekund responstid | + ## Hva Claude Code gjør bra (og vi beholder) - Tool-loop (prompt → tool_calls → execute → loop) @@ -130,18 +164,25 @@ Agenten er en førsteklasses borger i Synops: ## Arkitektur ``` -synops-agent -├── core/ — agent-loop, tool dispatch, kontekst -├── providers/ — API-adaptere (anthropic, openai, gemini, ollama) -├── tools/ — verktøy-implementasjoner -├── tasklist/ — parser og kjører markdown-checklister -├── daemon/ — bakgrunnsprosess, filovervåking, intervall -├── recovery/ — checkpoint, gjenoppretting, kontekstkomprimering -└── synops/ — grafintegrasjon via synops-common +synops-agent (workspace crate) +├── synops-agent-core/ — lib: agent-loop, tool dispatch, kontekst +│ ├── providers/ — API-adaptere (anthropic, openai, gemini, ollama) +│ ├── tools/ — verktøy-implementasjoner +│ ├── context/ — kontekstvindu, ACC, oppsummering +│ ├── tasklist/ — parser og kjører markdown-checklister +│ └── budget/ — token-regnskap, kostnadsovervåking +├── synops-agent-cli/ — CLI-binary: interaktiv + batch + daemon +└── synops-agent-api/ — HTTP-server: embed i maskinrommet eller standalone ``` -Bygget som lib + CLI. Lib kan embeddes i maskinrommet for -tettere integrasjon uten prosess-overhead. +Tre bruksmåter: +1. **Lib** (`synops-agent-core`) — embed direkte i maskinrommet. + Ingen prosess-overhead. Chat-svar på millisekunder. +2. **CLI** (`synops-agent`) — interaktiv terminal, tasklist-runner, + daemon-modus. Erstatter Claude Code for utvikling. +3. **API** (`synops-agent-api`) — HTTP-endepunkt for appen. + Maskinrommet kaller det i stedet for `claude -p`. + Kan også kjøres standalone som mikrotjeneste. ## API-abstraksjon