단 몇 줄의 코드로 에이전트를 만들고 응답을 받습니다.
dotnet add package Microsoft.Agents.AI.Foundry --prerelease
에이전트를 만듭니다.
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 은 개발에 편리하지만 프로덕션 환경에서 신중하게 고려해야 합니다. 프로덕션 환경에서는 특정 자격 증명(예: ManagedIdentityCredential)을 사용하여 대기 시간 문제, 의도하지 않은 자격 증명 검색 및 대체 메커니즘의 잠재적인 보안 위험을 방지하는 것이 좋습니다.
다음을 실행합니다.
Console.WriteLine(await agent.RunAsync("What is the largest city in France?"));
또는 응답을 스트리밍합니다.
await foreach (var update in agent.RunStreamingAsync("Tell me a one-sentence fun fact."))
{
Console.Write(update);
}
Tip
전체 실행 가능한 샘플 애플리케이션은 여기 를 참조하세요.
pip install agent-framework-foundry azure-identity
agent-framework-foundry 패키지는 Microsoft Foundry 통합과 함께 agent-framework-core를 설치합니다.
agent-framework 메타패키지는 다른 많은 선택적 통합과 함께 agent-framework-core도 설치합니다.
az login을 실행하여 Azure CLI로 로그인합니다. 다음 예제에서는 model를 Microsoft Foundry 프로젝트 엔드포인트로, project_endpoint을 모델 배포 이름으로 바꿉니다.
전체 예제를 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-account.services.ai.azure.com/api/projects/your-project",
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())
예제를 실행하세요:
python hello_agent.py
비고
에이전트 프레임워크는 파일을 자동으로 로드 .env 않습니다. 구성에 .env 파일을 사용하려면 스크립트 시작 시 다음을 호출 load_dotenv() 합니다.
from dotenv import load_dotenv
load_dotenv()
또는 셸 또는 IDE에서 직접 환경 변수를 설정합니다. 자세한 내용은 설정 마이그레이션 참고 를 참조하세요.
Tip
전체 실행 가능한 파일에 대한 전체 샘플을 참조하세요.
go get github.com/microsoft/agent-framework-go
에이전트를 만듭니다.
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 은 개발에 편리하지만 프로덕션 환경에서 신중하게 고려해야 합니다. 프로덕션 환경에서는 대기 시간 문제, 의도하지 않은 자격 증명 검색 및 대체 메커니즘의 잠재적인 보안 위험을 방지하기 위해 특정 자격 증명(예: azidentity.NewManagedIdentityCredential)을 사용하는 것이 좋습니다.
다음을 실행합니다.
ctx := context.Background()
resp, err := a.RunText(ctx, "What is the largest city in France?").Collect()
fmt.Println(resp, err)
또는 응답을 스트리밍합니다.
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
전체 실행 가능한 파일에 대한 전체 샘플을 참조하세요.
다음 단계
더 자세히 살펴보기: