중요합니다
이 문서에서 미리 보기로 표시된 항목은 현재 미리 보기로 제공됩니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며 Microsoft 프로덕션 워크로드에 권장하지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.
메모
에이전트 매니페스트(agent.manifest.yaml) 및 독립 실행형 에이전트 정의(agent.yaml)는 더 이상 사용되지 않습니다. Foundry azd 확장(azure.ai.agents 1.0.0-beta.1)을 기준으로 호스트된 모든 에이전트 구성은 단일 azure.yaml에 있습니다.
호스트된 에이전트에 대한 Azure.yaml 작성자 및 호스트된 에이전트에 대한 azure.yaml 참조를 참조하세요.
AgentSchema 사양은 AI 에이전트를 정의하기 위한 개방형 표준입니다. 호스트된 에이전트를 빌드할 때는 주로 AgentDefinition, AgentManifest 및 ContainerAgent의 세 가지 최상위 스키마 유형을 사용합니다. 에 대한 AgentManifestAgentDefinitionagent.manifest.yamlagent.yaml이 레거시 스키마 모델은 참조용으로 유지되며 .azure.yaml 스키마는 하나의 도구에만 국한되지 않습니다. Azure 개발자 CLI(azd)와 Visual Studio Code Microsoft Foundry 도구 키트가 모두 사용합니다.
스키마는 고유한 명명 규칙이 있는 두 개의 파일 컨텍스트에 나타납니다.
-
agent.manifest.yaml는 레거시 샘플에서 사용하는 매개 변수가 있는 템플릿인 AgentManifest입니다. 현재azd ai agent init -t초기화에는azure.yaml프로젝트 문서가 필요하며 AgentManifest 래퍼를 거부합니다. -
agent.yaml는 AgentDefinition으로, 레거시 초기화에서 프로젝트에src/<agent>/agent.yaml쓴 구체적인 구성입니다.
두 파일 모두 에이전트의 모델 , 도구, 프로토콜, 환경 및 리소스를 설명합니다. 이는 azure.yamlAzure 리소스를 프로비전하고 배포하는 방법을 설명하는 고유한 기능입니다. 참조는 azure.yaml호스트된 에이전트에 대한 azure.yaml 참조를 참조하세요.
스키마 형식
AgentDefinition
AgentDefinition은 실행할 준비가 된 에이전트의 구체적인 사양입니다. 특정 구성이 있고 템플릿 자리 표시자가 없는 {{ parameter }} 단일 에이전트 인스턴스를 설명합니다.
모든 AgentDefinition에는 kind 에이전트 유형을 결정하는 필드가 있습니다.
| Kind | Description |
|---|---|
prompt |
지침만을 통해 구성된 프롬프트 기반 에이전트입니다. |
hosted |
컨테이너 이미지로 배포된 컨테이너화된 에이전트입니다. |
workflow |
다른 에이전트를 조정하는 오케스트레이션 에이전트입니다. |
생성된 AgentDefinition은 여전히 참조를 포함할 ${VAR_NAME} 수 있습니다. 이러한 개체 틀은 azd AgentSchema 사양의 일부가 아닌 환경 변수 자리 표시자입니다. 배포 시 각 환경의 azd 파일에서 값을 확인하여 여러 .azure/<env>/.env 환경에서 단일 정의 파일을 작업할 수 있습니다.
AgentManifest
AgentManifest는 에이전트를 동적으로 만들기 위한 매개 변수가 있는 템플릿입니다. AgentDefinition을 해당 필드로 래핑하고 다음을 template 추가합니다.
-
parameters: 대체 구문을 사용하여{{ parameter }}생성 시 메시지가 표시되거나 삽입되는 값입니다. -
resources: 모델 배포, 도구 상자 또는 연결과 같은 외부 종속성입니다.
재사용 가능한 템플릿이 필요하거나 구성이 다른 유사한 에이전트를 배포하려는 경우 AgentManifest를 사용합니다. 실행할 azd ai agent init때 일반적으로 템플릿을 선택하거나 URL을 제공하여 매니페스트를 가리킵니다. init 프로세스는 매개 변수 값을 묻는 메시지를 표시하고 AgentDefinition을 생성합니다.
ContainerAgent
ContainerAgent는 .가 있는 kind: hostedAgentDefinition입니다. 컨테이너별 필드를 사용하여 기본 정의를 확장하고 호스트된 에이전트를 template 빌드할 때 AgentManifest 내부입니다.
매니페스트 또는 정의를 사용하는 경우
| 매니페스트 사용 | 정의 사용 시 |
|---|---|
| 다른 사용자가 인스턴스화할 수 있도록 재사용 가능한 에이전트 템플릿을 게시합니다. | 특정 단일 용도 에이전트를 배포합니다. |
| 사용자가 초기화 시 모델, 도구 또는 연결을 구성하도록 합니다. | 모든 구성 값이 알려지고 고정됩니다. |
| 샘플 또는 시작 템플릿을 빌드합니다. | 이미 실행 azd ai agent init 되었으며 생성된 정의가 있습니다. |
대부분의 개발자는 매니페스트 azd ai agent init 에서 시작한 다음 생성된 정의를 사용합니다. 템플릿 작성자 및 샘플 게시자는 매니페스트의 기본 작성자입니다.
최상위 필드
아래 참조는 정의 필드의 상위 집합인 매니페스트 필드를 문서화합니다.
| Field | 유형 | 필수 | Description |
|---|---|---|---|
name |
string | Yes | 에이전트 매니페스트의 이름입니다. |
description |
string | No | 에이전트에 대한 설명입니다. |
metadata |
object | No | 추가 메타데이터(예: tags. |
template |
ContainerAgent | Yes | 에이전트 정의 템플릿입니다. |
parameters |
object | No | init 중에 메시지가 표시되는 구성 가능한 매개 변수입니다. |
resources |
배열 | Yes | 에이전트에 필요한 리소스입니다. |
template(ContainerAgent)
template 필드는 호스트된 컨테이너 에이전트를 정의합니다.
| Field | 유형 | 필수 | Description |
|---|---|---|---|
name |
string | Yes | 요원 이름. |
kind |
string | Yes | 호스트된 hosted 에이전트의 경우여야 합니다. |
protocols |
배열 | Yes | 프로토콜 지원. |
environment_variables |
배열 | No | 컨테이너에 대한 환경 변수입니다. |
resources |
object | No | 컨테이너 CPU 및 메모리 리소스. |
image |
string | No | 미리 빌드된 컨테이너 이미지 경로입니다. |
dockerfilePath |
string | No | Dockerfile의 경로입니다. |
프로토콜
protocols:
- protocol: responses # OpenAI Responses API
version: 2.0.0
| Protocol | Description |
|---|---|
responses |
OpenAI 응답 API. 대화 기록 관리를 포함합니다. |
invocations |
사용자 지정 페이로드 프로토콜입니다. 기본 제공 대화 관리가 없습니다. |
전체 프로토콜 사양은 호스트된 에이전트 런타임 계약을 참조하세요.
environment_variables
environment_variables:
- name: FOUNDRY_MODEL_NAME
value: ${FOUNDRY_MODEL_NAME}
구문은 ${ } .에서 azd환경 변수를 참조 .azure/<env>/.env 합니다.
메모
에서 선언 FOUNDRY_PROJECT_ENDPOINT 하지 마세요.environment_variables 플랫폼은 호스팅된 컨테이너에 자동으로 삽입하고 azd ai agent run 로컬 개발을 위해 설정합니다. 여기에 선언하는 것은 중복되며 플랫폼 값을 가리는 위험이 있습니다.
parameters
동안 azd ai agent init매개 변수가 표시됩니다. 중요한 값에 사용합니다 secret: true .
parameters:
github_pat:
secret: true
description: GitHub Personal Access Token
resources
리소스는 에이전트에 필요한 항목을 정의합니다. 아래 셰이프에서는 매니페스트가 선언하는 내용과 프로젝트에 기록되는 내용을 azd ai agent init 설명합니다. 초기화한 후 런타임에 직접 CLI 명령( , , azd ai connectionazd ai toolbox및 azd ai skill)을 사용하여 동일한 프로젝트 범위 리소스를 관리합니다azd ai routine.
메모
스키마에는 기술 필드가 포함되지 않습니다.
azd ai agent init, azd ai agent run및 azd up 명령은 기술을 자동으로 다운로드하지 않습니다. 프로젝트 수준 리소스 azd ai skill 로 기술을 관리하고 에이전트 런타임에 직접 연결합니다.
모델 리소스
resources:
- kind: model
name: chat
id: gpt-4.1-mini
연결 리소스
resources:
- kind: connection
name: MyConnection
target: https://api.example.com
category: remoteTool
credentials:
type: CustomKeys
keys:
Authorization: "Bearer {{ my_api_key }}"
도구 상자 리소스
resources:
- kind: toolbox
name: agent-tools
description: Agent toolbox
tools:
- name: webSearch
type: builtin
capability: web-search
- name: codeInterpreter
type: builtin
capability: code-interpreter
- name: myMcp
type: connection
connection: "{{ MyConnection }}"
도구 상자 버전에는 원시 항목(예tools: 기본 제공 기능 web-search 또는), code-interpreter (원격 도구 MCP 서버 또는 connections검색 인덱스와 같은 프로젝트 연결) 및 skills (기존 프로젝트 기술에 대한 참조) 세 가지 종류의 항목이 포함됩니다.
tools 슬롯은 매니페스트에서 앞에 선언됩니다. 연결 및 기술 참조를 증분 방식으로 azd ai toolbox connection add 추가합니다 azd ai toolbox skill add.
전체 예제
name: my-web-search-agent
description: An agent with web search and MCP tools
metadata:
tags:
- AI Agent Hosting
template:
name: my-web-search-agent
kind: hosted
protocols:
- protocol: responses
version: 2.0.0
environment_variables:
- name: FOUNDRY_MODEL_NAME
value: ${FOUNDRY_MODEL_NAME}
- name: TOOLBOX_ENDPOINT
value: ${TOOLBOX_ENDPOINT}
parameters:
github_pat:
secret: true
description: GitHub PAT for MCP connection
resources:
- kind: model
name: chat
id: gpt-4.1-mini
- kind: connection
name: GithubMcpConnection
target: https://api.githubcopilot.com/mcp
category: remoteTool
credentials:
type: CustomKeys
keys:
Authorization: "Bearer {{ github_pat }}"
- kind: toolbox
name: agent-tools
description: Web search and GitHub MCP tools
tools:
- name: webSearch
type: builtin
capability: web-search
- name: github
type: connection
connection: "{{ GithubMcpConnection }}"
변수 치환
대체는 매니페스트 매개 변수가 초기화 시간에 확인되고 환경 변수가 실행 또는 배포 시 확인되는 두 계층에서 발생합니다. 그런 다음, 하나의 정의 파일이 모든 환경에서 작동할 azd 수 있습니다.
| Syntax | 해결된 경우 | 무엇에 의해 |
|---|---|---|
{{ param_name }} |
azd ai agent init |
사용자에게 표시되는 매니페스트 매개 변수 값입니다. |
${VAR_NAME} |
azd deploy 또는 azd ai agent run |
azd에서 환경 변수 .azure/<env>/.env |