Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez az oktatóanyag bemutatja, hogyan teheti elérhetővé az ügynököt eszközként a Model Context Protocol (MCP) protokollon keresztül, hogy más rendszerek is használhassák, amelyek támogatják az MCP-eszközöket.
Előfeltételek
Az előfeltételekért tekintse meg az oktatóanyag egyszerű ügynök létrehozásának és futtatásának lépéseit.
NuGet-csomagok telepítése
A Microsoft Agent Framework azure OpenAI-val való használatához telepítenie kell a következő NuGet-csomagokat:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Ha támogatást szeretne adni az eszköz a Model Context Protocol (MCP) protokollon keresztül történő üzemeltetéséhez, adja hozzá a következő NuGet-csomagokat
dotnet add package Microsoft.Extensions.Hosting --prerelease
dotnet add package ModelContextProtocol --prerelease
Ügynök felfedése MCP-eszközként
Egy MCP-eszközt úgy tehet elérhetővé AIAgent , hogy egy függvénybe burkolja, és a függvényt használja McpServerTool. Ezután regisztrálnia kell azt egy MCP-kiszolgálón. Ez lehetővé teszi az ügynök meghívását eszközként bármely MCP-kompatibilis ügyfél számára.
Először hozzon létre egy ügynököt, amelyet MCP-eszközként fog elérhetővé tennie.
using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
using OpenAI;
AIAgent agent = new AzureOpenAIClient(
new Uri("https://<myresource>.openai.azure.com"),
new AzureCliCredential())
.GetChatClient("gpt-4o-mini")
.CreateAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
Alakítsa át az agentet egy funkció eszközzé, majd egy MCP-eszközzé. Az ügynök neve és leírása az mcp eszköz neveként és leírásként lesz felhasználva.
using ModelContextProtocol.Server;
McpServerTool tool = McpServerTool.Create(agent.AsAIFunction());
Állítsa be az MCP-kiszolgálót, hogy figyelje a bejövő kéréseket a standard bemeneten/kimeneten keresztül, és tegye elérhetővé az MCP eszközt:
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using ModelContextProtocol.Server;
HostApplicationBuilder builder = Host.CreateEmptyApplicationBuilder(settings: null);
builder.Services
.AddMcpServer()
.WithStdioServerTransport()
.WithTools([tool]);
await builder.Build().RunAsync();
Ez elindít egy MCP-kiszolgálót, amely eszközként teszi elérhetővé az ügynököt az MCP protokollon keresztül.
Ez az oktatóanyag bemutatja, hogyan teheti elérhetővé az ügynököt eszközként a Model Context Protocol (MCP) protokollon keresztül, hogy más rendszerek is használhassák, amelyek támogatják az MCP-eszközöket.
Előfeltételek
Az előfeltételekről és a Python-csomagok telepítéséről lásd a Hozzon létre és futtasson egy egyszerű ügynököt lépést ebben az oktatóanyagban.
Ügynök felfedése MCP-kiszolgálóként
Az ügynököt MCP-kiszolgálóként közzéteheti a as_mcp_server() metódussal. Ez lehetővé teszi az ügynök meghívását eszközként bármely MCP-kompatibilis ügyfél számára.
Először hozzon létre egy ügynököt, amelyet MCP-kiszolgálóként fog elérhetővé tennie. Eszközöket is hozzáadhat az ügynökhöz:
from typing import Annotated
from agent_framework.openai import OpenAIResponsesClient
def get_specials() -> Annotated[str, "Returns the specials from the menu."]:
return """
Special Soup: Clam Chowder
Special Salad: Cobb Salad
Special Drink: Chai Tea
"""
def get_item_price(
menu_item: Annotated[str, "The name of the menu item."],
) -> Annotated[str, "Returns the price of the menu item."]:
return "$9.99"
# Create an agent with tools
agent = OpenAIResponsesClient().create_agent(
name="RestaurantAgent",
description="Answer questions about the menu.",
tools=[get_specials, get_item_price],
)
Az ügynök MCP-kiszolgálóvá alakítása. A rendszer az ügynök nevét és leírását használja az MCP-kiszolgáló metaadataiként:
# Expose the agent as an MCP server
server = agent.as_mcp_server()
Állítsa be az MCP-kiszolgálót a bejövő kérések normál bemeneten/kimeneten keresztüli figyeléséhez:
import anyio
from mcp.server.stdio import stdio_server
async def run():
async def handle_stdin():
async with stdio_server() as (read_stream, write_stream):
await server.run(read_stream, write_stream, server.create_initialization_options())
await handle_stdin()
if __name__ == "__main__":
anyio.run(run)
Ez elindít egy MCP-kiszolgálót, amely elérhetővé teszi az ügynököt az MCP protokollon keresztül, lehetővé téve, hogy olyan MCP-kompatibilis ügyfelek használják, mint a VS Code GitHub Copilot Agents.