Multiagentsystem
Kunna bygga samarbetande agenter med roller och mäta om det slår en enda agent.
Förkunskaper
- FAgentarkitekturerkrävs
Intuition
Multiagent betyder flera LLM-instanser med olika roller och prompter som skickar arbete mellan sig: planerare, utförare, granskare, sammanställare.
Argumentet för: varje roll får en fokuserad prompt och egen kontext, granskaren ser arbetet med «nya ögon», och delarna kan köras parallellt.
Argumentet emot: varje överlämning sker i naturligt språk och tappar precision; kostnaden multipliceras; felsökningen blir svårare; och fördelarna kommer ofta från att uppgiften delades upp — inte från att flera modeller «samarbetar».
Regeln: bygg alltid enagent-varianten först och mät den. Multiagent måste bevisa att den är bättre nog att motivera 3–10× kostnaden.
Kod
from dataclasses import dataclass
@dataclass
class Roll:
namn: str
system: str
verktyg: list[str]
ROLLER = [
Roll("planerare", "Bryt ner uppgiften i 3–5 delmål. Utför inget själv.", []),
Roll("utforare", "Utför ETT delmål med verktygen. Rapportera resultat och osäkerhet.", ["sok", "las"]),
Roll("granskare", "Granska resultatet mot delmålet. Svara GODKÄNT eller lista brister.", []),
]
def multiagent(uppgift, llm, verktyg, max_rundor=3):
plan = llm.kor(ROLLER[0], uppgift)
resultat, logg = [], []
for delmal in plan["delmal"]:
for runda in range(max_rundor):
r = llm.kor(ROLLER[1], delmal, verktyg=verktyg, tidigare=resultat)
g = llm.kor(ROLLER[2], {"delmal": delmal, "resultat": r})
logg.append({"delmal": delmal["id"], "runda": runda, "granskning": g["status"]})
if g["status"] == "GODKÄNT":
resultat.append(r); break
delmal["feedback"] = g["brister"] # utföraren får konkret kritik
else:
resultat.append({**r, "osaker": True}) # gav upp efter max_rundor
return {"resultat": resultat, "logg": logg}
Mätningen som avgör om det var värt det — kör båda på samma evalsvit:
| lösningsgrad | tokens/uppgift | tid | |
|---|---|---|---|
| en agent (ReAct) | 0,71 | 18 k | 22 s |
| multiagent | 0,78 | 96 k | 71 s |
+7 procentenheter för 5,3× kostnaden. Om det är värt det beror på uppgiftens värde — men beslutet ska fattas på siffror, inte på att arkitekturen låter sofistikerad.
Behärskning innebär
- Bygger samarbetande agenter med roller
- Mäter om uppdelningen slår en enda agent
- Känner igen när kostnaden inte motiveras
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- Anthropic — Building effective agents — fri läsning
- arXiv — AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation — arXiv (öppen åtkomst; licens per artikel)