Modul 2 – Arkitektur och mentala modeller

OpenCode-utbildningen på AIWiki.se ← Tillbaka till översikten


Att konfigurera OpenCode utan att förstå de underliggande koncepten är som att rita en systemarkitektur utan att veta vad en tjänst är. Det fungerar för enkla fall men håller inte när komplexiteten ökar.

Den här modulen bygger den mentala modellen du behöver.


En agent i OpenCode-kontexten är en konfigurerad instans av en LLM med definierade verktyg, behörigheter och beteenderegler. En agent är inte bara en modell – det är modellen plus kontexten den arbetar i.

En agent definieras av:

  • Vilken LLM den använder
  • Vilka verktyg (tools) den har tillgång till
  • Vad den får göra (behörighetsmodellen)
  • Eventuell AGENTS.md som styr beteendet

Verktyg är de handlingsförmågor en agent har utöver att generera text. I OpenCode inkluderar det:

  • Läsa och skriva filer
  • Köra terminalkommandon
  • Söka i kodbasen
  • Anropa externa API:er (via MCP)

Varje verktyg måste vara explicit tillåtet. Det är inte en chatbot som kan göra vad som helst – det är en agent med en specificerad verktygslåda.

En skill är en återanvändbar beteendebeskrivning som agenten kan ladda vid behov. Tänk på det som ett kompetenspaket:

  • En skill för ”skriva OpenAPI-dokumentation”
  • En skill för ”följa våra kodkonventioner”
  • En skill för ”migrera från v1 till v2 av vårt interna API

Skills lagras som SKILL.md-filer och laddas av agenten när kontexten matchar – eller explicit via instruktion. De är lazy-loadade, vilket innebär att de inte tar upp context window förrän de behövs.

MCP är ett protokoll för att ansluta externa system till agenten. Via MCP kan OpenCode integrera med:

  • Dokumentationssystem
  • Minnessystem (t.ex. Mem0)
  • Verktyg som inte är inbyggda (t.ex. Anytype, databaser)

MCP-servrar är separata processer som agenten kommunicerar med. De utökar vad agenten kan göra utan att behöva modifiera OpenCode självt.

LLM:er har inget inbyggt minne mellan sessioner. OpenCode hanterar det på två sätt:

  1. In-session-minne – hela samtalet finns i context window under en session.
  2. Externt minne via MCP – persistent minne lagras i externa system och hämtas vid behov.

För arkitekter är detta viktigt: stateless by default. Varje session börjar från noll om inget externt minnessystem är konfigurerat.


Katalogstrukturen spelar roll. OpenCode söker efter AGENTS.md och SKILL.md-filer i en bestämd ordning:

Sökordn (förenklad):

  1. Hemkatalog (~/.opencode/AGENTS.md)    ← globala standarder
  2. Repo-rot (/projekt/AGENTS.md)         ← projektspecifika regler
  3. Underkatalog (/projekt/src/AGENTS.md) ← komponentspecifika regler

Regeln är arv med överskrivning: en AGENTS.md längre ner i trädet kan överskriva eller utöka vad som definierats högre upp. Det skapar en naturlig hierarki:

  • Globala coding standards i hemkatalogen
  • Projektets arkitekturprinciper i repo-roten
  • Komponentspecifika beteenden i underkataloger

Skills söks på liknande sätt och kan också ligga i ett delat bibliotek utanför repot.


OpenCode passar in på flera ställen i en typisk modern utvecklingskedja:

Steg OpenCode-roll Konfiguration
Lokal utveckling Interaktivt TUI, frågor och refaktorering AGENTS.md + skills i repo
Code review-stöd Generera sammanfattningar, identifiera mönster Read-only verktygsuppsättning
CI/CD-pipeline Icke-interaktivt läge, dokumentationsgenerering opencode run med –format json
Dokumentation Generera OpenAPI, README, arkitekturnoteringar Dokumentationsskill

Nyckeln arkitekturellt: OpenCode är inte ett verktyg som ersätter pipeline-steg – det är ett verktyg som kan anropas som ett steg i pipelinen.


┌─────────────────────────────────────┐
│           GOVERNANCE-LAGER          │
│  AGENTS.md · behörigheter · modell  │
├─────────────────────────────────────┤
│           KOMPETENS-LAGER           │
│  SKILL.md · domänkunskap · mönster  │
├─────────────────────────────────────┤
│           EXEKVERINGSLAGER          │
│  CLI/TUI · verktyg · MCP · session  │
└─────────────────────────────────────┘

De tre lagren korresponderar mot ett tankesätt arkitekter känner igen från andra sammanhang: styrning → kompetens → exekvering. En väldesignad OpenCode-setup hanterar varje lager separat och medvetet.


  • En agent = modell + verktyg + konfiguration + kontext.
  • Skills är återanvändbara beteendepaket, lazy-loadade och katalogbaserade.
  • MCP utökar agenten med externa system utan att koppla in dem i kärnan.
  • Minnessystemet är stateless by default – externt minne kräver explicit konfiguration.
  • AGENTS.md och SKILL.md följer en hierarkisk sökning med arv.

Kopierad!
AI Prompt: Rita arkitekturen med ord
Förklara skillnaden mellan en agent, ett verktyg och en skill med hjälp av en analogi från ett kök – utan att nämna "AI", "LLM", "context window" eller "konfiguration". Tre meningar max per begrepp.

Testa prompt på …


Föregående modul: ← Modul 1 – Introduktion och kontext Nästa modul: Modul 3 – Installation och systemintegration →

← Tillbaka till översikten