Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Microsoft Agent Framework har stöd för tre distinkta OpenAI-klienttyper som var och en riktar sig till en annan API-yta med olika verktygsfunktioner:
| Klienttyp | API (gränssnitt för programmering av applikationer) | Bäst för |
|---|---|---|
| Chatten har slutförts | API för chattens slutförande | Enkla agenter, brett modellstöd |
| Svaren | Svar-API | Fullständiga agenter med värdbaserade verktyg (kodtolkare, filsökning, webbsökning, värdbaserad MCP) |
| Assistenter | API för assistenter | Serverhanterade agenter med kodtolk och filsökning |
Tips/Råd
För Azure OpenAI-motsvarigheter (AzureOpenAIChatClient, AzureOpenAIResponsesClient, AzureOpenAIAssistantsClient), se sidan Azure OpenAI-provider. Stödet för verktyget är identiskt.
Komma igång
Lägg till nödvändiga NuGet-paket i projektet.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Klient för chattens slutförande
Klient för chattkomplettering erbjuder ett enkelt sätt att skapa agenter med hjälp av ChatCompletion API:et.
using Microsoft.Agents.AI;
using OpenAI;
OpenAIClient client = new OpenAIClient("<your_api_key>");
var chatClient = client.GetChatClient("gpt-4o-mini");
AIAgent agent = chatClient.AsAIAgent(
instructions: "You are good at telling jokes.",
name: "Joker");
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Verktyg som stöds: Funktionsverktyg, webbsökning, lokala MCP-verktyg.
Svarsklient
Svarsklienten har det rikaste verktygsstödet, inklusive kodtolkare, filsökning, webbsökning och värdbaserad MCP.
using Microsoft.Agents.AI;
using OpenAI;
OpenAIClient client = new OpenAIClient("<your_api_key>");
var responsesClient = client.GetResponseClient("gpt-4o-mini");
AIAgent agent = responsesClient.AsAIAgent(
instructions: "You are a helpful coding assistant.",
name: "CodeHelper");
Console.WriteLine(await agent.RunAsync("Write a Python function to sort a list."));
Verktyg som stöds: Funktionsverktyg, verktygsgodkännande, kodtolkare, filsökning, webbsökning, värdbaserad MCP, lokala MCP-verktyg.
Assistentklient
Assistentklienten skapar serverhanterade agenter med inbyggd kodtolk och filsökning.
using Microsoft.Agents.AI;
using OpenAI;
OpenAIClient client = new OpenAIClient("<your_api_key>");
var assistantsClient = client.GetAssistantClient();
// Assistants are managed server-side
AIAgent agent = assistantsClient.AsAIAgent(
instructions: "You are a data analysis assistant.",
name: "DataHelper");
Console.WriteLine(await agent.RunAsync("Analyze trends in the uploaded data."));
Verktyg som stöds: Funktionsverktyg, kodtolkare, filsökning, lokala MCP-verktyg.
Tips/Råd
Se .NET-exemplen för fullständiga körbara exempel.
Använda agenten
Alla tre klienttyperna skapar en standard AIAgent som stöder samma agentåtgärder (strömning, trådar, mellanprogram).
Mer information finns i kom igång-handledningarna.
Installation
pip install agent-framework --pre
Konfiguration
Varje klienttyp använder olika miljövariabler:
Chatten har slutförts
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini"
Responses
OPENAI_API_KEY="your-openai-api-key"
OPENAI_RESPONSES_MODEL_ID="gpt-4o-mini"
Assistants
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini"
Klient för chattens slutförande
OpenAIChatClient använder API:et för chattavslut – det enklaste alternativet med brett modellstöd.
import asyncio
from agent_framework.openai import OpenAIChatClient
async def main():
agent = OpenAIChatClient().as_agent(
name="HelpfulAssistant",
instructions="You are a helpful assistant.",
)
result = await agent.run("Hello, how can you help me?")
print(result)
asyncio.run(main())
Verktyg som stöds: Funktionsverktyg, webbsökning, lokala MCP-verktyg.
Webbsökning med chatten slutförd
async def web_search_example():
client = OpenAIChatClient()
web_search = client.get_web_search_tool()
agent = client.as_agent(
name="SearchBot",
instructions="You can search the web for current information.",
tools=web_search,
)
result = await agent.run("What are the latest developments in AI?")
print(result)
Svarsklient
OpenAIResponsesClient använder API:et Svar – det mest funktionsrika alternativet med värdbaserade verktyg.
import asyncio
from agent_framework.openai import OpenAIResponsesClient
async def main():
agent = OpenAIResponsesClient().as_agent(
name="FullFeaturedAgent",
instructions="You are a helpful assistant with access to many tools.",
)
result = await agent.run("Write and run a Python script that calculates fibonacci numbers.")
print(result)
asyncio.run(main())
Verktyg som stöds: Funktionsverktyg, verktygsgodkännande, kodtolkare, filsökning, webbsökning, värdbaserad MCP, lokala MCP-verktyg.
Värdbaserade verktyg med svarsklient
Svarsklienten innehåller get_*_tool() metoder för varje värdbaserad verktygstyp:
async def hosted_tools_example():
client = OpenAIResponsesClient()
# Each tool is created via a client method
code_interpreter = client.get_code_interpreter_tool()
web_search = client.get_web_search_tool()
file_search = client.get_file_search_tool(vector_store_ids=["vs_abc123"])
mcp_tool = client.get_mcp_tool(
name="GitHub",
url="https://api.githubcopilot.com/mcp/",
approval_mode="never_require",
)
agent = client.as_agent(
name="PowerAgent",
instructions="You have access to code execution, web search, files, and GitHub.",
tools=[code_interpreter, web_search, file_search, mcp_tool],
)
result = await agent.run("Search the web for Python best practices, then write a summary.")
print(result)
Assistentklient
OpenAIAssistantProvider använder API:et Assistants – serverhanterade agenter med inbyggd kodtolk och filsökning. Providern hanterar assistentens livscykel automatiskt.
import asyncio
from agent_framework.openai import OpenAIAssistantProvider
from openai import AsyncOpenAI
async def main():
client = AsyncOpenAI()
provider = OpenAIAssistantProvider(client)
agent = await provider.create_agent(
name="DataAnalyst",
model="gpt-4o-mini",
instructions="You analyze data using code execution.",
)
try:
result = await agent.run("Calculate the first 20 prime numbers.")
print(result)
finally:
await provider.delete_agent(agent.id)
asyncio.run(main())
Verktyg som stöds: Funktionsverktyg, kodtolkare, filsökning, lokala MCP-verktyg.
Vanliga funktioner
Alla tre klienttyperna stöder dessa standardagentfunktioner:
Funktionsverktyg
from agent_framework import tool
@tool
def get_weather(location: str) -> str:
"""Get the weather for a given location."""
return f"The weather in {location} is sunny, 25°C."
async def example():
agent = OpenAIResponsesClient().as_agent(
instructions="You are a weather assistant.",
tools=get_weather,
)
result = await agent.run("What's the weather in Tokyo?")
print(result)
Konversationer med flera turer
async def thread_example():
agent = OpenAIResponsesClient().as_agent(
instructions="You are a helpful assistant.",
)
session = await agent.create_session()
result1 = await agent.run("My name is Alice", session=session)
print(result1)
result2 = await agent.run("What's my name?", session=session)
print(result2) # Remembers "Alice"
Strömmande
async def streaming_example():
agent = OpenAIResponsesClient().as_agent(
instructions="You are a creative storyteller.",
)
print("Agent: ", end="", flush=True)
async for chunk in agent.run("Tell me a short story about AI.", stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
print()
Använda agenten
Alla klienttyper skapar en standard Agent som stöder samma åtgärder.
Mer information finns i kom igång-handledningarna.