chore(gemini): upgrade to Claude Opus 4.6 via Vertex AI EU endpoint

This commit is contained in:
chrischristiansen-glitch 2026-05-31 12:42:12 +02:00
parent 800c47ef85
commit 50ddeeb46b

View File

@ -1,6 +1,6 @@
# GEMINI.md — OSVauco / OPAX
> Gemini 2.5 Pro · Nemotron session protocol · HITL-safe
> Claude Opus 4.6 · Vertex AI EU endpoint · Nemotron session protocol · HITL-safe
---
@ -12,9 +12,12 @@ MCP_PROTOCOL: OPAX Protocol
ROOT_DOMAIN: vauco.no
HUB_URL: https://opax.vauco.no
GCP_PROJECT: propane-will-491900-m5
GCP_REGION: us-central1
GCP_REGION: europe-west1
GCP_VERTEX_LOC: eu
CLOUD_RUN_SVC: osvauco-agent
ARTIFACT_REPO: gcr.io/propane-will-491900-m5
MODEL: claude-opus-4-6@20260301
MODEL_PROVIDER: Vertex AI (Anthropic Claude via Google Cloud)
OPERATOR: Chris Christiansen (chris.christiansen@vauco.no)
OPERATOR_ROLE: Eier, arkitekt og primær operatør av OSVauco / OS-Vauco
```
@ -23,6 +26,40 @@ OPERATOR_ROLE: Eier, arkitekt og primær operatør av OSVauco / OS-Vauco
---
## Modell: Claude Opus 4.6 via Vertex AI
Denne agenten kjøres med **Claude Opus 4.6** tilgjengelig via Vertex AI EU multi-region endpoint.
- Data forblir innenfor EU-grensen (GDPR-compliant) [cite:76]
- Ingen separat Anthropic API-nøkkel — billing via eksisterende GCP-konto
- EU endpoint auto-routes internt mellom europeiske regioner for kapasitet
```python
# Korrekt initialisering
import anthropic
client = anthropic.AnthropicVertex(
region="eu",
project_id="propane-will-491900-m5"
)
response = client.messages.create(
model="claude-opus-4-6@20260301",
max_tokens=8192,
messages=[{"role": "user", "content": "..."}]
)
```
```bash
# Aktiver model i Vertex AI Model Garden (kun første gang)
# Console → Vertex AI → Model Garden → søk "Claude Opus" → Enable
# Auth
gcloud auth application-default login --project=propane-will-491900-m5
```
---
## Kontekst: Hvem og hvordan
**Operatør: Chris Christiansen** — eier og arkitekt bak OSVauco og OS-Vauco.
@ -139,8 +176,8 @@ gcloud artifacts docker images list \
### Regel 3: Aldri fiks symptomer — fiks rot-årsak
❌ Feil: «build feiler → legg til --no-cache»
✅ Riktig: «build feiler → les logg → Step 3/8 feiler på apt-get → dependency mangler → fiks Dockerfile"
❌ Feil: «build feiler → legg til --no-cache»
✅ Riktig: «build feiler → les logg → Step 3/8 feiler på apt-get → dependency mangler → fiks Dockerfile»
### Regel 4: Bekreft alltid før du konkluderer at noe virker
@ -175,7 +212,7 @@ VERIFY: [kommando for å bekrefte fix]
### BOOT
- Read `docs/AGENT_RULEBOOK.md`, `docs/VAUCO_OS_ROADMAP.md`, and `docs/OSVAUCO_OPAX_SESSION_LOG.md`.
- Print LOCKED DEFINITIONS (`MCP_NAME`, `MCP_PROTOCOL`, `HUB_URL`, `ROOT_DOMAIN`, `GCP_PROJECT`, `OPERATOR`).
- Print LOCKED DEFINITIONS (`MCP_NAME`, `MCP_PROTOCOL`, `HUB_URL`, `ROOT_DOMAIN`, `GCP_PROJECT`, `MODEL`, `OPERATOR`).
- Print the last `## NESTE OPPGAVE` block found in the session log.
- If no NESTE OPPGAVE found → warn and read ROADMAP NOW section instead.
- Sjekk gjeldende GCP auth: `gcloud auth list` og `gcloud config get-value project`
@ -241,7 +278,6 @@ VERIFY: [kommando for å bekrefte fix]
### 🔴 Cloud Build feiler
```bash
# Steg 1: Hent siste build-ID og vis hele loggen
BUILD_ID=$(gcloud builds list \
--project=propane-will-491900-m5 \
--limit=1 \
@ -251,122 +287,73 @@ gcloud builds log $BUILD_ID \
--project=propane-will-491900-m5 2>&1 | tail -100
```
Les output:
- Finn linjen `Step X/Y` som feilet
- Les error-meldingen på den linjen
- Sjekk Dockerfile/cloudbuild.yaml mot feilen
- IKKE søk på nett før du har lest og forstått feilen
Vanlige årsaker:
- `exit 125` → Docker ukjent flagg eller image-pull feil → les «Step» som feilet
- `exit 1` på apt-get → dependency ikke funnet → sjekk pakkenavn
- `exit 1` på COPY → fil eksisterer ikke i build-kontekst → sjekk .dockerignore
- `exit 1` på pip install → requirements-konflikt → les pip-output i loggen
- `exit 125` → Docker ukjent flagg eller image-pull feil
- `exit 1` på apt-get → dependency ikke funnet
- `exit 1` på COPY → fil eksisterer ikke i build-kontekst
- `exit 1` på pip install → requirements-konflikt
### 🔴 Cloud Run svarer ikke / returnerer feil
```bash
# Steg 1: Sjekk om tjenesten er oppe
gcloud run services describe osvauco-agent \
--project=propane-will-491900-m5 \
--region=us-central1 \
--region=europe-west1 \
--format="value(status.conditions)"
# Steg 2: Les runtime-logger
gcloud logging read \
'resource.type=cloud_run_revision AND resource.labels.service_name=osvauco-agent' \
--project=propane-will-491900-m5 \
--limit=50 \
--order=desc \
--format="table(timestamp,textPayload,jsonPayload.message)"
# Steg 3: Test endepunktet direkte (bypasser IAP)
curl -sv -o /dev/null \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
https://osvauco-agent-357036551735.us-central1.run.app/health
```
### 🔴 Auth / IAP-feil
```bash
# Sjekk hvem du er autentisert som
gcloud auth list
gcloud config get-value project
# Hent identity token for testing
gcloud auth print-identity-token
# Sjekk IAP-tilgang
gcloud iap web get-iam-policy \
--project=propane-will-491900-m5 \
--resource-type=cloud-run \
--service=osvauco-agent
```
### 🔴 Docker-feil lokalt
### 🔴 Claude / Vertex AI-feil
```bash
# Bygg image lokalt for å isolere feilen
docker build -t osvauco-test . 2>&1 | tail -40
# Test Claude Opus 4.6 via Vertex EU endpoint
curl -X POST \
"https://eu-aiplatform.googleapis.com/v1/projects/propane-will-491900-m5/locations/eu/publishers/anthropic/models/claude-opus-4-6@20260301:rawPredict" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"anthropic_version": "vertex-2023-10-16",
"max_tokens": 256,
"messages": [{"role": "user", "content": "ping"}]
}'
# Kjør image lokalt for å teste
docker run --rm -p 8080:8080 \
-e PORT=8080 \
osvauco-test
# Test lokalt
curl -s http://localhost:8080/health
```
### 🔴 Secret Manager-feil
```bash
# List secrets
gcloud secrets list --project=propane-will-491900-m5
# Les en secret-verdi
gcloud secrets versions access latest \
--secret=<SECRET_NAME> \
--project=propane-will-491900-m5
# Sjekk tilgang
gcloud secrets get-iam-policy <SECRET_NAME> \
--project=propane-will-491900-m5
# Sjekk at Claude er aktivert i Model Garden
gcloud ai models list \
--region=eu \
--project=propane-will-491900-m5 \
--filter="displayName:claude"
```
### 🔴 .env mangler ved oppstart
```bash
# 1. Sjekk om den finnes
ls -la .env
# 2. Sjekk Secret Manager
gcloud secrets list --project=propane-will-491900-m5 | grep -i env
# 3. Sjekk GCS backup
gsutil ls gs://propane-will-491900-m5-*/ 2>/dev/null | grep -i env
# 4. Sjekk andre lokasjoner på disk
find ~ -name ".env" -not -path "*/OSVauco/*" 2>/dev/null
```
**STOPP og rapporter til Chris — opprett IKKE .env fra .env.example.**
### 🔴 Git/kode-feil
```bash
# Aldri gjett hva som er i en fil — les den
cat agents/core-logic/main.py | head -50
# Finn hva som endret seg sist
git log --oneline -10
git diff HEAD~1 HEAD -- <fil>
# Sjekk hva som faktisk deployes
git log --oneline -1
gcloud builds list --limit=1 --format="value(source.repoSource.commitSha)"
```
### Prioritert diagnose-rekkefølge
```
@ -402,6 +389,7 @@ ALDRI: Opprett .env fra template
| Cloud Run 500 | `gcloud logging read` → les stack trace | Endre kode uten å se feilen |
| Cloud Run 404 | `curl` + les rutekonfig | Anta routing er feil |
| Auth 403 | `gcloud iap get-iam-policy` | Anta token er utløpt |
| Claude API feil | Test EU endpoint direkte med curl | Anta det er koden sin feil |
| .env mangler | Rapporter til Chris, hent fra Secret Manager | Opprett fra .env.example |
| Noe «virker ikke» | `gcloud run services describe` | Anta det er koden sin feil |
@ -412,7 +400,7 @@ ALDRI: Opprett .env fra template
```bash
# Alltid bruk eksplisitt prosjekt og region
--project=propane-will-491900-m5
--region=us-central1
--region=europe-west1
# Cloud Run service
CLOUD_RUN_SVC=osvauco-agent
@ -423,11 +411,11 @@ IMAGE=gcr.io/propane-will-491900-m5/osvauco-agent
# Cloud Build
gcloud builds submit --config=cloudbuild.yaml --project=propane-will-491900-m5
# Deploy manuelt (hvis nødvendig)
# Deploy manuelt
gcloud run deploy osvauco-agent \
--image=$IMAGE:latest \
--project=propane-will-491900-m5 \
--region=us-central1 \
--region=europe-west1 \
--platform=managed
```
@ -447,7 +435,7 @@ Auth: Google OAuth now. BankID on `-os` later (Medioteq first).
## Standard Boot Prompt
Paste this at the start of every Gemini TUI session:
Lim inn dette ved start av HVER sesjon i Gemini TUI:
```
BOOT: Read docs/AGENT_RULEBOOK.md, docs/VAUCO_OS_ROADMAP.md, docs/OSVAUCO_OPAX_SESSION_LOG.md.