이 문서에서는 에이전트 애플리케이션 내보내기 및 가져오기 파일의 디렉터리 구조와 파일 구성을 간략하게 설명합니다.
형식은 압축을 풀면 에이전트 애플리케이션 이름에 해당하는 루트 디렉터리 가 포함된 ZIP 파일입니다.
이 문서에 설명된 모든 경로는 루트 디렉터리를 기준으로 합니다.
다른 객체 (에이전트, 도구 등)에 대한 모든 참조는 displayName 값을 사용해야 합니다.
다음 도구 이름은 예약되어 있습니다.
end_sessiontransfer_to_agentcustomize_response
가져오기 및 내보내기를 할 때 개별 파일에 JSON 또는 YAML을 사용할 수 있습니다. 이 문서에 설명된 파일은 YAML을 사용하지만 JSON 구성원은 유사합니다.
루트 디렉터리
루트 디렉터리에는 애플리케이션의 기본 구성 파일이 포함되어 있습니다.
app.yaml: 에이전트 애플리케이션의 중앙 구성 파일입니다. 다음과 같이 정의합니다.displayName(문자열): 사람이 읽을 수 있는 애플리케이션 이름입니다.rootAgent(문자열): 대화를 시작하는 에이전트의 표시 이름 입니다. 파일 이름 또는 디렉터리 이름을 사용하지 마세요.audioProcessingConfig(객체): 텍스트 음성 변환 및 음성 텍스트 변환 설정입니다.synthesizeSpeechConfigs(맵): 키는 언어 코드 (예:en-US)이고 값은voice(문자열)가 포함된 객체입니다.inactivityTimeout(문자열): 기간 문자열 (예: '2초')입니다.ambientSoundConfig(객체):volumeGainDb(부동 소수점 수) 및prebuiltAmbientSound(문자열)를 포함하여 배경 소음을 구성합니다.
loggingSettings(객체): 로그 및 녹화 구성입니다.redactionConfig(객체): 민감한 정보 수정 구성입니다.audioRecordingConfig(객체):gcsBucket(문자열)을 포함합니다.bigqueryExportSettings(객체):enabled(불리언),project(문자열),dataset(문자열)을 포함합니다.cloudLoggingSettings(객체):enableCloudLogging(불리언)을 포함합니다.
guardrails(문자열 목록): 전역적으로 적용되는 가드레일 이름 목록입니다.variableDeclarations(객체 목록): 전역 변수의 스키마 정의입니다. 각 객체에는 다음이 포함됩니다.name(문자열): 변수 이름입니다.description(문자열): 변수의 목적에 대한 설명입니다.schema(객체): 유형 정의 (예:{ type: STRING }또는 중첩된 속성)입니다.default(모든 유형): 변수의 기본값입니다.
globalInstruction(문자열): 전역 시스템 안내 파일의 경로입니다.languageSettings(객체):defaultLanguageCode(문자열): 예: 'en-US'supportedLanguageCodes(문자열 목록): 예:["fr", "es"].enableMultilingualSupport(불리언)
environment.json: 환경별 변수의 키-값 쌍입니다.global_instruction.txt: 기본 프롬프트/안내가 포함된 텍스트 파일입니다.
agents/
이 디렉터리에는 애플리케이션의 모든 에이전트에 대한 정의가 포함되어 있습니다.
에이전트 구조 (agents/<agent_name>/)
<agent_name>.yaml: 특정 에이전트의 구성 파일입니다.displayName(문자열): 에이전트의 이름입니다.modelSettings(객체):model(문자열)을 포함합니다.instruction(문자열): 루트를 기준으로 안내 파일의 경로입니다 (예:agents/<agent_name>/instruction.txt).tools(문자열 목록): 이 에이전트에서 사용할 수 있는 로컬 도구의 표시 이름입니다.toolsets(객체 목록): 이 에이전트에서 사용할 수 있는 OpenAPI 도구 모음입니다. 각 객체에는 다음이 포함됩니다.toolset(문자열): 도구 모음의 이름입니다.toolIds(문자열 목록): 해당 도구 모음에서 노출할 특정 작업 ID입니다.
childAgents(문자열 목록): 이 에이전트가 전환할 수 있는 다른 에이전트의 표시 이름입니다. 이 관계는 단방향 (상위에서 하위로)입니다. 순환 전환이 명시적으로 의도되지 않는 한 하위 에이전트는 상위 에이전트를 하위 에이전트로 나열해서는 안 됩니다. 에이전트는 둘 이상의 상위 에이전트를 가질 수 없습니다(예외: 에스컬레이션 또는 만족도와 같은 공유 유틸리티 에이전트). 루트 에이전트는 다른 에이전트의 하위 에이전트로 나열될 수 없습니다.*Callbacks(객체 목록):beforeModelCallbacks,afterModelCallbacks등에 사용됩니다. 각 객체에는 다음이 포함됩니다.pythonCode(문자열): 콜백 스크립트의 경로입니다.disabled(불리언): 콜백이 활성 상태인지 여부입니다.description(문자열): 콜백 로직에 대한 설명입니다.
instruction.txt: 이 에이전트의 특정 시스템 프롬프트입니다. 도구에 대한 참조는{@TOOL: <tool_display_name>}문법을 사용해야 하고, 다른 에이전트에 대한 참조는{@AGENT: <agent_display_name>}을 사용해야 하며, 변수는{variable_name}(예:{firstname})을 사용하여 액세스해야 합니다.before_model_callbacks/등: 콜백 스크립트의 디렉터리입니다.
tools/
이 디렉터리에는 Python 함수 또는 데이터 저장소 검색기일 수 있는 '로컬' 도구가 포함되어 있습니다.
도구 구조 (tools/<tool_name>/)
<tool_name>.yaml: 도구의 구성입니다.pythonFunction또는dataStoreTool중 하나만 사용합니다. 둘 다 사용할 수 없습니다.displayName(문자열): 도구의 이름입니다.- 옵션 A: Python 함수 도구
pythonFunction(객체):name(문자열): 함수 이름입니다.pythonCode(문자열): 루트를 기준으로 Python 구현의 경로입니다 (예:tools/<tool_name>/python_function/python_code.py).description(문자열): LLM의 시맨틱 설명입니다.
- 옵션 B: 데이터 저장소 도구
dataStoreTool(객체):name(문자열): 도구 이름입니다 (일반적으로 디렉터리 이름과 일치).description(문자열): 에이전트의 도구 목적에 대한 설명입니다.engineSource(객체):dataStoreSources(객체 목록):dataStore(객체):name(문자열): 데이터 저장소의 전체 리소스 이름(예:projects/...) 또는 환경 변수(예:$env_var)입니다.
modalityConfigs(객체 목록): 선택사항입니다. 텍스트 또는 오디오의 동작을 구성합니다.modalityType(열거형):TEXT또는AUDIO입니다.groundingConfig(객체):groundingLevel(부동 소수점 수): 예: 4.0
executionType(열거형): 예:SYNCHRONOUS
python_function/python_code.py: Python 코드 파일 (Python 함수 도구에만 해당).
toolsets/
이 디렉터리에는 OpenAPI 기반 도구 모음이 포함되어 있습니다.
도구 모음 구조 (toolsets/<toolset_name>/)
<toolset_name>.yaml: 도구 모음의 구성입니다.displayName(문자열): 도구 모음의 이름입니다.openApiToolset(객체):openApiSchema(문자열): 루트를 기준으로 OpenAPI 스키마 파일의 경로입니다. (예:toolsets/<toolset_name>/open_api_toolset/open_api_schema.yaml).apiAuthentication(객체): 인증 구성 (예:serviceAgentIdTokenAuthConfig)입니다.
open_api_toolset/open_api_schema.yaml: OpenAPI 사양 파일입니다.
guardrails/
이 디렉터리는 콘텐츠 안전 필터를 정의합니다.
가드레일 구조 (guardrails/<guardrail_name>/)
<guardrail_name>.yaml:displayName(문자열): 가드레일의 이름입니다.description(문자열): 목적입니다.enabled(불리언): 활성 상태인지 여부입니다.contentFilter(객체):bannedContentsInUserInput(문자열 목록): 차단할 단어와 구문입니다.matchType(문자열): 예: 'WORD_BOUNDARY_STRING_MATCH'
action(객체):respondImmediately(객체):responses(객체 목록): 각 객체에는text(문자열)가 포함됩니다.
examples/
이 디렉터리에는 에이전트 애플리케이션에서 사용되는 퓨샷 예시의 정의가 포함되어 있습니다.
예시 구조 (examples/<example_name>/)
<example_name>.yaml: 예시의 구성입니다.
evaluations/
이 디렉터리에는 테스트 정의가 포함되어 있습니다.
평가 구조 (evaluations/<evaluation_name>/)
<evaluation_name>.yaml: 예상 입력/출력으로 테스트 시나리오를 정의합니다.
evaluationDatasets/
이 디렉터리에는 평가 데이터 세트가 포함되어 있습니다.
평가 데이터 세트 구조 (evaluationDatasets/<evaluation_dataset_name>/)
<evaluation_dataset_name>.yaml: 평가 데이터 세트의 구성입니다.