6. Adım: Aracı Çalıştırma Altyapısı

Bir sarmalayıcı, bir sohbet istemcisini bir ajanın uzun, çok adımlı görevleri yürütebilmesi için ihtiyaç duyduğu altyapıyla sarar — planlama/yürütme modları, planlama için yapılacaklar listesi, bağlam sıkıştırma, dosya tabanlı bellek, dosya erişimi ve araçlar için “bir daha sorma” onayı. Bu parçaları kendiniz bir araya getirmek yerine, bir harness agent oluşturur ve bunları kutudan çıktığı gibi hazır olarak elde edersiniz.

Herhangi bir IChatClient'dan, AsHarnessAgent uzantı yöntemini kullanarak bir koşum aracısı oluşturun. Bir koşum, görevler üzerinde birçok adım boyunca etkileşimli biçimde çalıştığı için, onu genellikle bir konuşma döngüsü içinden yönetirsiniz: koşum durumunun (plan, yapılacaklar ve geçmiş) turdan tura korunması için bir AgentSession tutun, kullanıcının bir sonraki yönergesini okuyun ve ajanın çıktısını üretildikçe akış halinde iletin.

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();
}

Sistem, konuşma boyunca planlamayı, yapılacaklar listesi takibini ve geçmişin kalıcı olarak saklanmasını sizin için yönetir. Araç onay istemleri, yapılacaklar/mod görüntüleme ve eğik çizgi komutları içeren tam özellikli bir konsol için örnek terminal kullanıcı deneyimine bakın.

Tip

Tümüyle çalıştırılabilir uygulamalar için .NET örneklerine bakın.

create_harness_agent fabrikasıyla bir harness aracısı oluşturun. Bir harness, birçok adım boyunca görevler üzerinde etkileşimli şekilde çalıştığı için, onu genellikle bir konuşma döngüsü üzerinden yönetirsiniz: harness durumunun (plan, yapılacaklar ve geçmiş) turlar boyunca korunması için bir oturumu sürdürün, kullanıcının sonraki yönergesini okuyun ve ajanın çıktısını üretildikçe akış halinde iletin.

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()

Sistem, konuşma boyunca planlamayı, yapılacaklar listesi takibini ve geçmişin kalıcı olarak saklanmasını sizin için yönetir. Araç onay istemleri, yapılacaklar/mod görüntüleme ve eğik çizgi komutları içeren tam özellikli bir konsol için örnek terminal kullanıcı deneyimine bakın.

Tip

Tam çalıştırılabilir uygulamalar için Python bağlayıcı örneklerini inceleyin.

Note

Aracı harness’leri için Go desteği yakında sunulacak. En son durum için bkz. Agent Framework Go deposu .

Sonraki Adımlar

Daha derine gidin: