REST Resource: projects.locations.apps.agents

リソース: Agent

エージェントは、特定のタスクを実行するための指示を大規模言語モデル(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 (Agent.AgentToolset)
    }
  ],
  "generatedSummary": string,
  "transferRules": [
    {
      object (TransferRule)
    }
  ],
  "validationErrors": [
    string
  ],

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "llmAgent": {
    object (Agent.LlmAgent)
  },
  "remoteDialogflowAgent": {
    object (Agent.RemoteDialogflowAgent)
  },
  "remoteA2aAgent": {
    object (Agent.RemoteA2aAgent)
  }
  // End of mutually exclusive fields.
}
フィールド
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 (Agent.AgentToolset)

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

generatedSummary

string

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

transferRules[]

object (TransferRule)

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

validationErrors[]

string

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

エージェントのタイプ。以下は、相互に排他的なフィールドのリストです。レスポンスに設定されるフィールドは、最大 1 つです。
llmAgent

object (Agent.LlmAgent)

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

remoteDialogflowAgent

object (Agent.RemoteDialogflowAgent)

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

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

remoteA2aAgent

object (Agent.RemoteA2aAgent)

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

相互に排他的なフィールドの終わり。

Agent.LlmAgent

この型にはフィールドがありません。

デフォルトのエージェント タイプ。エージェントは、エージェントで指定された指示とコールバックを使用して、大規模言語モデルでタスクを実行します。

Agent.RemoteDialogflowAgent

実行をリモートの Dialogflow CX エージェントに転送するエージェント。Dialogflow エージェントは、セッションまたはフローが終了し、制御が親 CES エージェントに戻るまで、後続のユーザー クエリを処理します。

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 エージェントのデフォルトの言語コードが使用されます。

Agent.RemoteA2aAgent

実行をリモート A2A エージェントに転送するエージェント。

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

object (RemoteA2aConfig)

必須。A2A 接続の構成。

RemoteA2aConfig

リモート A2A エージェントに接続するための共有構成。

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

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "agentCard": {
    object (AgentCard)
  },
  "agentRegistry": string
  // End of mutually exclusive fields.
}
フィールド
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 が使用されます。この contextId フィールドは、$context.variables.order_agent_session_id などのセッション変数に参照できます。

リモート エージェントの仕様。以下は、相互に排他的なフィールドのリストです。レスポンスに設定されるフィールドは、最大 1 つです。
agentCard

object (AgentCard)

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

agentRegistry

string

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

相互に排他的なフィールドの終わり。

Agent.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 (TransferRule.Direction),

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "deterministicTransfer": {
    object (TransferRule.DeterministicTransfer)
  },
  "disablePlannerTransfer": {
    object (TransferRule.DisablePlannerTransfer)
  }
  // End of mutually exclusive fields.
}
フィールド
childAgent

string

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

direction

enum (TransferRule.Direction)

必須。転送の方向。

ルールの種類。以下は、相互に排他的なフィールドのリストです。レスポンスに設定されるフィールドは、最大 1 つです。
deterministicTransfer

object (TransferRule.DeterministicTransfer)

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

disablePlannerTransfer

object (TransferRule.DisablePlannerTransfer)

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

相互に排他的なフィールドの終わり。

TransferRule.DeterministicTransfer

決定論的な転送ルール。条件が true と評価されると、転送が行われます。

JSON 表現
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "expressionCondition": {
    object (ExpressionCondition)
  },
  "pythonCodeCondition": {
    object (PythonCodeCondition)
  }
  // End of mutually exclusive fields.
}
フィールド
評価する条件。以下は、相互に排他的なフィールドのリストです。レスポンスに設定されるフィールドは、最大 1 つです。
expressionCondition

object (ExpressionCondition)

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

pythonCodeCondition

object (PythonCodeCondition)

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

相互に排他的なフィールドの終わり。

ExpressionCondition

セッションの状態に基づく式条件。

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

string

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

PythonCodeCondition

条件を評価する Python コードブロック。

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

string

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

TransferRule.DisablePlannerTransfer

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

JSON 表現
{
  "expressionCondition": {
    object (ExpressionCondition)
  }
}
フィールド
expressionCondition

object (ExpressionCondition)

必須。条件が true と評価されると、プランナーはターゲット エージェントに転送できなくなります。

TransferRule.Direction

転送の方向。

列挙型
DIRECTION_UNSPECIFIED 方向が指定されていません。
PARENT_TO_CHILD 親エージェントから子エージェントに転送します。
CHILD_TO_PARENT 子エージェントから親エージェントに転送します。

メソッド

create

指定されたアプリに新しいエージェントを作成します。

delete

指定したエージェントを削除します。

get

指定されたエージェントの詳細を取得します。

list

指定されたアプリ内のエージェントを一覧表示します。

patch

指定したエージェントを更新します。