Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A háttérügynökök lehetővé teszik, hogy a szülőügynök független feladatokat delegáljon nevesített gyermekügynököknek. Minden tevékenység párhuzamosan fut a saját gyermekügynök-munkamenetében, míg a szülő megtart egy tevékenységazonosítót, amellyel várakozhat, lekérheti az eredményeket, folytathatja a munkát, vagy felengedheti a feladatot.
Important
A háttérügynökök kísérletiek.
A háttérügynökök eltérnek a háttérválaszoktól. A háttérválasz egy szolgáltatói kérést jelöl, amelyet az alkalmazás lekérdez vagy folytat. Egy háttérügynök-feladat meghív egy másik Ügynök-keretrendszer-ügynököt, és később a szülőnek adja vissza az ügynök szövegét.
Háttérügynökök manuális beállítása
Minden gyermekügynöknek egyedi névvel kell rendelkeznie. A gyermekügynököknek célzott utasításokat és csak a delegált szerepkörükhöz szükséges eszközöket kell megadniuk.
Importálja BackgroundAgentsProvider és adja hozzá egy normál ügynökhöz a következővel ChatClientAgentOptions.AIContextProviders:
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
var backgroundProvider = new BackgroundAgentsProvider(
[webSearchAgent, codeAnalysisAgent]);
AIAgent parentAgent = chatClient.AsAIAgent(new ChatClientAgentOptions
{
Name = "research-coordinator",
AIContextProviders = [backgroundProvider],
});
AgentSession session = await parentAgent.CreateSessionAsync();
BackgroundAgentsProviderOptions testre szabja a szolgáltató utasításait és az ügynöklista formázását.
from agent_framework import Agent, BackgroundAgentsProvider
background_provider = BackgroundAgentsProvider(
[web_search_agent, code_analysis_agent]
)
parent_agent = Agent(
client=client,
name="research-coordinator",
context_providers=[background_provider],
)
session = parent_agent.create_session()
Adja meg instructions= az BackgroundAgentsProvider utasításokat a helyére. Adja meg {background_agents} , hogy hol jelenjen meg a formázott gyermekügynök-lista.
Megjegyzés:
Az ezen a lapon ismertetett csomagolt háttérügynök-szolgáltató jelenleg nem érhető el a Go-ban.
Tevékenység életciklusa
A szolgáltató ugyanazokat a modellalapú eszközöket adja hozzá .NET és Python:
| Eszköz | Életciklus-művelet |
|---|---|
background_agents_start_task |
Egy elnevezett ügynök letiltását megszüntető tevékenységet indíthat el, és visszaadja az egész tevékenységazonosítóját. |
background_agents_wait_for_first_completion |
Várjon, amíg a megadott készlet első feladata eléri a terminál állapotát. |
background_agents_get_task_results |
Kész szöveget, hibaüzenetet vagy aktuális állapotot ad vissza. |
background_agents_get_all_tasks |
Azonosítók, állapotok, ügynöknevek és leírások listázása. |
background_agents_continue_task |
Futtassa a nyomon követési bemenetet a meglévő gyermek munkamenetben, miután egy feladat befejeződött vagy meghiúsult. |
background_agents_clear_completed_task |
Távolítsa el a terminálfeladatot, és engedje fel a gyermek munkamenetét. |
Egy tipikus szülő-ügynök szekvencia a következő:
- Várakozás előtt indítsa el az összes független tevékenységet, így a tevékenységek párhuzamosan futnak.
- Várja meg az első befejezést, kérje le az eredményt, és ismételje meg, amíg nem futnak a tevékenységek.
- Ha az utómunkának szüksége van a meglévő beszélgetési környezetére, folytassa a befejezett vagy sikertelen feladatokat.
- Törölje a terminálfeladatokat az eredmények lekérése után, hacsak nem folytatja őket.
A tevékenység állapota running, completedfailedvagy lost. Egy feladat elveszik, ha a folyamatban lévő feladatkezelője vagy a gyermek munkamenete nem érhető el, például a folyamat újraindítása vagy a munkamenet visszaállítása után. A szerializálható tevékenység metaadatai megmaradhatnak a szülő munkamenetben, de a repülés közbeni munka és a gyermekmunkamenet-kezelők nem élik túl ezt a határt.
Nincs lemondási eszköz a szolgáltatóban. A feladatok futtatása a törlés előtt érje el a terminálállapotot.
Használja újra ugyanazt a szülő munkamenetet a különböző fordulókban. Minden tevékenység kap egy dedikált gyermek munkamenetet. A terminálfeladat folytatása újra felhasználja a gyermek munkamenetet; törlésével eltávolítja a feladat metaadatait, és felszabadítja a gyermek-munkamenet leírót.
A rendszer a feladat eredményeit szövegként adja vissza a szülőnek. A szolgáltató nem proxyz egy gyermek strukturált eszköz-jóváhagyási kérését a szülőn keresztül, ezért úgy konfigurálja a gyermekügynököket, hogy interaktív jóváhagyás nélkül végezzék el a delegált munkát, vagy kezeljék a jóváhagyásukat a gyermekügynök-gazdagépen belül.
Automatikus várakozás hozzáadása manuálisan
A manuálisan összeállított szülő körbefuttatása a következővel LoopAgent: .
BackgroundTaskCompletionLoopEvaluator csak akkor folytatódik, ha egy tevékenység állapotban Running marad:
AIAgent loopingParent = new LoopAgent(
parentAgent,
new BackgroundTaskCompletionLoopEvaluator(),
new LoopAgentOptions { MaxIterations = 10 });
A kiértékelő leáll a befejezett, a sikertelen és az elveszett tevékenységeknél.
Adja hozzá AgentLoopMiddleware a normál szülőhöz, és párosítsa a háttérfeladat-predikátumot a következő üzenet segédjével:
from agent_framework import (
Agent,
AgentLoopMiddleware,
background_tasks_running,
background_tasks_running_message,
)
parent_agent = Agent(
client=client,
context_providers=[background_provider],
middleware=[
AgentLoopMiddleware(
background_tasks_running(),
next_message=background_tasks_running_message,
max_iterations=10,
)
],
)
A predikátum csak akkor folytatódik, ha a megőrzött tevékenység állapota továbbra is futó tevékenységet jelent.
Az automatikus háttér-tevékenységhurok integrációja jelenleg nem érhető el a Go-ban.
Háttérügynökök használata a Hámügynökkel
Ezt a beállítást akkor használja, ha a Hámügynök alapértelmezett tervezési, memória-, jóváhagyási és megfigyelhetőségi folyamatára is szüksége van.
HarnessAgentOptions.BackgroundAgentsbeállítása. Adja hozzá a befejezési kiértékelőt, amikor a szülőnek futnia kell, amíg a delegált munka már nem fut:
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
var options = new HarnessAgentOptions
{
Name = "research-coordinator",
BackgroundAgents = [webSearchAgent, codeAnalysisAgent],
LoopEvaluators = [new BackgroundTaskCompletionLoopEvaluator()],
LoopAgentOptions = new LoopAgentOptions { MaxIterations = 10 },
};
HarnessAgent parentAgent = chatClient.AsHarnessAgent(options);
// Equivalent construction: new HarnessAgent(chatClient, options)
AgentSession session = await parentAgent.CreateSessionAsync();
A szolgáltatói utasítások és az ügynöklista formázásának testreszabására használható HarnessAgentOptions.BackgroundAgentsProviderOptions . A kihagyás LoopEvaluators automatikus újrahívás nélkül is elérhetővé teszi a háttérdelegálást.
Adja meg background_agents a create_harness_agent. Ha a szülőnek automatikusan várnia kell, párosítsa egy határolt hurokkal:
from agent_framework import (
background_tasks_running,
background_tasks_running_message,
create_harness_agent,
)
parent_agent = create_harness_agent(
client=client,
name="research-coordinator",
background_agents=[web_search_agent, code_analysis_agent],
loop_should_continue=background_tasks_running(),
loop_next_message=background_tasks_running_message,
loop_max_iterations=10,
)
session = parent_agent.create_session()
A szolgáltató utasításainak lecserélésére használható background_agents_instructions . A Python hám alapértelmezés szerint lehetővé teszi az eszköz automatikus jóváhagyását a köztes szoftverrel, így minden futtatáson továbbadhatósession.
Megjegyzés:
A Hámügynök háttérdelegálása jelenleg nem érhető el a Go-ban.
Biztonsági megfontolások
Csak megbízható gyermekügynököket regisztráljon. A szülő küldhet nekik privát vagy nem megbízható környezetből származó szöveget, és az eredmények visszakerülnek a szülő környezetéhez. A sérült gyermek képes kiszűrni a delegált bemenetet, vagy közvetett gyorsinjektálási tartalmat ad vissza.