Task-værktøjet og allowedTools
Opret underagenter, og tildel Task-funktionen
Task-værktøjet og allowedTools er en gratis Claude Architect-lektion på CoddyKit. Dette er lektion 3 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.
Hvorfor underagenter findes
En enkelt agent, der gør alt, har for meget at holde styr på: historik, ufærdige delopgaver og omfattende output fra værktøjer konkurrerer alle om opmærksomheden. Underagenter lader en koordinator opdele en stor opgave i fokuserede dele og give hver del til en ny arbejder.
Agent SDK stiller dette til rådighed gennem én funktion: værktøjet Task. Når en koordinator kalder Task, starter SDK'et en underagent med sin egen rene kontekst til at håndtere én delegeret arbejdsenhed og returnerer derefter resultatet til koordinatoren.
Dette er grundlaget for mønsteret med flere agenter og hub-og-ege: én koordinator i hubben og mange specialiserede underagenter på egerne.
Koordinatorens opgave
I et hub-og-ege-system udfører koordinatoren aldrig selv det detaljerede arbejde. Den har fem ansvarsområder:
- Opdel forespørgslen i uafhængige opgaver
- Deleger hver opgave til en underagent via
Task - Saml de returnerede resultater
- Route opfølgende arbejde ud fra det, der kom tilbage
- Håndtér fejl, herunder delvise resultater
For overhovedet at kunne delegere skal koordinatoren have tilladelse til at bruge værktøjet Task. Hvis Task mangler i dens allowedTools, kan den ikke oprette noget og vil forsøge at gøre alt alene.
Tildeling af Task-funktionen
Funktioner tildeles eksplicit. Koordinatorens liste over allowedTools (eller allowed_tools) skal indeholde "Task", for at delegering kan fungere. Det er en bevidst, kontrollerbar tildeling, ikke en automatisk standardindstilling.
Bemærk, at koordinatoren her kun får det, den har brug for til at koordinere: Task til at oprette arbejdere og Read til at undersøge input. Den får ikke Bash eller Write, fordi den ikke skal røre systemet direkte.
from claude_agent_sdk import ClaudeAgentOptions
coordinator = ClaudeAgentOptions(
system_prompt="You are a coordinator. Decompose the"
" request and delegate each part via Task.",
# Task = permission to spawn subagents
allowed_tools=["Task", "Read"],
)Definition af en underagent
Hver underagent beskrives af en AgentDefinition med fire dele:
name— en kort identifikator, som koordinatoren delegerer tildescription— hvornår denne agent skal bruges (sådan vælger koordinatoren den)system_prompt— rollen og instruktionerneallowed_tools— de værktøjer, denne arbejder må bruge
description er vigtigst: ligesom værktøjsbeskrivelser er den det primære signal ved udvælgelsen. En vag beskrivelse får koordinatoren til at delegere til den forkerte arbejder.
researcher = {
"name": "researcher",
"description": "Searches the web and summarizes"
" findings for a single topic. Use for"
" any open-ended fact-finding task.",
"system_prompt": "You research ONE topic and return"
" a cited summary.",
"allowed_tools": ["WebSearch", "Read"],
}Mindste privilegium pr. underagent
Hver underagents allowed_tools bør følge princippet om mindste privilegium: giv kun de værktøjer, rollen faktisk har brug for, og begræns dem til den rolle.
En arbejder, der laver research, får WebSearch og Read — aldrig Bash eller process_refund. En arbejder, der skriver filer, får Write og Edit. Smalle værktøjssæt forbedrer også pålideligheden af udvælgelsen: 4-5 værktøjer pr. agent er optimalt, mens 18 eller flere værktøjer gør det mindre pålideligt, om agenten vælger det rigtige.
Vigtigt: De fleste underagenter bør ikke selv få Task. Delegeringsmyndigheden hører til i hubben; hvis den gives bredt ud, opstår der ukontrolleret oprettelse af nye agenter.
Reglen om kontekstisolering
Dette er den mest afprøvede kendsgerning om underagenter: underagenter arver IKKE koordinatorens samtalehistorik.
Hver underagent starter med en ren kontekst. Den ser kun det, du skriver i dens prompt. Denne isolation er en fordel — den forhindrer, at én oppustet historik forurener alle arbejdere — men det betyder, at koordinatoren har ansvaret for, at al den kontekst, underagenten har brug for, sendes eksplicit i dens opgaveprompt.
Hvis en underagent har brug for en filsti, et kunde-id, en deadline eller tidligere resultater, skal koordinatoren inkludere dem i den delegerede instruktion. Det er den klassiske fejl at antage, at underagenten allerede ved det.
Videregiv kontekst eksplicit
Da intet arves, skal du skrive opgaveprompter, der kan stå alene. Saml alle de oplysninger, arbejderen har brug for, i den promptstreng, koordinatoren sender.
Sammenlign en dårlig delegering ("undersøg emnet") med en god, der angiver emnet, omfanget, det krævede outputformat og begrænsningerne. Underagenten har ingen anden kilde til sandheden.
# Coordinator builds a SELF-CONTAINED task prompt
task_prompt = (
"Research: 'EU AI Act enforcement timeline'.\n"
"Scope: official sources published after 2024-01.\n"
"Return: 3 bullet findings, each with a source URL"
" and publication date.\n"
"Do NOT cover non-EU regulation."
)
# This whole string is the subagent's ONLY context.Parallel delegering
Når koordinatoren udsender flere Task-kald i ét svar, kører underagenterne parallelt. Sådan spreder et researchsystem sig over flere emner på én gang i stedet for at undersøge dem ét efter ét.
Brug parallelle Tasks, når underopgaverne er uafhængige — for eksempel research af tre separate emner eller gennemgang af tre filer uden indbyrdes sammenhæng. Hvis opgave B har brug for outputtet fra opgave A, kan de ikke køres parallelt; koordinatoren skal vente på A og derefter delegere B i en senere tur.
# Three independent topics -> three Task calls in ONE
# response -> they execute concurrently.
topics = ["data residency", "audit rights", "breach SLA"]
# The model emits three tool_use blocks for Task,
# each with its own self-contained prompt, in a
# single assistant turn. The SDK runs them in parallel
# and returns all three results together.Sammenlægning og håndtering af delvise resultater
Når parallelle arbejdere vender tilbage, sammenlægger koordinatoren resultaterne. Virkelige systemer skal kunne tåle, at én arbejder fejler, uden at hele jobbet afbrydes.
Hvis to af tre researchere lykkes, mens én rammes af en adgangsfejl, bør koordinatoren beholde de to gode resultater, markere manglen og rapportere delvise resultater — ikke kassere hele kørslen. Skeln mellem en reel adgangsfejl (som måske kan forsøges igen) og et gyldigt tomt resultat (ingen match fundet). Håndter midlertidige fejl inde i underagenten, og eskalér kun dem, der ikke kan genoprettes, mens de delvise resultater føres videre.
Det er begge dele dårlige mønstre: at fjerne en fejlet arbejder uden at sige noget eller at afbryde alt på grund af én fejl.
Stop løkken korrekt
Delegering foregår inde i den agentiske løkke. Koordinatoren sender en forespørgsel, undersøger stop_reason, kører eventuelle Task-værktøjskald, føjer deres resultater til beskedhistorikken og gentager, indtil stop_reason er end_turn.
Du afslutter på baggrund af stopårsagen, aldrig ved at lede i modellens tekst efter ord som 'færdig' eller 'afsluttet'. Beslutninger om, hvilken underagent der skal oprettes som den næste, er modelstyrede. En grænse for antal iterationer er et sikkerhedsnet mod ukontrolleret oprettelse af agenter — ikke den primære måde at stoppe på.
while True:
resp = client.messages.create(**req)
if resp.stop_reason == "tool_use":
results = run_tools(resp) # may include Task
req["messages"] += [assistant(resp), user(results)]
continue
if resp.stop_reason == "end_turn":
break # terminate on stop_reason, not on textSæt det hele sammen
En korrekt opsætning med flere agenter har en genkendelig struktur:
- Koordinatorens
allowed_toolsindeholder"Task"(samt minimale værktøjer til inspektion). - Hver underagent har en præcis
description, en fokuseretsystem_promptog etallowed_toolsmed mindste privilegium på cirka 4-5 værktøjer. - Hver delegeret prompt kan stå alene, fordi ingen historik arves.
- Uafhængige opgaver sendes ud som parallelle
Task-kald; afhængige opgaver sættes i rækkefølge. - Koordinatoren sammenlægger resultater, tåler delvise fejl og stopper på
end_turn.
Få tildelingen af Task og reglen om eksplicit kontekst på plads, så falder resten af orkestreringen på plads.
agents = {"researcher": researcher, "writer": writer}
coordinator = ClaudeAgentOptions(
system_prompt="Decompose, delegate via Task, aggregate.",
allowed_tools=["Task", "Read"], # hub holds Task
agents=agents, # spokes, least privilege
)Hurtigt tjek
En researchkoordinator delegerer tre uafhængige emner til tre underagenter med én gruppe parallelle Task-kald. En underagent returnerer et resumé, der udelader en oplysning, som koordinatoren tidligere nævnte i sin egen samtale. Hvad er den mest sandsynlige arkitektoniske årsag?
Opsummering
Vigtige pointer til eksamen:
- Værktøjet
Taskopretter underagenter; koordinatorensallowed_toolsskal indeholde"Task", for at den kan delegere. - Arkitekturen er en hub og eger: koordinatoren opdeler, delegerer, sammenlægger, videresender og håndterer fejl.
- Underagenter arver ingen samtalehistorik — send al nødvendig kontekst eksplicit i hver opgaveprompt.
- En AgentDefinition = name, description, system_prompt, allowed_tools; description styrer udvælgelsen.
- Anvend mindste privilegium pr. underagent; sigt efter cirka 4-5 værktøjer, og behold
Taski hubben. - Flere
Task-kald i ét svar kører parallelt; sæt dem kun i rækkefølge, når de er afhængige. - Tål delvise resultater; stop på
end_turn, aldrig ved at fortolke tekst, og brug kun en grænse for iterationer som sikkerhedsnet.
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 “Task-værktøjet og allowedTools” gratis?
Ja — alle 3 lektioner i læringssporet Claude Architect, inklusive “Task-værktøjet og allowedTools”, 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 “Task-værktøjet og allowedTools”?
Opret underagenter, og tildel Task-funktionen 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 3 af 4.
Hvor lang tid tager lektionen “Task-værktøjet og allowedTools”?
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
- Byggeklodser i Agent SDK
- Definér en agent
- Task-værktøjet og allowedTools
- Princippet om mindst mulige privilegier