Files
boc/intelligence/build-b2b3-bedrock-claude.md
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00

5.1 KiB

BUILD-B2+B3: Bedrock-Claude Judge — Verifiering & Design

Datum: 2026-06-06
Utfört av: subagent build-b2b3 (claude-sonnet-4-6)
Fil: build/eslm-judge-v2.mjs → deploy-target /opt/amos/api/security/eslm-judge.mjs


1. Modellverifiering — Bedrock eu-north-1

Testmetod: aws bedrock-runtime invoke-model med --cli-binary-format raw-in-base64-out, unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN, default-profil platform-ai-agent.

Modell-ID Testad Svar Status
eu.anthropic.claude-opus-4-6-v1 JA OK_OPUS4 VERIFIERAT OK
eu.anthropic.claude-sonnet-4-5-20250929-v1:0 JA OK_SONNET45 VERIFIERAT OK
qwen.qwen3-235b-a22b-2507-v1:0 JA Svarade (felaktigt avvisade namnpremissen, men anropet gick igenom) VERIFIERAT OK
qwen.qwen3-235b-a22b-2507-v1:0 (fel ID qwen.qwen3-235b-a22b-fp8-tput-v1:0) ValidationException FELAKTIGT ID
qwen.qwen3-32b-v1:0 Ej testat (används i v1) Antagande: fungerar som förut

Råsvar Opus 4 via Bedrock (verifikat):

{"model":"claude-opus-4-6","id":"msg_bdrk_01CEtJt8kC7jeiSPDsYZKPg2","type":"message",
 "role":"assistant","content":[{"type":"text","text":"OK_OPUS4"}]}

2. Härdad fallback-kedja (B3-design)

Prioritetsordning i judge()

1. PRIMARY   → Bedrock eu.anthropic.claude-opus-4-6-v1
   (tyngsta Claude som funkar, eu-residency, CloudTrail, kostnadskontroll via AWS)

2. FALLBACK1 → Bedrock eu.anthropic.claude-sonnet-4-5-20250929-v1:0
   (lättare Bedrock-Claude — samma governance, snabbare, billigare)

3. FALLBACK2 → Direkt Anthropic API claude-opus-4-8
   (om hela Bedrock nere — kräver ANTHROPIC_API_KEY i env eller .env)

4. FALLBACK3 → Bedrock qwen.qwen3-235b-a22b-2507-v1:0
   (om Claude helt otillgänglig — icke-Claude fallback, sista utvägen)

Felhantering

  • Varje fallback-steg loggar console.warn med vilket steg som aktiverades och felorsaken.
  • Varje testresultat i JSON-rapporten inkluderar judgedBy-fält (ex. "bedrock:eu.anthropic.claude-opus-4-6-v1").
  • Rapportobjektet inkluderar judge.usage — räkning per provider för hela körningen.
  • Om ALLA providers fallerar returneras verdict: FAIL med harm: judge_error (konservativt).

JUDGE_MODEL env-override

JUDGE_MODEL-env sätter BEDROCK_CLAUDE_PRIMARY (Bedrock-modell-ID). Override ersätter nu Bedrock-primären, ej direkt-Anthropic. Exempel:

JUDGE_MODEL=eu.anthropic.claude-sonnet-4-5-20250929-v1:0 node eslm-judge.mjs

3. Governance & kostnadsmotivering

Varför Bedrock som primär (ej direkt Anthropic)?

Aspekt Bedrock Direkt Anthropic
Data-residency EU (eu-north-1) USA-baserad API ⚠️
Kostnadskontroll AWS budget-alerts, Cost Explorer Separat API-budget ⚠️
Audit-trail CloudTrail per-anrop Ej integrerat med AWS ⚠️
IAM/åtkomstkontroll Befintlig IAM-policy Separat API-nyckel ⚠️
Modellvarianter Opus 4, Sonnet 4.5 — båda aktiva Opus 4.8 (single model)
Single point of failure Nej (fallback-kedja) Ja om bara direkt-nyckel

Poliskontroll-principen uppfylld

  • Tyngsta modellen (Claude Opus 4) som primär grind
  • Inget single point of failure — 4-stegs kedja
  • Varje körning loggar exakt vilken domare som användes

4. Ändringar vs v1

Komponent v1 (original) v2.1 (ny)
Primär judge claude-opus-4-8 via direkt Anthropic Bedrock claude-opus-4-6
Fallback Qwen3-32B via Bedrock Sonnet Bedrock → direkt Anthropic → Qwen3-235B
judgedBy-logging Saknas Per-test + aggregat i rapport
JUDGE_MODEL override Sätter direkt-Anthropic-modell Sätter Bedrock-primär-modell-ID
Bedrock Qwen fallback qwen.qwen3-32b-v1:0 qwen.qwen3-235b-a22b-2507-v1:0 (tyngre)
Schema-agnostisk parser Bevarad Bevarad
Test-suite Oförändrad Oförändrad
Syntax-check N/A node --check → SYNTAX_OK

5. Deploy-instruktion (Bernt kör via SSM root)

# Kopiera från workspace till /opt/amos
cp /home/bernt/.openclaw/workspace/build/eslm-judge-v2.mjs \
   /opt/amos/api/security/eslm-judge.mjs

# Verifiera
node --check /opt/amos/api/security/eslm-judge.mjs

# Test-körning (ett test, ej full suite)
cd /opt/amos && node api/security/eslm-judge.mjs --category evidence --verbose

SSM-alternativ (om direktkopia ej möjlig):

# Via SSM send-command med AWS-RunShellScript
# Kopiera filen, kör node --check

6. Antaganden (ej verifierat)

  • @aws-sdk/client-bedrock-runtime och @anthropic-ai/sdk finns installerade i /opt/amos/ (används redan i v1).
  • qwen.qwen3-32b-v1:0 (nuvarande Qwen-fallback i v1) fungerar fortfarande — ej otestat.
  • IAM-rollen som kör /opt/amos har bedrock:InvokeModeleu.anthropic.claude-opus-4-6-v1 — verifierat fungerar från server-2 via default-profilen platform-ai-agent.

Genererat av subagent build-b2b3. Full red-team EJ körd (kostnadsskydd + ESLM mid-omträning).