도구: create_agent
지정된 앱에 새 에이전트를 만듭니다.
다음 샘플은 curl를 사용하여 create_agent MCP 도구를 호출하는 방법을 보여줍니다.
| curl 요청 |
|---|
curl --location 'https://ces.[REGION].rep.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 tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
입력 스키마
AgentService.CreateAgent에 대한 요청 메시지입니다.
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[] |
선택사항입니다. 상담사 트랜스퍼 규칙입니다. 일치하는 규칙이 여러 개 있으면 목록의 첫 번째 규칙이 사용됩니다. |
통합 필드 agent_type. 에이전트 유형입니다. agent_type은 다음 중 하나여야 합니다. |
|
llmAgent |
선택사항입니다. 기본 에이전트 유형입니다. |
remoteDialogflowAgent |
선택사항입니다. 에이전트 실행에 사용할 원격 Dialogflow 에이전트입니다. 이 필드가 설정되면 다른 모든 상담사 수준 속성은 무시됩니다. 참고: Dialogflow 에이전트가 앱과 다른 프로젝트에 있는 경우 CES 서비스 에이전트 |
RemoteDialogflowAgent
| JSON 표현 |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean } |
| 필드 | |
|---|---|
agent |
필수 항목입니다. Dialogflow 에이전트 리소스 이름입니다. 형식: |
flowId |
선택사항입니다. Dialogflow 에이전트의 흐름 ID입니다. |
environmentId |
선택사항입니다. 에이전트 실행에 사용할 Dialogflow 에이전트의 환경 ID입니다. 지정하지 않으면 초안 환경이 사용됩니다. |
inputVariableMapping |
선택사항입니다. Dialogflow 에이전트에 입력으로 전송될 앱 변수 이름과 Dialogflow 세션 매개변수 이름의 매핑입니다.
|
outputVariableMapping |
선택사항입니다. Dialogflow 에이전트 실행이 종료된 후 CES 에이전트로 다시 전송될 Dialogflow 세션 파라미터 이름과 앱 변수 이름의 매핑입니다.
|
respectResponseInterruptionSettings |
선택사항입니다. Dialogflow 에이전트에서 구성된 메시지 수준 인터럽션 설정을 준수할지 여부를 나타냅니다.
|
InputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
ModelSettings
| JSON 표현 |
|---|
{ "model": string, // Union field |
| 필드 | |
|---|---|
model |
선택사항입니다. 에이전트가 사용해야 하는 LLM 모델입니다. 설정하지 않으면 에이전트가 상위 에이전트의 모델을 상속합니다. |
통합 필드
|
|
temperature |
선택사항입니다. 설정된 경우 이 온도가 LLM 모델에 사용됩니다. 온도는 모델 응답의 무작위성을 제어합니다. 온도가 낮을수록 더 예측 가능한 대답이 생성됩니다. 온도가 높을수록 더 창의적인 대답이 생성됩니다. |
콜백
| JSON 표현 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 필드 | |
|---|---|
description |
선택사항입니다. 콜백에 대한 사람이 읽을 수 있는 설명입니다. |
disabled |
선택사항입니다. 콜백이 사용 중지되었는지 여부입니다. 사용 중지된 콜백은 에이전트에서 무시됩니다. |
proactiveExecutionEnabled |
선택사항입니다. 사용 설정된 경우 콜백은 중간 모델 출력에서도 실행됩니다. 이 설정은 모델 콜백 후에만 영향을 미칩니다. 주의해서 사용 설정 일반적으로 모델 콜백은 모든 모델 응답을 받은 후에만 실행하면 됩니다. 사전 실행을 사용 설정하면 실행 비용과 지연 시간에 부정적인 영향을 미칠 수 있으므로 드문 경우에만 사용 설정해야 합니다. |
통합 필드 callback. 실행할 콜백입니다. callback은 다음 중 하나여야 합니다. |
|
pythonCode |
필수 항목입니다. 콜백을 위해 실행할 Python 코드입니다. |
타임스탬프
| JSON 표현 |
|---|
{ "seconds": string, "nanos": integer } |
| 필드 | |
|---|---|
seconds |
Unix epoch 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로 평가되면 플래너가 타겟 상담사에게 트랜스퍼할 수 없습니다. |
출력 스키마
에이전트는 특정 작업을 실행하기 위해 대규모 언어 모델 (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[] |
선택사항입니다. 상담사 트랜스퍼 규칙입니다. 일치하는 규칙이 여러 개 있으면 목록의 첫 번째 규칙이 사용됩니다. |
통합 필드 agent_type. 에이전트 유형입니다. agent_type은 다음 중 하나여야 합니다. |
|
llmAgent |
선택사항입니다. 기본 에이전트 유형입니다. |
remoteDialogflowAgent |
선택사항입니다. 에이전트 실행에 사용할 원격 Dialogflow 에이전트입니다. 이 필드가 설정되면 다른 모든 상담사 수준 속성은 무시됩니다. 참고: Dialogflow 에이전트가 앱과 다른 프로젝트에 있는 경우 CES 서비스 에이전트 |
RemoteDialogflowAgent
| JSON 표현 |
|---|
{ "agent": string, "flowId": string, "environmentId": string, "inputVariableMapping": { string: string, ... }, "outputVariableMapping": { string: string, ... }, "respectResponseInterruptionSettings": boolean } |
| 필드 | |
|---|---|
agent |
필수 항목입니다. Dialogflow 에이전트 리소스 이름입니다. 형식: |
flowId |
선택사항입니다. Dialogflow 에이전트의 흐름 ID입니다. |
environmentId |
선택사항입니다. 에이전트 실행에 사용할 Dialogflow 에이전트의 환경 ID입니다. 지정하지 않으면 초안 환경이 사용됩니다. |
inputVariableMapping |
선택사항입니다. Dialogflow 에이전트에 입력으로 전송될 앱 변수 이름과 Dialogflow 세션 매개변수 이름의 매핑입니다.
|
outputVariableMapping |
선택사항입니다. Dialogflow 에이전트 실행이 종료된 후 CES 에이전트로 다시 전송될 Dialogflow 세션 파라미터 이름과 앱 변수 이름의 매핑입니다.
|
respectResponseInterruptionSettings |
선택사항입니다. Dialogflow 에이전트에서 구성된 메시지 수준 인터럽션 설정을 준수할지 여부를 나타냅니다.
|
InputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
OutputVariableMappingEntry
| JSON 표현 |
|---|
{ "key": string, "value": string } |
| 필드 | |
|---|---|
key |
|
value |
|
ModelSettings
| JSON 표현 |
|---|
{ "model": string, // Union field |
| 필드 | |
|---|---|
model |
선택사항입니다. 에이전트가 사용해야 하는 LLM 모델입니다. 설정하지 않으면 에이전트가 상위 에이전트의 모델을 상속합니다. |
통합 필드
|
|
temperature |
선택사항입니다. 설정된 경우 이 온도가 LLM 모델에 사용됩니다. 온도는 모델 응답의 무작위성을 제어합니다. 온도가 낮을수록 더 예측 가능한 대답이 생성됩니다. 온도가 높을수록 더 창의적인 대답이 생성됩니다. |
콜백
| JSON 표현 |
|---|
{ "description": string, "disabled": boolean, "proactiveExecutionEnabled": boolean, // Union field |
| 필드 | |
|---|---|
description |
선택사항입니다. 콜백에 대한 사람이 읽을 수 있는 설명입니다. |
disabled |
선택사항입니다. 콜백이 사용 중지되었는지 여부입니다. 사용 중지된 콜백은 에이전트에서 무시됩니다. |
proactiveExecutionEnabled |
선택사항입니다. 사용 설정된 경우 콜백은 중간 모델 출력에서도 실행됩니다. 이 설정은 모델 콜백 후에만 영향을 미칩니다. 주의해서 사용 설정 일반적으로 모델 콜백은 모든 모델 응답을 받은 후에만 실행하면 됩니다. 사전 실행을 사용 설정하면 실행 비용과 지연 시간에 부정적인 영향을 미칠 수 있으므로 드문 경우에만 사용 설정해야 합니다. |
통합 필드 callback. 실행할 콜백입니다. callback은 다음 중 하나여야 합니다. |
|
pythonCode |
필수 항목입니다. 콜백을 위해 실행할 Python 코드입니다. |
타임스탬프
| JSON 표현 |
|---|
{ "seconds": string, "nanos": integer } |
| 필드 | |
|---|---|
seconds |
Unix epoch 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로 평가되면 플래너가 타겟 상담사에게 트랜스퍼할 수 없습니다. |
도구 주석
파괴적 힌트: ✅ | 동일한 힌트: ❌ | 읽기 전용 힌트: ❌ | 오픈 월드 힌트: ❌