執行框架 (harness) 將聊天用戶端與代理程式處理漫長、多步驟工作所需的基礎結構結合在一起 — 包含規劃/執行模式、用來擬定計劃的待辦事項清單、內容壓縮、檔案記憶、檔案存取,以及「不再詢問」的工具核准機制。 與其自己組裝這些元件,不如建立一個 Harness Agent,即可直接使用這些現成功能。
使用 AsHarnessAgent 擴充功能方法從任何 IChatClient 建立 Harness Agent。 因為執行框架會透過多個步驟以互動方式執行工作,所以通常會透過交談迴圈來驅動它:保留一個 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 範例。
Tip
完整可執行應用請參閱 .NET 線束範例。
使用 create_harness_agent 工廠建立一個 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 範例。
Tip
完整可執行應用程式請參閱 Python 線束範例。
備註
代理程式執行框架的 Go 支援即將推出。 最新狀態請參閱 Agent Framework Go 倉庫 。
下一步
深入探討: