05ed037fe8
- DNS: pilot.landvex.com -> 16.170.83.169 - TLS: Let's Encrypt certificate (expires 2026-09-30) - Nginx: reverse proxy with SSL termination - API: https://pilot.landvex.com/api/v1/missions - UI: https://pilot.landvex.com/ - Upload: POST /api/v1/missions/import (multipart/form-data) Verified: ✅ https://pilot.landvex.com/health ✅ https://pilot.landvex.com/version ✅ https://pilot.landvex.com/api/v1/missions (list) ✅ https://pilot.landvex.com/api/v1/missions/:id (get) ✅ POST /api/v1/missions/import (video upload) ✅ UI loads with title 'LandveX Intelligence Lab' Next: Pilot 001 — Break the system!
13 KiB
13 KiB
AAMOS System Documentation
Executive Summary
Arkitekturmognad: 6/10 AI-mognad: 7/10 Driftmognad: 5/10 Säkerhetsmognad: 4/10 Skalbarhet: 6/10 Observerbarhet: 4/10 Kodkvalitet: 5/10 Agentautonomi: 6/10 Helhetsförståelse: 5/10
1. High-level Architecture
System Overview
AAMOS (Adaptive Autonomous Multi-Agent Operating System) är en distribuerad mikrotjänstarkitektur byggd för att stödja Landvex/quiXzoom-plattformen. Systemet körs på AWS infrastruktur i regionen eu-north-1 (Stockholm).
Komponenter
Core Services
- ouroboros-identity (Port 3207) - Rust-baserad identitetstjänst med JWT-autentisering
- aamos-ledger (Port 3250) - Bokföringsmotor med dubbel bokföring och SIE4-stöd
- quixzoom-app - React/Vite frontend hostad på S3 + CloudFront
- mission-service - Node.js/Express API för missionshantering
Infrastrukturkomponenter
- AWS EC2 - bernt.wavult.com (server-2)
- AWS S3 - quixzoom-app-prod (frontend-hosting)
- AWS CloudFront - CDN för app.quixzoom.com
- AWS RDS/PostgreSQL - Databas för användare, transaktioner, audit
- AWS Lambda - quixzoom-forgot-password (lösenordsåterställning)
- AWS SES - E-postutskick
- AWS API Gateway - REST API-gateway
Agent Infrastructure
- OpenClaw - Agent runtime och orchestration
- Bernt - Huvudagent (AI-assistent)
Kommunikation
- REST API:er mellan tjänster
- PostgreSQL för persistent lagring
- S3 för statisk filhosting
- CloudFront för CDN-distribution
2. Infrastructure
Cloud
- Provider: AWS
- Region: eu-north-1 (Stockholm)
- Konto: 155407238699
Compute
- EC2 Instance: i-09b2204a52c2f33c9
- Typ: t4g (ARM64/Graviton)
- OS: Amazon Linux 2023
- Kernel: Linux 6.18.30-61.116.amzn2023.aarch64
- Användare: bernt (wheel, NOPASSWD systemctl/journalctl)
Containers & Orchestration
- Ingen Kubernetes - Tjänster körs direkt på EC2
- Processhantering: systemd
- Reverse Proxy: nginx
Lagring
- S3 Buckets:
- quixzoom-app-prod (frontend)
- quixzoom-assets (statiska tillgångar)
- RDS: PostgreSQL (host okänd, behöver verifieras)
- Lokal disk: /opt/amos/ (konfiguration, nycklar, data)
Nätverk
- DNS: app.quixzoom.com → CloudFront → S3
- API: api.quixzoom.com → nginx → backend-tjänster
- SSL: Let's Encrypt / AWS Certificate Manager
Autoscaling
- Ej konfigurerat - Manuell skalning
Secrets
- Hantering: Miljövariabler + lokala filer
- Lokalisering: /opt/amos/data/, ~/.env-filer
- Rotation: Manuell
3. AI Stack
Modeller
| Modell | Storlek | Syfte | Användning | Kontext |
|---|---|---|---|---|
| moonshot/kimi-k2.6 | Okänd | Huvudagent (Bernt) | Konversation, kodgenerering, problemlösning | Full systemkontext |
| Claude (via API) | - | Backup/assistans | Komplexa uppgifter, längre kontext | 200K tokens |
Embedding & Reranking
- Ingen dedikerad embedding-modell - Använder Claude/moonshot för semantisk förståelse
- Vector DB: Ej implementerat
Vision
- Ingen dedikerad vision-modell
- Bildhantering via frontend (React) och backend (Node.js)
Speech
- Ingen speech-modell - Text-baserad interaktion
Kostnad
- Claude API: Max 20 000 kr/mån (hårt tak)
- moonshot: Inkluderat i OpenClaw-licens
4. Agent Architecture
Agenter
Bernt (Huvudagent)
- Syfte: Personlig AI-assistent för Erik Svensson
- Verktyg: Filåtkomst, kodredigering, systemkommandon, webbsökning
- Behörigheter: Sudo (systemctl/journalctl), AWS SSM (root), filsystem
- Ansvarsområde: Systemadministration, utveckling, deployment, support
- Kommunikation: Telegram, Discord, andra chattkanaler
- State: Session-baserad, persistent via MEMORY.md och dagliga loggar
- Minne:
- Korttids: Session-kontext
- Långtids: MEMORY.md (manuellt curerat)
- Dagligt: memory/YYYY-MM-DD.md
- Rollback: Manuell via git, filbackuper
Beslutsfattande
- Autonomi: Bernt fattar självständiga beslut inom definierade gränser
- Eskalering: Frågar Erik vid:
- Kostnader > 0 USD
- Destruktiva operationer
- Extern kommunikation
- Osäkerhet
5. Tools
MCP (Model Context Protocol)
- OpenClaw MCP - Agent-runtime och verktygsintegration
REST API:er
- ouroboros-identity (port 3207)
- aamos-ledger (port 3250)
- mission-service (port ?)
- quixzoom-capture-pipeline (port ?)
CLI-verktyg
- aws-cli
- kubectl (ej aktivt använt)
- docker (ej aktivt använt)
- systemctl/journalctl
- nginx
- certbot
Programmeringsspråk
- Rust - ouroboros-identity
- Node.js/TypeScript - Frontend, API:er, scripts
- Python - Dataanalys, scripts
- Bash - Systemadministration
Databaser
- PostgreSQL - Huvuddatabas
- SQLite - Lokal lagring (om någon)
Cloud-tjänster
- AWS EC2, S3, CloudFront, Lambda, SES, API Gateway, RDS
6. Business Systems
quiXzoom - Affärsflöden
Zoomer Onboarding
- Registrering (e-post, lösenord)
- E-postverifiering
- Identitetsverifiering (KYC) - Pass/ID + selfie
- Godkännande av villkor
- Första mission
Mission Flow
- Kund skapar mission
- Zoomer accepterar mission
- Zoomer fotograferar och laddar upp
- AI-granskning av bilder
- Godkännande/Avslag
- Betalning via Stripe Connect
Betalningsflöde
- Godkänd submission
- Stripe Connect-utbetalning
- Zoomer får pengar direkt till bankkonto
Flaskhalsar
- KYC-verifiering - Manuell granskning krävs ibland
- Betalningar - Beroende av Stripe Connect
- Skalning - Ingen autoscaling konfigurerad
7. Knowledge Model
Kunskapskällor
- README-filer - Projektbeskrivningar
- Markdown-dokument - MEMORY.md, AGENTS.md, SOUL.md, USER.md
- Git-historik - Kodändringar, commit-meddelanden
- Konfigurationsfiler - .env, nginx.conf, systemd units
- Runtime-kontext - Session-specifik information
Embeddings & Vector DB
- Ej implementerat - Ingen vektordatabas
- Sökning: Manuell filsökning, grep, find
Kontextbyggnad
- Bootstrap-filer laddas vid sessionstart
- Dagliga minnen läggs till
- Runtime-kontext injiceras
- Användarfråga tillförs
Information som saknas
- Automatisk kodindexering
- Semantisk kod-sökning
- Graf-baserad kunskapsrepresentation
8. Context Pipeline
Steg-för-steg
- Bootstrap - AGENTS.md, SOUL.md, USER.md laddas
- Dagligt minne - memory/YYYY-MM-DD.md läggs till
- Projektkontext - Relevanta filer identifieras och läses
- Runtime-kontext - Systeminfo, kanal, capabilities
- Användarinput - Fråga/kommando tillförs
- Verktygsanrop - Fil-läsning, kommandokörning
- Respons - Genereras baserat på all kontext
Begränsningar
- Kontextfönster: Begränsat av modellens max tokens
- Filtrering: Ingen intelligent ranking av information
- Minne: Begränsat till explicit sparade filer
9. Code Intelligence
Kod-sökning
- ripgrep - Snabb text-sökning
- find - Fil-sökning
- Manuell navigering - Filstruktur, importer
Saknas
- Semantisk kod-sökning (t.ex. Sourcegraph, Cody)
- AST-baserad analys
- LSP-integration
- Dependency graph
- Code graph
10. Testing
Nuvarande tester
- Manuell testning - Primär metod
- Bygg-verifiering - npm run build, cargo build
Saknas
- Unit-tester
- Integrationstester
- E2E-tester
- Smoke-tester
- Performance-tester
- Regressionstester
- Säkerhetstester
- Load-tester
- Chaos-tester
- Mutationstester
- Code coverage
11. Deployment
Process
- Lokal utveckling - Filredigering
- Bygg - npm run build / cargo build
- Manuell synk - aws s3 sync / scp
- Cache-invalidering - CloudFront
- Service-restart - systemctl restart
Branching
- Ej strikt - Direkt redigering på main/master
CI/CD
- Ej konfigurerat - Ingen automatisk pipeline
Rollback
- Manuell - Återställning från backup/git
12. Security
Secrets
- Lagring: Miljövariabler, lokala filer
- Rotation: Manuell
- Kryptering: Ej konfigurerat för secrets i vila
IAM
- AWS: Grundläggande roller
- Lokal: sudo-grupper
Audit
- Systemloggar: journalctl
- Applikationsloggar: Olika per tjänst
- Centraliserad loggning: Ej konfigurerat
Saknas
- Automatisk secret-rotation
- SBOM-generering
- Supply chain scanning
- OWASP-top-10 genomgång
- Penetrationstester
13. Performance
Nuvarande status
- CPU: Låg belastning (t4g är kraftfull för nuvarande load)
- RAM: Tillräckligt
- GPU: Ej använd
- Lagring: S3 för statiskt, RDS för data
Flaskhalsar
- Cold starts - Lambda-funktioner
- Cache - CloudFront, men ej optimalt konfigurerat
- Databas - Okänd prestanda
14. Cost
Nuvarande kostnader (uppskattade)
| Post | Kostnad/mån |
|---|---|
| AWS EC2 (t4g) | ~500 kr |
| AWS S3 | ~50 kr |
| CloudFront | ~100 kr |
| RDS | ~500 kr |
| Claude API | Max 20 000 kr |
| Totalt | ~21 000 kr/mån |
Största kostnadsdrivare
- Claude API (20 000 kr/mån)
- AWS-infrastruktur (~1 000 kr/mån)
15. Technical Debt
Prioriterad lista
- Inga automatiska tester - Risk för regressioner
- Ingen CI/CD - Manuell deployment är felbenäget
- Ingen autoscaling - Kan inte hantera plötslig load
- Bristfällig observerbarhet - Svårt att diagnostisera problem
- Ingen centraliserad loggning - Loggar spridda över systemet
- Manuell secret-hantering - Säkerhetsrisk
- Ingen backup-strategi - Dataförlustrisk
- Ingen disaster recovery - Lång återhämtningstid
- Bristfällig dokumentation - Svårt att onboarda nya
- Ingen kodgranskning - Kvalitetsrisk
16. Missing Components
För att bli en världsklassplattform:
- Automatiserad CI/CD-pipeline
- Komplett testsvit (unit, integration, E2E)
- Observerbarhet-stack (Prometheus, Grafana, Loki)
- Automatisk skalning (Kubernetes eller ECS)
- Centraliserad loggning
- Säkerhetsskanning (SAST, DAST, dependency scanning)
- Backup och disaster recovery
- Dokumentationsgenerering
- Semantisk kod-sökning
- Feature flags
17. Self Awareness
Begränsningar
- Ingen realtidskontroll av systemet
- Begränsad kontext - Kan inte se allt samtidigt
- Ingen automatisk upptäckt av nya tjänster/komponenter
- Manuellt minne - Måste explicit spara information
Vad som skulle underlätta
- Automatisk systemupptäckt - Skanna och kartlägga kontinuerligt
- Centraliserad kunskapsbas - Vector DB med all systeminfo
- Automatisk dokumentationsuppdatering
- Self-healing - Automatisk feldetektion och återställning
För att en ny agent ska kunna ta över
- Komplett systemdokumentation (denna fil)
- Automatisk kontextinjektion - All relevant info vid sessionstart
- Graf-baserad kunskapsrepresentation - Relationer mellan komponenter
- Automatisk upptäckt - Agenten ska kunna utforska systemet själv
18. Top 10 Förbättringar (Prioriterade)
- Implementera CI/CD - GitHub Actions eller AWS CodePipeline
- Skriv tester - Börja med unit-tester för kritiska komponenter
- Sätt upp observerbarhet - Prometheus + Grafana
- Automatisera deployment - Eliminera manuella steg
- Implementera backup - Automatiska databas-backuper
- Förbättra säkerhet - Secret management, scanning
- Dokumentera API:er - OpenAPI/Swagger för alla endpoints
- Sätt upp autoscaling - Kubernetes eller ECS
- Implementera feature flags - Gradvis rollout
- Skapa runbooks - Standardprocedurer för vanliga operationer
Appendix: Filstruktur
/home/bernt/
├── .openclaw/workspace/ # Agent workspace
│ ├── AGENTS.md # Agent-konfiguration
│ ├── MEMORY.md # Långtidsminne
│ ├── SOUL.md # Personlighet
│ ├── USER.md # Användarinfo
│ ├── TOOLS.md # Verktygsanteckningar
│ └── memory/ # Dagliga loggar
├── repos/
│ └── quixzoom.com/ # quiXzoom frontend
│ ├── src/ # React/Vite-kod
│ ├── infra/ # Infrastruktur
│ └── package.json
├── rust/
│ └── ouroboros-identity/ # Rust identitetstjänst
│ ├── src/main.rs
│ └── Cargo.toml
├── services/ # Node.js-tjänster
│ └── ouroboros-identity-proxy/ # Auth proxy
├── quixzoom-forgot-password-lambda/ # Lambda-funktion
└── quixzoom-app-www/ # Byggd frontend
/opt/amos/ # Systemdata
├── data/keys/ # JWT-nycklar
└── MEMORY.md # Legacy-minne
Dokumentation genererad av Bernt (AI-agent) Senast uppdaterad: 2026-06-30