하네스는 채팅 클라이언트를, 에이전트가 길고 여러 단계로 이루어진 작업을 처리하는 데 필요한 기반 기능들(계획/실행 모드, 계획을 위한 할 일 목록, 컨텍스트 압축, 파일 메모리, 파일 액세스, 다시 묻지 않기 도구 승인)로 감싸는 구성 요소입니다. 이러한 조각을 직접 조립하는 대신, 하네스 에이전트를 만들어서 상자 밖으로 내보낼 수 있습니다.
IChatClient 확장 메서드를 사용하여 임의의 AsHarnessAgent에서 하니스 에이전트를 생성합니다. 하네스는 여러 단계에 걸쳐 작업을 대화형으로 처리하므로, 일반적으로 대화 루프를 통해 이를 구동합니다. 즉, 여러 턴에 걸쳐 하네스 상태(계획, 할 일, 기록)가 유지되도록 AgentSession를 계속 유지하고, 사용자의 다음 지시를 읽고, 생성되는 대로 에이전트 출력을 스트리밍합니다.
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();
}
하네스는 전체 대화에 걸쳐 계획 수립, 할 일 추적, 대화 기록 유지를 대신 관리해 줍니다. 도구 승인 프롬프트, 할 일 목록/모드 렌더링, 슬래시 명령을 포함한 모든 기능을 갖춘 콘솔은 샘플 터미널 UX를 참조하세요.
팁 (조언)
전체 실행 가능한 애플리케이션에 대한 .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()
하네스는 전체 대화에 걸쳐 계획 수립, 할 일 추적, 대화 기록 유지를 대신 관리해 줍니다. 도구 승인 프롬프트, 할 일 목록/모드 렌더링, 슬래시 명령을 포함한 모든 기능을 갖춘 콘솔은 샘플 터미널 UX를 참조하세요.
팁 (조언)
전체 실행 가능한 애플리케이션에 대한 Python Harness 샘플을 참조하세요.
메모
에이전트 하네스에 대한 Go 지원이 곧 제공될 예정입니다. 최신 상태는 에이전트 프레임워크 Go 리포지토리 를 참조하세요.
다음 단계
더 자세히 살펴보기: