도구 개요

에이전트 프레임워크는 에이전트 기능을 확장하는 다양한 유형의 도구를 지원합니다. 도구를 사용하면 에이전트가 외부 시스템과 상호 작용하고, 코드를 실행하고, 데이터를 검색할 수 있습니다.

도구 유형

도구 유형 Description
함수 도구 대화 중에 에이전트가 호출할 수 있는 사용자 지정 코드
코드 해석기 샌드박스 환경에서 코드 실행
파일 검색 업로드된 파일을 통해 검색
웹 검색 웹에서 정보를 검색합니다.
호스트된 MCP 도구 공급자 런타임에서 호출한 MCP 서버
로컬 MCP 도구 로컬 또는 사용자 지정 호스트에서 실행되는 MCP 서버
Foundry 도구 상자 Foundry 프로젝트에서 관리되는 호스트된 도구 구성의 명명된 버전 관리 번들
도구 유형 Description
함수 도구 대화 중에 에이전트가 호출할 수 있는 사용자 지정 코드
코드 해석기 샌드박스 환경에서 코드 실행
파일 검색 업로드된 파일을 통해 검색
웹 검색 웹에서 정보를 검색합니다.
호스트된 MCP 도구 공급자 런타임에서 호출한 MCP 서버
로컬 MCP 도구 로컬 또는 사용자 지정 호스트에서 실행되는 MCP 서버
Foundry 도구 상자 Foundry 프로젝트에서 관리되는 호스트된 도구 구성의 명명된 버전 관리 번들
이미지 생성 Foundry/OpenAI 응답 런타임에서 호스트된 이미지 생성
OpenAI 응답 런타임에서 호스트된 셸 실행 - GitHub Copilot CLI의 기본 제공 셸/파일/URL 런타임 도구와는 별개입니다.
빙 접지 Bing Search 리소스를 사용하여 사용자 고유의 접지를 통한 웹 접지 - 실험적
빙 커스텀 검색 큐레이팅된 도메인 목록으로 제한된 Bing 접지 — 미리 보기
Azure AI 검색 Foundry 연결을 통해 Azure AI 검색 인덱스 쿼리 - 실험적
SharePoint SharePoint 콘텐츠의 기본 답변 - 미리 보기
Microsoft Fabric Fabric 데이터 에이전트 쿼리 - 미리 보기
메모리 검색 Foundry 관리 메모리 저장소 검색 - 미리 보기
컴퓨터 사용 데스크톱 또는 브라우저 환경 드라이브 - 미리 보기
브라우저 자동화 Azure Playwright를 통해 브라우저 드라이브 — 미리 보기
Agent-to-Agent (A2A) 도구 Foundry 에이전트에서 원격 A2A 에이전트를 도구로 호출 - 미리 보기

비고

실험적 또는 미리 보기로 표시된 도구는 관련 공급자 페이지에 설명되어 있으며 프로세스에 처음 사용될 때 내보 ExperimentalWarning 낸다.

도구 승인

도구 승인 은 모델이 결과를 받기 전에 휴먼-인-더-루프 결정을 통해 모든 도구 호출(함수 도구, 호스트된 도구, MCP 도구 호출)을 제어할 수 있는 프레임워크 기능입니다. .NET 및 Python 프레임워크의 함수 호출 채팅 클라이언트에서 처리되므로 클라이언트가 도구를 로컬로 호출하는 공급자와 함께 작동합니다. 공급자별 기능이 아닙니다. 승인이 세션, 스트리밍 및 미들웨어와 상호 작용하는 방법을 포함하여 전체 패턴은 도구 승인 페이지를 참조하세요.

공급자 지원 매트릭스

OpenAI 및 Azure OpenAI 공급자는 각각 서로 다른 도구 기능을 사용하여 응답 및 채팅 완료의 두 가지 클라이언트 유형을 제공합니다. Azure OpenAI 클라이언트는 해당 OpenAI에 해당하는 것을 미러링합니다. Copilot StudioA2A 에이전트는 원격 서비스에서 실행되므로 에이전트 프레임워크 클라이언트가 아닌 원격 에이전트에서 해당 기능이 구성되므로 행렬에 나열되지 않습니다.

도구 유형 응답 채팅 완료 파운드리 Anthropic 올라마 섬 GitHub Copilot
함수 도구
코드 해석기
파일 검색
웹 검색
호스트된 MCP 도구
로컬 MCP 도구

비고

ResponsesChat Completion 열은 OpenAI 및 Azure OpenAI 모두에 적용됩니다. Azure 변형은 OpenAI와 동일한 도구 지원을 미러링합니다. 사용되지 않는 OpenAI Assistants API는 더 이상 문서화되지 않습니다. 마이그레이션 지침은 의미 체계 커널 마이그레이션 가이드 참조하세요.

공급자 지원 매트릭스

OpenAI 및 Azure OpenAI 공급자는 각각 도구 기능이 서로 다른 여러 클라이언트 유형을 제공합니다. Azure OpenAI 클라이언트는 해당 OpenAI에 해당하는 것을 미러링합니다. Foundry 열이 적용됩니다. FoundryChatClient 예를 FoundryAgent들어 도구는 Foundry 에이전트 정의에 구성되어 있습니다(작동되는 항목 및 작동하지 않는 FoundryAgent항목 참조). Copilot StudioA2A 에이전트는 원격 서비스에서 실행되므로 에이전트 프레임워크 클라이언트가 아닌 원격 에이전트에서 해당 기능이 구성되므로 행렬에 나열되지 않습니다.

도구 유형 응답 채팅 완료 파운드리 Anthropic 올라마 섬 Foundry Local GitHub Copilot
함수 도구 ⚠️¹ ⚠️¹
코드 해석기
파일 검색
웹 검색
이미지 생성
Hosted Shell(get_shell_tool)
기본 제공 셸/파일 시스템/URL 인출 ✅²
호스트된 MCP 도구
로컬 MCP 도구
Foundry 도구 상자
Bing Grounding (실험적)
Bing Custom Search (미리 보기)
Azure AI 검색(실험적)
SharePoint(미리 보기)
Microsoft Fabric(미리 보기)
메모리 검색 (미리 보기)
컴퓨터 사용 (미리 보기)
브라우저 자동화 (미리 보기)
A2A(에이전트-에이전트) 도구 (미리 보기)

1 선택한 로컬 모델 지원 함수 호출에 따라 달라집니다. 권한 처리기에 의해 제어되는 GitHub Copilot CLI 런타임에 기본 제공되는 ²입니다. OpenAI와 다른 표면.get_shell_tool

비고

ResponsesChat Completion 열은 OpenAI 및 Azure OpenAI 모두에 적용됩니다. Azure 변형은 OpenAI와 동일한 도구 지원을 미러링합니다. 로컬 MCP 도구는 함수 도구를 지원하는 모든 공급자와 함께 작동합니다.

에이전트를 함수 도구로 사용

에이전트를 다른 에이전트의 함수 도구로 사용하여 에이전트 컴퍼지션 및 고급 워크플로를 사용할 수 있습니다. 내부 에이전트는 함수 도구로 변환되고 외부 에이전트에 제공되므로 필요에 따라 호출할 수 있습니다.

다른 에이전트에 .AsAIFunction() 제공할 수 있는 함수 도구로 변환하려면 다음을 호출 AIAgent 합니다.

// Create the inner agent with its own tools
AIAgent weatherAgent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You answer questions about the weather.",
        name: "WeatherAgent",
        description: "An agent that answers questions about the weather.",
        tools: [AIFunctionFactory.Create(GetWeather)]);

// Create the main agent and provide the inner agent as a function tool
AIAgent agent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You are a helpful assistant.",
        tools: [weatherAgent.AsAIFunction()]);

// The main agent can now call the weather agent as a tool
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));

경고

DefaultAzureCredential 은 개발에 편리하지만 프로덕션 환경에서 신중하게 고려해야 합니다. 프로덕션 환경에서는 특정 자격 증명(예: ManagedIdentityCredential)을 사용하여 대기 시간 문제, 의도하지 않은 자격 증명 검색 및 대체 메커니즘의 잠재적인 보안 위험을 방지하는 것이 좋습니다.

에이전트를 호출 .as_tool() 하여 다른 에이전트에 제공할 수 있는 함수 도구로 변환합니다.

import os
from agent_framework.openai import OpenAIChatCompletionClient
from azure.identity import AzureCliCredential

# Create the inner agent with its own tools
weather_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    name="WeatherAgent",
    description="An agent that answers questions about the weather.",
    instructions="You answer questions about the weather.",
    tools=get_weather
)

# Create the main agent and provide the inner agent as a function tool
main_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    instructions="You are a helpful assistant.",
    tools=weather_agent.as_tool()
)

# The main agent can now call the weather agent as a tool
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)

도구 이름, 설명 및 인수 이름을 사용자 지정할 수도 있습니다.

weather_tool = weather_agent.as_tool(
    name="WeatherLookup",
    description="Look up weather information for any location",
    arg_name="query",
    arg_description="The weather query or location"
)

다음 단계: