Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
Tam örnek bir Microsoft Foundry sohbet istemcisi oluşturur, create_harness_agent ile sarar ve iki dönüşte bir oturumu yeniden kullanır. Örnek, odaklanmak için dosya belleğini ve web aramasını devre dışı bırakırken, harness planlama, to-do izleme ve sıkıştırma ekler.
import asyncio
from agent_framework import create_harness_agent
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
async def main() -> None:
agent = create_harness_agent(
client=FoundryChatClient(
project_endpoint="https://your-account.services.ai.azure.com/api/projects/your-project",
model="gpt-6-luna",
credential=AzureCliCredential(),
),
agent_instructions="Help users plan and complete multi-step tasks.",
disable_file_memory=True,
disable_web_search=True,
)
session = agent.create_session()
print(await agent.run("Plan a weekend trip to Seattle.", session=session))
print(await agent.run("Turn that plan into a checklist.", session=session))
if __name__ == "__main__":
asyncio.run(main())
Paylaşılan oturum, her iki çağrıda da test harness durumunu korur. Araç onayı istemleri, to-do ve mod işleme ve eğik çizgi komutları içeren tam özellikli bir konsol için örnek terminal UX'sine bakın.
Tip
Tam başlangıç örneğine bakın. Daha fazla desen için bkz. Python harness örnekleri.
Tip
agent-framework-builder-python kodlama aracısı yeteneği, harness bileşimi ve paket seçimlerine yol gösterebilir. Bu özellik, isteğe bağlı olarak etkinleştirilen bir Python harness özelliği olarak kalan çalışma zamanı Aracı Becerilerinden ayrıdır.
Prerequisites
- Go 1.26 veya üzeri.
- Agent Framework Go deposunun yerel kopyası.
-
FOUNDRY_PROJECT_ENDPOINTveFOUNDRY_MODELaracılığıyla yapılandırılan bir Foundry proje uç noktası ve model dağıtımı. - Azure CLI ile
DefaultAzureCredentialoturum açma gibi,az logintarafından desteklenen bir Azure kimlik bilgisi.
Go harnessını yapılandırın
agent/harness paketi sıradan bir sağlayıcı destekli aracı yapılandırır. sonucunu harness.AgentConfig sağlayıcı yapıcısına geçirin:
import (
"context"
"fmt"
"os"
"path/filepath"
"github.com/microsoft/agent-framework-go/agent"
"github.com/microsoft/agent-framework-go/agent/harness"
"github.com/microsoft/agent-framework-go/examples/internal/demo"
"github.com/microsoft/agent-framework-go/message"
"github.com/microsoft/agent-framework-go/provider/foundryprovider"
)
workingDirectory, err := os.Getwd()
if err != nil {
return fmt.Errorf("get working directory: %w", err)
}
cfg, err := harness.AgentConfig(harness.Config{WorkingDirectory: workingDirectory}, agent.Config{
Name: "HarnessAssistant",
Middlewares: []agent.Middleware{logger},
})
if err != nil {
return err
}
a := foundryprovider.NewAgent(
demo.FoundryProjectEndpoint,
demo.FoundryTokenCredential(),
foundryprovider.ModelDeployment(demo.FoundryModel),
foundryprovider.AgentConfig{
Config: cfg,
DisableStoreOutput: true,
Instructions: "Help with software engineering tasks. Use memory and todos to track the current session's work.",
},
)
Varsayılanlar todos, plan ve yürütme modları, oturum yalıtılmış dosya belleği, beceriler, barındırılan web araması, araç onayı ara yazılımı ve OpenTelemetry izlemesini içerir. Yardımcı, her hizmet çağrısı için geçmişin kalıcı olarak saklanmasını ve ileti eklemeyi de etkinleştirir.
Bu Foundry örneği, böylece konuşmanın sahibi yerel geçmiş olur diye DisableStoreOutput: true ayarlar. Seçtiğiniz sağlayıcı veya dağıtım barındırılan web aramasını desteklemiyorsa DisableWebSearch içinde harness.Config ayarlayın.
Go deposu kökünden tam örneği çalıştırın:
go run .\examples\02-agents\harness\step04_composite_harness
Örnek bir oturumu iki dönüşte yeniden kullanır, araç onayı isteklerini işler ve bellek yalıtımını göstermek için ayrı bir oturum açar. Dosya belleği çalışma dizininde agent-file-memory altında kalıcı olur.
Sıkıştırma ve döngü, Go harness varsayılanları yerine isteğe bağlıdır. Yapılandırma ve bileşen sınırları için bkz. Agent Harness.
Tip
Tam bileşik harness örneği ve Go harness yapılandırma kılavuzuna bakın.
Sonraki Adımlar
Daha derine gidin:
- Aracı Kulpları — sıkıştırma, döngü, kabuk ve örnek terminal UX
- Aracı Becerileri — dosya sisteminden aşamalı olarak beceri yükleme