Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обвязка оборачивает чат-клиент, добавляя инфраструктуру, необходимую агенту для работы с длительными многошаговыми задачами — режимы планирования и выполнения, список задач для планирования, сжатие контекста, память о файлах, доступ к файлам и подтверждение использования инструментов с опцией «больше не спрашивать». Вместо того чтобы собирать эти компоненты самостоятельно, вы создаёте агент Harness и получаете всё готовым к использованию.
Создайте агент harness из любого IChatClient с помощью метода расширения AsHarnessAgent. Поскольку harness интерактивно выполняет задачи за много шагов, обычно им управляют через цикл диалога: поддерживайте AgentSession, чтобы состояние harness (план, список дел и история) сохранялось между репликами, считывайте следующую инструкцию пользователя и передавайте вывод агента потоком по мере его формирования.
using System;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
// chatClient is any IChatClient implementation (Foundry, Azure OpenAI, OpenAI, Anthropic, ...).
AIAgent agent = chatClient.AsHarnessAgent();
// A session carries the harness state (plan, todos, history) across turns.
AgentSession session = await agent.CreateSessionAsync();
Console.WriteLine("Harness agent ready. Type 'exit' to quit.");
while (true)
{
Console.Write("> ");
string? input = Console.ReadLine();
if (string.IsNullOrWhiteSpace(input) || input.Equals("exit", StringComparison.OrdinalIgnoreCase))
{
break;
}
// Stream this turn's output as the harness plans and works through the request.
await foreach (var update in agent.RunStreamingAsync(input, session))
{
Console.Write(update);
}
Console.WriteLine();
}
Система берёт на себя планирование, ведение списка задач и сохранение истории на протяжении всего разговора. Полнофункциональный интерфейс консоли — с запросами на подтверждение использования инструментов, отображением todo/mode и слеш-командами — см. в примере интерфейса терминала.
Tip
Ознакомьтесь с примерами использования .NET для полнофункционируемых приложений.
Создайте агент harness с помощью фабрики create_harness_agent. Поскольку обвязка интерактивно выполняет задачи за много шагов, ею обычно управляют через цикл диалога: сохраняйте сеанс, чтобы состояние обвязки (план, список задач и история) сохранялось между репликами, считывайте следующую инструкцию пользователя и передавайте вывод агента по мере его появления.
from agent_framework import create_harness_agent
from agent_framework.openai import OpenAIChatClient
agent = create_harness_agent(
OpenAIChatClient(model="gpt-4o"),
)
# A session carries the harness state (plan, todos, history) across turns.
session = agent.create_session()
print("Harness agent ready. Type 'exit' to quit.")
while True:
user_input = input("> ")
if user_input.strip().lower() in {"exit", "quit"}:
break
# Stream this turn's output as the harness plans and works through the request.
async for chunk in agent.run(user_input, session=session, stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
print()
Система берёт на себя планирование, ведение списка задач и сохранение истории на протяжении всего разговора. Полнофункциональный интерфейс консоли — с запросами на подтверждение использования инструментов, отображением todo/mode и слеш-командами — см. в примере интерфейса терминала.
Tip
Ознакомьтесь с примерами использования Python для полнофункционируемых приложений.
Note
В ближайшее время будет добавлена поддержка ремня агентов. Сведения о последнем состоянии см. в репозитории Agent Framework Go .
Дальнейшие действия
Вернитесь глубже:
- Средства агента — сжатие, циклирование, оболочка и пример пользовательского интерфейса терминала
- Навыки агента — постепенно загружают навыки из файловой системы