12 KiB
VAUCO MASTERPLAN — Chris Christiansen
Sist oppdatert: 2026-05-26 CEST Status: Cloud Run live (light/heavy) | A5 Memory Bank gjenstår | ML-1 implementert | B-fasen neste
KONTEKST — Hva vi bygger
Ett AI-drevet operativsystem (OPAX) som kjører på Google Cloud. Du er første kunde. Når det virker for deg → selg det til andre.
Repo-oversikt:
| Repo | Hva det er |
|---|---|
OSVauco |
Regler, GCP-scripts, agenter, docs — KJERNEN |
vauco-gemini-tui-bridge |
Din TUI-cockpit |
vauco-os |
Det kundene bruker |
vauco-bootstrap |
Onboarding av nye kunder (→ Terraform-modul i Fase C) |
deep-dream |
Strategisk visjon — aldri deploy herfra |
AGENT-IDENTITET
| Identitet | E-post | Rolle | Formål |
|---|---|---|---|
| Eier / admin | chris.christiansen@vauco.no |
billing.admin + billing.viewer |
Full kontroll |
| Agent (OPAX) | jason.vauger@vauco.no |
billing.viewer |
Hente og rapportere kostnadsdata autonomt |
| Fremtidig gruppe | billing@vauco.no |
billing.viewer (Fase C) |
Delt innboks for team og kunder |
Agent-kapabiliteter med billing.viewer:
- Svare på «Hva koster dette prosjektet denne måneden?»
- Sende ukentlig kostnadsrapport til chat-appen
- Reagere på Pub/Sub budget-alerts (via
10-cost-guard.sh) - Ikke: endre IAM, budsjetter eller koble prosjekter
CLOUD SHELL QUICK-START (kopi-klipp)
Bruk Cloud Shell: https://shell.cloud.google.com
# Steg 1: Klon og sett opp miljø
gcloud config set project propane-will-491900-m5
git clone https://github.com/chrischristiansen-glitch/OSVauco.git ~/OSVauco
cd ~/OSVauco
# Steg 2: Kopier og rediger .env
cp .env.example .env
nano .env
# Fyll ut: BILLING_ACCOUNT_ID, ALERT_EMAIL, GITHUB_APP_INSTALLATION_ID
# Alle andre verdier er ferdig-forhåndsutfylt
# Steg 3: Installer Python-avhengigheter
pip install google-adk google-cloud-aiplatform>=1.111.0 --quiet
# Steg 4: Kjør i rekkefølge (kilde .env først)
source .env
bash infrastructure/00-authcheck.sh
bash infrastructure/01-setupenv.sh
bash infrastructure/07-rag-setup.sh
# *** Kopier RAG_CORPUS_NAME fra output inn i .env ***
nano .env
source .env
bash infrastructure/08-memorybank-setup.sh
# *** Kopier MEMORY_ENGINE_NAME fra output inn i .env ***
nano .env
source .env
bash infrastructure/05-cloudrun-deploy.sh
bash infrastructure/04-observability-setup.sh
bash infrastructure/11-billing-iam-hardening.sh
# Om kvelden (OBLIGATORISK — unngå 24/7-fakturering):
bash infrastructure/03-teardown.sh
FASE A — Ferdigstill kjernen (GCP oppe)
Mål: Agenten din er live på Google Cloud | Tid: Ca. 2 timer
[x] A1 — cp .env.example .env og fyll inn verdier
[x] A2 — bash infrastructure/00-authcheck.sh
[x] A3 — bash infrastructure/01-setupenv.sh
[x] A4 — bash infrastructure/07-rag-setup.sh
RAG corpus: projects/357036551735/locations/europe-west1/ragCorpora/6917529027641081856
[ ] A5 — bash infrastructure/08-memorybank-setup.sh
OQ-01: Python SDK only (auto-installert av script)
ACTION: Kopier MEMORY_ENGINE_NAME til .env
[x] A6 — Cloud Run live: osvauco-agent (europe-west1)
URL: https://osvauco-agent-357036551735.europe-west1.run.app
Modes: light (gemini-2.0-flash) | heavy (gemini-2.5-pro)
Env: GOOGLE_CLOUD_LOCATION=us-central1 for modellkall
[x] A7 — bash infrastructure/04-observability-setup.sh
TELEMETRI-KOORDINERING: A7 (Cloud Monitoring/Logging) og ml/telemetry.py er komplementære:
- ml/telemetry.py: JSONL til /tmp/vauco_telemetry/ — agent-nivå (latens, mode, suksess)
- A7 Cloud Monitoring: GCP-nivå (CPU, minne, request-rate, feil-rate)
- I prod: GCS sink fra /tmp/ → gs://propane-will-491900-m5-telemetry/ (se 10-cost-guard.sh)
Ingen konflikt — to lag, ulik granularitet. Begge beholdes.
[x] A8 — bash infrastructure/03-teardown.sh (kjør hver kveld)
[x] A9 — bash infrastructure/11-billing-iam-hardening.sh
FASE A2 — Dialogflow CX FAQ-agent (parallelt med A4–A9)
Mål: Generativ FAQ-agent live på OSVauco | Tid: Ca. 3–5 timer
Kreditt: kr 5 822 (dialogflow_cx_credit_v2-0171F6-057E6B-A260BA) + $1 000 Playbooks-trial
Detaljer: se docs/dialogflow-cx-budget-plan.md
[ ] DX1 — Opprett Playbook-agent i Conversational Agents Console
[ ] DX2 — Last opp FAQ-innhold som Data Store
[ ] DX3 — Konfigurer Playbook med norsk systemprompt
[ ] DX4 — Koble webhook mot OSVauco Cloud Run (etter A6)
[ ] DX5 — Publiser via Dialogflow Messenger (web-widget)
[ ] DX6 — Sett budsjett-alert for Dialogflow CX
FASE ML — ML-lag for OPAX (parallelt med B/C)
Mål: Agentene kjører parallelt, lærer fra bruk, gir strategisk innsikt
Filer: ml/, AGENTS.md, docs/ml-integration.md
[x] ML-1 — Grunnlag (implementert 2026-05-25)
Komponenter:
ml/task_graph.py — Dask DAG for parallell agent-kjøring
ml/state_store.py — Parameter Server state (in-memory)
ml/telemetry.py — JSONL-logging per agent-kall og DAG-kjøring
Endepunkter i main.py:
POST /run — enkelt kall med telemetri + state push
POST /run/dag — parallell DAG over liste av meldinger
GET /state — live Parameter Server snapshot
GET /telemetry/history — siste N state-operasjoner
Telemetri-koordinering: se A7-notat over
[ ] ML-2 — Adaptiv intelligens (planlagt)
ml/feedback_loop.py — inkrementell feedback-loop (vauco-gemini-tui-bridge)
ml/hypertuner.py — ASHA hyperparametertuning (vauco-bootstrap)
ml/heavy_predictor.py — heavy-mode prediksjon basert på historikk (OSVauco)
Krav: dask-ml>=2024.4.0, ray[tune]>=2.10.0
Trigger: nok telemetri-data fra ML-1 (> 500 kall)
[ ] ML-3 — Strategisk innsikt (planlagt)
ml/agent_importance.py — XGBoost feature importance (OSVauco)
experiments/pbt.py — Population-Based Training (deep-dream)
Krav: xgboost>=2.0.0
Trigger: ML-2 ferdig + Fase C første kunde
Telemetri-ruting (ML-lag):
| Miljø | Lokasjon | Arkivering |
|---|---|---|
| Lokal dev | /tmp/vauco_telemetry/ |
Manuell |
| Cloud Run | /tmp/vauco_telemetry/ |
10-cost-guard.sh cron → GCS |
| Prod skala | gs://propane-will-491900-m5-telemetry/ |
Auto via GCS sink |
FASE B — Sikring og CI/CD
Mål: Begrenset tilgang og aktiv CI/CD | Tid: 1 time
[ ] B1 — bash infrastructure/02-deploy.sh (IAP på opax.vauco.no)
[ ] B2 — Opprett GitHub PAT og legg i Secret Manager
[ ] B3 — bash infrastructure/06-cicd-setup.sh
[ ] B4 — Legg til webhook URL i Secret Manager
[ ] B5 — bash infrastructure/10-cost-guard.sh
Aktiverer auto-teardown Cloud Function + chat-varsling
OBS: 10-cost-guard.sh skal også sette opp GCS sink for ML-telemetri
[ ] B6 — Eksporter Dialogflow CX agent til versjonskontroll
FASE C — Første salgsmodul
Mål: Ny kunde onboardet på 30 minutter | Tid: Ukentlig arbeid
[ ] C1 — Pakk vauco-bootstrap som Terraform-modul
[ ] C2 — Pakk vauco-os som kundeflate
[ ] C3 — Opprett billing@vauco.no som Google Group
[ ] C4 — Første kunde: Medioteq
INFRASTRUKTUR
| Script | Rolle | Status |
|---|---|---|
00-authcheck.sh |
Verifiser gcloud-innlogging | Klar |
01-setupenv.sh |
Aktiver APIs, SA, IAM, budsjetter, Pub/Sub | Klar |
02-deploy.sh |
IAP-deploy på eget domene | Klar |
03-teardown.sh |
Riv ned Cloud Run | Klar |
04-observability-setup.sh |
Cloud Monitoring + alerting (GCP-nivå) | Klar |
05-cloudrun-deploy.sh |
ADK-agent til Cloud Run | Klar |
06-cicd-setup.sh |
GitHub → Cloud Build 2nd gen | Oppdatert |
07-rag-setup.sh |
RAG Engine corpus + fallback | Oppdatert |
08-memorybank-setup.sh |
Memory Bank + auto-install | Oppdatert |
09-cost-check.sh |
Kostnadsoversikt + Artifact Registry | Klar |
10-cost-guard.sh |
Cloud Function auto-teardown + GCS ML-telemetri sink | Ny |
11-billing-iam-hardening.sh |
Billing IAM: viewer-roller + fjern domain Creator | Ny |
KJENTE HULL
| ID | Hva | Workaround / Status |
|---|---|---|
| OQ-01 | Memory Bank — ingen gcloud CLI | Python SDK only |
| OQ-02 | RAG Engine regional availability | Auto-fallback til us-east1 |
| OQ-03 | CMEK ikke for RAG Engine | VPC-SC only |
| OQ-04 | Cloud Build GitHub OAuth | LØST — 2nd gen programmatisk connection |
| OQ-05 | gcloud alpha monitoring ustabil | Fallback til true |
| OQ-06 | Memory Bank auto-discovery | Eksplisitt env var |
| OQ-07 | Monitoring email flag-format | Teste i dev |
| OQ-08 | VPC connector e2-micro regional | Default us-central1 |
| OQ-09 | GCP billing: 0 viewers | LØST — 11-billing-iam-hardening.sh |
| OQ-10 | GCP billing: Creator på domenet | LØST — fjernes når ORG_DOMAIN er satt |
| OQ-11 | Dialogflow CX Data Store norsk indeksering | Teste med nb-NO locale i DX2 |
| OQ-12 | gemini-2.0-flash ikke tilgjengelig europe-west1 | LØST — GOOGLE_CLOUD_LOCATION=us-central1 for modellkall |
| OQ-13 | ML-telemetri /tmp/ flyktig i Cloud Run | B5: GCS sink via 10-cost-guard.sh |
BEKREFTET GA-API
| API | Status |
|---|---|
google.adk.Agent (ikke LlmAgent) |
Bekreftet GA-API |
load_memory_tool |
Bekreftet fra adk-python samples |
Cloud Build 2nd gen (cloudbuildv2) |
Bekreftet GA |
| CMEK ikke for RAG Engine | Ikke støttet (OQ-03) |
| Idempotente scripts | Trygt å kjøre flere ganger |
03-teardown.sh hver kveld |
Agent Runtimes koster 24/7 |
| Conversational Agents (Dialogflow CX) | Playbooks GA |
Dask scheduler="threads" i Cloud Run |
Bekreftet — ingen worker-prosesser nødvendig |
DRIFTSKOSTNADER
| Scenario | Kostnad/mnd |
|---|---|
| Bare deg (dev, teardown daglig) | ~$25-75 |
| Dev + Dialogflow CX FAQ (10k req) | ~$145-195 |
| 1 betalende kunde (lett prod) | ~$115-280 |
| Medioteq-type (klinisk, compliance) | ~$220-350 |
Breakeven: 1 kunde til $300-500/mnd dekker alle kostnader.
LLM-RUTINGSSTRATEGI
Prinsipp: Lett modell i front (light), tung modell ved behov (heavy).
| Modell | Pris input/output (per 1M) | EU-tilgang | Bruksområde |
|---|---|---|---|
gemini-2.0-flash |
$0.10 / $0.40 | Ja (europe-west4) | light — alle enkle kall |
gemini-2.5-pro |
$1.25 / $10.00 | Ja (europe-west4) | heavy — kompleks reasoning, compliance |
gemini-3.5-flash |
$1.50 / $9.00 | Nei (kun US/global) | heavy reasoning, Fase C |
Rutetabell per modul:
| Modul / Agent | light | heavy | Trigger |
|---|---|---|---|
| OPAX billing-agent | gemini-2.0-flash |
gemini-2.5-pro / gemini-3.5-flash |
mode: heavy |
| RAG retrieval | gemini-2.0-flash |
gemini-2.5-pro |
Komplekse flertrinns-spørsmål |
| Memory Bank oppslag | gemini-2.0-flash |
— | Aldri |
| TUI-cockpit | gemini-2.0-flash |
gemini-3.5-flash |
Dyp analyse |
| vauco-os (kundeflate) | gemini-2.0-flash |
gemini-2.5-pro |
Compliance |
| Dialogflow CX Playbooks | Gemini (managed) | — | Native |
| Fase C: Terraform-gen | gemini-3.5-flash |
— | Standard for modulen |
| ML-2 heavy predictor | gemini-2.0-flash |
— | Predikerer heavy-behov |
Request-format:
{
"message": "...",
"user_id": "opax",
"session_id": "opax-proj-001",
"mode": "heavy"
}
Modellfordeling:
| Parameter | light | heavy |
|---|---|---|
| Orchestrator | gemini-2.0-flash |
gemini-2.5-pro |
| Sub-agenter | gemini-2.0-flash |
gemini-2.5-pro |
| Reasoning | gemini-2.0-flash |
gemini-3.5-flash |
| Multi-agent pipeline | Nei | Ja |
| Budsjettgrense | $1/task | $3/task |
Autoriserte brukere for heavy mode: opax, admin
Legacy-verdier A og A+ aksepteres og normaliseres automatisk.
TERRAFORM-VEIKART (Fase C)
| Når | Hva |
|---|---|
| Fase C: Medioteq | vauco-bootstrap → Terraform-modul |
| Per kunde | terraform apply -var="customer_id=X" |
| Ressurser per modul | Cloud Run, Cloud Build 2nd gen, IAP, budsjett, SA, Dialogflow CX agent, ML state store |
| State-backend | GCS bucket (TF_STATE_BUCKET) |
| Fase D | Terraform Cloud for sentralisert state |
OSVauco-NMTMD-GCOS | propane-will-491900-m5 | us-central1 (modell) / europe-west1 (infra)