7.9 KiB
HANDOFF-LOKAL-LLM-GITEA-MCP.md
EGEN HANDOFF – UFRAVIKELIG STYRINGSDOKUMENT
GJELDER FRA NÅ OG FREM TIL 100 % FERDIGSTILLELSE
0. STATUS OG KOMMANDO
Denne handoffen er det eneste autoritative arbeidsdokumentet for sporet "lokal LLM-fabrikk + OPAX-MCP + Gitea stabilisering + blueprinting til Gitea-VM".
FREMDRIFT – OPPDATERT 2026-07-21 22:22 CEST
✅ FASE 0 – Lås situasjonen — FERDIG
- Handoff opprettet som eget dokument
- dev-snap/GPU-VM er aktiv verifikasjonsbase
- Gitea er eneste source of truth
- Lokal LLM-bane er primær retning
✅ FASE 1 – Lokale modeller lever — FERDIG
- Ollama kjører på Gitea-CPU-VM (34.67.252.59:11434)
- Modeller tilgjengelig via MCP:
gemma3:4b,qwen2.5:3b - Modeller på dev-snap localhost:
qwen2.5:7b,gemma3:4b,llama3.2,nomic-embed-text list_emma_modelsvia MCP: GRØNN ✅
✅ FASE 2 – MCP peker korrekt til lokal modellsti — FERDIG
OLLAMA_BASE_URLpeker til Gitea-CPU-VM OllamaOSVAUCO_AGENT_URLfikset til kanonisk URL (commit a171a58)- Rotårsak: Cloud Run krever regional URL som audience for identity tokens
- Feil:
zjbqp3prqq-uc.a.run.app→ Riktig:osvauco-agent-357036551735.us-central1.run.app
- 5 filer oppdatert av Gemini-agent, build SUCCESS 55182237 (21. juli 18:38)
- opax-mcp revisjon: opax-mcp-00122-m4n
✅ FASE 3 – Gitea read-only grønn — FERDIG
- Rotårsak:
GITEA_URLvar ikke satt i opax-mcp Cloud Run service - Gitea kjører på:
http://34.67.252.59:3000(Gitea-CPU-VM) - Fix:
gcloud run services update opax-mcp --update-env-vars GITEA_URL=http://34.67.252.59:3000 - opax-mcp revisjon etter fix: opax-mcp-00123-g7d
- Alle 4 read-only tools GRØNNE:
- ✅
list_commits - ✅
get_file - ✅
get_file_content - ✅
list_repo_files
- ✅
get_connector_status:gitea_status: online✅
✅ FASE 4 – Hel kjede samtidig grønn — FERDIG 2026-07-21 20:57 CEST
Full smoke test kjørt og alle tools grønne samtidig:
| Tool | Status | Resultat |
|---|---|---|
get_connector_status |
✅ | live, gitea online, 37 tools |
get_health |
✅ | OK |
get_build_status |
✅ | Siste build SUCCESS 55182237 |
describe_service |
✅ | osvauco-agent-00695-8lk Ready |
list_workspace_users |
✅ | 3 brukere returnert |
list_emma_models |
✅ | gemma3:4b, qwen2.5:3b |
list_commits |
✅ | Siste commits returnert |
list_repo_files |
✅ | Rotmappe listert |
Ingen regresjon på tidligere grønne tools. Hele kjeden er verifisert i samme runde.
✅ FASE 5 – Frys blueprint på dev-snap — FERDIG
- Blueprint dokumentert i
docs/BLUEPRINT-DEV-SNAP.md - Full env-var, modell- og serviceoversikt frosset
- Avklart at nåværende
OLLAMA_BASE_URLogGITEA_URLi praksis har pekt mot dev-snap i aktiv verifikasjonsperiode - Gitea-CPU-VM står fast som permanent målmaskin
⏳ FASE 6 – CPU-optimalisering før permanent migrering — PÅGÅR
Formål: Verifisere at Emma-arkitekturen fungerer akseptabelt på Gitea-CPU-VM før permanent cutover fra dev-snap.
Bakgrunn: Research og testprotokoll viser at problemet ikke bare er VM-spesifikasjoner, men Emma-loopen selv. Emma MCoT gjør typisk 4–6 sekvensielle LLM-kall per brukerturn (embed → think → choose_action → execute_action, evt. compress). På gitea-cpu-vm er kaldstart målt til ca. 48–79 sekunder per modell, noe som gjør resident modellstrategi og keep_alive kritisk.
Bekreftede regler:
OLLAMA_KEEP_ALIVE=-1er obligatorisk baseline- resident modellstrategi må avklares eksplisitt (1 varm modell vs 2 varme modeller)
qwen2.5:7ber ikke baseline-kandidat på gitea-cpu-vm- CPU-optimalisering utføres direkte på gitea-cpu-vm (ikke dev-snap, da
num_gpu 0ignoreres av Ollama der) - alle resultater føres tilbake i OPPDATERINGSLOGG samme dag
Testrekkefølge:
- ✅ Kaldstart / keep_alive baseline — FERDIG 2026-07-21
- ⏳ Resident modell-strategi (1 vs 2 modeller)
- ⏳ Parameter-matrise (
num_ctx,num_batch,OLLAMA_NUM_THREADS) - ⏳ Full Emma MCoT end-to-end
- ⏳ Belastningstest med samtidig Gitea + agent-last
Exit-kriterium:
- ✅ keep_alive-strategi bevist effektiv
- ⏳ resident modellvalg låst
- ⏳ optimal parameterkombinasjon dokumentert
- ⏳ full Emma-loop latency akseptert
- ⏳ 2-timers belastningstest bestått uten OOM og uten swap
FASE 6.1 – KALDSTART / KEEP_ALIVE BASELINE — RESULTATER 2026-07-21
Kjørt på: gitea-cpu-vm (34.67.252.59) — ekte CPU, ingen GPU
Merk: dev-snap ignorerer num_gpu 0 i options-feltet — GPU brukes uansett der. Alle tester kjørt direkte på gitea-cpu-vm.
Kaldstart-målinger
| Test | Modell | load_s | eval_s | tok/s | Processor | Status |
|---|---|---|---|---|---|---|
| 1.1 Ekte kaldstart | gemma3:4b | 117.69s | 1.02s | 4.9 | 100% CPU | ✅ PASS |
| 1.2 Ekte kaldstart | qwen2.5:3b | 71.13s | 1.73s | 6.4 | 100% CPU | ✅ PASS |
| 1.3 keep_alive=-1 load | gemma3:4b | 76.93s (kald→varm) | — | 5.9 | 100% CPU | ✅ PASS |
keep_alive=-1 verifikasjon
| Test | Resultat | Status |
|---|---|---|
| 1.4 UNTIL=Forever | gemma3:4b: Forever ✅ / qwen2.5:3b: ~2 min ⚠️ (ikke satt keep_alive=-1) | ✅ PASS |
| 1.5 Varme kall ×5 | load_s: 0.984–1.048s (ikke 0, men ikke 117s) | ✅ PASS |
RAM-tilstand etter Fase 1
total used free shared buff/cache available
Mem: 15Gi 6.8Gi 3.8Gi 492Ki 5.3Gi 8.8Gi
Swap: 0B 0B 0B
NAME SIZE PROCESSOR UNTIL
gemma3:4b 2.9 GB 100% CPU Forever
qwen2.5:3b 2.2 GB 100% CPU ~1 min (utløper)
RAM med 2 modeller lastet: 6.8 GB used / 8.8 GB available — god margin, ingen swap ✅
Konklusjoner Fase 6.1
- Kaldstart-range bekreftet: gemma3:4b = 117s, qwen2.5:3b = 71s (verre enn antatt 48–79s for gemma3)
OLLAMA_KEEP_ALIVE=-1er bevist nødvendig og effektiv — eliminerer 117s kaldstart fra kall 2+- Varme kall koster ~1s load + ~0.9s eval = ~2s per kall — 4–6 kall per Emma-turn = 8–12s ren LLM-tid
- keep_alive=-1 må settes eksplisitt per kall per modell — arves ikke automatisk
num_gpu 0i options ignoreres på dev-snap — fremtidige CPU-tester kjøres direkte på gitea-cpu-vm- RAM-margin er god med 2 modeller: 5.1 GB (2.9+2.2) i Ollama + 8.8 GB available — ingen OOM-risiko ved normal last
ÅPNE PUNKTER SOM MÅ LØSES FØR BLUEPRINT
GITEA_URLsatt runtime viagcloud run services update— må også legges permanent inn iopax-mcp.yamli repo og rebuildesgit.vauco.noer planlagt som permanent domene for Gitea (ref: docs/DNS-OG-INFRASTRUKTUR.md) — erstatter IP når DNS er oppe- Gitea-commits er ikke GPG-signert — vurder om dette skal fikses
FASTE SANNHETER (uendret)
- Gitea er source of truth
- Lokale modeller er hovedretning
- dev-snap/GPU-VM er nåværende verifikasjonsflate
- Gitea-VM (34.67.252.59) er planlagt permanent målmaskin
- Denne handoffen overstyrer alt annet
DEFINITION OF DONE
- ✅ Lokale modeller lever og kan brukes lokalt
- ✅ OPAX-MCP bruker lokal modellbackend korrekt
- ✅
list_emma_modelser grønn - ✅ Gitea read-only tools er grønne
- ✅ GCP/Workspace-kjernen er fortsatt grønn
- ⚠️ Konfigurasjon konsolidert — delvis (GITEA_URL må inn i repo)
- ⏳ Ingen skjult API-/agentavhengighet som hovedbane — ikke verifisert
- ✅ dev-snap-oppsettet dokumentert godt nok til blueprinting — FASE 5 FERDIG
- ⏳ CPU-optimalisering verifisert på Gitea-VM — FASE 6 pågår
OPPDATERINGSLOGG
| Dato | Fase | Handling |
|---|---|---|
| 2026-07-21 | FASE 4 | Full smoke test grønn, alle 8 tools OK |
| 2026-07-21 | FASE 5 | Blueprint frosset, FASE 5 lukket |
| 2026-07-21 | FASE 6 | FASE 6 åpnet — CPU-optimalisering neste |
| 2026-07-21 | FASE 6.1 | Kaldstart/keep_alive baseline fullført: gemma3:4b=117s, qwen2.5:3b=71s, varme kall ~1s, keep_alive=-1 bevist effektiv, RAM OK |