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 Microsoft által felügyelt Foundry által üzemeltetett ügynökök, a saját üzemeltetés és a Durable Extensionnel végzett tartós végrehajtás összehasonlítását lásd itt: Hosting Agent Framework-alkalmazások.
Üzemeltetés a ASP.NET Core-ban
Az Ügynök keretrendszer olyan üzemeltetési kódtárakat biztosít, amelyek lehetővé teszik az AI-ügynökök integrálását ASP.NET Core-alkalmazásokba. Ezek a kódtárak leegyszerűsítik az ügynökök regisztrálását, konfigurálását és felfedését különböző protokollokon keresztül.
A Agents részben leírtak szerint a AIAgent az Agent Framework alapvető ügynök-absztrakciója. Meghatároz egy "LLM-burkolót", amely feldolgozza a felhasználói bemeneteket, döntéseket hoz, eszközöket hív meg, és további műveleteket hajt végre és válaszokat hoz létre. Az AI-ügynökök ASP.NET Core-alkalmazásból való felfedése nem triviális. Az üzemeltetési kódtárak ezt úgy oldják meg, hogy egy függőséginjektálási tárolóban regisztrálják az AI-ügynököket, így feloldhatja és használhatja őket az alkalmazásszolgáltatásokban. Emellett lehetővé teszik az ügynökfüggőségek, például az eszközök és a munkamenet-tárolók kezelését ugyanabból a tárolóból. Az ügynökök az alkalmazásinfrastruktúra mellett üzemeltethetők, az általuk használt protokolltól függetlenül. Hasonlóképpen, a munkafolyamatok üzemeltethetők, és kihasználhatják az alkalmazás közös infrastruktúráját.
Alapvető tárhely-szolgáltatási könyvtár
A Microsoft.Agents.AI.Hosting kódtár az AI-ügynökök ASP.NET Core-ban való üzemeltetésének alapja. Bővítményeket biztosít az AI-ügynökök és munkafolyamatok regisztrálásához IHostApplicationBuilder és konfigurálásához. Az ASP.NET Core-ban a IHostApplicationBuilder az alapvető típus, amely az üzemeltetett alkalmazások és szolgáltatások készítőjeként működik, és kezeli a konfigurációt, a naplózást, az élettartamot stb.
Mielőtt ügynököket vagy munkafolyamatokat konfigurál, regisztrálja a IChatClient egy függőséginjektáló tárolóba. Az alábbi példákban a(z) chat-model név alatt kulcsos singletonként van regisztrálva.
// endpoint is your Microsoft Foundry project endpoint
// deploymentName is 'gpt-4o-mini' for example
IChatClient chatClient = new AIProjectClient(
new Uri(endpoint),
new DefaultAzureCredential())
.GetProjectOpenAIClient()
.GetProjectResponsesClient()
.AsIChatClient(deploymentName);
builder.Services.AddSingleton(chatClient);
Warning
DefaultAzureCredential a fejlesztéshez kényelmes, de a termelési környezetben gondos megfontolást igényel. Éles környezetben fontolja meg egy adott hitelesítő adat (pl. ManagedIdentityCredential) használatát a késési problémák elkerülése, a hitelesítő adatok nem szándékos próbálgatásának és a tartalék mechanizmusokból eredő esetleges biztonsági kockázatok elkerülése érdekében.
AddAIAgent
AI-ügynök regisztrálása függőséginjektálással:
var pirateAgent = builder.AddAIAgent(
"pirate",
instructions: "You are a pirate. Speak like a pirate",
description: "An agent that speaks like a pirate.",
chatClientServiceKey: "chat-model");
A AddAIAgent() metódus egy IHostedAgentBuilder-t ad vissza, amely bővítő metódusokat biztosít az ügynök konfigurálásához. Például hozzáadhat eszközöket az ügynökhöz:
var pirateAgent = builder.AddAIAgent("pirate", instructions: "You are a pirate. Speak like a pirate")
.WithAITool(new MyTool()); // MyTool is a custom type derived from AITool
A munkamenet-tárolót is konfigurálhatja (a beszélgetési adatok tárolásához):
var pirateAgent = builder.AddAIAgent("pirate", instructions: "You are a pirate. Speak like a pirate")
.WithInMemorySessionStore();
AddWorkflow
Több ügynököt koordináló munkafolyamatok regisztrálása. A munkafolyamat lényegében egy "gráf", ahol minden csomópont egy AIAgent, és az ügynökök kommunikálnak egymással.
Ebben a példában két ügynök egymás után működik. A felhasználói bemenetet először elküldi a rendszer agent-1-hez, amely választ hoz létre, és elküldi azt agent-2-nek. A munkafolyamat ezután a végső választ adja ki. Létezik egy BuildConcurrent metódus is, amely egyidejű ügynök-munkafolyamatot hoz létre.
builder.AddAIAgent("agent-1", instructions: "you are agent 1!");
builder.AddAIAgent("agent-2", instructions: "you are agent 2!");
var workflow = builder.AddWorkflow("my-workflow", (sp, key) =>
{
var agent1 = sp.GetRequiredKeyedService<AIAgent>("agent-1");
var agent2 = sp.GetRequiredKeyedService<AIAgent>("agent-2");
return AgentWorkflowBuilder.BuildSequential(key, [agent1, agent2]);
});
Munkafolyamat megjelenítése AIAgentként
Ha protokollintegrációkat (például A2A vagy OpenAI) szeretne használni egy munkafolyamattal, konvertálja azt önálló ügynökké. A munkafolyamatok jelenleg önmagukban nem biztosítanak hasonló integrációs képességeket, ezért erre a konverziós lépésre van szükség:
var workflowAsAgent = builder
.AddWorkflow("science-workflow", (sp, key) => { ... })
.AddAsAIAgent(); // Now the workflow can be used as an agent
Megvalósítás részletei
Az üzemeltetési kódtárak protokolladapterként működnek, amelyek hidat képeznek a külső kommunikációs protokollok és az Ügynök keretrendszer belső AIAgent implementációja között. Ha üzemeltetési integrációs kódtárat használ, a kódtár lekéri a regisztrált AIAgent adatokat a függőséginjektálásból, protokollspecifikus köztes szoftverrel csomagolja a bejövő kérések és kimenő válaszok lefordításához, és meghívja a AIAgent kérések feldolgozására. Ez az architektúra az ügynök implementációját protokollfüggetlenné teszi.
Használja például a ASP.NET Core üzemeltetési kódtárat az A2A protokolladapterrel:
// Register the agent
var pirateAgent = builder.AddAIAgent("pirate",
instructions: "You are a pirate. Speak like a pirate",
description: "An agent that speaks like a pirate.");
// Expose via a protocol (e.g. A2A)
builder.Services.AddA2AServer();
var app = builder.Build();
app.MapA2AServer();
app.Run();
Microsoft Foundry Hosted Agents az elsődleges felügyelt üzemeltetési lehetőség. Teljesítse a Foundry által üzemeltetett ügynökök előfeltételeit, beleértve az Azure fejlesztői CLI AI-ügynökbővítményt és az Azure CLI-bejelentkezést.
Az első lépések mintája létrehoz egy ügynököt letiltott kiszolgálóoldali modelltárolással, és elindítja a következőt ResponsesHostServer:
from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient, ResponsesHostServer
from azure.identity import DefaultAzureCredential
def main() -> None:
agent = Agent(
client=FoundryChatClient(
project_endpoint="https://your-account.services.ai.azure.com/api/projects/your-project",
model="gpt-6-luna",
credential=DefaultAzureCredential(),
),
instructions="You are a friendly assistant. Keep your answers brief.",
default_options={"store": False},
)
ResponsesHostServer(agent=agent, history_source="agent_server").run()
if __name__ == "__main__":
main()
Cserélje le a rögzített projektvégpontot és a modell üzembe helyezésének nevét, majd futtassa helyileg a PEP 723-mintát az Agent Framework-tárház gyökérkönyvtárából:
uv run python/samples/01-get-started/07_hosting.py
Egy teljes üzemeltetett ügynök projekt üzembe helyezéséhez inicializálja a karbantartott mintából azure.yaml:
mkdir my-hosted-agent && cd my-hosted-agent
azd ai agent init -t https://github.com/microsoft-foundry/foundry-samples/blob/main/samples/python/hosted-agents/agent-framework/responses/01-basic/azure.yaml --src .
Futtassa az agent hostot:
azd ai agent run
Egy másik terminálban hívja meg a helyi agentet:
azd ai agent invoke --local "Hello!"
Tip
Tekintse meg a teljes bevezető mintát és a teljes üzembehelyezési mintát. Az üzembe helyezéssel kapcsolatos útmutatásért tekintse meg a Foundry Hosted Agents.
Üzemeltetés A2A protokollal
A Go-port a a2aprovider révén biztosít A2A-hosztolást, amely egy ügynököt az Agent-to-Agent protokollal kompatibilis HTTP-kezelőbe burkol.
Megjegyzés:
A Durable Extension üzemeltetése jelenleg nem érhető el a Go számára. A Go SDK legújabb állapotáról az Agent Framework Go-adattárban olvashat.
Ügynök létrehozása:
import (
"github.com/microsoft/agent-framework-go/agent"
"github.com/microsoft/agent-framework-go/provider/a2aprovider"
"github.com/microsoft/agent-framework-go/provider/foundryprovider"
"github.com/a2aproject/a2a-go/v2/a2a"
"github.com/a2aproject/a2a-go/v2/a2asrv"
)
a := foundryprovider.NewAgent(endpoint, token, foundryprovider.ModelDeployment(model), foundryprovider.AgentConfig{
Instructions: "You are a helpful assistant.",
Config: agent.Config{
},
})
Tegye elérhetővé az ügynököt A2A-n keresztül:
url := "http://localhost:5000"
card := &a2a.AgentCard{
Name: "MyAgent",
Description: "A helpful assistant.",
Version: "1.0.0",
DefaultInputModes: []string{"text"},
DefaultOutputModes: []string{"text"},
Capabilities: a2a.AgentCapabilities{Streaming: false},
SupportedInterfaces: []*a2a.AgentInterface{
a2a.NewAgentInterface(url, a2a.TransportProtocolJSONRPC),
},
}
mux := http.NewServeMux()
requestHandler := a2asrv.NewHandler(
a2aprovider.NewExecutor(a, a2aprovider.ExecutorConfig{}),
a2asrv.WithExtendedAgentCard(card),
)
mux.Handle("/", a2asrv.NewJSONRPCHandler(requestHandler))
mux.Handle(a2asrv.WellKnownAgentCardPath, a2asrv.NewStaticAgentCardHandler(card))
log.Println("A2A server listening on :5000")
http.ListenAndServe(":5000", mux)
Tip
Lásd a teljes A2A ügyfél-kiszolgáló mintát a teljes, futtatható példáért.
Következő lépések
Mélyedjen el:
- A2A-ügynökszolgáltatás – távoli A2A-ügynökök felhasználása
- A2A-üzemeltetés – Ügynök-keretrendszer-ügynökök elérhetővé helyezése az A2A-on keresztül
- Durable Extension – tartós C# és Python ügynök és munkafolyamat üzemeltetése
- AG-UI Protocol – webalapú ügynök felhasználói felületei
- Üzemeltetés áttekintése – válassza a Foundry által üzemeltetett ügynököket, az önkiszolgáló vagy a tartós üzemeltetést
- Foundry Hosted Agents – Agent Framework-ügynökök üzembe helyezése felügyelt üzemeltetési környezetbe
- Foundry Hosted Agents minta (Python) – futtassa az alapszintű Responses mintát