Langkah 1: Agen Pertama Anda

Buat agen dan dapatkan respons — hanya dalam beberapa baris kode.

dotnet add package Microsoft.Agents.AI.Foundry --prerelease

Buat agen:

using System;
using Azure.AI.Projects;
using Azure.Identity;
using Microsoft.Agents.AI;

var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")
    ?? throw new InvalidOperationException("Set AZURE_OPENAI_ENDPOINT");
var deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini";

AIAgent agent = new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential())
    .AsAIAgent(
        model: deploymentName,
        instructions: "You are a friendly assistant. Keep your answers brief.",
        name: "HelloAgent");

Warning

DefaultAzureCredential nyaman untuk pengembangan tetapi membutuhkan pertimbangan yang cermat dalam produksi. Dalam produksi, pertimbangkan untuk menggunakan kredensial tertentu (misalnya, ManagedIdentityCredential) untuk menghindari masalah latensi, pemeriksaan kredensial yang tidak diinginkan, dan potensi risiko keamanan dari mekanisme fallback.

Jalankan:

Console.WriteLine(await agent.RunAsync("What is the largest city in France?"));

Atau streaming respons:

await foreach (var update in agent.RunStreamingAsync("Tell me a one-sentence fun fact."))
{
    Console.Write(update);
}

Tip

Lihat di sini untuk aplikasi sampel lengkap yang dapat dijalankan.

pip install agent-framework-foundry azure-identity

Paket agent-framework-foundry menginstal agent-framework-core dengan integrasi Microsoft Foundry. Metapackage agent-framework juga menginstal agent-framework-core, bersama dengan banyak integrasi opsional lainnya.

Masuk dengan Azure CLI dengan menjalankan az login. Dalam contoh berikut, ganti project_endpoint dengan endpoint proyek Microsoft Foundry Anda dan model dengan nama deployment model Anda.

Simpan contoh lengkap sebagai hello_agent.py:

import asyncio

from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential


async def main() -> None:
    agent = Agent(
        client=FoundryChatClient(
            project_endpoint="https://your-project.services.ai.azure.com",
            model="gpt-6-luna",
            credential=AzureCliCredential(),
        ),
        instructions="You are a friendly assistant. Keep your answers brief.",
    )
    print(await agent.run("What is the largest city of France?"))


if __name__ == "__main__":
    asyncio.run(main())

Jalankan contoh:

python hello_agent.py

Nota

Agent Framework tidak memuat .env file secara otomatis. Untuk menggunakan .env file untuk konfigurasi, hubungi load_dotenv() di awal skrip Anda:

from dotenv import load_dotenv
load_dotenv()

Atau, atur variabel lingkungan langsung di shell atau IDE Anda. Lihat catatan migrasi pengaturan untuk detailnya.

Tip

Lihat sampel lengkap untuk file lengkap yang dapat dijalankan.

go get github.com/microsoft/agent-framework-go

Buat agen:

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/microsoft/agent-framework-go/agent"
    "github.com/microsoft/agent-framework-go/provider/foundryprovider"

    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
)

func main() {
    endpoint := os.Getenv("FOUNDRY_PROJECT_ENDPOINT")
    model := os.Getenv("FOUNDRY_MODEL")

    token, err := azidentity.NewDefaultAzureCredential(nil)
    if err != nil {
        panic(err)
    }

    a := foundryprovider.NewAgent(
        endpoint,
        token,
        foundryprovider.ModelDeployment(model),
        foundryprovider.AgentConfig{
            Instructions: "You are a friendly assistant. Keep your answers brief.",
            Config: agent.Config{
                Name: "HelloAgent",
            },
        },
    )

Warning

azidentity.NewDefaultAzureCredential nyaman untuk pengembangan tetapi membutuhkan pertimbangan yang cermat dalam produksi. Dalam produksi, pertimbangkan untuk menggunakan kredensial tertentu, seperti azidentity.NewManagedIdentityCredential, untuk menghindari masalah latensi, pemeriksaan kredensial yang tidak diinginkan, dan potensi risiko keamanan dari mekanisme fallback.

Jalankan:

    ctx := context.Background()

    resp, err := a.RunText(ctx, "What is the largest city in France?").Collect()
    fmt.Println(resp, err)

Atau streaming respons:

    for update, err := range a.RunText(ctx, "Tell me a one-sentence fun fact.", agent.Stream(true)) {
        if err != nil {
            panic(err)
        }
        fmt.Print(update)
    }
}

Tip

Lihat sampel lengkap untuk file lengkap yang dapat dijalankan.

Langkah berikutnya

Masuk lebih dalam:

  • Agen — memahami arsitektur agen
  • Penyedia — lihat semua penyedia yang didukung