Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft tarafından yönetilen Foundry Hosted Agents, kendi kendine barındırma ve Durable Extension ile dayanıklı yürütmenin karşılaştırması için Hosting Agent Framework uygulamalarına bakın.
ASP.NET Core'da barındırma
Agent Framework, yapay zeka aracılarını ASP.NET Core uygulamalarıyla tümleştirmenizi sağlayan barındırma kitaplıkları sağlar. Bu kitaplıklar çeşitli protokoller aracılığıyla aracıları kaydetmeyi, yapılandırmayı ve ortaya çıkarmayı basitleştirir.
Aracılar'da açıklandığı gibi, AIAgent Aracı Çerçevesi'ndeki temel aracı soyutlamasıdır. Kullanıcı girişlerini işleyen, kararlar alan, araçları çağıran ve eylemleri yürütmek ve yanıtlar oluşturmak için ek iş gerçekleştiren bir "LLM sarmalayıcı" tanımlar. ASP.NET Core uygulamanızdan yapay zeka aracılarını kullanıma çıkarmak önemsiz değildir. Barındırma kitaplıkları, yapay zeka aracılarını bir bağımlılık ekleme kapsayıcısına kaydederek bu sorunu çözer ve bunları uygulama hizmetlerinizde çözmenize ve kullanmanıza olanak sağlar. Ayrıca araçlar ve oturum depolama gibi aracı bağımlılıklarını aynı kapsayıcıdan yönetmenize de olanak tanır. Aracılar, kullandıkları protokollerden bağımsız olarak uygulama altyapınızla birlikte barındırılabilir. Benzer şekilde, iş akışları barındırılabilir ve uygulamanızın ortak altyapısını kullanabilir.
Çekirdek Barındırma Kitaplığı
Kitaplık Microsoft.Agents.AI.Hosting , ASP.NET Core'da yapay zeka aracılarını barındırmanın temelini oluşturur. Yapay zeka aracılarını ve iş akışlarını kaydetmek ve yapılandırmak için IHostApplicationBuilder için uzantılar sağlar. ASP.NET Core'da, IHostApplicationBuilder yapılandırmayı, günlüğe kaydetmeyi, yaşam süresini ve daha fazlasını yöneten, barındırılan uygulamalar ve hizmetler için oluşturucuyu temsil eden temel türdür.
Aracıları veya iş akışlarını yapılandırmadan önce bağımlılık ekleme kapsayıcısında bir IChatClient kaydedin. Aşağıdaki örneklerde adı chat-modelaltında anahtarlı tekil olarak kaydedilir:
// 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 geliştirme için uygundur ancak üretimde dikkatli bir şekilde dikkate alınması gerekir. Üretimde gecikme sorunları, istenmeyen kimlik bilgisi yoklama ve geri dönüş mekanizmalarından kaynaklanan olası güvenlik risklerini önlemek için belirli bir kimlik bilgisi (ör ManagedIdentityCredential. ) kullanmayı göz önünde bulundurun.
YapayZekaAjanıEkle
Bağımlılık ekleme ile yapay zeka aracısının kaydını yapın:
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");
AddAIAgent() yöntemi, aracıyı yapılandırmak için uzantı yöntemleri sağlayan bir IHostedAgentBuilder döndürür. Örneğin aracıya araçlar ekleyebilirsiniz:
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
Oturum depoyu da yapılandırabilirsiniz (konuşma verileri için depolama):
var pirateAgent = builder.AddAIAgent("pirate", instructions: "You are a pirate. Speak like a pirate")
.WithInMemorySessionStore();
AddWorkflow
Birden çok aracıyı koordine eden iş akışlarını kaydedin. İş akışı temelde her düğümün bir olduğu ve aracıların birbiriyle iletişim kurduğu bir AIAgent"grafiktir".
Bu örnekte, iki ajan sırayla çalışmaktadır. Önce kullanıcı girişi agent-1 öğesine gönderilir; bu da bir yanıt üretir ve yanıt agent-2 öğesine gönderilir. Ardından iş akışı son yanıtı döndürür. Eşzamanlı aracı iş akışı oluşturan bir yöntem de BuildConcurrent vardır.
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]);
});
İş Akışını AI Agent Olarak Sunma
İş akışıyla protokol tümleştirmelerini (A2A veya OpenAI gibi) kullanmak için bunu tek başına bir aracıya dönüştürün. Şu anda iş akışları kendi başına benzer tümleştirme özellikleri sağlamadığından bu dönüştürme adımı gereklidir:
var workflowAsAgent = builder
.AddWorkflow("science-workflow", (sp, key) => { ... })
.AddAsAIAgent(); // Now the workflow can be used as an agent
Uygulama Ayrıntıları
Barındırma kitaplıkları, dış iletişim protokollerine ve Aracı Çerçevesi'nin iç AIAgent uygulamasına köprü oluşturan protokol bağdaştırıcıları olarak hareket eder. Barındırma tümleştirme kitaplığını kullandığınızda, kitaplık bağımlılık enjeksiyonundan kaydedilmiş olan AIAgent öğesini alır, gelen istekleri ve giden yanıtları çevirmek için protokole özgü bir ara yazılımla sarar ve istekleri işlemek üzere AIAgent öğesini çağırır. Bu mimari, aracı uygulamanızın protokolden bağımsız kalmasını sağlar.
Örneğin, A2A protokol bağdaştırıcısı ile ASP.NET Core barındırma kitaplığını kullanma:
// 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 birincil yönetilen barındırma seçeneğidir. Azure Geliştirici CLI AI aracısı uzantısı ve Azure CLI oturum açma dahil olmak üzere Foundry Barındırılan Aracılar önkoşullarını tamamlayın.
Başlarken örneği, sunucu tarafı model depolaması devre dışı bırakılmış bir aracı oluşturur ve bir örneği ResponsesHostServer başlatır:
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()
Sabit kodlanmış proje uç noktasını ve model dağıtım adını değiştirin, ardından Pep 723 örneğini Agent Framework depo kökünden yerel olarak çalıştırın:
uv run python/samples/01-get-started/07_hosting.py
Eksiksiz bir barındırılan aracı projesini dağıtmak için, bunu bakımı yapılan örneğin azure.yaml öğesinden oluşturun:
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 .
agent host'u çalıştırın:
azd ai agent run
Başka bir terminalde yerel aracıyı çağırın:
azd ai agent invoke --local "Hello!"
Tip
Tam başlangıç örneğine ve tam dağıtım örneğine bakın. Dağıtım kılavuzu için bkz. Foundry Hosted Agents.
A2A Protokolü ile Barındırma
Go sürümü, bir aracıyı Agent-to-Agent protokolüyle uyumlu bir HTTP işleyicisi içinde saran a2aprovider aracılığıyla A2A barındırma sağlar.
Uyarı
Dayanıklı Uzantı barındırma şu anda Go için kullanılamıyor. En son Go SDK'sı durumu için bkz. Agent Framework Go deposu.
Ajan oluşturma:
import (
"log"
"net/http"
"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{
},
})
Ajanı A2A üzerinden yayımlayın:
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")
if err := http.ListenAndServe(":5000", mux); err != nil {
log.Fatal(err)
}
Tip
Tam bir çalıştırılabilir örnek için tam A2A istemci-sunucu örneğine bakın.
Sonraki Adımlar
Daha derine gidin:
- A2A ajan hizmeti — uzak A2A ajanlarını kullanır
- A2A barındırma — A2A aracılığıyla Agent Framework aracılarını kullanıma sunma
- Dayanıklı Uzantı — dayanıklı C# ve Python aracısı ve iş akışı barındırma
- AG-UI Protokolü — web tabanlı aracı kullanıcı arayüzleri
- Barındırma genel bakışı — Foundry tarafından barındırılan aracıları, kendi barındırmanızı veya dayanıklı barındırmayı seçin
- Foundry Hosted Agents — Ajan Çerçevesi ajanlarını yönetilen barındırmaya dağıtma
- Foundry Barındırılan Agent'lar örneği (Python) — temel Responses örneğini çalıştırın