Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Microsoft Agent Framework suporta três tipos distintos de clientes OpenAI, cada um direcionado para uma superfície API diferente com capacidades distintas de ferramentas:
| Tipo de Cliente | API | Melhor Para |
|---|---|---|
| Conclusão do Chat | API de Completação de Chat | Agentes simples, amplo suporte de modelos |
| Respostas | API de respostas | Agentes completos com ferramentas alojadas (interpretador de código, pesquisa de ficheiros, pesquisa web, MCP alojado) |
| Assistentes | API de Assistentes | Agentes geridos pelo servidor com interpretador de código e pesquisa de ficheiros |
Sugestão
Para equivalentes Azure OpenAI (AzureOpenAIChatClient, AzureOpenAIResponsesClient, AzureOpenAIAssistantsClient), consulte a página do fornecedor Azure OpenAI. O suporte à ferramenta é idêntico.
Introdução
Adicione os pacotes NuGet necessários ao seu projeto.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Cliente de Conclusão de Chat
O cliente Chat Completion oferece uma forma direta de criar agentes usando a 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."));
Ferramentas suportadas: Ferramentas funcionais, pesquisa na web, ferramentas MCP locais.
Cliente de Respostas
O cliente Respostas oferece o suporte de ferramentas mais completo, incluindo interpretador de código, pesquisa de ficheiros, pesquisa web e MCP alojado.
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."));
Ferramentas suportadas: Ferramentas funcionais, aprovação de ferramentas, interpretador de código, pesquisa de ficheiros, pesquisa web, MCP alojado, ferramentas locais de MCP.
Assistentes de Cliente
O cliente Assistants cria agentes geridos pelo servidor com interpretador de código e pesquisa de ficheiros incorporados.
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."));
Ferramentas suportadas: Ferramentas de funções, interpretador de código, pesquisa de ficheiros, ferramentas MCP locais.
Sugestão
Consulte os exemplos do .NET para exemplos completos executáveis.
Usando o agente
Os três tipos de cliente produzem um padrão AIAgent que suporta as mesmas operações de agente (streaming, threads, middleware).
Para mais informações, consulte os tutoriais para começar.
Installation
pip install agent-framework --pre
Configuração
Cada tipo de cliente utiliza diferentes variáveis de ambiente:
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini"
Criar Agentes OpenAI
OpenAIChatClient utiliza a API Chat Completions — a opção mais simples com amplo suporte de modelos.
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())
Ferramentas suportadas: Ferramentas funcionais, pesquisa na web, ferramentas MCP locais.
Pesquisa na Web com Conclusão de 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)
Características Comuns
Os três tipos de clientes suportam estas funcionalidades padrão do agente:
Ferramentas de Função
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)
Conversas com Múltiplos Turnos
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"
Serviço de streaming
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()
Usando o agente
Todos os tipos de cliente produzem um padrão Agent que suporta as mesmas operações.
Para mais informações, consulte os tutoriais para começar.