Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Agent Framework поддерживает множество различных типов средств, расширяющих возможности агента. Средства позволяют агентам взаимодействовать с внешними системами, выполнять код, искать данные и многое другое.
Типы инструментов
| Тип инструмента | Description |
|---|---|
| Средства функций | Пользовательский код, который агенты могут вызывать во время бесед |
| Утверждение средства | Утверждение в цикле для вызовов инструментов |
| Интерпретатор кода | Выполнение кода в изолированной среде |
| Поиск файлов | Поиск по отправленным файлам |
| Веб-поиск | Поиск сведений в Интернете |
| Размещенные средства MCP | Средства MCP, размещенные Microsoft Foundry |
| Локальные средства MCP | Средства MCP, работающие локально или на пользовательских серверах |
Матрица поддержки поставщиков
Поставщики OpenAI и Azure OpenAI предлагают несколько типов клиентов с разными возможностями инструментов. Клиенты Azure OpenAI отражают эквиваленты OpenAI.
| Тип инструмента | Завершение чата | Ответы | Помощников | Foundry | Anthropic | Ollama | GitHub Copilot | Copilot Studio |
|---|---|---|---|---|---|---|---|---|
| Средства функций | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Утверждение средства | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Интерпретатор кода | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Поиск файлов | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Веб-поиск | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Размещенные средства MCP | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Локальные средства MCP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
Замечание
Столбцы "Завершение чата", "Ответы" и "Помощники" применяются как к OpenAI, так и к Azure OpenAI. Варианты Azure отражают поддержку того же средства, что и их коллеги OpenAI.
Матрица поддержки поставщиков
Поставщики OpenAI и Azure OpenAI предлагают несколько типов клиентов с разными возможностями инструментов. Клиенты Azure OpenAI отражают эквиваленты OpenAI.
| Тип инструмента | Завершение чата | Ответы | Помощников | Foundry | Anthropic | Агент Claude | Ollama | GitHub Copilot |
|---|---|---|---|---|---|---|---|---|
| Средства функций | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Утверждение средства | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Интерпретатор кода | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Поиск файлов | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Веб-поиск | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Генерация изображений | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Размещенные средства MCP | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Локальные средства MCP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Замечание
Столбцы "Завершение чата", "Ответы" и "Помощники" применяются как к OpenAI, так и к Azure OpenAI. Варианты Azure отражают поддержку того же средства, что и их коллеги OpenAI. Локальные инструменты MCP работают с любым поставщиком, поддерживающим средства функций.
Использование агента в качестве средства функции
Агент можно использовать в качестве средства функции для другого агента, включив состав агента и более сложные рабочие процессы. Внутренний агент преобразуется в средство функции и предоставляется внешнему агенту, который затем может вызывать его по мере необходимости.
.AsAIFunction() Вызовите AIAgent для преобразования его в средство функции, которое может быть предоставлено другому агенту:
// Create the inner agent with its own tools
AIAgent weatherAgent = new AIProjectClient(
new Uri("<your-foundry-project-endpoint>"),
new DefaultAzureCredential())
.AsAIAgent(
model: "gpt-4o-mini",
instructions: "You answer questions about the weather.",
name: "WeatherAgent",
description: "An agent that answers questions about the weather.",
tools: [AIFunctionFactory.Create(GetWeather)]);
// Create the main agent and provide the inner agent as a function tool
AIAgent agent = new AIProjectClient(
new Uri("<your-foundry-project-endpoint>"),
new DefaultAzureCredential())
.AsAIAgent(
model: "gpt-4o-mini",
instructions: "You are a helpful assistant.",
tools: [weatherAgent.AsAIFunction()]);
// The main agent can now call the weather agent as a tool
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));
Предупреждение
DefaultAzureCredential удобно для разработки, но требует тщательного рассмотрения в рабочей среде. В рабочей среде рекомендуется использовать определенные учетные данные (например, ManagedIdentityCredential), чтобы избежать проблем с задержкой, непреднамеренной проверки данных аутентификации и потенциальных рисков безопасности из-за резервных механизмов.
Вызов .as_tool() агента, чтобы преобразовать его в средство функции, которое может быть предоставлено другому агенту:
import os
from agent_framework.openai import OpenAIChatCompletionClient
from azure.identity import AzureCliCredential
# Create the inner agent with its own tools
weather_agent = OpenAIChatCompletionClient(
model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
credential=AzureCliCredential(),
).as_agent(
name="WeatherAgent",
description="An agent that answers questions about the weather.",
instructions="You answer questions about the weather.",
tools=get_weather
)
# Create the main agent and provide the inner agent as a function tool
main_agent = OpenAIChatCompletionClient(
model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
credential=AzureCliCredential(),
).as_agent(
instructions="You are a helpful assistant.",
tools=weather_agent.as_tool()
)
# The main agent can now call the weather agent as a tool
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)
Кроме того, можно настроить имя, описание и имя аргумента средства:
weather_tool = weather_agent.as_tool(
name="WeatherLookup",
description="Look up weather information for any location",
arg_name="query",
arg_description="The weather query or location"
)