---
title: Event リファレンス
description: Session ログが持ちうるすべての event の種類と、それぞれが何を運ぶか。
sidebar:
  order: 3
---

すべての event はシーケンス番号、種類、ペイロードを持ちます。種類は SSE の `event` フィールドが運ぶもので、ペイロードは `data` が持つものです。

## Session とメッセージ

| 種類 | ペイロード |
| --- | --- |
| `session_created` | `agent_id`、`agent_version_id` — この session が束縛した version。 |
| `message_user` | `message`、`source`（`client`、`steer`、`external`）。 |
| `message_assistant` | `message`。 |
| `error` | `message`。Run の結果ではなく、session レベルのエラー。 |

`source` は、エンドユーザーが入力したもの（`client`）、run の途中で差し込まれた誘導（`steer`）、バックグラウンドの生成元に代わってプラットフォームが注入したもの（`external`）を区別します。

## Run

| 種類 | ペイロード |
| --- | --- |
| `run_queued` | `run_id`。 |
| `run_started` | `run_id`。 |
| `run_completed` | `run_id`。 |
| `run_failed` | `run_id`、`error`。 |
| `run_cancelled` | `run_id`。 |

## Tool

| 種類 | ペイロード |
| --- | --- |
| `tool_call` | `call_id`、`name`、`arguments`。 |
| `tool_result` | `call_id`、`content`、`is_error`。 |

## Approval

| 種類 | ペイロード |
| --- | --- |
| `approval_requested` | `call_id`、`server`、`tool`、`arguments`、`args_hash`。 |
| `approval_resolved` | `call_id`、`decision`、`deny_message?`、`resolved_by?`。 |

決着のさせ方は [Approval](/ja/guides/approvals) を参照してください。

## Client

| 種類 | ペイロード |
| --- | --- |
| `client_registered` | `client_id`、`name`、`lifetime`、`tools`。 |
| `client_tools_updated` | `client_id`、`tools` — 常にリスト全体。 |
| `client_left` | `client_id`、`reason`（`departed` または `timed_out`）。 |
| `client_tool_dispatched` | `call_id`、`client_id`、`tool`、`arguments`。 |
| `client_tool_acked` | `call_id`、`client_id`。 |
| `client_tool_failed` | `call_id`、`client_id`、`reason`。 |

`client_registered` の `name` は要求された名前ではなく **割り当てられた** 名前です。要求した名前を session がすでに使っていた場合、カウンターが付きます。その割り当てられた名前が、モデルからその client の tool が見える名前であり、ひとつの session 内で 2 つの登録がそれを共有することはありません。

`client_tool_dispatched` の `tool` は、モデルが呼んだ名前空間付きの名前ではなく、client が宣言した生の名前です。これは client が監視する event なので、client が知っているとおりの名前で tool を示します。

## Engine のプライベートな状態

| 種類 | ペイロード |
| --- | --- |
| `custom` | `kind`、`payload`。 |

ランタイムにとってもあなたにとっても不透明です。Engine が自分の状態をログ上にチェックポイントするために使います。ペイロード内の `kind` は engine 自身のもの（たとえば `pi.snapshot`）です。会話を描画するときはこれらを飛ばしてください。

:::note
Event の語彙は version 管理されています。新しい種類が追加されうるので、認識できない種類は失敗の理由ではなく、無視すべきものとして扱ってください。
:::
