# 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-22 00:05 CEST ### ✅ FASE 0–5 — FERDIG ### ✅ FASE 6 – CPU-optimalisering — FERDIG ### ✅ FASE 6-TILLEGG – Boot-warming — FERDIG ### ✅ DNS – NS-bytte utført — FERDIG 2026-07-21 23:44 CEST ### ✅ OPAX-MCP – GITEA_URL permanent + deploy — FERDIG 2026-07-21 23:53 CEST ### ⏳ SMOKE-TEST – Alle 37 tools — PEND ING ### ⏳ FASE 7 – Lokal hjerne / derivat-modell — PLANLAGT --- ## LÅST SYSTEMKONFIGURASJON – GITEA-CPU-VM (komplett) ### Systemd-dropins ``` override.conf — OLLAMA_HOST=0.0.0.0:11434 max-models.conf — MAX_LOADED_MODELS=2 + KEEP_ALIVE=-1 warmup.conf — ExecStartPost=/usr/local/bin/ollama-warmup.sh ``` ### Operative parametere for Emma-kall ``` num_ctx = 2048 num_batch = 256 OLLAMA_NUM_THREADS = ikke satt (autodetect) ``` ### Ytelsesbudsjett per Emma-turn (varm) ``` 3-kall turn: ~23.5s 5-kall turn: ~42.5s Boot-penalty: ~0s (warmup-skript) Tok/s: 4.9–5.0 (gemma3:4b) ``` --- ## OPAX-MCP KONFIGURASJON – LÅST | Variabel | Verdi | |---|---| | `GITEA_URL` | `http://34.67.252.59:3000` | | `OLLAMA_BASE_URL` | `http://34.67.252.59:11434` | | `EMMA_MODEL` | `gemma3:4b` | | `EMMA_FAST_MODEL` | `gemma3:4b` | | `EMMA_LIGHT_MODEL` | `qwen2.5:3b` | | `OSVAUCO_AGENT_URL` | `https://osvauco-agent-357036551735.us-central1.run.app` | Deploy verifisert: `get_connector_status` → `live`, `gitea: online`, `tool_count: 37` --- ## DNS – FULLFØRT 2026-07-21 NS-bytte: Proisp → Google Cloud DNS **23:44 CEST** | Record | Type | Verdi | |---|---|---| | `vauco.no.` | A | `34.98.77.173` (LB) | | `www.vauco.no.` | A | `34.98.77.173` (LB) | | `opax.vauco.no.` | A | `34.98.77.173` (LB) | | `git.vauco.no.` | A | `34.67.252.59` | | MX / SPF / DKIM / DMARC | TXT/MX | Google Workspace komplett | Verifisering: ```bash curl -s "https://dns.google/resolve?name=git.vauco.no&type=A" \ | python3 -c "import json,sys; d=json.load(sys.stdin); ans=d.get('Answer'); print(ans[0]['data'] if ans else 'IKKE PROPAGERT')" ``` --- ## SMOKE-TEST – STATUS | Kategori | Tools | Status | |---|---|---| | Ollama/Emma | `list_emma_models`, `run_emma` | ⏳ Pending | | Gitea | `list_commits`, `get_file_content`, `list_repo_files`, `push_file` | ⏳ Pending | | GCP/Cloud Run | `get_build_status`, `describe_service`, `list_gce_instances` | ⏳ Pending | | Workspace/Gmail | `list_workspace_users`, `get_emails`, `list_calendar_events` | ⏳ Pending | | Terminal/Billing | `run_terminal`, `get_connector_status`, `get_billing_summary` | ⏳ Pending | | Jason | `run_jason` | ⏳ Pending | --- ## FASE 7 – LOKAL HJERNE / DERIVAT-MODELL (planlagt) ### Mål Erstatte stor API-modell (Gemini/Claude/Perplexity) med lokal modell som hjerne i OPAX-arkitekturen. Redusere API-avhengighet på sikt. ### Arkitektur (nå vs mål) ``` NÅ: Perplexity/Gemini ← Hjerne (stor API-modell) ↓ tool calls OPAX-MCP ↓ Emma gemma3:4b ← Lokal inferens (svak) MÅL: Lokal stor modell ← Hjerne (lokal, gratis) ↓ tool calls OPAX-MCP ↓ Emma gemma3:4b ← Lokal inferens (rask) ``` ### Kandidatmodeller for CPU-VM (15 GB RAM) | Modell | RAM | Tok/s CPU | Agentevne | Vurdering | |---|---|---|---|---| | `gemma3:4b` (nå) | 2.9 GB | ~5 | Svak | For svak som hjerne | | `gemma3:12b` | ~8 GB | ~1.5–2 | God | **Test dette først** | | `qwen2.5:14b` | ~9 GB | ~1.5 | Sterk | Alternativ | | `gemma3:27b` | ~17 GB | <1 | Tilnærmet god | Krever GPU | ### Exit-kriterier Fase 7 - [ ] `gemma3:12b` installert og testet på CPU-VM - [ ] Ytelsesmåling: tok/s, RAM-bruk, swap=0 - [ ] Kvalitetstest: kan modellen planlegge og bruke tools? - [ ] GEMINI.md-lignende systemd-prompt/konfig for Emma laget - [ ] Beslutning: erstatter eller komplementerer? ### Derivat-strategi Emma skal få eget identitetsdokument (tilsvarende GEMINI.md for Jason) med: - Personlighet og tone - Arbeidsregler og prioriteringer - Tool-bruksprinsipper - Vauco OS-kontekst --- ## ÅPNE PUNKTER 1. Smoke-test alle 37 tools — **kjøres nå** 2. `git.vauco.no` propagering — sjekk i morgen tidlig 3. Fase 7: `gemma3:12b` test på CPU-VM 4. Emma derivat-dokument (tilsvarende GEMINI.md) 5. Gitea-commits GPG-signering — vurder ## FASTE SANNHETER - Gitea er source of truth - Lokale modeller er hovedretning — mål er å fase ut API-avhengighet - Gitea-VM (34.67.252.59) er permanent målmaskin - Dev-snap (34.170.51.84) er Jason sin arbeidsstasjon — kan ikke stenges før lokal hjerne er verifisert - Denne handoffen overstyrer alt annet ## DEFINITION OF DONE - ✅ Lokale modeller lever og kan brukes lokalt - ✅ OPAX-MCP bruker lokal modellbackend korrekt - ✅ `list_emma_models` er grønn - ✅ Gitea read-only tools er grønne - ✅ GCP/Workspace-kjernen er fortsatt grønn - ✅ Konfigurasjon konsolidert — GITEA_URL permanent + deployed - ✅ Boot-warming verifisert - ✅ DNS migrert til Google Cloud DNS - ⏳ Smoke-test alle 37 tools — pending - ⏳ `git.vauco.no` live — propagering pågår - ⏳ Fase 7: lokal hjerne verifisert — planlagt ## OPPDATERINGSLOGG | Dato | Handling | |---|---| | 2026-07-21 | FASE 4–6: CPU-optimalisering, boot-warming fullført | | 2026-07-21 23:44 | DNS: NS-bytte utført hos Proisp | | 2026-07-21 23:53 | OPAX-MCP: GITEA_URL + OLLAMA_BASE_URL → 34.67.252.59, deployed | | 2026-07-22 00:05 | Smoke-test plan klar, Fase 7 (lokal hjerne) lagt inn |