Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Dynamiska arbetsflöden är en funktion i Azure Functions-hostade färdigheter. De låter en hostad färdighet starta ett hållbart, flerstegsarbetsflöde av verktygsanrop och väntetider utan att du behöver skriva Durable Functions-orkestreringskod.
För den mest aktuella och omfattande runtime-dokumentationen, se Dynamiska arbetsflöden i Azure Functions Agents Runtime.
Important
Azure Functions värdbaserade kunskaper är för närvarande i förhandsversion. Funktioner, konfigurationsnamn och anslutningsprogram som stöds kan ändras innan allmän tillgänglighet.
Istället för att anropa verktyg ett i taget genom konversationsloopen, låter dynamiska arbetsflöden AI-modellen generera en strukturerad plan över verktygssamtal. Körningsmiljön kör planen som en Durable Functions-orkestrering som kan förgrena sig, vänta, överleva omstarter och kan övervakas, medan endast slutresultatet hamnar i den hostade skillens kontext.
Varför dynamiska arbetsflöden
Det finns fyra grundläggande begränsningar för hostade verktyg för att anropa färdigheter direkt i modellloopen:
- Tokenkostnad. Varje mellanliggande verktygsresultat läggs till modellens kontext. En flerstegsplan kan spendera tokens på rådata som modellen bara behöver sammanfatta.
- Latens. Varje direkt verktygssamtal är en ny modellrundtur. Långvarigt eller förgrenat arbete körs seriellt genom modellloopen i stället för att köra oberoende arbetsuppgifter parallellt.
- Hållbarhet. Inline-arbete kan gå förlorat om arbetaren startar om, och det finns inget förstklassigt sätt att sova på en timer eller vänta på en långvarig extern signal.
- Observerbarhet. Operatörer kan inte enkelt lista, inspektera eller ställa in arbete ombord utan att gå igenom chattsessionen.
Dynamiska arbetsflöden åtgärdar dessa begränsningar genom att flytta planutförandet till en hållbar orkestrering. Den värdbaserade kompetensen startar arbetsflödet, tar emot ett arbetsflödes-ID och kan avsluta sin tur. Orkestreraren kör verktyg som är säkra för arbetsflöden och beständiga timers. Chattgränssnittet och driftsgränssnitten kan följa arbetsflödet oberoende av varandra, och den värdbaserade färdigheten återupptas när arbetsflödet är slutfört.
Hur dynamiska arbetsflöden relaterar till programmatisk verktygskallning
Dynamiska arbetsflöden liknar i form Anthropics mönster för programmässiga verktygsanrop. I det mönstret skapar modellen en strukturerad plan för verktygsanrop, och körmiljön exekverar den utanför den normala chattloopen där verktyg anropas ett i taget. Denna metod kan minska tokenanvändning och latens eftersom mellanliggande resultat ligger utanför modellkontexten, och en modellförfattad plan kan representera flera verktygsanrop.
Dynamiska arbetsflöden applicerar det mönstret på Azure Functions och lägger till ett hållbarhets- och operationslager:
| Capability | Programinriktat verktygsanropsmönster | Dynamiska arbetsflöden |
|---|---|---|
| Planformade verktygsanrop | Ja | Ja |
| Lägre tokenanvändning och latens för multiverktygsarbete | Ja | Ja |
| Hållbar genomförande vid arbetsomstarter | No | Ja, genom att använda Durable Functions |
| Beständiga vänteperioder och timers | No | Ja |
| Lista utanför loopen, inspektera, avbryt och avsluta | No | Ja |
| Operatörens synlighet i Durable Task Scheduler | No | Ja, när konfigurerat |
När man ska använda dynamiska arbetsflöden
Använd dynamiska arbetsflöden när en hostad färdighet behöver utföra arbete som sträcker sig längre än en enda chattur eller ett direkt verktygsanrop. Bra alternativ inkluderar:
- Fan-out/fan-in-mönster som samlar bevis från flera oberoende källor parallellt, såsom loggar, mätvärden och distributionshistorik.
- Köra isolerade specialisthostade färdigheter parallellt och kombinera deras svar.
- Att köra en flerstegsplan där senare steg beror på tidigare verktygsresultat.
- Att vänta på en hållbar timer utan att hålla en arbetare sysselsatt.
- Att hålla stora mellanresultat utanför den värdsatta färdighetens konversationskontext tills ett slutresultat eller en sammanfattning finns tillgänglig.
- Spårning och styrning av långvarigt arbete utanför modellloopen.
Tip
Om arbetet kan slutföras i ett enda verktygsanrop eller kräver omedelbar användarrespons vid varje steg, använd direkt verktygsanrop istället för ett dynamiskt arbetsflöde.
Hur ett arbetsflöde fungerar
Följande diagram visar huvudkomponenterna i den dynamiska arbetsflödesarkitekturen:
Ett dynamiskt arbetsflöde körs genom denna sekvens:
- En händelse triggar den hostade färdigheten, eller en användare skickar en förfrågan via chattgränssnittet.
- Den hostade färdigheten anropar
start_workflowmed en arbetsflödesplan genererad av AI-modellen. - Körmiljön startar planen som en Durable Functions-orkestrering och returnerar omedelbart ett ID för arbetsflödet.
- Orkestratorn kör färdiga verktygsaktiviteter parallellt och skapar beständiga timers för
waitsteg. Den kan också delegera arbete till subagenthostade färdigheter, som alla körs i en isolerad, tillståndslös session. - När arbetsflödet når ett sluttillstånd meddelar körtiden den värdbaserade färdigheten, som anropar
get_workflow_statusoch sammanfattar slutresultatet.
När den hostade färdigheten använder det inbyggda chattgränssnittet, pollar UI:t även arbetsflödesstatus och visar ett framstegskort.
Mellanresultat lagras i arbetsflödeslagret. Den hostade färdigheten ser bara arbetsflödes-ID:t vid starttillfället och slutstatusen när den hämtar resultatet. Den värdbaserade färdigheten genomsöker inte medan arbetsflödet körs.
Verktyg för arbetsflödeshantering
När du aktiverar arbetsflöden lägger körmiljön till dessa verktyg i den värdbaserade färdigheten:
| Tool | Purpose |
|---|---|
start_workflow |
Startar en validerad arbetsflödesplan och returnerar omedelbart ett arbetsflödes-ID. |
get_workflow_status |
Får aktuell status och slutresultat för ett arbetsflöde. |
list_workflows |
Listar arbetsflöden som ägs av den aktuella sessionen. |
cancel_workflow |
Begär samarbetsvillig avbokning. |
terminate_workflow |
Avslutar arbetsflödesinstansen abrupt. |
Den värdbaserade färdigheten anropar dessa verktyg. Användare anropar dem inte direkt i applikationskoden.
Arbetsflödessubagenter
En arbetsflödesaktiverad hostad färdighet kan ge åtkomst till specialiserade hostade färdigheter i sin workflows.subagents konfiguration. Varje specialist är ytterligare en .agent.md-fil i samma värdbaserade kompetensapp.
Följande frontuppgift gör att koordinatorn kan använda två specialister:
---
name: PR Status Portfolio Coordinator
description: Reviews pull requests and produces an actionable report.
workflows:
enabled: true
subagents:
- agent: pr_status_analyst
when: Review one pull request and summarize its current status
- agent: actionable_report_writer
when: Combine pull-request summaries into an actionable portfolio report
---
Värdet agent är specialistens slugg för filnamnet. Till exempel pr_status_analyst syftar på pr_status_analyst.agent.md. Det valfria when värdet hjälper modellen att avgöra när specialisten ska användas. Runtimen validerar varje specialist mot detta explicita beviljande innan arbetsflödet schemalägs.
Modellen kan generera en sub_agent arbetsflödesuppgift med id, agent, och en självständig task. En subagentuppgift kan också använda depends_on, when, och for_each.
{
"id": "analyze_pr",
"type": "sub_agent",
"agent": "pr_status_analyst",
"task": "Review the supplied pull request and summarize its current status."
}
Varje subagentanrop är tillståndslös och isolerad:
- Specialisten använder sin egen modell, instruktioner, verktyg, MCP-servrar, färdigheter och timeout.
- Specialisten får inte koordinatorns samtalshistorik, sandlåda, arbetsflödeshanteringsverktyg eller delegeringsverktyg för chatttid.
- Ett specialistfel eller timeout misslyckas med det ursprungliga arbetsflödet.
- Specialiserade verktyg bör tåla omkörning eftersom ett arbetarfel kan göra att en subagent körs mer än en gång.
För ett end-to-end-exempel som kör parallella PR-analytikeruppgifter och kombinerar deras sammanfattningar till en rapport, se arbetsflödesunderagentens exempel.
Lagringsserverdel
Dynamiska arbetsflöden använder Durable Functions internt och stödjer samma lagringsbackends. Som standard använder arbetsflöden Azure Storage-kontot som din funktionsapp redan har. För produktionsarbetsbelastningar kan du byta till Durable Task Scheduler (DTS), som tillhandahåller en instrumentpanel med uppgiftsstatus per instans, omprövningshistorik och kontroller för arbete under flygning. Instruktionsguiden täcker båda alternativen.
Considerations
Tänk på dessa nuvarande begränsningar när du använder dynamiska arbetsflöden:
- Arbetsflödessäkra verktygshanterare måste vara synkrona och returnera JSON-serialiserbara värden.
- AI-modellen genererar arbetsflödesplanen under körning. Du kan inte definiera statiska arbetsflödesmallar i YAML eller Markdown.
- Du kan inte konfigurera policyer för återförsök per uppgift och timeout.
- Hantering av stora mängder utdata och integrering med MCP Tasks är inte tillgängliga.
Nästa steg
Konfigurera arbetsflödessäkra verktyg och kör ditt arbetsflöde lokalt: