REST Resource: tasks

リソース: Task

Task は、A2A のアクションのコア単位です。現在のステータスがあり、タスクの結果が作成されると、アーティファクトに保存されます。タスクに複数のターンがある場合、それらは履歴に保存されます。

JSON 表現
{
  "id": string,
  "contextId": string,
  "status": {
    object (TaskStatus)
  },
  "artifacts": [
    {
      object (Artifact)
    }
  ],
  "history": [
    {
      object (Message)
    }
  ],
  "metadata": {
    object
  }
}
フィールド
id

string

必須。新しいタスクに対してサーバーが生成したタスクの一意の識別子(UUID など)。

contextId

string

コンテキストに基づくインタラクション(タスクとメッセージ)のコレクションの固有識別子(UUID など)。

status

object (TaskStatus)

必須。state や message など、Task の現在のステータス。

artifacts[]

object (Artifact)

Task の出力アーティファクトのセット。

history[]

object (Message)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Task からのインタラクションの履歴。

metadata

object (Struct format)

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED タスクに関するカスタム メタデータを保存する Key-Value オブジェクト。

TaskStatus

タスクのステータスのコンテナ

JSON 表現
{
  "state": enum (TaskState),
  "message": {
    object (Message)
  },
  "timestamp": string
}
フィールド
state

enum (TaskState)

必須。このタスクの現在の状態。

message

object (Message)

ステータスに関連付けられたメッセージ。

timestamp

string (Timestamp format)

ステータスが記録されたときの ISO 8601 タイムスタンプ。例: 「2023-10-27T10:00:00Z」

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"。

TaskState

Task のライフサイクル ステータスの有効な値を定義します。

列挙型
TASK_STATE_UNSPECIFIED タスクの状態が不明または未確定です。
TASK_STATE_SUBMITTED タスクが正常に送信され、確認されたことを示します。
TASK_STATE_WORKING タスクがエージェントによってアクティブに処理されていることを示します。
TASK_STATE_COMPLETED タスクが正常に終了したことを示します。これは終了状態です。
TASK_STATE_FAILED タスクがエラーで終了したことを示します。これは終了状態です。
TASK_STATE_CANCELED タスクが完了前にキャンセルされたことを示します。これは終了状態です。
TASK_STATE_INPUT_REQUIRED エージェントが続行するために追加のユーザー入力を必要とすることを示します。これは中断状態です。
TASK_STATE_REJECTED エージェントがタスクを実行しないことを決定したことを示します。これは、最初のタスク作成時、またはエージェントが続行できないと判断した後に実行できます。これは終了状態です。
TASK_STATE_AUTH_REQUIRED 続行するには認証が必要であることを示します。これは中断状態です。

メッセージ

Message は、クライアントとサーバー間の通信の単位です。コンテキストやタスクに関連付けることができます。サーバー メッセージの場合、contextId は必須です。taskId は、タスクが作成された場合にのみ指定します。クライアント メッセージの場合、両方のフィールドは省略可能です。ただし、両方を指定する場合は、一致している必要があります(contextId はタスクに設定されているものと同じである必要があります)。taskId のみが指定されている場合、サーバーはそこから contextId を推測します。

JSON 表現
{
  "messageId": string,
  "contextId": string,
  "taskId": string,
  "role": enum (Role),
  "parts": [
    {
      object (Part)
    }
  ],
  "metadata": {
    object
  },
  "extensions": [
    string
  ],
  "referenceTaskIds": [
    string
  ]
}
フィールド
messageId

string

必須。メッセージの固有識別子(UUID など)。これはメッセージ作成者によって作成されます。

contextId

string

省略可。メッセージのコンテキスト ID。設定すると、メッセージは指定されたコンテキストに関連付けられます。

taskId

string

省略可。メッセージのタスク ID。設定すると、メッセージは指定されたタスクに関連付けられます。

role

enum (Role)

必須。メッセージの送信者を識別します。

parts[]

object (Part)

必須。Parts はメッセージ コンテンツのコンテナです。

metadata

object (Struct format)

省略可。メッセージとともに提供するメタデータ。

extensions[]

string

このメッセージに存在する、またはこのメッセージに提供された拡張機能の URI。

referenceTaskIds[]

string

このメッセージが追加のコンテキストを参照するタスク ID のリスト。

ロール

A2A プロトコル通信のメッセージの送信者を定義します。

列挙型
ROLE_UNSPECIFIED ロールが指定されていません。
ROLE_USER メッセージはクライアントからサーバーに送信されます。
ROLE_AGENT メッセージはサーバーからクライアントに送信されます。

Part

Part は、コミュニケーション コンテンツのセクションのコンテナを表します。パーツは、純粋なテキスト、何らかのファイル(画像、動画など)、構造化データ BLOB(JSON など)にすることができます。

JSON 表現
{
  "metadata": {
    object
  },
  "filename": string,
  "mediaType": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "text": string,
  "raw": string,
  "url": string,
  "data": value
  // End of mutually exclusive fields.
}
フィールド
metadata

object (Struct format)

省略可。この部分に関連付けられたメタデータ。

filename

string

ファイルのオプションの filename(例: 「document.pdf」)。

mediaType

string

パート コンテンツの mediaType(MIME タイプ)(例: "text/plain"、"application/json"、"image/png")。このフィールドはすべての部品タイプで使用できます。

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

string

text 部分の文字列コンテンツ。

raw

string (bytes format)

ファイルの raw バイト コンテンツ。JSON シリアル化では、これは Base64 文字列としてエンコードされます。

Base64 でエンコードされた文字列。

url

string

ファイルの内容を指す url。

data

value (Value format)

任意の構造化された data(JSON 値(オブジェクト、配列、文字列、数値、ブール値、null))。

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

アーティファクト

アーティファクトはタスクの出力を表します。

JSON 表現
{
  "artifactId": string,
  "name": string,
  "description": string,
  "parts": [
    {
      object (Part)
    }
  ],
  "metadata": {
    object
  },
  "extensions": [
    string
  ]
}
フィールド
artifactId

string

必須。アーティファクトの固有識別子(UUID など)。タスク内で一意である必要があります。

name

string

人が読める形式のアーティファクトの名前。

description

string

省略可。アーティファクトの説明(人が読める形式)。

parts[]

object (Part)

必須。アーティファクトのコンテンツ。少なくとも 1 つのパートを含む必要があります。

metadata

object (Struct format)

省略可。アーティファクトに含まれるメタデータ。

extensions[]

string

このアーティファクトに存在する、またはこのアーティファクトに貢献した拡張機能の URI。

メソッド

cancel

進行中のタスクをキャンセルします。

get

タスクの最新の状態を取得します。

list

指定されたフィルタに一致するタスクを一覧表示します。

subscribe

終了状態でないタスクのタスク更新をサブスクライブします。