Modul 2 – Arkitektur och mentala modeller
OpenCode-utbildningen på AIWiki.se ← Tillbaka till översikten
Innan du konfigurerar – förstå modellen
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.
Kärnkoncept
Agent
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 (Tools)
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.
SKILL.md – återanvändbara beteenden
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-servrar (Model Context Protocol)
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.
Minnessystem
LLM:er har inget inbyggt minne mellan sessioner. OpenCode hanterar det på två sätt:
- In-session-minne – hela samtalet finns i context window under en session.
- 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.
Hur AGENTS.md och skills samverkar
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.
Arkitektperspektivet: OpenCode i utvecklingskedjan
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.
Mental modell: tre lager
┌─────────────────────────────────────┐ │ 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.
Sammanfattning
- 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.
Föregående modul: ← Modul 1 – Introduktion och kontext Nästa modul: Modul 3 – Installation och systemintegration →