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.
Az ügynök-keretrendszer az a futtatásidejű keret, amely a nyelvi modellt olyan ügynökké alakítja, amely képes feladatokat végrehajtani. Irányítja a modellek és eszközök hívását, kezeli a beszélgetés állapotát és kontextusát, jóváhagyási szabályokat alkalmaz, és képes biztosítani, hogy az ügynök egy többlépéses feladaton keresztül is folyamatosan haladjon előre.
Az Agent Framework a kutatáshoz, kódoláshoz, adatelemzéshez és egyéb hosszú ideig tartó munkához nyújt véleményezett, akkumulátorokkal rendelkező hámot. Ön megad egy csevegőügyfélt, és csak az alkalmazás által igényelt képességeket szabja testre.
Architecture
A Harness a meglévő ügynökkeretrendszer építőelemeiből áll össze, ahelyett hogy külön ügynök-futtatókörnyezetet határozna meg:
- Csevegőügyfél – az ügynököt egy modellhez csatlakoztatja.
- Csevegési folyamat – függvényhívást, üzenetinjektálást, szolgáltatásonkénti híváselőzmények megőrzését és opcionális tömörítést ad hozzá.
- Ügynök- és környezetszolgáltatók – munkamenet-hatókörű utasítások, eszközök, memória, teendőállapot, üzemeltetési módok és választható képességek hozzáadása.
- Köztes szoftver és dekorátorok — jóváhagyáskezelés, megfigyelhetőség és opcionális, korlátozott ciklusok hozzáadása.
- Alkalmazás-UX – streameli a válaszokat, megjeleníti az előrehaladást, és összegyűjti a bemeneteket, például az eszközjóváhagyásokat.
Az eredményül kapott objektum továbbra is egy normál Agent Framework-ügynök marad: a .NET-ben egy HarnessAgent, amely a(z) AIAgent osztályból származik, vagy Pythonban egy Agent, amelyet a(z) create_harness_agent ad vissza. A munkamenetek ugyanazokat a munkamenet- és környezetszolgáltatói absztrakciókat használják, mint más ügynökök.
Kihasználtsági képesség mátrixa
| Capability | A tesztkörnyezet viselkedése | Kanonikus útmutató |
|---|---|---|
| Függvényhívás | A kérelemenkénti iterációs korlát konfigurálható. | Funkcióeszközök |
| Szolgáltatásonkénti híváselőzmények megőrzése | Minden modellhívás után megőrzi az előzményeket egy eszközhívási futtatás során. | Sessions |
| Tömörítés | Engedélyezve, ha tokenkorlátok vagy egyéni stratégia van megadva. | Tömörítés |
| Teendők nyomon követése | Alapértelmezés szerint engedélyezve van. | Tervezés és teendők |
| Ügynök üzemmódok | A terv- és végrehajtási módok alapértelmezés szerint engedélyezve vannak. | Tervezés és teendők |
| Fájlmemória és fájlhozzáférés | A munkamenetfájl memóriája alapértelmezés szerint engedélyezve van; a megosztott fájlhozzáférés engedélyezése engedélyezve van. | Kontextusszolgáltatók |
| Eszköz jóváhagyása | Az állandó jóváhagyások és az automatikus jóváhagyási szabályok alapértelmezés szerint engedélyezve vannak. | Eszköz jóváhagyása |
| OpenTelemetry | Az ügynök megfigyelhetősége alapértelmezés szerint engedélyezve van. | Megfigyelhetőség |
| Webes keresés | Alapértelmezés szerint ott van hozzáadva, ahol a kiválasztott csevegőügyfél támogatja azt. | Webes keresés |
| Ügynöki készségek | A .NET-ben alapértelmezés szerint engedélyezve van; Pythonban szolgáltatón vagy elérési utakon keresztül külön bekapcsolható. | Ügynöki készségek |
| Háttérügynökök | Választható párhuzamos delegálás nevesített gyermekügynökökhöz. | Háttérügynökök |
| Rendszerhéj végrehajtása | A shell csomagból épül fel; a Python-gyártófüggvény automatikusan összekapcsolhatja. | Shell-eszközök |
| Ismétlés | Opcionális, értékelők vagy predikátumok által vezérelt, korlátozott újbóli meghívás. | Ügynökhurkolás |
A háttérügynök delegálása eltér a szolgáltató által felügyelt háttérválaszoktól. Háttérügynökök gyermekügynököket futtatnak delegált feladatok végrehajtására; a háttérválaszok egy szolgáltatói kérés állapotát kérdezik le, vagy folytatják azt egy folytatási token használatával.
Harness-ügynök létrehozása
A Microsoft.Agents.AI.Harness csomag a(z) Microsoft.Agents.AI névtérben teszi elérhetővé a(z) HarnessAgent elemet. Hozzon létre egyet bármely IChatClient elemből AsHarnessAgent használatával, vagy hozza létre közvetlenül a(z) HarnessAgent elemet:
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
AIAgent agent = chatClient.AsHarnessAgent();
AgentResponse response = await agent.RunAsync("Plan a weekend trip to Seattle.");
Console.WriteLine(response.Text);
A HarnessAgentOptions használatával beállíthatja a keretrendszerszintű működési útmutatást, az ügynökspecifikus utasításokat és a funkcióbeállításokat:
AIAgent agent = chatClient.AsHarnessAgent(new HarnessAgentOptions
{
Name = "research-agent",
HarnessInstructions = "Use tools deliberately and report verified results.",
ChatOptions = new ChatOptions
{
Instructions = "You are a research assistant focused on academic sources.",
},
MaxContextWindowTokens = 128_000,
MaxOutputTokens = 16_384,
});
HarnessAgent.DefaultInstructions az alapértelmezett biztonsági övre vonatkozó útmutatást biztosítja.
HarnessInstructions a(z) ChatOptions.Instructions előtt jelenik meg.
A kompozíció testreszabása
Az alapértelmezett képességek célzott lehetőségeket tartalmaznak, beleértve a következőket: DisableTodoProvider, DisableAgentModeProvider, DisableFileMemory, DisableAgentSkillsProvider, DisableWebSearch, DisableToolAutoApproval, DisableOpenTelemetry és DisableCompaction.
Egyéni kontextusszolgáltatók hozzáadása a AIContextProviders használatával. Jelentkezzen be a fájlhozzáféréshez a(z) FileAccessStore, a háttérdelegáláshoz a(z) BackgroundAgents és az ismétléshez a(z) LoopEvaluators használatával.
Harness-ügynök létrehozása
A create_harness_agent egy teljesen konfigurált Agent objektumot ad vissza:
from agent_framework import create_harness_agent
from agent_framework.openai import OpenAIChatClient
agent = create_harness_agent(
client=OpenAIChatClient(model="gpt-4o"),
)
session = agent.create_session()
response = await agent.run("Plan a weekend trip to Seattle.", session=session)
print(response.text)
A hámszint és az ügynökspecifikus utasítások külön-külön állíthatók be:
agent = create_harness_agent(
client=client,
name="research-agent",
harness_instructions="Use tools deliberately and report verified results.",
agent_instructions="You are a research assistant focused on academic sources.",
max_context_window_tokens=128_000,
max_output_tokens=16_384,
)
DEFAULT_HARNESS_INSTRUCTIONS az alapértelmezett biztonsági övre vonatkozó útmutatást biztosítja.
harness_instructions
agent_instructions előtt jelenik meg.
A kompozíció testreszabása
Tiltsa le az alapértelmezett értékeket olyan beállításokkal, mint a disable_todo, disable_mode, disable_file_memory, disable_web_search, disable_tool_auto_approvalés disable_compaction.
Cserélje le a beépített szolgáltatókat a(z) todo_provider vagy mode_provider használatával, és adjon hozzá szolgáltatókat a(z) context_providers használatával. A funkciók külön engedélyezhetők a(z) skills_provider vagy skills_paths használatával; a fájlhozzáférés, a háttérügynökök, a parancsértelmező-eszközök és az ismétlődő futtatás szintén külön engedélyezhetők.
Megjegyzés:
create_harness_agent kiadásra kerül. A háttérügynökök, a fájlhozzáférés és az ismétlődő végrehajtás továbbra is kísérleti jellegű, míg a shelleszközök a agent-framework-tools kiadás előtti csomagból származnak.
Megjegyzés:
A csomagolt Go Harness jelenleg nem érhető el. Közvetlenül készítse el a megfelelő Go-ügynök-, kontextusszolgáltató-, kompaktálási és middleware-csomagokat. A jelenlegi támogatásért tekintse meg az Agent Framework Go-adattárat .
Terminálminta felhasználói élménye
A Harness nem határoz meg alkalmazásinterfészt. A tároló olyan mintaterminál-alkalmazásokat tartalmaz, amelyek folyamatosan közvetítik a kimenetet, megjelenítik a teendőket és az aktuális módot, megjelenítik az eszközjóváhagyási kéréseket, valamint olyan parancsokat biztosítanak, mint a /todos, /mode és /exit.
Important
Ezek a konzolprojektek minták, nem szállított keretrendszerösszetevők. Használhatja őket futtatható példaként vagy a saját terminálélmény kiindulópontjaként.
A .NET mintakód belépési pontja ez: HarnessConsole.RunAgentAsync
using Harness.Shared.Console;
await HarnessConsole.RunAgentAsync(
agent,
userPrompt: "Ask me anything to get started.");
Testre szabhatja a mintát megfigyelőkkel, eszközformálókkal, parancskezelőkkel és HarnessConsoleOptions. Tekintse meg a .NET Harness mintákat.
A Python-minta a Harness minták mellett a Textual-alapú console csomagot használja:
from console import run_agent_async
await run_agent_async(agent)
Testre szabhatja a mintát megfigyelőkkel, formázókkal, parancsokkal és felhasználói felületi összetevőkkel. Tekintse meg a Python Harness mintákat.
Az adattár jelenleg nem tartalmaz csomagolt Go Harness-terminálmintát.
Következő lépések
Mélyebbre ásás
- Ciklusba kapcsolás
- Háttérügynökök
- Tömörítés
- Shell-eszközök