MCP Tools Reference: ces.googleapis.com

ツール: 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 (Agent)
  }
}
フィールド
parent

string

必須。エージェントを作成するアプリのリソース名。

agentId

string

省略可。エージェントに使用する ID。エージェントのリソース名の最終的なコンポーネントになります。指定しない場合、エージェントに一意の ID が自動的に割り当てられます。

agent

object (Agent)

必須。作成するエージェント。

エージェント

JSON 表現
{
  "name": string,
  "displayName": string,
  "description": string,
  "modelSettings": {
    object (ModelSettings)
  },
  "instruction": string,
  "tools": [
    string
  ],
  "childAgents": [
    string
  ],
  "beforeAgentCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterAgentCallbacks": [
    {
      object (Callback)
    }
  ],
  "beforeModelCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterModelCallbacks": [
    {
      object (Callback)
    }
  ],
  "beforeToolCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterToolCallbacks": [
    {
      object (Callback)
    }
  ],
  "createTime": string,
  "updateTime": string,
  "guardrails": [
    string
  ],
  "etag": string,
  "toolsets": [
    {
      object (AgentToolset)
    }
  ],
  "generatedSummary": string,
  "transferRules": [
    {
      object (TransferRule)
    }
  ],
  "validationErrors": [
    string
  ],

  // Union field agent_type can be only one of the following:
  "llmAgent": {
    object (LlmAgent)
  },
  "remoteDialogflowAgent": {
    object (RemoteDialogflowAgent)
  },
  "remoteA2aAgent": {
    object (RemoteA2aAgent)
  }
  // End of list of possible types for union field agent_type.
}
フィールド
name

string

ID。エージェントの固有識別子。形式: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

displayName

string

必須。エージェントの表示名。

description

string

省略可。人が読める形式のエージェントの説明。

modelSettings

object (ModelSettings)

省略可。LLM モデルの構成。

instruction

string

省略可。エージェントの動作をガイドする LLM モデルの指示。

tools[]

string

省略可。エージェントが使用できるツールのリスト。形式: projects/{project}/locations/{location}/apps/{app}/tools/{tool}

childAgents[]

string

省略可。エージェント ツリー内の子エージェントのリスト。形式: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

beforeAgentCallbacks[]

object (Callback)

省略可。エージェントが呼び出される前に実行するコールバック。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

afterAgentCallbacks[]

object (Callback)

省略可。エージェントの呼び出し後に実行するコールバック。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

beforeModelCallbacks[]

object (Callback)

省略可。モデルが呼び出される前に実行するコールバック。モデルへの呼び出しが複数ある場合、コールバックは複数回実行されます。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

afterModelCallbacks[]

object (Callback)

省略可。モデルの呼び出し後に実行するコールバック。モデルへの呼び出しが複数ある場合、コールバックは複数回実行されます。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

beforeToolCallbacks[]

object (Callback)

省略可。ツールが呼び出される前に実行するコールバック。ツールの呼び出しが複数ある場合、コールバックは複数回実行されます。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

afterToolCallbacks[]

object (Callback)

省略可。ツールが呼び出された後に実行するコールバック。ツールの呼び出しが複数ある場合、コールバックは複数回実行されます。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

createTime

string (Timestamp format)

出力専用。エージェントが作成されたときのタイムスタンプ。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z"、"2014-10-02T15:01:23+05:30"。

updateTime

string (Timestamp format)

出力専用。エージェントが最後に更新されたときのタイムスタンプ。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z"、"2014-10-02T15:01:23+05:30"。

guardrails[]

string

省略可。エージェントのガードレールのリスト。形式: projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}

etag

string

読み取り / 変更 / 書き込みオペレーション中にオブジェクトが変更されていないことを確認するために使用される ETag。etag が空の場合、更新によって同時変更が上書きされます。

toolsets[]

object (AgentToolset)

省略可。エージェントのツールセットのリスト。

generatedSummary

string

出力専用。エージェントが LLM アシスタントによって生成された場合、このフィールドには生成の説明的な概要が含まれます。

transferRules[]

object (TransferRule)

省略可。エージェントの転送ルール。複数のルールが一致する場合は、リストの最初のルールが使用されます。

validationErrors[]

string

出力専用。エージェントの品質に影響する可能性のあるエージェントの構成ミスやエラー。

共用体フィールド agent_type。エージェントのタイプ。agent_type は次のいずれかになります。
llmAgent

object (LlmAgent)

省略可。デフォルトのエージェント タイプ。

remoteDialogflowAgent

object (RemoteDialogflowAgent)

省略可。エージェントの実行に使用されるリモート Dialogflow エージェント。このフィールドが設定されている場合、他のすべてのエージェント レベルのプロパティは無視されます。

注: Dialogflow エージェントがアプリとは異なるプロジェクトにある場合は、CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に roles/dialogflow.client を付与する必要があります。

remoteA2aAgent

object (RemoteA2aAgent)

省略可。エージェントの実行に使用されるリモート A2A エージェント。

RemoteDialogflowAgent

JSON 表現
{
  "agent": string,
  "flowId": string,
  "environmentId": string,
  "inputVariableMapping": {
    string: string,
    ...
  },
  "outputVariableMapping": {
    string: string,
    ...
  },
  "respectResponseInterruptionSettings": boolean,
  "languageCodeVariable": string
}
フィールド
agent

string

必須。Dialogflow エージェントのリソース名。形式: projects/{project}/locations/{location}/agents/{agent}

flowId

string

省略可。Dialogflow エージェントのフローのフロー ID。

environmentId

string

省略可。エージェントの実行に使用される Dialogflow エージェントの環境 ID。指定しない場合は、ドラフト環境が使用されます。

inputVariableMapping

map (key: string, value: string)

省略可。Dialogflow エージェントに入力として送信されるアプリ変数名と Dialogflow セッション パラメータ名のマッピング。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

outputVariableMapping

map (key: string, value: string)

省略可。Dialogflow エージェントの実行終了後に CES エージェントに返送される Dialogflow セッション パラメータ名とアプリ変数名のマッピング。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

respectResponseInterruptionSettings

boolean

省略可。Dialogflow エージェントで構成されたメッセージ レベルの中断設定を尊重するかどうかを示します。

  • false の場合: Dialogflow エージェントからのすべてのレスポンス メッセージは、アプリレベルの割り込み設定に従います。
  • true の場合: allow_playback_interruption が true に設定されているレスポンス メッセージのみが割り込み可能になり、他のすべてのメッセージはアプリレベルの割り込み設定に従います。
languageCodeVariable

string

省略可。Dialogflow セッションで使用する言語コードを含む変数の名前。指定しない場合、Dialogflow エージェントのデフォルトの言語コードが使用されます。

InputVariableMappingEntry

JSON 表現
{
  "key": string,
  "value": string
}
フィールド
key

string

value

string

OutputVariableMappingEntry

JSON 表現
{
  "key": string,
  "value": string
}
フィールド
key

string

value

string

RemoteA2aAgent

JSON 表現
{
  "a2aConfig": {
    object (RemoteA2aConfig)
  }
}
フィールド
a2aConfig

object (RemoteA2aConfig)

必須。A2A 接続の構成。

RemoteA2aConfig

JSON 表現
{
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "inputVariableMapping": {
    string: string,
    ...
  },
  "outputVariableMapping": {
    string: string,
    ...
  },
  "streamingEnabled": boolean,
  "contextId": string,

  // Union field agent_spec can be only one of the following:
  "agentCard": {
    object (AgentCard)
  },
  "agentRegistry": string
  // End of list of possible types for union field agent_spec.
}
フィールド
apiAuthentication

object (ApiAuthentication)

省略可。リモート エージェントを呼び出すための認証構成。レジストリ参照ですでに認証が処理されている場合は省略可能です。

inputVariableMapping

map (key: string, value: string)

省略可。リモート エージェントの入力変数名と GECX 変数名のマッピング。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

outputVariableMapping

map (key: string, value: string)

省略可。リモート エージェントの出力変数名と GECX 変数名のマッピング。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

streamingEnabled

boolean

省略可。リモート エージェントでストリーミングが有効になっているかどうか。

contextId

string

省略可。空でない場合、リモート A2A エージェントとのやり取りではこのコンテキスト ID が使用されます。この context_id フィールドは、$context.variables.order_agent_session_id などのセッション変数を参照できます。

共用体フィールド agent_spec。リモート エージェントの仕様。agent_spec は次のいずれかになります。
agentCard

object (AgentCard)

省略可。インラインで定義された完全なエージェント カード。

agentRegistry

string

省略可。Agent Registry 内のエージェントへの参照。形式: projects/{project}/locations/{location}/agents/{agent}

AgentCard

JSON 表現
{
  "name": string,
  "description": string,
  "supportedInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "version": string,
  "skills": [
    {
      object (AgentSkill)
    }
  ]
}
フィールド
name

string

必須。人が読める形式のエージェントの名前。

description

string

必須。エージェントの行動範囲/ソリューション空間の説明。

supportedInterfaces[]

object (AgentInterface)

必須。サポートされているインターフェースの順序付きリスト。最初の入力が優先されます。

version

string

必須。エージェントのバージョン。

skills[]

object (AgentSkill)

必須。スキルは、エージェントが実行できる能力の単位を表します。これはやや抽象的ですが、エージェントが成功する可能性が高い、より絞り込まれた一連のアクションを表しています。

AgentInterface

JSON 表現
{
  "url": string,
  "protocolBinding": string,
  "tenant": string,
  "protocolVersion": string
}
フィールド
url

string

必須。このインターフェースが利用可能な URL。本番環境では、有効な絶対 HTTPS URL である必要があります。例: "https://api.example.com/a2a/v1", "https://grpc.example.com/a2a"

protocolBinding

string

必須。この URL でサポートされているプロトコル バインディング。これはオープン フォーム文字列であり、他のプロトコル バインディングに簡単に拡張できます。正式にサポートされているコアは JSONRPC、GRPC、HTTP+JSON です。

tenant

string

エージェントを呼び出すときにリクエストで使用するテナント ID。

protocolVersion

string

必須。このインターフェースが公開する A2A プロトコルのバージョン。メジャー バージョンごとに、サポートされている最新のマイナー バージョンを使用します。例: 「0.3」、「1.0」

AgentSkill

JSON 表現
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ]
}
フィールド
id

string

必須。エージェントのスキルの一意の識別子。

name

string

必須。人が読める形式のスキルの名前。

description

string

必須。スキルの詳細な説明。

tags[]

string

必須。スキルの機能を説明するキーワードのセット。

examples[]

string

このスキルで処理できるプロンプトやシナリオの例。

inputModes[]

string

このスキルでサポートされている入力メディア タイプのセット。エージェントのデフォルトをオーバーライドします。

outputModes[]

string

このスキルでサポートされている出力メディア タイプのセット。エージェントのデフォルトをオーバーライドします。

ApiAuthentication

JSON 表現
{

  // Union field auth_config can be only one of the following:
  "apiKeyConfig": {
    object (ApiKeyConfig)
  },
  "oauthConfig": {
    object (OAuthConfig)
  },
  "serviceAgentIdTokenAuthConfig": {
    object (ServiceAgentIdTokenAuthConfig)
  },
  "serviceAccountAuthConfig": {
    object (ServiceAccountAuthConfig)
  },
  "bearerTokenConfig": {
    object (BearerTokenConfig)
  }
  // End of list of possible types for union field auth_config.
}
フィールド
共用体フィールド auth_config。認証構成。auth_config は次のいずれかになります。
apiKeyConfig

object (ApiKeyConfig)

省略可。API キー認証の構成。

oauthConfig

object (OAuthConfig)

省略可。OAuth の構成。

serviceAgentIdTokenAuthConfig

object (ServiceAgentIdTokenAuthConfig)

省略可。CES サービス エージェントから生成された ID トークン認証の構成。

serviceAccountAuthConfig

object (ServiceAccountAuthConfig)

省略可。サービス アカウント認証の構成。

bearerTokenConfig

object (BearerTokenConfig)

省略可。ベアラートークン認証の構成。

ApiKeyConfig

JSON 表現
{
  "keyName": string,
  "apiKeySecretVersion": string,
  "requestLocation": enum (RequestLocation)
}
フィールド
keyName

string

必須。API キーのパラメータ名またはヘッダー名。例: API リクエストが「https://example.com/act?X-Api-Key="」の場合、「X-Api-Key」がパラメータ名になります。

apiKeySecretVersion

string

必須。API キーを保存する SecretManager シークレット バージョン リソースの名前。形式: projects/{project}/secrets/{secret}/versions/{version}

注: CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に roles/secretmanager.secretAccessor ロールを付与する必要があります。

requestLocation

enum (RequestLocation)

必須。リクエスト内の鍵のロケーション。

OAuthConfig

JSON 表現
{
  "oauthGrantType": enum (OauthGrantType),
  "clientId": string,
  "clientSecretVersion": string,
  "tokenEndpoint": string,
  "scopes": [
    string
  ]
}
フィールド
oauthGrantType

enum (OauthGrantType)

必須。OAuth 権限付与タイプ。

clientId

string

必須。OAuth プロバイダのクライアント ID。

clientSecretVersion

string

必須。クライアント シークレットを保存する SecretManager シークレット バージョン リソースの名前。形式: projects/{project}/secrets/{secret}/versions/{version}

注: CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に roles/secretmanager.secretAccessor ロールを付与する必要があります。

tokenEndpoint

string

必須。アクセス トークンと交換する OAuth プロバイダのトークン エンドポイント。

scopes[]

string

省略可。付与する OAuth スコープ。

ServiceAccountAuthConfig

JSON 表現
{
  "serviceAccount": string,
  "scopes": [
    string
  ]
}
フィールド
serviceAccount

string

必須。認証に使用されるサービス アカウントのメールアドレス。CES はこのサービス アカウントを使用してアクセス トークンを交換し、アクセス トークンはリクエストの Authorization ヘッダーで送信されます。

サービス アカウントには、CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に付与された roles/iam.serviceAccountTokenCreator ロールが必要です。

scopes[]

string

省略可。付与する OAuth スコープ。指定しない場合は、デフォルトのスコープ https://www.googleapis.com/auth/cloud-platform が使用されます。

BearerTokenConfig

JSON 表現
{
  "token": string
}
フィールド
token

string

必須。署名なしトークン。$context.variables.<name_of_variable> の形式で指定してください。

InputVariableMappingEntry

JSON 表現
{
  "key": string,
  "value": string
}
フィールド
key

string

value

string

OutputVariableMappingEntry

JSON 表現
{
  "key": string,
  "value": string
}
フィールド
key

string

value

string

ModelSettings

JSON 表現
{
  "model": string,
  "thinkingLevel": enum (ThinkingLevel),

  // Union field _temperature can be only one of the following:
  "temperature": number
  // End of list of possible types for union field _temperature.
}
フィールド
model

string

省略可。エージェントが使用する LLM モデル。設定されていない場合、エージェントは親エージェントからモデルを継承します。

thinkingLevel

enum (ThinkingLevel)

省略可。モデルの思考レベル。

共用体フィールド _temperature。

_temperature は次のいずれかになります。

temperature

number

省略可。設定すると、この Temperature が LLM モデルに使用されます。Temperature は、モデルのレスポンスのランダム性を制御します。温度が低いほど、予測しやすい回答が生成されます。温度が高いほど、より創造的な回答が生成されます。

コールバック

JSON 表現
{
  "description": string,
  "disabled": boolean,
  "proactiveExecutionEnabled": boolean,

  // Union field callback can be only one of the following:
  "pythonCode": string
  // End of list of possible types for union field callback.
}
フィールド
description

string

省略可。コールバックの説明(人が読める形式)。

disabled

boolean

省略可。コールバックが無効かどうか。無効になっているコールバックはエージェントによって無視されます。

proactiveExecutionEnabled

boolean

省略可。有効にすると、中間モデルの出力でもコールバックが実行されます。この設定は、モデル呼び出し後のコールバックにのみ影響します。慎重に有効にしてください。通常、モデル コールバック後は、すべてのモデル レスポンスを受信した後にのみ実行する必要があります。プロアクティブな実行を有効にすると、実行コストとレイテンシに悪影響が生じる可能性があるため、有効にするのはまれな状況のみにしてください。

共用体フィールド callback。実行するコールバック。callback は次のいずれかになります。
pythonCode

string

必須。コールバックで実行する Python コード。

タイムスタンプ

JSON 表現
{
  "seconds": string,
  "nanos": integer
}
フィールド
seconds

string (int64 format)

UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。

nanos

integer

ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。0~999,999,999 にする必要があります(両端を含む)。

AgentToolset

JSON 表現
{
  "toolset": string,
  "toolIds": [
    string
  ]
}
フィールド
toolset

string

必須。ツールセットのリソース名。形式: projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}

toolIds[]

string

省略可。ツールセットをフィルタするツール ID。

TransferRule

JSON 表現
{
  "childAgent": string,
  "direction": enum (Direction),

  // Union field rule_type can be only one of the following:
  "deterministicTransfer": {
    object (DeterministicTransfer)
  },
  "disablePlannerTransfer": {
    object (DisablePlannerTransfer)
  }
  // End of list of possible types for union field rule_type.
}
フィールド
childAgent

string

必須。ルールが適用される子エージェントのリソース名。形式: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

direction

enum (Direction)

必須。転送の方向。

共用体フィールド rule_type。ルールの種類。rule_type は次のいずれかになります。
deterministicTransfer

object (DeterministicTransfer)

省略可。条件が満たされたときにターゲット エージェントに直ちに転送するルール。

disablePlannerTransfer

object (DisablePlannerTransfer)

省略可。プランナーがターゲット エージェントに転送できないようにするルール。

DeterministicTransfer

JSON 表現
{

  // Union field condition_type can be only one of the following:
  "expressionCondition": {
    object (ExpressionCondition)
  },
  "pythonCodeCondition": {
    object (PythonCodeCondition)
  }
  // End of list of possible types for union field condition_type.
}
フィールド
共用体フィールド condition_type。評価する条件。condition_type は次のいずれかになります。
expressionCondition

object (ExpressionCondition)

省略可。セッション状態の条件を評価するルール。条件が true と評価されると、転送が行われます。

pythonCodeCondition

object (PythonCodeCondition)

省略可。Python コードブロックを使用して条件を評価するルール。条件が true と評価されると、転送が行われます。

ExpressionCondition

JSON 表現
{
  "expression": string
}
フィールド
expression

string

必須。cloud.api.Expression 条件の文字列表現。

PythonCodeCondition

JSON 表現
{
  "pythonCode": string
}
フィールド
pythonCode

string

必須。実行する Python コード。

DisablePlannerTransfer

JSON 表現
{
  "expressionCondition": {
    object (ExpressionCondition)
  }
}
フィールド
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 (ModelSettings)
  },
  "instruction": string,
  "tools": [
    string
  ],
  "childAgents": [
    string
  ],
  "beforeAgentCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterAgentCallbacks": [
    {
      object (Callback)
    }
  ],
  "beforeModelCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterModelCallbacks": [
    {
      object (Callback)
    }
  ],
  "beforeToolCallbacks": [
    {
      object (Callback)
    }
  ],
  "afterToolCallbacks": [
    {
      object (Callback)
    }
  ],
  "createTime": string,
  "updateTime": string,
  "guardrails": [
    string
  ],
  "etag": string,
  "toolsets": [
    {
      object (AgentToolset)
    }
  ],
  "generatedSummary": string,
  "transferRules": [
    {
      object (TransferRule)
    }
  ],
  "validationErrors": [
    string
  ],

  // Union field agent_type can be only one of the following:
  "llmAgent": {
    object (LlmAgent)
  },
  "remoteDialogflowAgent": {
    object (RemoteDialogflowAgent)
  },
  "remoteA2aAgent": {
    object (RemoteA2aAgent)
  }
  // End of list of possible types for union field agent_type.
}
フィールド
name

string

ID。エージェントの固有識別子。形式: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

displayName

string

必須。エージェントの表示名。

description

string

省略可。人が読める形式のエージェントの説明。

modelSettings

object (ModelSettings)

省略可。LLM モデルの構成。

instruction

string

省略可。エージェントの動作をガイドする LLM モデルの指示。

tools[]

string

省略可。エージェントが使用できるツールのリスト。形式: projects/{project}/locations/{location}/apps/{app}/tools/{tool}

childAgents[]

string

省略可。エージェント ツリー内の子エージェントのリスト。形式: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

beforeAgentCallbacks[]

object (Callback)

省略可。エージェントが呼び出される前に実行するコールバック。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

afterAgentCallbacks[]

object (Callback)

省略可。エージェントの呼び出し後に実行するコールバック。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

beforeModelCallbacks[]

object (Callback)

省略可。モデルが呼び出される前に実行するコールバック。モデルへの呼び出しが複数ある場合、コールバックは複数回実行されます。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

afterModelCallbacks[]

object (Callback)

省略可。モデルの呼び出し後に実行するコールバック。モデルへの呼び出しが複数ある場合、コールバックは複数回実行されます。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

beforeToolCallbacks[]

object (Callback)

省略可。ツールが呼び出される前に実行するコールバック。ツールの呼び出しが複数ある場合、コールバックは複数回実行されます。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

afterToolCallbacks[]

object (Callback)

省略可。ツールが呼び出された後に実行するコールバック。ツールの呼び出しが複数ある場合、コールバックは複数回実行されます。指定されたコールバックは、リストに指定された順序で順番に実行されます。コールバックがオーバーライドされたレスポンスを返すと、実行が停止し、残りのコールバックはスキップされます。

createTime

string (Timestamp format)

出力専用。エージェントが作成されたときのタイムスタンプ。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z"、"2014-10-02T15:01:23+05:30"。

updateTime

string (Timestamp format)

出力専用。エージェントが最後に更新されたときのタイムスタンプ。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z"、"2014-10-02T15:01:23+05:30"。

guardrails[]

string

省略可。エージェントのガードレールのリスト。形式: projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}

etag

string

読み取り / 変更 / 書き込みオペレーション中にオブジェクトが変更されていないことを確認するために使用される ETag。etag が空の場合、更新によって同時変更が上書きされます。

toolsets[]

object (AgentToolset)

省略可。エージェントのツールセットのリスト。

generatedSummary

string

出力専用。エージェントが LLM アシスタントによって生成された場合、このフィールドには生成の説明的な概要が含まれます。

transferRules[]

object (TransferRule)

省略可。エージェントの転送ルール。複数のルールが一致する場合は、リストの最初のルールが使用されます。

validationErrors[]

string

出力専用。エージェントの品質に影響する可能性のあるエージェントの構成ミスやエラー。

共用体フィールド agent_type。エージェントのタイプ。agent_type は次のいずれかになります。
llmAgent

object (LlmAgent)

省略可。デフォルトのエージェント タイプ。

remoteDialogflowAgent

object (RemoteDialogflowAgent)

省略可。エージェントの実行に使用されるリモート Dialogflow エージェント。このフィールドが設定されている場合、他のすべてのエージェント レベルのプロパティは無視されます。

注: Dialogflow エージェントがアプリとは異なるプロジェクトにある場合は、CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に roles/dialogflow.client を付与する必要があります。

remoteA2aAgent

object (RemoteA2aAgent)

省略可。エージェントの実行に使用されるリモート A2A エージェント。

RemoteDialogflowAgent

JSON 表現
{
  "agent": string,
  "flowId": string,
  "environmentId": string,
  "inputVariableMapping": {
    string: string,
    ...
  },
  "outputVariableMapping": {
    string: string,
    ...
  },
  "respectResponseInterruptionSettings": boolean,
  "languageCodeVariable": string
}
フィールド
agent

string

必須。Dialogflow エージェントのリソース名。形式: projects/{project}/locations/{location}/agents/{agent}

flowId

string

省略可。Dialogflow エージェントのフローのフロー ID。

environmentId

string

省略可。エージェントの実行に使用される Dialogflow エージェントの環境 ID。指定しない場合は、ドラフト環境が使用されます。

inputVariableMapping

map (key: string, value: string)

省略可。Dialogflow エージェントに入力として送信されるアプリ変数名と Dialogflow セッション パラメータ名のマッピング。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

outputVariableMapping

map (key: string, value: string)

省略可。Dialogflow エージェントの実行終了後に CES エージェントに返送される Dialogflow セッション パラメータ名とアプリ変数名のマッピング。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

respectResponseInterruptionSettings

boolean

省略可。Dialogflow エージェントで構成されたメッセージ レベルの中断設定を尊重するかどうかを示します。

  • false の場合: Dialogflow エージェントからのすべてのレスポンス メッセージは、アプリレベルの割り込み設定に従います。
  • true の場合: allow_playback_interruption が true に設定されているレスポンス メッセージのみが割り込み可能になり、他のすべてのメッセージはアプリレベルの割り込み設定に従います。
languageCodeVariable

string

省略可。Dialogflow セッションで使用する言語コードを含む変数の名前。指定しない場合、Dialogflow エージェントのデフォルトの言語コードが使用されます。

InputVariableMappingEntry

JSON 表現
{
  "key": string,
  "value": string
}
フィールド
key

string

value

string

OutputVariableMappingEntry

JSON 表現
{
  "key": string,
  "value": string
}
フィールド
key

string

value

string

RemoteA2aAgent

JSON 表現
{
  "a2aConfig": {
    object (RemoteA2aConfig)
  }
}
フィールド
a2aConfig

object (RemoteA2aConfig)

必須。A2A 接続の構成。

RemoteA2aConfig

JSON 表現
{
  "apiAuthentication": {
    object (ApiAuthentication)
  },
  "inputVariableMapping": {
    string: string,
    ...
  },
  "outputVariableMapping": {
    string: string,
    ...
  },
  "streamingEnabled": boolean,
  "contextId": string,

  // Union field agent_spec can be only one of the following:
  "agentCard": {
    object (AgentCard)
  },
  "agentRegistry": string
  // End of list of possible types for union field agent_spec.
}
フィールド
apiAuthentication

object (ApiAuthentication)

省略可。リモート エージェントを呼び出すための認証構成。レジストリ参照ですでに認証が処理されている場合は省略可能です。

inputVariableMapping

map (key: string, value: string)

省略可。リモート エージェントの入力変数名と GECX 変数名のマッピング。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

outputVariableMapping

map (key: string, value: string)

省略可。リモート エージェントの出力変数名と GECX 変数名のマッピング。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

streamingEnabled

boolean

省略可。リモート エージェントでストリーミングが有効になっているかどうか。

contextId

string

省略可。空でない場合、リモート A2A エージェントとのやり取りではこのコンテキスト ID が使用されます。この context_id フィールドは、$context.variables.order_agent_session_id などのセッション変数を参照できます。

共用体フィールド agent_spec。リモート エージェントの仕様。agent_spec は次のいずれかになります。
agentCard

object (AgentCard)

省略可。インラインで定義された完全なエージェント カード。

agentRegistry

string

省略可。Agent Registry 内のエージェントへの参照。形式: projects/{project}/locations/{location}/agents/{agent}

AgentCard

JSON 表現
{
  "name": string,
  "description": string,
  "supportedInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "version": string,
  "skills": [
    {
      object (AgentSkill)
    }
  ]
}
フィールド
name

string

必須。人が読める形式のエージェントの名前。

description

string

必須。エージェントの行動範囲/ソリューション空間の説明。

supportedInterfaces[]

object (AgentInterface)

必須。サポートされているインターフェースの順序付きリスト。最初の入力が優先されます。

version

string

必須。エージェントのバージョン。

skills[]

object (AgentSkill)

必須。スキルは、エージェントが実行できる能力の単位を表します。これはやや抽象的ですが、エージェントが成功する可能性が高い、より絞り込まれた一連のアクションを表しています。

AgentInterface

JSON 表現
{
  "url": string,
  "protocolBinding": string,
  "tenant": string,
  "protocolVersion": string
}
フィールド
url

string

必須。このインターフェースが利用可能な URL。本番環境では、有効な絶対 HTTPS URL である必要があります。例: "https://api.example.com/a2a/v1", "https://grpc.example.com/a2a"

protocolBinding

string

必須。この URL でサポートされているプロトコル バインディング。これはオープン フォーム文字列であり、他のプロトコル バインディングに簡単に拡張できます。正式にサポートされているコアは JSONRPC、GRPC、HTTP+JSON です。

tenant

string

エージェントを呼び出すときにリクエストで使用するテナント ID。

protocolVersion

string

必須。このインターフェースが公開する A2A プロトコルのバージョン。メジャー バージョンごとに、サポートされている最新のマイナー バージョンを使用します。例: 「0.3」、「1.0」

AgentSkill

JSON 表現
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ]
}
フィールド
id

string

必須。エージェントのスキルの一意の識別子。

name

string

必須。人が読める形式のスキルの名前。

description

string

必須。スキルの詳細な説明。

tags[]

string

必須。スキルの機能を説明するキーワードのセット。

examples[]

string

このスキルで処理できるプロンプトやシナリオの例。

inputModes[]

string

このスキルでサポートされている入力メディア タイプのセット。エージェントのデフォルトをオーバーライドします。

outputModes[]

string

このスキルでサポートされている出力メディア タイプのセット。エージェントのデフォルトをオーバーライドします。

ApiAuthentication

JSON 表現
{

  // Union field auth_config can be only one of the following:
  "apiKeyConfig": {
    object (ApiKeyConfig)
  },
  "oauthConfig": {
    object (OAuthConfig)
  },
  "serviceAgentIdTokenAuthConfig": {
    object (ServiceAgentIdTokenAuthConfig)
  },
  "serviceAccountAuthConfig": {
    object (ServiceAccountAuthConfig)
  },
  "bearerTokenConfig": {
    object (BearerTokenConfig)
  }
  // End of list of possible types for union field auth_config.
}
フィールド
共用体フィールド auth_config。認証構成。auth_config は次のいずれかになります。
apiKeyConfig

object (ApiKeyConfig)

省略可。API キー認証の構成。

oauthConfig

object (OAuthConfig)

省略可。OAuth の構成。

serviceAgentIdTokenAuthConfig

object (ServiceAgentIdTokenAuthConfig)

省略可。CES サービス エージェントから生成された ID トークン認証の構成。

serviceAccountAuthConfig

object (ServiceAccountAuthConfig)

省略可。サービス アカウント認証の構成。

bearerTokenConfig

object (BearerTokenConfig)

省略可。ベアラートークン認証の構成。

ApiKeyConfig

JSON 表現
{
  "keyName": string,
  "apiKeySecretVersion": string,
  "requestLocation": enum (RequestLocation)
}
フィールド
keyName

string

必須。API キーのパラメータ名またはヘッダー名。例: API リクエストが「https://example.com/act?X-Api-Key="」の場合、「X-Api-Key」がパラメータ名になります。

apiKeySecretVersion

string

必須。API キーを保存する SecretManager シークレット バージョン リソースの名前。形式: projects/{project}/secrets/{secret}/versions/{version}

注: CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に roles/secretmanager.secretAccessor ロールを付与する必要があります。

requestLocation

enum (RequestLocation)

必須。リクエスト内の鍵のロケーション。

OAuthConfig

JSON 表現
{
  "oauthGrantType": enum (OauthGrantType),
  "clientId": string,
  "clientSecretVersion": string,
  "tokenEndpoint": string,
  "scopes": [
    string
  ]
}
フィールド
oauthGrantType

enum (OauthGrantType)

必須。OAuth 権限付与タイプ。

clientId

string

必須。OAuth プロバイダのクライアント ID。

clientSecretVersion

string

必須。クライアント シークレットを保存する SecretManager シークレット バージョン リソースの名前。形式: projects/{project}/secrets/{secret}/versions/{version}

注: CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に roles/secretmanager.secretAccessor ロールを付与する必要があります。

tokenEndpoint

string

必須。アクセス トークンと交換する OAuth プロバイダのトークン エンドポイント。

scopes[]

string

省略可。付与する OAuth スコープ。

ServiceAccountAuthConfig

JSON 表現
{
  "serviceAccount": string,
  "scopes": [
    string
  ]
}
フィールド
serviceAccount

string

必須。認証に使用されるサービス アカウントのメールアドレス。CES はこのサービス アカウントを使用してアクセス トークンを交換し、アクセス トークンはリクエストの Authorization ヘッダーで送信されます。

サービス アカウントには、CES サービス エージェント service-<PROJECT-NUMBER>@gcp-sa-ces.iam.gserviceaccount.com に付与された roles/iam.serviceAccountTokenCreator ロールが必要です。

scopes[]

string

省略可。付与する OAuth スコープ。指定しない場合は、デフォルトのスコープ https://www.googleapis.com/auth/cloud-platform が使用されます。

BearerTokenConfig

JSON 表現
{
  "token": string
}
フィールド
token

string

必須。署名なしトークン。$context.variables.<name_of_variable> の形式で指定してください。

InputVariableMappingEntry

JSON 表現
{
  "key": string,
  "value": string
}
フィールド
key

string

value

string

OutputVariableMappingEntry

JSON 表現
{
  "key": string,
  "value": string
}
フィールド
key

string

value

string

ModelSettings

JSON 表現
{
  "model": string,
  "thinkingLevel": enum (ThinkingLevel),

  // Union field _temperature can be only one of the following:
  "temperature": number
  // End of list of possible types for union field _temperature.
}
フィールド
model

string

省略可。エージェントが使用する LLM モデル。設定されていない場合、エージェントは親エージェントからモデルを継承します。

thinkingLevel

enum (ThinkingLevel)

省略可。モデルの思考レベル。

共用体フィールド _temperature。

_temperature は次のいずれかになります。

temperature

number

省略可。設定すると、この Temperature が LLM モデルに使用されます。Temperature は、モデルのレスポンスのランダム性を制御します。温度が低いほど、予測しやすい回答が生成されます。温度が高いほど、より創造的な回答が生成されます。

コールバック

JSON 表現
{
  "description": string,
  "disabled": boolean,
  "proactiveExecutionEnabled": boolean,

  // Union field callback can be only one of the following:
  "pythonCode": string
  // End of list of possible types for union field callback.
}
フィールド
description

string

省略可。コールバックの説明(人が読める形式)。

disabled

boolean

省略可。コールバックが無効かどうか。無効になっているコールバックはエージェントによって無視されます。

proactiveExecutionEnabled

boolean

省略可。有効にすると、中間モデルの出力でもコールバックが実行されます。この設定は、モデル呼び出し後のコールバックにのみ影響します。慎重に有効にしてください。通常、モデル コールバック後は、すべてのモデル レスポンスを受信した後にのみ実行する必要があります。プロアクティブな実行を有効にすると、実行コストとレイテンシに悪影響が生じる可能性があるため、有効にするのはまれな状況のみにしてください。

共用体フィールド callback。実行するコールバック。callback は次のいずれかになります。
pythonCode

string

必須。コールバックで実行する Python コード。

タイムスタンプ

JSON 表現
{
  "seconds": string,
  "nanos": integer
}
フィールド
seconds

string (int64 format)

UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。

nanos

integer

ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。0~999,999,999 にする必要があります(両端を含む)。

AgentToolset

JSON 表現
{
  "toolset": string,
  "toolIds": [
    string
  ]
}
フィールド
toolset

string

必須。ツールセットのリソース名。形式: projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}

toolIds[]

string

省略可。ツールセットをフィルタするツール ID。

TransferRule

JSON 表現
{
  "childAgent": string,
  "direction": enum (Direction),

  // Union field rule_type can be only one of the following:
  "deterministicTransfer": {
    object (DeterministicTransfer)
  },
  "disablePlannerTransfer": {
    object (DisablePlannerTransfer)
  }
  // End of list of possible types for union field rule_type.
}
フィールド
childAgent

string

必須。ルールが適用される子エージェントのリソース名。形式: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

direction

enum (Direction)

必須。転送の方向。

共用体フィールド rule_type。ルールの種類。rule_type は次のいずれかになります。
deterministicTransfer

object (DeterministicTransfer)

省略可。条件が満たされたときにターゲット エージェントに直ちに転送するルール。

disablePlannerTransfer

object (DisablePlannerTransfer)

省略可。プランナーがターゲット エージェントに転送できないようにするルール。

DeterministicTransfer

JSON 表現
{

  // Union field condition_type can be only one of the following:
  "expressionCondition": {
    object (ExpressionCondition)
  },
  "pythonCodeCondition": {
    object (PythonCodeCondition)
  }
  // End of list of possible types for union field condition_type.
}
フィールド
共用体フィールド condition_type。評価する条件。condition_type は次のいずれかになります。
expressionCondition

object (ExpressionCondition)

省略可。セッション状態の条件を評価するルール。条件が true と評価されると、転送が行われます。

pythonCodeCondition

object (PythonCodeCondition)

省略可。Python コードブロックを使用して条件を評価するルール。条件が true と評価されると、転送が行われます。

ExpressionCondition

JSON 表現
{
  "expression": string
}
フィールド
expression

string

必須。cloud.api.Expression 条件の文字列表現。

PythonCodeCondition

JSON 表現
{
  "pythonCode": string
}
フィールド
pythonCode

string

必須。実行する Python コード。

DisablePlannerTransfer

JSON 表現
{
  "expressionCondition": {
    object (ExpressionCondition)
  }
}
フィールド
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 の場合、ツールは内部エンティティとのみやり取りできます。たとえば、ウェブ検索ツールはオープン ワールドですが、メモリツールはオープン ワールドではありません。

破壊的ヒント: ✅ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ❌