Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Microsoft Agent Framework поддерживает создание агентов, использующих службу OpenAI ChatCompletion .
Начало работы
Добавьте необходимые пакеты NuGet в проект.
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Создание агента OpenAI ChatCompletion
Сначала необходимо создать клиент для подключения к службе OpenAI.
using System;
using Microsoft.Agents.AI;
using OpenAI;
OpenAIClient client = new OpenAIClient("<your_api_key>");
OpenAI поддерживает несколько служб, которые предоставляют возможности вызова моделей. Выберите службу ChatCompletion, чтобы создать агент на основе ChatCompletion.
var chatCompletionClient = client.GetChatClient("gpt-4o-mini");
Наконец, создайте агент с помощью метода расширения AsAIAgent на ChatCompletionClient.
AIAgent agent = chatCompletionClient.AsAIAgent(
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."));
Использование агента
Агент является стандартным AIAgent и поддерживает все стандартные AIAgent операции.
Дополнительные сведения о запуске и взаимодействии с агентами см. в руководствах по началу работы агента.
Предпосылки
Установите пакет Microsoft Agent Framework.
pip install agent-framework-core --pre
Конфигурация
Переменные среды
Настройте необходимые переменные среды для проверки подлинности OpenAI:
# Required for OpenAI API access
OPENAI_API_KEY="your-openai-api-key"
OPENAI_CHAT_MODEL_ID="gpt-4o-mini" # or your preferred model
Кроме того, вы можете использовать файл в корневом .env каталоге проекта:
OPENAI_API_KEY=your-openai-api-key
OPENAI_CHAT_MODEL_ID=gpt-4o-mini
Начало работы
Импортируйте необходимые классы из Agent Framework:
import asyncio
from agent_framework import ChatAgent
from agent_framework.openai import OpenAIChatClient
Создание агента OpenAI ChatCompletion
Базовое создание агента
Самый простой способ создания агента завершения чата:
async def basic_example():
# Create an agent using OpenAI ChatCompletion
agent = OpenAIChatClient().as_agent(
name="HelpfulAssistant",
instructions="You are a helpful assistant.",
)
result = await agent.run("Hello, how can you help me?")
print(result.text)
Использование явной конфигурации
Можно предоставить явную конфигурацию вместо того, чтобы полагаться на переменные среды:
async def explicit_config_example():
agent = OpenAIChatClient(
ai_model_id="gpt-4o-mini",
api_key="your-api-key-here",
).as_agent(
instructions="You are a helpful assistant.",
)
result = await agent.run("What can you do?")
print(result.text)
Компоненты агента
Инструменты функций
Оснастите вашего агента настраиваемыми функциями:
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 = ChatAgent(
chat_client=OpenAIChatClient(),
instructions="You are a helpful weather assistant.",
tools=get_weather, # Add tools to the agent
)
result = await agent.run("What's the weather like in Tokyo?")
print(result.text)
Web Search
Включите возможности поиска в интернете в режиме реального времени:
from agent_framework import HostedWebSearchTool
async def web_search_example():
agent = OpenAIChatClient(model_id="gpt-4o-search-preview").as_agent(
name="SearchBot",
instructions="You are a helpful assistant that can search the web for current information.",
tools=HostedWebSearchTool(),
)
result = await agent.run("What are the latest developments in artificial intelligence?")
print(result.text)
Средства протокола контекста модели (MCP)
Подключитесь к локальным серверам MCP для расширенных возможностей:
from agent_framework import MCPStreamableHTTPTool
async def local_mcp_example():
agent = OpenAIChatClient().as_agent(
name="DocsAgent",
instructions="You are a helpful assistant that can help with Microsoft documentation.",
tools=MCPStreamableHTTPTool(
name="Microsoft Learn MCP",
url="https://learn.microsoft.com/api/mcp",
),
)
result = await agent.run("How do I create an Azure storage account using az cli?")
print(result.text)
Управление потоками
Сохраняйте контекст беседы в нескольких взаимодействиях:
async def thread_example():
agent = OpenAIChatClient().as_agent(
name="Agent",
instructions="You are a helpful assistant.",
)
# Create a persistent thread for conversation context
thread = agent.get_new_thread()
# First interaction
first_query = "My name is Alice"
print(f"User: {first_query}")
first_result = await agent.run(first_query, thread=thread)
print(f"Agent: {first_result.text}")
# Second interaction - agent remembers the context
second_query = "What's my name?"
print(f"User: {second_query}")
second_result = await agent.run(second_query, thread=thread)
print(f"Agent: {second_result.text}") # Should remember "Alice"
Стриминговые ответы
Получите ответы по мере их создания для улучшения взаимодействия с пользователем:
async def streaming_example():
agent = OpenAIChatClient().as_agent(
name="StoryTeller",
instructions="You are a creative storyteller.",
)
print("Agent: ", 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
Использование агента
Агент стандартный BaseAgent и поддерживает все стандартные операции агента.
Дополнительные сведения о запуске и взаимодействии с агентами см. в руководствах по началу работы агента.