---
title: "Bygg din egen agent med Elyra, fra en tom mappe"
url: https://kwhorne.com/blog/bygg-din-egen-agent-med-elyra-fra-en-tom-mappe
author: "Knut W. Horne"
published: 2026-06-07T16:48:00+02:00
updated: 2026-06-07T16:58:37+02:00
category: "Elyra"
tags: ["AI", "Noteworthy News"]
language: nb-NO
---

# Bygg din egen agent med Elyra, fra en tom mappe

> Ingen rammeverk, intet byggesteg, ingen orkestrerings-spagetti. I Elyra er en agent bare en mappe og en kommando. Start med en tom katalog og ende opp med en fungerende agent som har sin egen hjerne, egne evner og eget minne.

<p>De fleste "AI-agent"-veiledninger gir deg et rammeverk, en graf av noder og en helg med klipp og lim. Elyra går en stillere vei: en agent er bare en <strong>mappe</strong> og en <strong>kommando</strong>. Intet byggesteg, ingen orkestrerings-spagetti. Kan du skrive en Markdown-fil, kan du bygge en agent.</p><p>Denne guiden starter på absolutt null — du har ikke Elyra installert, du har ingen agent, du har en tom katalog og en idé. Når du er ferdig, har du en fungerende agent som bor i sitt eget hjem, husker ting og har evner du har gitt den.</p><h2>Den mentale modellen: kropp, hjerne, evner</h2><p>Før vi tar en eneste kommando, hold fast ved dette bildet. Hver Elyra-agent er tre ting:</p><ul><li><p><strong>Harness-et er kroppen.</strong> Elyra selv er agentens kropp — løkken som leser filer, kjører kommandoer, redigerer kode, kaller modellen, sjekker resultatet og fortsetter til jobben er gjort. Du skriver ikke kroppen. Du installerer den.</p></li><li><p><strong>Kontekstfilene er hjernen.</strong> Det agenten <em>vet</em> og <em>hvem den er</em> lever i ren Markdown — først og fremst <code>AGENTS.md</code>. Dette er personligheten, reglene, prosjektkunnskapen. Bytt hjerne, og den samme kroppen blir en annen agent.</p></li><li><p><strong>Skills er de utvidede evnene.</strong> En skill er en mappe med en <code>SKILL.md</code> inni. Den lærer agenten å gjøre én bestemt ting — sende en e-post, hente en nettside, føre et utlegg — og agenten griper bare etter den når oppgaven faktisk krever det.</p></li></ul><p>Kropp, hjerne, evner. Det er hele greia.</p><h2>Hva du faktisk trenger</h2><p>Bare <strong>Node.js</strong> (som gir deg <code>npm</code> og <code>npx</code>). Det er hele kravlista. Ingen Docker, ingen Python, ingen konto.</p><p>Du vil også ha en API-nøkkel fra én modell-leverandør — Anthropic, OpenAI, Google, OpenRouter og mange flere fungerer alle sammen. Vi bruker Anthropic i eksemplene, men hvilken som helst av dem går fint.</p><h2>Steg 1: Kjør Elyra uten å installere noe</h2><p>Den raskeste måten å møte Elyra på er å la <code>npx</code> hente og kjøre den for deg:</p><pre><code class="language-bash">npx @elyracode/coding-agent
</code></pre><p>Det laster ned pakken, slipper deg inn i den interaktive agenten, og du er i gang med å snakke. Ingenting installeres permanent.</p><p>En liten, men viktig merknad: bruk det <strong>scopede</strong> navnet <code>@elyracode/coding-agent</code>. Et bart <code>npx elyra</code> peker på en annen, urelatert pakke på npm. Når du bestemmer deg for å beholde Elyra, installerer du den globalt og får din egen ryddige <code>elyra</code>-kommando:</p><pre><code class="language-bash">npm install -g @elyracode/coding-agent
elyra
</code></pre><p>Fra nå av betyr <code>elyra</code> og <code>npx @elyracode/coding-agent</code> det samme.</p><h2>Steg 2: Gi den en nøkkel</h2><p>Ved første kjøring trenger Elyra en leverandørnøkkel. To enkle alternativer:</p><pre><code class="language-bash"># Alternativ A: miljøvariabel
export ANTHROPIC_API_KEY=sk-ant-...
elyra

# Alternativ B: logg inn fra inne i Elyra
elyra
# skriv så:  /login
</code></pre><p>Uansett hvilken vei du velger, lagres legitimasjonen, så du gjør dette bare én gang. Nå har kroppen kraft. På tide å gi den et hjem.</p><h2>Steg 3: Lag agentens hjem</h2><p>Her er trikset som gjør Elyra-agenter rene: <strong>én mappe er hele agenten.</strong> Du forteller Elyra hvor den mappa er med en eneste miljøvariabel, <code>ELYRA_CODING_AGENT_DIR</code>. Alt — config, minne, økter, skills — bor inni den.</p><p>La oss bygge en liten personlig assistent som heter <code>expense-buddy</code>. Lag mappa og pek Elyra mot den:</p><pre><code class="language-bash">mkdir -p ~/agents/expense-buddy
export ELYRA_CODING_AGENT_DIR=~/agents/expense-buddy
</code></pre><p>Vi sikter mot denne formen:</p><pre><code class="language-text">agent-home/
├── AGENTS.md            # hjernen: hvem agenten er + reglene dens
├── settings.json        # hvilken modell/leverandør som er standard
├── brain/
│   └── brain.md         # ekstra kunnskap agenten kan lese
├── sessions/            # samtalehistorikk + rewind-checkpoints
├── skills/
│   ├── send-email/
│   │   └── SKILL.md      # en evne
│   └── web-fetch/
│       └── SKILL.md      # nok en evne
└── memory/
    ├── expenses.json     # agentens egne arbeidsdata
    └── facts.json
</code></pre><p>La oss fylle den ut, én del om gangen.</p><h2>Hjernen: <code>AGENTS.md</code></h2><p>Dette er den viktigste fila. Når Elyra starter i en mappe, laster den automatisk <code>AGENTS.md</code> som kontekst — ingen flagg, ingen config. Det er agentens stående instruks.</p><pre><code class="language-markdown"># Expense Buddy

Du er en vennlig assistent for personlig økonomi. Du hjelper med å føre
utlegg, svarer på spørsmål om forbruk og tar notater til senere.

## Regler
- Penger lever i `memory/expenses.json`. Les den før du svarer på spørsmål
  om forbruk, og legg til når brukeren rapporterer et nytt utlegg.
- Varige fakta om brukeren går i `memory/facts.json`.
- Bakgrunnskunnskap lever i `brain/brain.md` — les den når du trenger
  kontekst om kategorier, budsjetter eller konvensjoner.
- Vær konsis. Bekreft hva du lagret.
</code></pre><p>Legg merke til hva som skjer: hjernen <em>inneholder</em> ikke all kunnskapen, den forteller agenten <strong>hvor den skal lete</strong> og <strong>hvordan den skal oppføre seg</strong>. Det holder den alltid-lastede konteksten liten og rask.</p><h2>Innstillinger: <code>settings.json</code></h2><p>En liten fil som velger standardmodellen, så du slipper å sende flagg hver gang:</p><pre><code class="language-json">{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-opus-4-8",
  "defaultThinkingLevel": "medium"
}
</code></pre><p>Det er alt. Leverandør, modell, hvor hardt den skal tenke som standard.</p><h2>Ekstra kunnskap: <code>brain/brain.md</code></h2><p><code>AGENTS.md</code> lastes hver tur, så du holder den slank. Alt som er tyngre — referansemateriale, kategoridefinisjoner, en stilguide — går i filer agenten leser ved behov. Her, <code>brain/brain.md</code>:</p><pre><code class="language-markdown"># Utleggskunnskap

## Kategorier
- dagligvarer, restaurant, transport, strøm, abonnementer, annet

## Budsjetter (månedlig)
- dagligvarer: 4000 kr
- restaurant: 1500 kr

Når en kategori er tvetydig, spør før du gjetter.
</code></pre><p>Agenten henter dette inn bare når det er relevant, fordi <code>AGENTS.md</code> ba den om det.</p><h2>Evner: <code>skills/</code></h2><p>En skill er en mappe som inneholder en <code>SKILL.md</code>. Fila starter med litt YAML-frontmatter — et <code>name</code> og en <code>description</code> — og deretter instruksjonene. Elyra viser modellen bare navnet og beskrivelsen av hver skill; når en oppgave matcher, åpner agenten hele fila og følger den. Billig å ha liggende, kraftig når det trengs.</p><p><code>skills/send-email/SKILL.md</code>:</p><pre><code class="language-markdown">---
name: send-email
description: Send an email via the local mail command. Use when the user
  asks to email a summary, report, or reminder.
---

# Send en e-post

1. Skriv et kort, tydelig emne og en kort tekst.
2. Kjør: `printf '%s' "$BODY" | mail -s "$SUBJECT" "$RECIPIENT"`
3. Bekreft overfor brukeren hva som ble sendt og til hvem.
</code></pre><p><code>skills/web-fetch/SKILL.md</code>:</p><pre><code class="language-markdown">---
name: web-fetch
description: Fetch a URL and extract readable text. Use when the user asks
  about the contents of a web page or a live document.
---

# Hent en nettside

1. Kjør `curl -fsSL "$URL"` for å hente siden.
2. Oppsummer de relevante delene for brukeren. Ikke dump rå HTML.
</code></pre><p>Du kan slippe en <code>scripts/</code>- eller <code>references/</code>-mappe ved siden av en <code>SKILL.md</code> og referere til dem fra instruksjonene — perfekt for lengre hjelpeskript. Skills er hvordan en generisk kropp blir en spesialist uten å blåse opp hjernen.</p><h2>Minne: <code>memory/</code></h2><p>Dette er agentens egen kladdeblokk — filer den leser og skriver med sine vanlige verktøy mens den jobber. For Expense Buddy er det <code>expenses.json</code> og <code>facts.json</code>. Start dem tomme:</p><pre><code class="language-bash">mkdir -p ~/agents/expense-buddy/memory
echo '[]' &gt; ~/agents/expense-buddy/memory/expenses.json
echo '{}' &gt; ~/agents/expense-buddy/memory/facts.json
</code></pre><p>Fordi <code>AGENTS.md</code> fortalte agenten at disse filene finnes og hva de er til for, leser og oppdaterer den dem på egen hånd. (Elyra holder også sitt eget minne på øktnivå her automatisk — men agentens arbeidsdata er bare filer den eier.)</p><h2>Økter: <code>sessions/</code></h2><p>Denne lager du ikke — Elyra gjør det. Hver samtale lagres her som et checkpoint, og det er det som driver <code>/rewind</code> (rull tilbake både chatten <em>og</em> filene) og <code>--continue</code> (plukk opp der du slapp). Det er agentens episodiske minne, og det kommer gratis.</p><h2>Steg 4: Start agenten din</h2><p>Alt er på plass. Gå inn i hjem-mappa og start:</p><pre><code class="language-bash">cd ~/agents/expense-buddy
npx @elyracode/coding-agent
</code></pre><p>Fordi mappa er både arbeidskatalog og det konfigurerte agent-hjemmet, laster Elyra hjernen (<code>AGENTS.md</code>), standardmodellen (<code>settings.json</code>) og evnene (<code>skills/</code>) på én gang. Snakk så med den:</p><pre><code class="language-text">&gt; Jeg brukte 240 kr på dagligvarer i dag og 95 på lunsj.

  Leser memory/expenses.json...
  Legger til 2 oppføringer (dagligvarer 240, restaurant 95)
  Lagret. Du er på 240/4000 på dagligvarer og 95/1500 på restaurant denne måneden.

&gt; Send meg en oppsummering av denne ukas forbruk.

  Matcher skill: send-email
  Leser memory/expenses.json...
  Setter sammen oppsummering... sender til deg@example.com
  Ferdig. Sendte "Ditt ukentlige forbruk" med oversikten.
</code></pre><p>Kroppen leste og skrev filer, hjernen fortalte den hvor og hvordan, og en skill ga den en evne den ikke ble født med. Det er en komplett agent.</p><h2>Oppsummering</h2><p>Du gikk fra en tom mappe til en fungerende agent med fem bevegelige deler:</p><p>Del Fil(er) Rolle Kropp Elyra selv Løkken som gjør jobben Hjerne <code>AGENTS.md</code>, <code>brain/brain.md</code> Hvem den er, hva den vet Config <code>settings.json</code> Standard modell og leverandør Evner <code>skills/*/SKILL.md</code> Spesialiserte skills ved behov Minne <code>memory/</code>, <code>sessions/</code> Dataene dens og historikken</p><p>Og hele oppsettet er bare:</p><pre><code class="language-bash">npm install -g @elyracode/coding-agent           # installer kroppen
export ELYRA_CODING_AGENT_DIR=~/agents/my-agent  # pek på hjemmet
cd ~/agents/my-agent &amp;&amp; elyra                    # vekk den
</code></pre><p>Intet rammeverk, intet bygg, ingen innlåsing. Skriv en Markdown-hjerne, legg til en skill eller to, og du har en agent som er din — versjonert i en mappe, lett å lese, lett å dele.<br><br><a target="_blank" rel="noopener noreferrer nofollow" href="https://elyracode.com">Elyra</a></p>
