Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Setelah membangun agen, Anda perlu menghostingnya sehingga pengguna dan agen lain dapat berinteraksi dengannya.
Opsi Hosting
| Option | Deskripsi | Terbaik untuk |
|---|---|---|
| Protokol A2A | Mengekspos agen melalui protokol Agen-ke-Agen | Sistem multi-agen |
| Titik AkhirOpenAI-Compatible | Mengekspos agen melalui API Penyelesaian Obrolan atau Respons | Klien yang kompatibel dengan OpenAI |
| Azure Functions (Durable) | Jalankan agen sebagai Fungsi Azure Durabel | Tugas tanpa server dan berjalan lama |
| Protokol AG-UI | Membangun aplikasi agen AI berbasis web | Antarmuka Web |
Hosting di ASP.NET Core
Kerangka Kerja Agen menyediakan pustaka hosting yang memungkinkan Anda mengintegrasikan agen AI ke dalam aplikasi ASP.NET Core. Pustaka ini menyederhanakan pendaftaran, konfigurasi, dan pengeksposan agen melalui berbagai protokol.
Seperti yang dijelaskan dalam Gambaran Umum Agen, AIAgent adalah konsep mendasar dari Kerangka Kerja Agen. Ini mendefinisikan "pembungkus LLM" yang memproses input pengguna, membuat keputusan, memanggil alat, dan melakukan pekerjaan tambahan untuk menjalankan tindakan dan menghasilkan respons. Mengekspos agen AI dari aplikasi ASP.NET Core Anda tidaklah sepele. Pustaka hosting menyelesaikan ini dengan mendaftarkan agen AI dalam kontainer injeksi dependensi, memungkinkan Anda untuk menyelesaikan dan menggunakannya di layanan aplikasi Anda. Mereka juga memungkinkan Anda mengelola dependensi agen, seperti alat dan penyimpanan sesi, dari kontainer yang sama. Agen dapat dihosting bersama infrastruktur aplikasi Anda, terlepas dari protokol yang mereka gunakan. Demikian pula, alur kerja dapat dihosting dan memanfaatkan infrastruktur umum aplikasi Anda.
Perpustakaan Inti Hosting
Library Microsoft.Agents.AI.Hosting adalah dasar untuk menghosting agen AI di ASP.NET Core. Ini menyediakan ekstensi bagi IHostApplicationBuilder untuk mendaftar dan mengonfigurasi agen dan alur kerja AI. Dalam ASP.NET Core, IHostApplicationBuilder adalah jenis mendasar yang mewakili penyusun untuk aplikasi dan layanan yang dihosting, mengelola konfigurasi, pengelogan, masa pakai, dan banyak lagi.
Sebelum mengonfigurasi agen atau alur kerja, daftarkan IChatClient dalam kontainer injeksi dependensi. Dalam contoh di bawah ini, itu terdaftar sebagai singleton bertanda kunci dengan nama chat-model:
// endpoint is of 'https://<your-own-foundry-endpoint>.openai.azure.com/' format
// deploymentName is 'gpt-4o-mini' for example
IChatClient chatClient = new AzureOpenAIClient(
new Uri(endpoint),
new DefaultAzureCredential())
.GetChatClient(deploymentName)
.AsIChatClient();
builder.Services.AddSingleton(chatClient);
AddAIAgent
Daftarkan agen AI dengan injeksi dependensi:
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");
Metode AddAIAgent() mengembalikan sebuah IHostedAgentBuilder, yang menyediakan metode-metode ekstensi untuk mengonfigurasi agen. Misalnya, Anda dapat menambahkan alat ke agen:
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
Anda juga dapat mengonfigurasi penyimpanan sesi (penyimpanan untuk data percakapan):
var pirateAgent = builder.AddAIAgent("pirate", instructions: "You are a pirate. Speak like a pirate")
.WithInMemorySessionStore();
Tambahkan Alur Kerja
Daftarkan alur kerja yang mengoordinasikan beberapa agen. Alur kerja pada dasarnya adalah "grafik" di mana setiap simpul adalah AIAgent, dan agen berkomunikasi satu sama lain.
Dalam contoh ini, dua agen bekerja secara berurutan. Input pengguna pertama kali dikirim ke agent-1, yang menghasilkan respons dan mengirimkannya ke agent-2. Alur kerja kemudian menghasilkan respons akhir. Ada juga BuildConcurrent metode yang membuat alur kerja agen serentak.
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]);
});
Mengekspos Alur Kerja sebagai Agen AI
Untuk menggunakan integrasi protokol (seperti A2A atau OpenAI) dengan alur kerja, konversikan menjadi agen mandiri. Saat ini, alur kerja tidak menyediakan kemampuan integrasi serupa sendiri, sehingga langkah konversi ini diperlukan:
var workflowAsAgent = builder
.AddWorkflow("science-workflow", (sp, key) => { ... })
.AddAsAIAgent(); // Now the workflow can be used as an agent
Detail Implementasi
Pustaka hosting bertindak sebagai adaptor protokol yang menjembatani protokol komunikasi eksternal dan implementasi internal AIAgent Agent Framework. Saat Anda menggunakan pustaka integrasi hosting, pustaka mengambil AIAgent yang terdaftar dari injeksi dependensi, membungkusnya dengan middleware khusus protokol untuk menerjemahkan permintaan masuk dan respons keluar, dan memanggil AIAgent untuk memproses permintaan. Arsitektur ini menjaga protokol implementasi agen Anda tetap agnostik.
Misalnya, menggunakan pustaka hosting ASP.NET Core dengan adaptor protokol A2A:
// 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();
Petunjuk / Saran
Lihat sampel Durable Azure Functions untuk contoh hosting tanpa server.
Instal paket hosting Azure Functions:
pip install agent-framework-azurefunctions --pre
Membuat agen:
from agent_framework.azure import AgentFunctionApp, AzureOpenAIChatClient
from azure.identity import AzureCliCredential
# 1. Instantiate the agent with the chosen deployment and instructions.
def _create_agent() -> Any:
"""Create the Joker agent."""
return AzureOpenAIChatClient(credential=AzureCliCredential()).as_agent(
name="Joker",
instructions="You are good at telling jokes.",
)
Daftarkan agen dengan AgentFunctionApp:
# 2. Register the agent with AgentFunctionApp so Azure Functions exposes the required triggers.
app = AgentFunctionApp(agents=[_create_agent()], enable_health_check=True, max_poll_retries=50)
Jalankan secara lokal dengan Azure Functions Core Tools:
func start
Kemudian panggil:
curl -X POST http://localhost:7071/api/agents/Joker/run \
-H "Content-Type: text/plain" \
-d "Tell me a short joke about cloud computing."
Petunjuk / Saran
Lihat sampel lengkap untuk file lengkap yang dapat dijalankan, dan sampel hosting Azure Functions untuk pola lainnya.
Langkah selanjutnya
Gambaran Umum Agen
Masuk lebih dalam:
- Protokol A2A — mengekspos dan mengonsumsi agen melalui A2A
- Azure Functions - hosting agen tanpa server
- ProtokolAG-UI — UI agen berbasis web
- Dokumen Foundry Hosted Agents - memahami agen yang dihosting di Azure AI Foundry
- Sampel Hosted Agent Foundry (Python) — menjalankan sampel end-to-end agen yang di-host menggunakan Agent Framework