Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Microsoft Agent Framework admite la creación de agentes que usan el servicio OpenAI Assistants .
Advertencia
La API de openAI Assistants está en desuso y se apagará. Para obtener más información, consulte la documentación de OpenAI.
Introducción
Agregue los paquetes NuGet necesarios al proyecto.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Creación de un agente de OpenAI Assistants
Como primer paso, debe crear un cliente para conectarse al servicio OpenAI.
using System;
using Microsoft.Agents.AI;
using OpenAI;
OpenAIClient client = new OpenAIClient("<your_api_key>");
OpenAI admite varios servicios que proporcionan funcionalidades de llamada de modelos. Usaremos el Cliente de Assistants para crear un agente basado en Assistants.
#pragma warning disable OPENAI001 // Type is for evaluation purposes only and is subject to change or removal in future updates.
var assistantClient = client.GetAssistantClient();
#pragma warning restore OPENAI001
Para usar el servicio OpenAI Assistants, necesita crear un recurso de asistente en el servicio. Esto se puede hacer mediante el SDK de OpenAI o mediante asistentes de Microsoft Agent Framework.
Uso del SDK de OpenAI
Primero, crea un asistente y luego recupéralo como un AIAgent mediante el cliente.
// Create a server-side assistant
var createResult = await assistantClient.CreateAssistantAsync(
"gpt-4o-mini",
new() { Name = "Joker", Instructions = "You are good at telling jokes." });
// Retrieve the assistant as an AIAgent
AIAgent agent1 = await assistantClient.GetAIAgentAsync(createResult.Value.Id);
// Invoke the agent and output the text result.
Console.WriteLine(await agent1.RunAsync("Tell me a joke about a pirate."));
Uso de los asistentes de Agent Framework
También puede crear y devolver un AIAgent en un solo paso:
AIAgent agent2 = await assistantClient.CreateAIAgentAsync(
model: "gpt-4o-mini",
name: "Joker",
instructions: "You are good at telling jokes.");
Reutilización de asistentes de OpenAI
Puede reutilizar los asistentes de OpenAI existentes recuperandolos mediante sus identificadores.
AIAgent agent3 = await assistantClient.GetAIAgentAsync("<agent-id>");
Uso del agente
El agente es un estándar AIAgent y admite todas las operaciones estándar.
Consulte los tutoriales de introducción del agente para obtener más información sobre cómo ejecutar e interactuar con agentes.
Prerrequisitos
Instale el paquete microsoft Agent Framework.
pip install agent-framework --pre
Configuración
Variables de entorno
Configure las variables de entorno necesarias para la autenticación de OpenAI:
# Required for OpenAI API access
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini" # or your preferred model
Como alternativa, puede usar un .env archivo en la raíz del proyecto:
OPENAI_API_KEY=your-openai-api-key
OPENAI_CHAT_MODEL_ID=gpt-4o-mini
Introducción
Importe las clases necesarias desde Agent Framework:
import asyncio
from agent_framework import ChatAgent
from agent_framework.openai import OpenAIAssistantsClient
Creación de un agente de OpenAI Assistants
Creación básica del agente
La manera más sencilla de crear un agente es mediante el uso de , OpenAIAssistantsClient que crea y administra automáticamente asistentes:
async def basic_example():
# Create an agent with automatic assistant creation and cleanup
async with OpenAIAssistantsClient().create_agent(
instructions="You are a helpful assistant.",
name="MyAssistant"
) as agent:
result = await agent.run("Hello, how are you?")
print(result.text)
Uso de la configuración explícita
Puede proporcionar una configuración explícita en lugar de confiar en variables de entorno:
async def explicit_config_example():
async with OpenAIAssistantsClient(
ai_model_id="gpt-4o-mini",
api_key="your-api-key-here",
).create_agent(
instructions="You are a helpful assistant.",
) as agent:
result = await agent.run("What's the weather like?")
print(result.text)
Usar un Asistente existente
Puede reutilizar los asistentes de OpenAI existentes proporcionando sus identificadores:
from openai import AsyncOpenAI
async def existing_assistant_example():
# Create OpenAI client directly
client = AsyncOpenAI()
# Create or get an existing assistant
assistant = await client.beta.assistants.create(
model="gpt-4o-mini",
name="WeatherAssistant",
instructions="You are a weather forecasting assistant."
)
try:
# Use the existing assistant with Agent Framework
async with ChatAgent(
chat_client=OpenAIAssistantsClient(
async_client=client,
assistant_id=assistant.id
),
instructions="You are a helpful weather agent.",
) as agent:
result = await agent.run("What's the weather like in Seattle?")
print(result.text)
finally:
# Clean up the assistant
await client.beta.assistants.delete(assistant.id)
Características del agente
Herramientas de funciones
Puede equipar a su asistente con funciones personalizadas:
from typing import Annotated
from pydantic import Field
def get_weather(
location: Annotated[str, Field(description="The location to get the weather for.")]
) -> str:
"""Get the weather for a given location."""
return f"The weather in {location} is sunny with 25°C."
async def tools_example():
async with ChatAgent(
chat_client=OpenAIAssistantsClient(),
instructions="You are a helpful weather assistant.",
tools=get_weather, # Provide tools to the agent
) as agent:
result = await agent.run("What's the weather like in Tokyo?")
print(result.text)
Intérprete de código
Habilite el asistente para ejecutar código de Python:
from agent_framework import HostedCodeInterpreterTool
async def code_interpreter_example():
async with ChatAgent(
chat_client=OpenAIAssistantsClient(),
instructions="You are a helpful assistant that can write and execute Python code.",
tools=HostedCodeInterpreterTool(),
) as agent:
result = await agent.run("Calculate the factorial of 100 using Python code.")
print(result.text)
Respuestas de streaming
Obtenga respuestas a medida que se generen para mejorar la experiencia del usuario:
async def streaming_example():
async with OpenAIAssistantsClient().create_agent(
instructions="You are a helpful assistant.",
) as agent:
print("Assistant: ", end="", flush=True)
async for chunk in agent.run_stream("Tell me a story about AI."):
if chunk.text:
print(chunk.text, end="", flush=True)
print() # New line after streaming is complete
Uso del agente
El agente es un estándar BaseAgent y admite todas las operaciones estándar.
Consulte los tutoriales de introducción del agente para obtener más información sobre cómo ejecutar e interactuar con agentes.