Kurs 01 · 6 kapitel

Hermes & agentsystem

Hur en autonom AI-agent faktiskt är uppbyggd — minne, verktyg, prioritering och gränsen mellan att agera och att fråga. Byggt kring mitt eget system, Hermes, som kör dygnet runt på min server.

Kapitel 01

Vad är en AI-agent?

En vanlig chattbot gör en sak: du skriver en fråga, den skriver ett svar, samtalet är slut. En AI-agent gör mer — den kan agera. Den kan söka på webben, läsa och skriva filer, köra kommandon, komma ihåg saker mellan samtal, och fortsätta arbeta på egen hand efter att du har lämnat rummet.

Skillnaden är egentligen tre saker som läggs till ovanpå en vanlig språkmodell:

  • Verktyg — förmågan att göra något i världen, inte bara svara i text (söka, köra kod, skicka ett meddelande).
  • Minne — information som överlever mellan enskilda samtal, så agenten inte börjar om från noll varje gång.
  • Initiativ — förmågan att själv avgöra nästa steg, ibland utan att vänta på en ny instruktion från dig.
Analogi

Tänk dig skillnaden mellan att fråga en kollega om ett svar (chattbot) och att ge samma kollega ett uppdrag de kan jobba vidare på i flera dagar, rapportera status, och fråga om hjälp bara när de fastnar (agent).

Hermes, systemet jag byggt och driftar själv, är ett konkret exempel på en agentplattform — inte bara en modell, utan allt runt omkring den som gör den till en agent: en gateway som lyssnar på meddelanden, ett minnessystem, en uppsättning verktyg, och en regelbok för vad den får göra själv och vad den måste fråga om.

Kapitel 02

Hermes arkitektur

Hermes körs som en gateway — en tjänst som är igång dygnet runt på min egen server (jag kallar den Titan) och lyssnar på meddelanden från flera håll samtidigt: iMessage, en kommandorads-klient, och interna schemalagda jobb.

DelRoll
GatewayTar emot meddelanden, håller sessioner, dirigerar till rätt modell och verktyg
ModellSjälva språkmodellen som resonerar — hos mig en blandning av en molnmodell och en egen lokal modell (Ornith-35B)
PluginsKopplingar utåt: meddelandeplattformar, webbsök, hemautomation
SkillsSparade arbetssätt — instruktioner agenten lär sig och återanvänder, istället för att uppfinna hjulet varje gång
Cron / schemaläggareStartar agent-jobb på tid ("varje morgon 09:00"), inte bara som svar på ett meddelande

Det viktiga är att ingen av delarna är hela agenten. Modellen är hjärnan, men gatewayen, minnet och verktygen är lika viktiga för att den ska kunna göra något användbart, inte bara säga något klokt.

I praktiken

Min egen Hermes-instans har en lokal modell (Ornith-35B) som kör på servern för integritet och kostnad, och kan falla tillbaka på en molnmodell för uppgifter som kräver mer kapacitet. Det är samma avvägning du möter i kurs 02 — moln kontra self-hosted.

Kapitel 03

Minne och kontext

En språkmodell har i sig inget minne mellan samtal — varje gång du börjar om är den en tom sida. Det en agentplattform löser är att spara relevant information utanför modellen och mata in den igen vid rätt tillfälle.

Hermes gör detta på flera nivåer:

  • Korttidsminne — det pågående samtalet, komprimerat när det blir för långt så att de senaste och viktigaste delarna prioriteras.
  • Användarprofil — stabila fakta om mig som inte förändras ofta (preferenser, pågående projekt).
  • Långtidsminne — en sökbar minnesbank (jag använder ett system som heter Hindsight) där agenten kan spara och senare hämta fram specifika fakta den lärt sig, ungefär som att slå upp i ett register istället för att komma ihåg allt utantill.
Vanligt missförstånd

Ett större minne är inte samma sak som bättre minne. En modell som får för mycket irrelevant historik blandad in i varje fråga svarar ofta sämre, inte bättre — det kallas ibland "kontext-brus". Bra agentdesign handlar om att välja vad som ska minnas, inte att minnas allt.

Kapitel 04

Verktyg och handling

Ett "verktyg" i agent-sammanhang är en specifik funktion modellen kan välja att anropa — till exempel "sök på webben", "läs den här filen" eller "kör det här kommandot". Modellen skriver inte koden för verktyget; den bestämmer när och med vilka argument ett befintligt verktyg ska användas, och systemet runt omkring utför det.

I Hermes finns verktyg för bland annat webbsökning (via en egen, privat sökmotor), filhantering, terminalkommandon och integrationer mot tredjepartstjänster via en öppen standard som heter MCP (Model Context Protocol) — ett sätt att koppla in nya verktyg utan att bygga om agentens kärna varje gång.

Konkret exempel

Min bakgrundsagent Ornith har ett litet, medvetet begränsat verktygsset: köra skalkommandon, läsa filer, skriva filer. Med bara de tre kan den ändå utföra riktiga jobb — inspektera ett system, felsöka, skapa en Git-branch och öppna en pull request — steg för steg, ett verktygsanrop i taget.

Kapitel 05

Autonomi och säkerhet

Ju mer en agent får göra själv, desto viktigare blir frågan: vad händer om den gör fel? Bra agentdesign handlar minst lika mycket om begränsningar som om förmågor.

Några principer jag använder i praktiken:

  • Neka-listor — kommandon som aldrig får köras, oavsett kontext (till exempel att radera hela filsystemet, stänga av servern, eller läsa hemliga nycklar).
  • Tidsgränser — varje enskilt kommando får max köra en begränsad tid, så en agent aldrig kan fastna eller dra iväg okontrollerat.
  • Iterationstak — en agent som arbetar autonomt får ett maxantal steg innan den måste stanna och rapportera, istället för att kunna loopa i evighet.
  • Prioritet utan avbrott — mina egna instruktioner till agenten hoppar före i kön, men avbryter aldrig ett pågående jobb halvvägs — ett jobb får alltid slutföras innan nästa börjar.
Varför det här spelar roll

En agent med full åtkomst till ett system men utan skyddsräcken är inte kraftfull — den är farlig. De bästa agentsystemen är inte de som kan göra mest, utan de som kan göras mest pålitligt, med tydliga gränser för vad som händer när modellen gör ett misstag.

Vad är syftet med en "neka-lista" i ett agentsystem?
Kapitel 06

Bygg din egen

Du behöver inte driva en egen server för att förstå eller experimentera med agentsystem. De flesta principerna i den här kursen går att testa i mindre skala:

  1. Börja med ett verktyg agenten får använda — inte tio. Förstå hur den väljer att använda det innan du lägger till fler.
  2. Ge den en tydlig, avgränsad uppgift med ett verifierbart slutresultat ("skapa filen X med innehåll Y"), inte en vag instruktion.
  3. Lägg alltid in en gräns — max antal steg, eller en tidsgräns — innan du låter den arbeta utan uppsikt.
  4. Låt den rapportera vad den gjorde, inte bara att den är "klar". Ett bra agentsystem lämnar alltid ett spår.

Vill du se principerna i den här kursen köra live, i verkligheten, på riktig hårdvara? Min bakgrundsagent Ornith arbetar dygnet runt just nu — se vad den gör.