Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Microsoft Agent Framework supporta tre tipi di client OpenAI distinti, ognuno destinato a una superficie API diversa con diverse funzionalità degli strumenti:
| Tipo di client | API | Ideale per |
|---|---|---|
| Completamento conversazione | API di completamento chat | Agenti semplici, supporto generale del modello |
| Risposte | API delle risposte | Agenti completi con strumenti ospitati (interprete del codice, ricerca di file, ricerca Web, MCP ospitato) |
| Assistenti | Assistenti API | Agenti gestiti dal server con interprete del codice e ricerca di file |
Suggerimento
Per gli equivalenti OpenAI di Azure (AzureOpenAIChatClient, AzureOpenAIResponsesClient, AzureOpenAIAssistantsClient), vedere la pagina del provider OpenAI di Azure. Il supporto dello strumento è identico.
Come iniziare
Aggiungere i pacchetti NuGet necessari al progetto.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Cliente per il completamento della chat
Il client di completamento della chat offre un modo semplice per creare agenti usando l'API ChatCompletion.
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."));
Strumenti supportati: Strumenti per le funzioni, ricerca Web, strumenti MCP locali.
Risposte clienti
Il client Risposte offre il supporto più ricco di strumenti, tra cui interprete del codice, ricerca di file, ricerca Web e MCP ospitato.
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."));
Strumenti supportati: Strumenti per le funzioni, approvazione degli strumenti, interprete del codice, ricerca di file, ricerca Web, MCP ospitato, strumenti MCP locali.
Assistenti del cliente
Il client Assistants crea agenti gestiti dal server con interprete di codice predefinito e ricerca di file.
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."));
Strumenti supportati: Strumenti per le funzioni, interprete del codice, ricerca di file, strumenti MCP locali.
Suggerimento
Uso dell'agente
Tutti e tre i tipi di client producono uno standard AIAgent che supporta le stesse operazioni dell'agente (streaming, thread, middleware).
Per altre informazioni, vedere le esercitazioni introduttive.
Installazione
pip install agent-framework --pre
Impostazione
Ogni tipo di client usa variabili di ambiente diverse:
Completamento chat
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"
Client per il completamento della chat
OpenAIChatClient usa l'API di completamento chat, l'opzione più semplice con ampio supporto per i modelli.
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())
Strumenti supportati: Strumenti per le funzioni, ricerca Web, strumenti MCP locali.
Ricerca Web con completamento della chat
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)
Risposte del cliente
OpenAIResponsesClient usa l'API Risposte, l'opzione più ricca di funzionalità con strumenti ospitati.
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())
Strumenti supportati: Strumenti per le funzioni, approvazione degli strumenti, interprete del codice, ricerca di file, ricerca Web, MCP ospitato, strumenti MCP locali.
Strumenti Ospitati con Client di Risposte
Il client Risposte fornisce get_*_tool() metodi per ogni tipo di strumento ospitato:
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)
Assistenti alla clientela
OpenAIAssistantProvider usa l'API Assistants : agenti gestiti dal server con interprete di codice e ricerca di file predefiniti. Il provider gestisce automaticamente il ciclo di vita dell'assistente.
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())
Strumenti supportati: Strumenti per le funzioni, interprete del codice, ricerca di file, strumenti MCP locali.
Funzionalità comuni
Tutti e tre i tipi di client supportano queste funzionalità dell'agente standard:
Strumenti per le funzioni
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)
Conversazioni a più turni
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"
Trasmissione in diretta
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()
Uso dell'agente
Tutti i tipi di client producono uno standard Agent che supporta le stesse operazioni.
Per altre informazioni, vedere le esercitazioni introduttive.