Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Microsoft Agent Framework oferece suporte à criação de agentes que usam o serviço de respostas OpenAI .
Introdução
Adicione os pacotes NuGet necessários ao seu projeto.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Criando um agente de respostas OpenAI
Como primeiro passo, você precisa criar um cliente para se conectar ao serviço OpenAI.
using System;
using Microsoft.Agents.AI;
using OpenAI;
OpenAIClient client = new OpenAIClient("<your_api_key>");
O OpenAI suporta vários serviços que fornecem recursos de chamada de modelo. Precisamos selecionar o serviço "Responses" para criar um agente baseado no "Responses".
#pragma warning disable OPENAI001 // Type is for evaluation purposes only and is subject to change or removal in future updates.
var responseClient = client.GetOpenAIResponseClient("gpt-4o-mini");
#pragma warning restore OPENAI001
Finalmente, crie o agente usando o método de extensão CreateAIAgent no ResponseClient.
AIAgent agent = responseClient.CreateAIAgent(
instructions: "You are good at telling jokes.",
name: "Joker");
// Invoke the agent and output the text result.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Usando o agente
O agente é um padrão AIAgent e suporta todas as operações padrão AIAgent .
Consulte os tutoriais de introdução ao agente para obter mais informações sobre como executar e interagir com agentes.
Pré-requisitos
Instale o pacote do Microsoft Agent Framework.
pip install agent-framework --pre
Configuração
Variáveis de ambiente
Configure as variáveis de ambiente necessárias para autenticação OpenAI:
# Required for OpenAI API access
OPENAI_API_KEY="your-openai-api-key"
OPENAI_RESPONSES_MODEL_ID="gpt-4o" # or your preferred Responses-compatible model
Como alternativa, você pode usar um .env arquivo na raiz do projeto:
OPENAI_API_KEY=your-openai-api-key
OPENAI_RESPONSES_MODEL_ID=gpt-4o
Introdução
Importe as classes necessárias do Agent Framework:
import asyncio
from agent_framework.openai import OpenAIResponsesClient
Criando um agente de respostas OpenAI
Criação básica de agentes
A maneira mais simples de criar um agente de respostas:
async def basic_example():
# Create an agent using OpenAI Responses
agent = OpenAIResponsesClient().create_agent(
name="WeatherBot",
instructions="You are a helpful weather assistant.",
)
result = await agent.run("What's a good way to check the weather?")
print(result.text)
Usando a configuração explícita
Você pode fornecer configuração explícita em vez de depender de variáveis de ambiente:
async def explicit_config_example():
agent = OpenAIResponsesClient(
ai_model_id="gpt-4o",
api_key="your-api-key-here",
).create_agent(
instructions="You are a helpful assistant.",
)
result = await agent.run("Tell me about AI.")
print(result.text)
Padrões básicos de uso
Respostas de Transmissão
Obtenha respostas à medida que são geradas para uma melhor experiência do utilizador:
async def streaming_example():
agent = OpenAIResponsesClient().create_agent(
instructions="You are a creative storyteller.",
)
print("Assistant: ", end="", flush=True)
async for chunk in agent.run_stream("Tell me a short story about AI."):
if chunk.text:
print(chunk.text, end="", flush=True)
print() # New line after streaming
Funcionalidades do agente
Modelos de Raciocínio
Use recursos avançados de raciocínio com modelos como GPT-5:
from agent_framework import HostedCodeInterpreterTool, TextContent, TextReasoningContent
async def reasoning_example():
agent = OpenAIResponsesClient(ai_model_id="gpt-5").create_agent(
name="MathTutor",
instructions="You are a personal math tutor. When asked a math question, "
"write and run code to answer the question.",
tools=HostedCodeInterpreterTool(),
reasoning={"effort": "high", "summary": "detailed"},
)
print("Assistant: ", end="", flush=True)
async for chunk in agent.run_stream("Solve: 3x + 11 = 14"):
if chunk.contents:
for content in chunk.contents:
if isinstance(content, TextReasoningContent):
# Reasoning content in gray text
print(f"\033[97m{content.text}\033[0m", end="", flush=True)
elif isinstance(content, TextContent):
print(content.text, end="", flush=True)
print()
Saída estruturada
Obtenha respostas em formatos estruturados:
from pydantic import BaseModel
from agent_framework import AgentRunResponse
class CityInfo(BaseModel):
"""A structured output for city information."""
city: str
description: str
async def structured_output_example():
agent = OpenAIResponsesClient().create_agent(
name="CityExpert",
instructions="You describe cities in a structured format.",
)
# Non-streaming structured output
result = await agent.run("Tell me about Paris, France", response_format=CityInfo)
if result.value:
city_data = result.value
print(f"City: {city_data.city}")
print(f"Description: {city_data.description}")
# Streaming structured output
structured_result = await AgentRunResponse.from_agent_response_generator(
agent.run_stream("Tell me about Tokyo, Japan", response_format=CityInfo),
output_format_type=CityInfo,
)
if structured_result.value:
tokyo_data = structured_result.value
print(f"City: {tokyo_data.city}")
print(f"Description: {tokyo_data.description}")
Ferramentas de Função
Equipe seu agente com funções personalizadas:
from typing import Annotated
from pydantic import Field
def get_weather(
location: Annotated[str, Field(description="The location to get weather for")]
) -> str:
"""Get the weather for a given location."""
# Your weather API implementation here
return f"The weather in {location} is sunny with 25°C."
async def tools_example():
agent = OpenAIResponsesClient().create_agent(
instructions="You are a helpful weather assistant.",
tools=get_weather,
)
result = await agent.run("What's the weather like in Tokyo?")
print(result.text)
Geração de Imagem
Gere imagens usando a API de respostas:
from agent_framework import DataContent, UriContent
async def image_generation_example():
agent = OpenAIResponsesClient().create_agent(
instructions="You are a helpful AI that can generate images.",
tools=[{
"type": "image_generation",
"size": "1024x1024",
"quality": "low",
}],
)
result = await agent.run("Generate an image of a sunset over the ocean.")
# Check for generated images in the response
for content in result.contents:
if isinstance(content, (DataContent, UriContent)):
print(f"Image generated: {content.uri}")
Intérprete de código
Habilite seu assistente para executar código Python:
from agent_framework import HostedCodeInterpreterTool
async def code_interpreter_example():
agent = OpenAIResponsesClient().create_agent(
instructions="You are a helpful assistant that can write and execute Python code.",
tools=HostedCodeInterpreterTool(),
)
result = await agent.run("Calculate the factorial of 100 using Python code.")
print(result.text)
Usando o agente
O agente é um BaseAgent padrão e suporta todas as operações padrão de um agente.
Consulte os tutoriais de introdução ao agente para obter mais informações sobre como executar e interagir com agentes.