Koordinatorens ansvar
Nedbryd, deleger, aggregér, rout og håndtér fejl
Koordinatorens ansvar er en gratis Claude Architect-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Claude Architect, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Claude Architect-kurset indeholder 4 lektioner i alt.
Koordinatorens opgave
I et multiagentsystem følger Claudes orkestrering en hub-og-ege-struktur: én koordinator i hubben og flere underagenter på grenene. Koordinatoren udfører aldrig selv det dybdegående arbejde — den styrer arbejdet.
En koordinator har præcis fem ansvarsområder, som du skal mestre til eksamen:
- Opdel — del en opgave op i delopgaver
- Deleger — giv hver delopgave til en underagent
- Saml — flet underagenternes resultater
- Dirigér — send arbejdet til den rigtige specialist
- Håndtér fejl — genopret eller eskalér fejl
Denne lektion gennemgår hvert område samt de mønstre og antimønstre, der adskiller et svar, der består, fra et plausibelt distraktorsvar.
Underagenter starter med et tomt udgangspunkt
Den mest testede kendsgerning om koordinatorer er: Underagenter nedarver IKKE koordinatorens samtalehistorik. Hver underagent har en ny Claude-kontekst.
Modellen gemmer ingen tilstand mellem ture eller på tværs af agenter. Alt, hvad en underagent skal bruge for at udføre sit arbejde — brugerens mål, tidligere fund, begrænsninger og id'er — skal videregives eksplicit i underagentens prompt.
At glemme dette er en klassisk fejl: Koordinatoren 'kender' kunde-id'et eller undersøgelsesspørgsmålet, antager at underagenten også gør det, og underagenten opfinder oplysninger eller går i stå. Kontekstisolering er en funktion (den holder fokus snævert), men den placerer ansvaret for at videregive kontekst fuldt ud hos koordinatoren.
Videregiv kontekst eksplicit
Fordi intet nedarves, opbygger koordinatoren hver underagent-prompt som en selvstændig briefing. Bemærk, hvordan målet, begrænsningerne og den specifikke del af arbejdet alle er beskrevet tydeligt — underagenten kunne køre på en maskine, der aldrig havde set samtalen.
Det er også derfor, at en AgentDefinition indeholder en system_prompt og allowed_tools efter princippet om mindst mulige privilegier: Hver underagent er afgrænset til sin rolle og får kun det, den har brug for.
from claude_agent_sdk import AgentDefinition
researcher = AgentDefinition(
name="researcher",
description="Researches one sub-question and returns cited findings.",
system_prompt=(
"You research a SINGLE sub-question. "
"You have no prior context except this prompt. "
"Return findings with claim->source (URL, quote, date)."
),
allowed_tools=["WebSearch", "WebFetch"], # least privilege
)
# The coordinator injects ALL needed context per call:
subagent_prompt = (
f"Overall goal: {user_goal}\n"
f"Your sub-question: {sub_question}\n"
f"Constraints: only sources newer than 2023."
)Opdel: Fast eller adaptiv
Opdeling handler om at vælge, hvordan arbejdet skal opdeles. Der er to strategier, og eksamen forventer, at du matcher strategien med situationen:
- Fast arbejdsgang / promptkædning — til et kendt, sekventielt sæt trin (f.eks. udtræk -> valider -> formatér). Strukturen besluttes på forhånd.
- Adaptiv opdeling — til åbne undersøgelser, hvor du ikke kan kende delopgaverne, før du går i gang (f.eks. et undersøgelsesspørgsmål, der forgrener sig, efterhånden som du lærer mere).
Et andet opdelingsmønster, der er værd at kende, er kodegennemgang i flere gennemløb. Udfør først et lokalt gennemløb pr. fil og derefter et separat integrationsgennemløb på tværs af filer. En kodegennemgang af flere filer i ét gennemløb spreder modellens opmærksomhed og overser både lokale fejl og integrationsproblemer.
Deleger: Parallelt arbejde i ét svar
Koordinatoren delegerer ved at udstede Task-kald. Den afgørende ydelsesegenskab er: Flere Task-kald i ét svar kører parallelt.
For uafhængige delopgaver — tre undersøgelsesspørgsmål eller tre filer, der skal gennemgås — skal du udsende alle Task-kald samlet i stedet for ét pr. tur. Du får samtidighed uden ekstra arbejde.
Eksamen tester to forudsætninger: Koordinatorens allowedTools skal indeholde "Task", og hver underagent skal modtage hele sin kontekst eksplicit (Scene 2).
# Coordinator delegating THREE independent sub-questions at once.
# Emitting them in a single response runs them in parallel.
tasks = [
{"subagent": "researcher", "prompt": brief(goal, q)}
for q in [
"What are the market size figures?",
"Who are the top 3 competitors?",
"What regulatory constraints apply?",
]
]
# allowedTools on the coordinator MUST include "Task"
coordinator_allowed_tools = ["Task", "Read", "Write"]
# Each prompt is fully self-contained — no inherited history.Dirigér: Beskrivelser vælger specialisten
At dirigere betyder at sende hver delopgave til den rigtige underagent. Claude vælger primært ud fra agentens og værktøjets beskrivelser — ikke navnene.
En god beskrivelse angiver formålet, hvad den returnerer, inputformater med eksempler og grænserne for, hvornår den kan anvendes. Overlappende eller tvetydige beskrivelser fører til fejldirigering: Hvis to underagenter lyder, som om de begge håndterer 'data', kan koordinatoren vælge forkert.
Afgræns hver underagent snævert. Hold dig til 4-5 værktøjer pr. agent som det optimale punkt; 18+ værktøjer forringer pålideligheden af valget. Værktøjer efter princippet om mindst mulige privilegier handler ikke kun om sikkerhed — de gør dirigeringen mere præcis.
billing_agent = AgentDefinition(
name="billing",
# Sharp, non-overlapping description -> correct routing
description=(
"Handles refunds and invoice questions ONLY. "
"Input: order_id (str) + verified customer_id. "
"Returns: refund status or invoice PDF link. "
"Does NOT handle shipping or account changes."
),
system_prompt="...",
allowed_tools=["lookup_order", "process_refund"], # 2 tools, scoped
)Saml: Flet med kildegrundlag
Når underagenterne vender tilbage, samler koordinatoren deres output i ét sammenhængende svar. Det er mere end sammenkædning.
- Bevar kildegrundlaget: Hver påstand skal kunne knyttes til sin kilde (URL, dokumentnavn, citat og udgivelsesdato).
- Annotér konflikter i stedet for stiltiende at vælge ét tal — og husk, at datoer ofte løser tilsyneladende modsigelser.
- Gengiv efter indholdstype: tabeller til økonomiske oplysninger, prosa til nyheder og lister til tekniske fund.
Samlingen er også det sted, hvor du bevarer delvise resultater: Hvis én underagent mislykkes, fletter koordinatoren stadig det sammen, der lykkedes, og markerer tydeligt, hvad der mangler.
Håndtér fejl: Genopret lokalt, eskalér opad
Det femte ansvarsområde er det, der får skrøbelige systemer til at bryde sammen. Reglen er:
- Genopret forbigående fejl lokalt inde i underagenten (f.eks. en timeout — prøv igen dér).
- Eskalér fejl, der ikke kan genoprettes, opad med delvise resultater, så koordinatoren kan dirigere uden om dem.
To antimønstre, du skal undgå: at undertrykke en fejl i stilhed (koordinatoren får det aldrig at vide) og at afbryde hele arbejdsgangen, fordi én underagent mislykkedes. Én fejlende gren bør ikke få hubben til at bryde sammen.
Det er afgørende at skelne mellem en adgangsFEJL (som måske kan forsøges igen) og et gyldigt TOMT resultat (ingen match — slet ikke en fejl).
Strukturerede fejl muliggør dirigering
Koordinatoren kan kun dirigere uden om en fejl, hvis fejlen fortæller den tilstrækkeligt. En generisk "Operation failed" blokerer genoprettelse. En struktureret fejl muliggør intelligent dirigering.
Struktureret fejlkontekst omfatter fejltypen eller -kategorien, om den kan forsøges igen, den forespørgsel der blev forsøgt, eventuelle delvise resultater og alternativer. Med disse oplysninger beslutter koordinatoren, om den skal prøve igen, prøve et andet værktøj, flette delvise resultater eller eskalere.
# A subagent returning a STRUCTURED error the coordinator can act on:
error_result = {
"isError": True,
"errorCategory": "transient", # transient | validation | business | permission
"isRetryable": True,
"message": "Search API timed out after 30s",
"attempted_query": "market size fintech 2024",
"partial_results": [{"source": "...", "claim": "..."}],
}
# Coordinator logic:
if error_result["isError"] and error_result["isRetryable"]:
retry(error_result["attempted_query"])
else:
escalate_with(error_result["partial_results"])Løkken stopper ved stop_reason
Koordinatoren kører en agentisk løkke: Send forespørgslen, undersøg stop_reason, og hvis den er tool_use, så kør værktøjerne (herunder Task-delegeringer), tilføj resultaterne til historikken, og gentag indtil end_turn.
Afslut ved stop_reason — aldrig ved at analysere modellens tekst for ord som 'færdig' eller 'afsluttet'. Beslutninger om, hvornår arbejdet er fuldført, er modelstyrede. En iterationsgrænse er et sikkerhedsnet, ikke den primære stopmekanisme.
Brug fastkodet styring til garantier, som du skal håndhæve; lad ellers modellen bestemme forløbet.
while True:
resp = client.messages.create(
model="claude-opus-4-1",
max_tokens=2048,
messages=history, # FULL history every turn — model keeps no state
tools=tools,
)
if resp.stop_reason == "tool_use":
results = run_tools(resp) # may include parallel Task calls
history.append(assistant(resp))
history.append(tool_results(results))
continue
if resp.stop_reason == "end_turn":
break # stop on stop_reason, not on text
# iteration cap = safety net only, checked separatelyHvornår koordinatoren skal eskalere
Nogle fejl er ikke koordinatorens opgave at løse — de hører under et menneske. Gode udløsere for eskalering er:
- En udtrykkelig anmodning fra et menneske — eskalér med det samme.
- Politikhuller, som agenten ikke har en regel for.
- Manglende fremskridt efter rimelige forsøg.
- Overskridelse af tærskler (f.eks. en tilbagebetaling over en grænse).
Dårlige udløsere, som eksamen vil tilbyde som distraktorer: sentimentanalyse, modellens egen selvvurderede sikkerhed (1-10) eller klassifikatorer, der ikke er trænet til formålet. Og når en forretningsregel har økonomiske, juridiske eller sikkerhedsmæssige konsekvenser, skal du håndhæve den med et deterministisk hook, ikke med vejledning i en prompt — hooks er 100 % deterministiske, mens prompts kun er cirka 90 % sandsynlige.
Hurtigt tjek: Delegering af en delopgave
En undersøgelseskoordinator delegerer et underspørgsmål til en underagent, der fungerer som undersøger. Koordinatoren har allerede drøftet brugerens mål og indsamlet tidligere fund i sin egen samtale. Hvad SKAL koordinatoren gøre, for at underagenten kan lykkes?
Opsamling: Koordinatoren i fem trin
Du kan nu tænke på en koordinator som en arkitekt:
- Dekomponér — brug faste pipelines til kendte sekvenser og adaptive pipelines til åbent arbejde; brug flere gennemløb (lokalt og derefter på tværs af filer) til kodereview.
- Uddelegér — udsend flere Task-kald i ét svar for at køre dem parallelt; medtag 'Task' i allowedTools.
- Dirigér — præcise beskrivelser uden overlap vælger den rigtige specialist; brug 4-5 værktøjer pr. agent.
- Aggregér — flet resultater med oprindelsesoplysninger, annotér konflikter, og bevar delvise resultater.
- Håndtér fejl — genopret lokalt efter midlertidige fejl; eskalér fejl, der ikke kan genoprettes fra, med struktureret kontekst og delvise resultater; undertryk eller afbryd aldrig hele arbejdsgangen i stilhed.
Frem for alt: underagenter arver ingen historik — videregiv konteksten eksplicit, og stop ved stop_reason, aldrig ved fortolket tekst. Håndhæv regler for økonomi, jura og sikkerhed med deterministiske hooks. Når du mestrer dette, har du styr på orkestreringsscenarierne.
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 26
- Lektioner
- 104
Ofte stillede spørgsmål
Er lektionen “Koordinatorens ansvar” gratis?
Ja — alle 3 lektioner i læringssporet Claude Architect, inklusive “Koordinatorens ansvar”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Claude Architect-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Koordinatorens ansvar”?
Nedbryd, deleger, aggregér, rout og håndtér fejl Du øver dig i Claude Architect med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Claude Architect?
Der kræves ingen tidligere erfaring. Claude Architect på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Koordinatorens ansvar”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Claude Architect-lektion?
Ja. Alle Claude Architect-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Hub-and-spoke-koordinatortopologi
- Koordinatorens ansvar
- Underagenter arver ikke historikken
- Parallel oprettelse af underagenter