도구: create_agent
지정된 앱에 새 에이전트를 만듭니다.
다음 코드 샘플은 curl를 사용하여 create_agent MCP 도구를 호출하는 방법을 보여줍니다.
| curl 요청 |
|---|
curl --location 'https://ces.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_agent", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
입력 스키마
CreateAgentRequest
| JSON 표현 |
|---|
{
"parent": string,
"agentId": string,
"agent": {
object ( |
| 필드 | |
|---|---|
parent |
필수 항목입니다. 에이전트를 만들 앱의 리소스 이름입니다. |
agentId |
(선택사항) 상담사에 사용할 ID이며, 상담사 리소스 이름의 마지막 구성요소가 됩니다. 제공되지 않으면 에이전트에 고유 ID가 자동으로 할당됩니다. |
agent |
필수 항목입니다. 만들 에이전트입니다. |
에이전트
| JSON 표현 |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| 필드 | |
|---|---|
name |
식별자. 에이전트의 고유 식별자입니다. 형식: |
displayName |
필수 항목입니다. 상담사의 표시 이름입니다. |
description |
(선택사항) 인간이 읽을 수 있는 에이전트 설명입니다. |
modelSettings |
(선택사항) LLM 모델의 구성입니다. |
instruction |
(선택사항) 에이전트의 동작을 안내하는 LLM 모델의 요청 사항입니다. |
tools[] |
(선택사항) 에이전트가 사용할 수 있는 도구 목록입니다. 형식: |
childAgents[] |
(선택사항) 에이전트 트리의 하위 에이전트 목록입니다. 형식: |
beforeAgentCallbacks[] |
(선택사항) 에이전트가 호출되기 전에 실행할 콜백입니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
afterAgentCallbacks[] |
(선택사항) 에이전트가 호출된 후 실행할 콜백입니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
beforeModelCallbacks[] |
(선택사항) 모델이 호출되기 전에 실행할 콜백입니다. 모델에 대한 호출이 여러 개 있는 경우 콜백이 여러 번 실행됩니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
afterModelCallbacks[] |
(선택사항) 모델이 호출된 후 실행할 콜백입니다. 모델에 대한 호출이 여러 개 있는 경우 콜백이 여러 번 실행됩니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
beforeToolCallbacks[] |
(선택사항) 도구가 호출되기 전에 실행할 콜백입니다. 도구 호출이 여러 개 있는 경우 콜백이 여러 번 실행됩니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
afterToolCallbacks[] |
(선택사항) 도구가 호출된 후 실행할 콜백입니다. 도구 호출이 여러 개 있는 경우 콜백이 여러 번 실행됩니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
createTime |
출력 전용입니다. 상담사가 생성된 타임스탬프입니다. 생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 |
updateTime |
출력 전용입니다. 에이전트가 마지막으로 업데이트된 타임스탬프입니다. 생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 |
guardrails[] |
(선택사항) 에이전트의 가드레일 목록입니다. 형식: |
etag |
읽기-수정-쓰기 작업 중에 객체가 변경되지 않았는지 확인하는 데 사용되는 Etag입니다. etag가 비어 있으면 업데이트가 동시에 이루어진 변경사항을 덮어씁니다. |
toolsets[] |
(선택사항) 에이전트의 도구 세트 목록입니다. |
generatedSummary |
출력 전용입니다. 에이전트가 LLM 어시스턴트에 의해 생성된 경우 이 필드에는 생성에 관한 설명 요약이 포함됩니다. |
transferRules[] |
(선택사항) 상담사 트랜스퍼 규칙입니다. 일치하는 규칙이 여러 개 있는 경우 목록의 첫 번째 규칙이 사용됩니다. |
validationErrors[] |
출력 전용입니다. 상담사 품질에 영향을 미칠 수 있는 상담사의 잘못된 구성 또는 오류 |
통합 필드 agent_type. 에이전트 유형입니다. agent_type은 다음 중 하나여야 합니다. |
|
llmAgent |
(선택사항) 기본 에이전트 유형입니다. |
remoteDialogflowAgent |
(선택사항) 에이전트 실행에 사용할 원격 Dialogflow 에이전트입니다. 이 필드가 설정되면 다른 모든 에이전트 수준 속성은 무시됩니다. 참고: Dialogflow 에이전트가 앱과 다른 프로젝트에 있는 경우 CES 서비스 에이전트 |
remoteA2aAgent |
(선택사항) 에이전트 실행에 사용할 원격 A2A 에이전트입니다. |
RemoteDialogflowAgent
| JSON 표현 |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| 필드 | |
|---|---|
agent |
필수 항목입니다. Dialogflow 에이전트 리소스 이름입니다. 형식: |
flowId |
(선택사항) Dialogflow 에이전트의 흐름 ID입니다. |
environmentId |
(선택사항) 에이전트 실행에 사용할 Dialogflow 에이전트의 환경 ID입니다. 지정하지 않으면 초안 환경이 사용됩니다. |
inputVariableMapping |
(선택사항) Dialogflow 에이전트에 입력으로 전송될 앱 변수 이름과 Dialogflow 세션 매개변수 이름의 매핑입니다.
|
outputVariableMapping |
(선택사항) Dialogflow 에이전트 실행이 종료된 후 CES 에이전트로 다시 전송될 Dialogflow 세션 매개변수 이름과 앱 변수 이름의 매핑입니다.
|
respectResponseInterruptionSettings |
(선택사항) Dialogflow 에이전트에서 구성된 메시지 수준 인터럽션 설정을 준수할지 여부를 나타냅니다.
|
languageCodeVariable |
(선택사항) Dialogflow 세션에 사용할 언어 코드가 포함된 변수의 이름입니다. 지정하지 않으면 Dialogflow 에이전트의 기본 언어 코드가 사용됩니다. |
InputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
RemoteA2aAgent
| JSON 표현 |
|---|
{
"a2aConfig": {
object ( |
| 필드 | |
|---|---|
a2aConfig |
필수 항목입니다. A2A 연결 구성입니다. |
RemoteA2aConfig
| JSON 표현 |
|---|
{ "apiAuthentication": { object ( |
| 필드 | |
|---|---|
apiAuthentication |
(선택사항) 원격 에이전트 호출을 위한 인증 구성입니다. 레지스트리 참조에서 이미 인증을 처리하는 경우 선택사항입니다. |
inputVariableMapping |
(선택사항) 원격 에이전트의 입력 변수 이름을 GECX 변수 이름에 매핑합니다.
|
outputVariableMapping |
(선택사항) 원격 에이전트의 출력 변수 이름을 GECX 변수 이름에 매핑합니다.
|
streamingEnabled |
(선택사항) 원격 에이전트에 스트리밍이 사용 설정되어 있는지 여부입니다. |
contextId |
(선택사항) 비어 있지 않으면 원격 A2A 에이전트와의 상호작용에서 이 컨텍스트 ID가 사용됩니다. 이 context_id 필드는 |
통합 필드 agent_spec. 원격 에이전트의 사양입니다. agent_spec은 다음 중 하나여야 합니다. |
|
agentCard |
(선택사항) 인라인으로 정의된 전체 에이전트 카드입니다. |
agentRegistry |
(선택사항) Agent Registry의 에이전트에 대한 참조입니다. 형식: |
AgentCard
| JSON 표현 |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| 필드 | |
|---|---|
name |
필수 항목입니다. 인간이 읽을 수 있는 에이전트의 이름입니다. |
description |
필수 항목입니다. 에이전트의 작업 도메인/솔루션 공간에 대한 설명입니다. |
supportedInterfaces[] |
필수 항목입니다. 지원되는 인터페이스의 순서가 지정된 목록입니다. 첫 번째 항목이 선호됩니다. |
version |
필수 항목입니다. 에이전트 버전입니다. |
skills[] |
필수 항목입니다. 스킬은 상담사가 수행할 수 있는 능력의 단위를 나타냅니다. 다소 추상적일 수 있지만 에이전트가 성공할 가능성이 높은 더 집중적인 작업 집합을 나타냅니다. |
AgentInterface
| JSON 표현 |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| 필드 | |
|---|---|
url |
필수 항목입니다. 이 인터페이스를 사용할 수 있는 URL입니다. 프로덕션에서는 유효한 절대 HTTPS URL이어야 합니다. 예: 'https://api.example.com/a2a/v1', 'https://grpc.example.com/a2a' |
protocolBinding |
필수 항목입니다. 이 URL에서 지원되는 프로토콜 바인딩입니다. 이는 다른 프로토콜 바인딩을 위해 쉽게 확장할 수 있는 개방형 양식 문자열입니다. 공식적으로 지원되는 핵심은 |
tenant |
상담사를 호출할 때 요청에 사용할 테넌트 ID입니다. |
protocolVersion |
필수 항목입니다. 이 인터페이스가 노출하는 A2A 프로토콜의 버전입니다. 메이저 버전별로 지원되는 최신 마이너 버전을 사용합니다. 예: '0.3', '1.0' |
AgentSkill
| JSON 표현 |
|---|
{ "id": string, "name": string, "description": string, "tags": [ string ], "examples": [ string ], "inputModes": [ string ], "outputModes": [ string ] } |
| 필드 | |
|---|---|
id |
필수 항목입니다. 상담사의 기술에 대한 고유 식별자입니다. |
name |
필수 항목입니다. 인간이 읽을 수 있는 스킬 이름입니다. |
description |
필수 항목입니다. 스킬에 대한 자세한 설명입니다. |
tags[] |
필수 항목입니다. 스킬의 기능을 설명하는 키워드 세트입니다. |
examples[] |
이 스킬이 처리할 수 있는 프롬프트 또는 시나리오의 예시입니다. |
inputModes[] |
이 스킬에 지원되는 입력 미디어 유형의 집합으로, 에이전트의 기본값을 재정의합니다. |
outputModes[] |
이 스킬에 지원되는 출력 미디어 유형의 집합으로, 에이전트의 기본값을 재정의합니다. |
ApiAuthentication
| JSON 표현 |
|---|
{ // Union field |
| 필드 | |
|---|---|
통합 필드 auth_config. 인증 구성입니다. auth_config은 다음 중 하나여야 합니다. |
|
apiKeyConfig |
(선택사항) API 키 인증 구성입니다. |
oauthConfig |
(선택사항) OAuth 구성입니다. |
serviceAgentIdTokenAuthConfig |
(선택사항) CES 서비스 에이전트에서 생성된 ID 토큰 인증 구성입니다. |
serviceAccountAuthConfig |
(선택사항) 서비스 계정 인증 구성입니다. |
bearerTokenConfig |
(선택사항) Bearer 토큰 인증 구성입니다. |
ApiKeyConfig
| JSON 표현 |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| 필드 | |
|---|---|
keyName |
필수 항목입니다. API 키의 매개변수 이름 또는 헤더 이름입니다. 예: API 요청이 'https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
필수 항목입니다. API 키를 저장하는 SecretManager 보안 비밀 버전 리소스의 이름입니다. 형식: 참고: CES 서비스 에이전트 |
requestLocation |
필수 항목입니다. 요청의 키 위치입니다. |
OAuthConfig
| JSON 표현 |
|---|
{
"oauthGrantType": enum ( |
| 필드 | |
|---|---|
oauthGrantType |
필수 항목입니다. OAuth 권한 부여 유형입니다. |
clientId |
필수 항목입니다. OAuth 제공업체의 클라이언트 ID입니다. |
clientSecretVersion |
필수 항목입니다. 클라이언트 보안 비밀번호를 저장하는 SecretManager 보안 비밀 버전 리소스의 이름입니다. 형식: 참고: CES 서비스 에이전트 |
tokenEndpoint |
필수 항목입니다. 액세스 토큰으로 교환할 OAuth 제공업체의 토큰 엔드포인트입니다. |
scopes[] |
(선택사항) 부여할 OAuth 범위입니다. |
ServiceAccountAuthConfig
| JSON 표현 |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| 필드 | |
|---|---|
serviceAccount |
필수 항목입니다. 인증에 사용되는 서비스 계정의 이메일 주소입니다. CES는 이 서비스 계정을 사용하여 액세스 토큰을 교환하고 액세스 토큰은 요청의 서비스 계정에는 CES 서비스 에이전트 |
scopes[] |
(선택사항) 부여할 OAuth 범위입니다. 지정하지 않으면 기본 범위 |
BearerTokenConfig
| JSON 표현 |
|---|
{ "token": string } |
| 필드 | |
|---|---|
token |
필수 항목입니다. Bearer 토큰입니다. |
InputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
ModelSettings
| JSON 표현 |
|---|
{ "model": string, "thinkingLevel": enum ( |
| 필드 | |
|---|---|
model |
(선택사항) 에이전트가 사용해야 하는 LLM 모델입니다. 설정하지 않으면 에이전트가 상위 에이전트의 모델을 상속합니다. |
thinkingLevel |
(선택사항) 모델의 사고 수준입니다. |
통합 필드
|
|
temperature |
(선택사항) 설정된 경우 이 온도가 LLM 모델에 사용됩니다. 온도는 모델 응답의 무작위성을 제어합니다. 온도가 낮을수록 더 예측 가능한 대답이 생성됩니다. 온도가 높을수록 더 창의적인 대답이 생성됩니다. |
콜백
| JSON 표현 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 필드 | |
|---|---|
description |
(선택사항) 콜백에 대한 인간이 읽을 수 있는 설명입니다. |
disabled |
(선택사항) 콜백이 사용 중지되었는지 여부입니다. 사용 중지된 콜백은 에이전트에서 무시됩니다. |
proactiveExecutionEnabled |
(선택사항) 사용 설정된 경우 콜백은 중간 모델 출력에서도 실행됩니다. 이 설정은 모델 콜백 후에만 영향을 미칩니다. 주의해서 사용 설정하세요. 일반적으로 모델 콜백은 모든 모델 응답을 받은 후에만 실행하면 됩니다. 사전 실행을 사용 설정하면 실행 비용과 지연 시간에 부정적인 영향을 미칠 수 있으므로 드문 경우에만 사용 설정해야 합니다. |
통합 필드 callback. 실행할 콜백입니다. callback은 다음 중 하나여야 합니다. |
|
pythonCode |
필수 항목입니다. 콜백에 대해 실행할 Python 코드입니다. |
타임스탬프
| JSON 표현 |
|---|
{ "seconds": string, "nanos": integer } |
| 필드 | |
|---|---|
seconds |
유닉스 시간 1970-01-01T00:00:00Z 이후 경과된 UTC 시간을 초 단위로 나타냅니다. -62135596800~253402300799 (0001-01-01T00:00:00Z~9999-12-31T23:59:59Z에 해당) 사이여야 합니다. |
nanos |
나노초 단위의 음수가 아닌 초수입니다. 이 필드는 기간의 나노초 부분이며 초의 대안이 아닙니다. 음수의 초수 값에는 시간에 반영되는 음수가 아닌 나노초 값이 있어야 합니다. 0~999,999,999(포함) 사이여야 합니다. |
AgentToolset
| JSON 표현 |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| 필드 | |
|---|---|
toolset |
필수 항목입니다. 툴셋의 리소스 이름입니다. 형식: |
toolIds[] |
(선택사항) 툴셋을 필터링할 도구 ID입니다. |
TransferRule
| JSON 표현 |
|---|
{ "childAgent": string, "direction": enum ( |
| 필드 | |
|---|---|
childAgent |
필수 항목입니다. 규칙이 적용되는 하위 에이전트의 리소스 이름입니다. 형식: |
direction |
필수 항목입니다. 전송 방향입니다. |
통합 필드 rule_type. 규칙 유형입니다. rule_type은 다음 중 하나여야 합니다. |
|
deterministicTransfer |
(선택사항) 조건이 충족되면 즉시 타겟 상담사에게 트랜스퍼되는 규칙입니다. |
disablePlannerTransfer |
(선택사항) 계획자가 타겟 상담사에게 트랜스퍼하지 못하도록 하는 규칙입니다. |
DeterministicTransfer
| JSON 표현 |
|---|
{ // Union field |
| 필드 | |
|---|---|
통합 필드 condition_type. 평가할 조건입니다. condition_type은 다음 중 하나여야 합니다. |
|
expressionCondition |
(선택사항) 세션 상태 조건을 평가하는 규칙 조건이 true로 평가되면 전송이 발생합니다. |
pythonCodeCondition |
(선택사항) Python 코드 블록을 사용하여 조건을 평가하는 규칙 조건이 true로 평가되면 전송이 발생합니다. |
ExpressionCondition
| JSON 표현 |
|---|
{ "expression": string } |
| 필드 | |
|---|---|
expression |
필수 항목입니다. cloud.api.Expression 조건의 문자열 표현입니다. |
PythonCodeCondition
| JSON 표현 |
|---|
{ "pythonCode": string } |
| 필드 | |
|---|---|
pythonCode |
필수 항목입니다. 실행할 Python 코드입니다. |
DisablePlannerTransfer
| JSON 표현 |
|---|
{
"expressionCondition": {
object ( |
| 필드 | |
|---|---|
expressionCondition |
필수 항목입니다. 조건이 true로 평가되면 플래너가 타겟 상담사에게 트랜스퍼할 수 없습니다. |
RequestLocation
요청에서 API 키의 위치입니다.
| 열거형 | |
|---|---|
REQUEST_LOCATION_UNSPECIFIED |
지정되지 않음. 이 값을 사용하면 안 됩니다. |
HEADER |
HTTP 헤더의 키를 나타냅니다. |
QUERY_STRING |
쿼리 문자열의 키를 나타냅니다. |
OauthGrantType
OAuth 권한 부여 유형입니다. 클라이언트 사용자 인증 정보 부여만 지원됩니다.
| 열거형 | |
|---|---|
OAUTH_GRANT_TYPE_UNSPECIFIED |
지정되지 않음. 기본값은 CLIENT_CREDENTIAL입니다. |
CLIENT_CREDENTIAL |
클라이언트 사용자 인증 정보 흐름을 나타냅니다. |
ThinkingLevel
모델의 사고 수준 구성입니다.
| 열거형 | |
|---|---|
THINKING_LEVEL_UNSPECIFIED |
사고 수준이 지정되지 않았습니다. |
DEFAULT |
기본 사고 수준입니다. |
LOW |
사고 수준이 낮습니다. |
MEDIUM |
중간 사고 수준입니다. |
HIGH |
사고 수준이 높습니다. |
방향
전송 방향입니다.
| 열거형 | |
|---|---|
DIRECTION_UNSPECIFIED |
지정되지 않은 방향입니다. |
PARENT_TO_CHILD |
상위 에이전트에서 하위 에이전트로 트랜스퍼합니다. |
CHILD_TO_PARENT |
하위 에이전트에서 상위 에이전트로 트랜스퍼합니다. |
출력 스키마
에이전트는 특정 작업을 실행하기 위해 대규모 언어 모델 (LLM)에 명령어를 제공하는 기본 구성요소 역할을 합니다.
에이전트
| JSON 표현 |
|---|
{ "name": string, "displayName": string, "description": string, "modelSettings": { object ( |
| 필드 | |
|---|---|
name |
식별자. 에이전트의 고유 식별자입니다. 형식: |
displayName |
필수 항목입니다. 상담사의 표시 이름입니다. |
description |
(선택사항) 인간이 읽을 수 있는 에이전트 설명입니다. |
modelSettings |
(선택사항) LLM 모델의 구성입니다. |
instruction |
(선택사항) 에이전트의 동작을 안내하는 LLM 모델의 요청 사항입니다. |
tools[] |
(선택사항) 에이전트가 사용할 수 있는 도구 목록입니다. 형식: |
childAgents[] |
(선택사항) 에이전트 트리의 하위 에이전트 목록입니다. 형식: |
beforeAgentCallbacks[] |
(선택사항) 에이전트가 호출되기 전에 실행할 콜백입니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
afterAgentCallbacks[] |
(선택사항) 에이전트가 호출된 후 실행할 콜백입니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
beforeModelCallbacks[] |
(선택사항) 모델이 호출되기 전에 실행할 콜백입니다. 모델에 대한 호출이 여러 개 있는 경우 콜백이 여러 번 실행됩니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
afterModelCallbacks[] |
(선택사항) 모델이 호출된 후 실행할 콜백입니다. 모델에 대한 호출이 여러 개 있는 경우 콜백이 여러 번 실행됩니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
beforeToolCallbacks[] |
(선택사항) 도구가 호출되기 전에 실행할 콜백입니다. 도구 호출이 여러 개 있는 경우 콜백이 여러 번 실행됩니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
afterToolCallbacks[] |
(선택사항) 도구가 호출된 후 실행할 콜백입니다. 도구 호출이 여러 개 있는 경우 콜백이 여러 번 실행됩니다. 제공된 콜백은 목록에 제공된 정확한 순서대로 순차적으로 실행됩니다. 콜백이 재정의된 응답을 반환하면 실행이 중지되고 나머지 콜백은 건너뜁니다. |
createTime |
출력 전용입니다. 상담사가 생성된 타임스탬프입니다. 생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 |
updateTime |
출력 전용입니다. 에이전트가 마지막으로 업데이트된 타임스탬프입니다. 생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 |
guardrails[] |
(선택사항) 에이전트의 가드레일 목록입니다. 형식: |
etag |
읽기-수정-쓰기 작업 중에 객체가 변경되지 않았는지 확인하는 데 사용되는 Etag입니다. etag가 비어 있으면 업데이트가 동시에 이루어진 변경사항을 덮어씁니다. |
toolsets[] |
(선택사항) 에이전트의 도구 세트 목록입니다. |
generatedSummary |
출력 전용입니다. 에이전트가 LLM 어시스턴트에 의해 생성된 경우 이 필드에는 생성에 관한 설명 요약이 포함됩니다. |
transferRules[] |
(선택사항) 상담사 트랜스퍼 규칙입니다. 일치하는 규칙이 여러 개 있는 경우 목록의 첫 번째 규칙이 사용됩니다. |
validationErrors[] |
출력 전용입니다. 상담사 품질에 영향을 미칠 수 있는 상담사의 잘못된 구성 또는 오류 |
통합 필드 agent_type. 에이전트 유형입니다. agent_type은 다음 중 하나여야 합니다. |
|
llmAgent |
(선택사항) 기본 에이전트 유형입니다. |
remoteDialogflowAgent |
(선택사항) 에이전트 실행에 사용할 원격 Dialogflow 에이전트입니다. 이 필드가 설정되면 다른 모든 에이전트 수준 속성은 무시됩니다. 참고: Dialogflow 에이전트가 앱과 다른 프로젝트에 있는 경우 CES 서비스 에이전트 |
remoteA2aAgent |
(선택사항) 에이전트 실행에 사용할 원격 A2A 에이전트입니다. |
RemoteDialogflowAgent
| JSON 표현 |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean, "languageCodeVariable": string } |
| 필드 | |
|---|---|
agent |
필수 항목입니다. Dialogflow 에이전트 리소스 이름입니다. 형식: |
flowId |
(선택사항) Dialogflow 에이전트의 흐름 ID입니다. |
environmentId |
(선택사항) 에이전트 실행에 사용할 Dialogflow 에이전트의 환경 ID입니다. 지정하지 않으면 초안 환경이 사용됩니다. |
inputVariableMapping |
(선택사항) Dialogflow 에이전트에 입력으로 전송될 앱 변수 이름과 Dialogflow 세션 매개변수 이름의 매핑입니다.
|
outputVariableMapping |
(선택사항) Dialogflow 에이전트 실행이 종료된 후 CES 에이전트로 다시 전송될 Dialogflow 세션 매개변수 이름과 앱 변수 이름의 매핑입니다.
|
respectResponseInterruptionSettings |
(선택사항) Dialogflow 에이전트에서 구성된 메시지 수준 인터럽션 설정을 준수할지 여부를 나타냅니다.
|
languageCodeVariable |
(선택사항) Dialogflow 세션에 사용할 언어 코드가 포함된 변수의 이름입니다. 지정하지 않으면 Dialogflow 에이전트의 기본 언어 코드가 사용됩니다. |
InputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
RemoteA2aAgent
| JSON 표현 |
|---|
{
"a2aConfig": {
object ( |
| 필드 | |
|---|---|
a2aConfig |
필수 항목입니다. A2A 연결 구성입니다. |
RemoteA2aConfig
| JSON 표현 |
|---|
{ "apiAuthentication": { object ( |
| 필드 | |
|---|---|
apiAuthentication |
(선택사항) 원격 에이전트 호출을 위한 인증 구성입니다. 레지스트리 참조에서 이미 인증을 처리하는 경우 선택사항입니다. |
inputVariableMapping |
(선택사항) 원격 에이전트의 입력 변수 이름을 GECX 변수 이름에 매핑합니다.
|
outputVariableMapping |
(선택사항) 원격 에이전트의 출력 변수 이름을 GECX 변수 이름에 매핑합니다.
|
streamingEnabled |
(선택사항) 원격 에이전트에 스트리밍이 사용 설정되어 있는지 여부입니다. |
contextId |
(선택사항) 비어 있지 않으면 원격 A2A 에이전트와의 상호작용에서 이 컨텍스트 ID가 사용됩니다. 이 context_id 필드는 |
통합 필드 agent_spec. 원격 에이전트의 사양입니다. agent_spec은 다음 중 하나여야 합니다. |
|
agentCard |
(선택사항) 인라인으로 정의된 전체 에이전트 카드입니다. |
agentRegistry |
(선택사항) Agent Registry의 에이전트에 대한 참조입니다. 형식: |
AgentCard
| JSON 표현 |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| 필드 | |
|---|---|
name |
필수 항목입니다. 인간이 읽을 수 있는 에이전트의 이름입니다. |
description |
필수 항목입니다. 에이전트의 작업 도메인/솔루션 공간에 대한 설명입니다. |
supportedInterfaces[] |
필수 항목입니다. 지원되는 인터페이스의 순서가 지정된 목록입니다. 첫 번째 항목이 선호됩니다. |
version |
필수 항목입니다. 에이전트 버전입니다. |
skills[] |
필수 항목입니다. 스킬은 상담사가 수행할 수 있는 능력의 단위를 나타냅니다. 다소 추상적일 수 있지만 에이전트가 성공할 가능성이 높은 더 집중적인 작업 집합을 나타냅니다. |
AgentInterface
| JSON 표현 |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| 필드 | |
|---|---|
url |
필수 항목입니다. 이 인터페이스를 사용할 수 있는 URL입니다. 프로덕션에서는 유효한 절대 HTTPS URL이어야 합니다. 예: 'https://api.example.com/a2a/v1', 'https://grpc.example.com/a2a' |
protocolBinding |
필수 항목입니다. 이 URL에서 지원되는 프로토콜 바인딩입니다. 이는 다른 프로토콜 바인딩을 위해 쉽게 확장할 수 있는 개방형 양식 문자열입니다. 공식적으로 지원되는 핵심은 |
tenant |
상담사를 호출할 때 요청에 사용할 테넌트 ID입니다. |
protocolVersion |
필수 항목입니다. 이 인터페이스가 노출하는 A2A 프로토콜의 버전입니다. 메이저 버전별로 지원되는 최신 마이너 버전을 사용합니다. 예: '0.3', '1.0' |
AgentSkill
| JSON 표현 |
|---|
{ "id": string, "name": string, "description": string, "tags": [ string ], "examples": [ string ], "inputModes": [ string ], "outputModes": [ string ] } |
| 필드 | |
|---|---|
id |
필수 항목입니다. 상담사의 기술에 대한 고유 식별자입니다. |
name |
필수 항목입니다. 인간이 읽을 수 있는 스킬 이름입니다. |
description |
필수 항목입니다. 스킬에 대한 자세한 설명입니다. |
tags[] |
필수 항목입니다. 스킬의 기능을 설명하는 키워드 세트입니다. |
examples[] |
이 스킬이 처리할 수 있는 프롬프트 또는 시나리오의 예시입니다. |
inputModes[] |
이 스킬에 지원되는 입력 미디어 유형의 집합으로, 에이전트의 기본값을 재정의합니다. |
outputModes[] |
이 스킬에 지원되는 출력 미디어 유형의 집합으로, 에이전트의 기본값을 재정의합니다. |
ApiAuthentication
| JSON 표현 |
|---|
{ // Union field |
| 필드 | |
|---|---|
통합 필드 auth_config. 인증 구성입니다. auth_config은 다음 중 하나여야 합니다. |
|
apiKeyConfig |
(선택사항) API 키 인증 구성입니다. |
oauthConfig |
(선택사항) OAuth 구성입니다. |
serviceAgentIdTokenAuthConfig |
(선택사항) CES 서비스 에이전트에서 생성된 ID 토큰 인증 구성입니다. |
serviceAccountAuthConfig |
(선택사항) 서비스 계정 인증 구성입니다. |
bearerTokenConfig |
(선택사항) Bearer 토큰 인증 구성입니다. |
ApiKeyConfig
| JSON 표현 |
|---|
{
"keyName": string,
"apiKeySecretVersion": string,
"requestLocation": enum ( |
| 필드 | |
|---|---|
keyName |
필수 항목입니다. API 키의 매개변수 이름 또는 헤더 이름입니다. 예: API 요청이 'https://example.com/act?X-Api-Key= |
apiKeySecretVersion |
필수 항목입니다. API 키를 저장하는 SecretManager 보안 비밀 버전 리소스의 이름입니다. 형식: 참고: CES 서비스 에이전트 |
requestLocation |
필수 항목입니다. 요청의 키 위치입니다. |
OAuthConfig
| JSON 표현 |
|---|
{
"oauthGrantType": enum ( |
| 필드 | |
|---|---|
oauthGrantType |
필수 항목입니다. OAuth 권한 부여 유형입니다. |
clientId |
필수 항목입니다. OAuth 제공업체의 클라이언트 ID입니다. |
clientSecretVersion |
필수 항목입니다. 클라이언트 보안 비밀번호를 저장하는 SecretManager 보안 비밀 버전 리소스의 이름입니다. 형식: 참고: CES 서비스 에이전트 |
tokenEndpoint |
필수 항목입니다. 액세스 토큰으로 교환할 OAuth 제공업체의 토큰 엔드포인트입니다. |
scopes[] |
(선택사항) 부여할 OAuth 범위입니다. |
ServiceAccountAuthConfig
| JSON 표현 |
|---|
{ "serviceAccount": string, "scopes": [ string ] } |
| 필드 | |
|---|---|
serviceAccount |
필수 항목입니다. 인증에 사용되는 서비스 계정의 이메일 주소입니다. CES는 이 서비스 계정을 사용하여 액세스 토큰을 교환하고 액세스 토큰은 요청의 서비스 계정에는 CES 서비스 에이전트 |
scopes[] |
(선택사항) 부여할 OAuth 범위입니다. 지정하지 않으면 기본 범위 |
BearerTokenConfig
| JSON 표현 |
|---|
{ "token": string } |
| 필드 | |
|---|---|
token |
필수 항목입니다. Bearer 토큰입니다. |
InputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
ModelSettings
| JSON 표현 |
|---|
{ "model": string, "thinkingLevel": enum ( |
| 필드 | |
|---|---|
model |
(선택사항) 에이전트가 사용해야 하는 LLM 모델입니다. 설정하지 않으면 에이전트가 상위 에이전트의 모델을 상속합니다. |
thinkingLevel |
(선택사항) 모델의 사고 수준입니다. |
통합 필드
|
|
temperature |
(선택사항) 설정된 경우 이 온도가 LLM 모델에 사용됩니다. 온도는 모델 응답의 무작위성을 제어합니다. 온도가 낮을수록 더 예측 가능한 대답이 생성됩니다. 온도가 높을수록 더 창의적인 대답이 생성됩니다. |
콜백
| JSON 표현 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 필드 | |
|---|---|
description |
(선택사항) 콜백에 대한 인간이 읽을 수 있는 설명입니다. |
disabled |
(선택사항) 콜백이 사용 중지되었는지 여부입니다. 사용 중지된 콜백은 에이전트에서 무시됩니다. |
proactiveExecutionEnabled |
(선택사항) 사용 설정된 경우 콜백은 중간 모델 출력에서도 실행됩니다. 이 설정은 모델 콜백 후에만 영향을 미칩니다. 주의해서 사용 설정하세요. 일반적으로 모델 콜백은 모든 모델 응답을 받은 후에만 실행하면 됩니다. 사전 실행을 사용 설정하면 실행 비용과 지연 시간에 부정적인 영향을 미칠 수 있으므로 드문 경우에만 사용 설정해야 합니다. |
통합 필드 callback. 실행할 콜백입니다. callback은 다음 중 하나여야 합니다. |
|
pythonCode |
필수 항목입니다. 콜백에 대해 실행할 Python 코드입니다. |
타임스탬프
| JSON 표현 |
|---|
{ "seconds": string, "nanos": integer } |
| 필드 | |
|---|---|
seconds |
유닉스 시간 1970-01-01T00:00:00Z 이후 경과된 UTC 시간을 초 단위로 나타냅니다. -62135596800~253402300799 (0001-01-01T00:00:00Z~9999-12-31T23:59:59Z에 해당) 사이여야 합니다. |
nanos |
나노초 단위의 음수가 아닌 초수입니다. 이 필드는 기간의 나노초 부분이며 초의 대안이 아닙니다. 음수의 초수 값에는 시간에 반영되는 음수가 아닌 나노초 값이 있어야 합니다. 0~999,999,999(포함) 사이여야 합니다. |
AgentToolset
| JSON 표현 |
|---|
{ "toolset": string, "toolIds": [ string ] } |
| 필드 | |
|---|---|
toolset |
필수 항목입니다. 툴셋의 리소스 이름입니다. 형식: |
toolIds[] |
(선택사항) 툴셋을 필터링할 도구 ID입니다. |
TransferRule
| JSON 표현 |
|---|
{ "childAgent": string, "direction": enum ( |
| 필드 | |
|---|---|
childAgent |
필수 항목입니다. 규칙이 적용되는 하위 에이전트의 리소스 이름입니다. 형식: |
direction |
필수 항목입니다. 전송 방향입니다. |
통합 필드 rule_type. 규칙 유형입니다. rule_type은 다음 중 하나여야 합니다. |
|
deterministicTransfer |
(선택사항) 조건이 충족되면 즉시 타겟 상담사에게 트랜스퍼되는 규칙입니다. |
disablePlannerTransfer |
(선택사항) 계획자가 타겟 상담사에게 트랜스퍼하지 못하도록 하는 규칙입니다. |
DeterministicTransfer
| JSON 표현 |
|---|
{ // Union field |
| 필드 | |
|---|---|
통합 필드 condition_type. 평가할 조건입니다. condition_type은 다음 중 하나여야 합니다. |
|
expressionCondition |
(선택사항) 세션 상태 조건을 평가하는 규칙 조건이 true로 평가되면 전송이 발생합니다. |
pythonCodeCondition |
(선택사항) Python 코드 블록을 사용하여 조건을 평가하는 규칙 조건이 true로 평가되면 전송이 발생합니다. |
ExpressionCondition
| JSON 표현 |
|---|
{ "expression": string } |
| 필드 | |
|---|---|
expression |
필수 항목입니다. cloud.api.Expression 조건의 문자열 표현입니다. |
PythonCodeCondition
| JSON 표현 |
|---|
{ "pythonCode": string } |
| 필드 | |
|---|---|
pythonCode |
필수 항목입니다. 실행할 Python 코드입니다. |
DisablePlannerTransfer
| JSON 표현 |
|---|
{
"expressionCondition": {
object ( |
| 필드 | |
|---|---|
expressionCondition |
필수 항목입니다. 조건이 true로 평가되면 플래너가 타겟 상담사에게 트랜스퍼할 수 없습니다. |
RequestLocation
요청에서 API 키의 위치입니다.
| 열거형 | |
|---|---|
REQUEST_LOCATION_UNSPECIFIED |
지정되지 않음. 이 값을 사용하면 안 됩니다. |
HEADER |
HTTP 헤더의 키를 나타냅니다. |
QUERY_STRING |
쿼리 문자열의 키를 나타냅니다. |
OauthGrantType
OAuth 권한 부여 유형입니다. 클라이언트 사용자 인증 정보 부여만 지원됩니다.
| 열거형 | |
|---|---|
OAUTH_GRANT_TYPE_UNSPECIFIED |
지정되지 않음. 기본값은 CLIENT_CREDENTIAL입니다. |
CLIENT_CREDENTIAL |
클라이언트 사용자 인증 정보 흐름을 나타냅니다. |
ThinkingLevel
모델의 사고 수준 구성입니다.
| 열거형 | |
|---|---|
THINKING_LEVEL_UNSPECIFIED |
사고 수준이 지정되지 않았습니다. |
DEFAULT |
기본 사고 수준입니다. |
LOW |
사고 수준이 낮습니다. |
MEDIUM |
중간 사고 수준입니다. |
HIGH |
사고 수준이 높습니다. |
방향
전송 방향입니다.
| 열거형 | |
|---|---|
DIRECTION_UNSPECIFIED |
지정되지 않은 방향입니다. |
PARENT_TO_CHILD |
상위 에이전트에서 하위 에이전트로 트랜스퍼합니다. |
CHILD_TO_PARENT |
하위 에이전트에서 상위 에이전트로 트랜스퍼합니다. |
도구 주석
도구 주석은 MCP 클라이언트에 전송되어 특정 도구의 기본 위험을 설명합니다. 대부분의 클라이언트는 이러한 힌트를 신뢰할 수 없는 것으로 취급하지만, 확인 메시지를 사용자에게 전송할 시점을 결정하는 데 사용할 수 있습니다.
제목 문자열과 함께 다음 불리언 힌트는 다음과 같이 정의됩니다.
readOnlyHint: true인 경우 도구가 환경을 수정하지 않습니다. 기본값: false.destructiveHint: true인 경우 도구가 파괴적인 작업을 실행할 수 있습니다. false인 경우 도구는 추가 작업만 실행할 수 있습니다. 기본값은 true입니다.idempotentHint: true인 경우 동일한 인수로 도구를 반복적으로 호출해도 환경에 추가적인 영향을 미치지 않습니다. 기본값: false.openWorldHint: true인 경우 도구가 외부 엔티티의 '오픈 월드'와 상호작용할 수 있습니다. false인 경우 도구는 내부 항목과만 상호작용할 수 있습니다. 예를 들어 웹 검색 도구는 오픈 월드이지만 메모리 도구는 오픈 월드가 아닙니다.
파괴적 힌트: ✅ | 멱등성 힌트: ❌ | 읽기 전용 힌트: ❌ | 오픈 월드 힌트: ❌