Langkah 6: Agent Harness

Sebuah pembungkus membekali klien chat dengan kerangka pendukung yang dibutuhkan agen untuk menangani tugas panjang yang terdiri dari banyak langkah — mode perencanaan/eksekusi, daftar tugas sebagai acuan perencanaan, pemadatan konteks, memori berkas, akses berkas, dan persetujuan penggunaan alat "jangan tanya lagi". Alih-alih merakit potongan-potongan itu sendiri, Anda membuat agen harness dan mengeluarkannya dari kotak.

Buat agen harness dari IChatClient apa pun menggunakan metode ekstensi AsHarnessAgent. Karena harness bekerja menangani tugas secara interaktif melalui banyak langkah, Anda biasanya menjalankannya dalam loop percakapan: pertahankan AgentSession agar status harness (rencana, daftar tugas, dan riwayat) tetap tersimpan dari satu giliran percakapan ke giliran berikutnya, baca instruksi pengguna selanjutnya, dan stream output agen saat dihasilkan.

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 ini menangani perencanaan, pelacakan tugas, dan penyimpanan riwayat untuk Anda sepanjang percakapan. Untuk konsol dengan fitur lengkap — dengan prompt persetujuan alat, tampilan todo/mode, dan perintah garis miring — lihat contoh UX terminal.

Tip

Lihat sampel .NET harness untuk aplikasi yang dapat dijalankan penuh.

Buat agen harness dengan factory create_harness_agent. Karena harness menangani tugas secara interaktif melalui banyak langkah, Anda biasanya mengoperasikannya melalui loop percakapan: pertahankan sesi agar status harness (rencana, daftar tugas, dan riwayat) tetap tersimpan di seluruh giliran percakapan, baca instruksi pengguna berikutnya, dan stream output agen saat dihasilkan.

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 ini menangani perencanaan, pelacakan tugas, dan penyimpanan riwayat untuk Anda sepanjang percakapan. Untuk konsol dengan fitur lengkap — dengan prompt persetujuan alat, tampilan todo/mode, dan perintah garis miring — lihat contoh UX terminal.

Tip

Lihat sampel Python harness untuk aplikasi yang dapat dijalankan penuh.

Note

Dukungan Go untuk harness agen akan segera tersedia. Lihat repositori Agent Framework Go untuk status terbaru.

Langkah berikutnya

Masuk lebih dalam:

  • Agent Harnesses — pemadatan, perulangan, shell, dan UX terminal sampel
  • Keahlian Agen — memuat keahlian secara bertahap dari sistem berkas