ヒント: Failproof AI Observabilityを初めてお使いですか?このページはSDKイベントの完全なリファレンスです。
インストール
SDKは公開パッケージインデックスではなく、プライベートホイールとしてお客様に配布されます。取得・インストール・バージョン固定の方法はオンボーディングで説明しています。アクセスが必要な場合は Failproof AI の担当者にお問い合わせください。 インストール後、以下で確認してください:クイックスタート
実際の呼び出しへの計装
実際には、既存のエージェントコードをラップします。モデル呼び出しの前にmodel_request、後に model_response を配置することで、2つのイベントが実際のリクエストをまたぎ、Failproof AI Observabilityがペアとして関連付けられるようになります:
tool_use と tool_result でラップし、ペア間で同じ tool_call_id を使い回します。
ダッシュボードに届いたイベントは、タイプ別に色分けされ、環境・エージェント・セッションでフィルタリングできます:

configure()
event.* を呼び出す前に一度だけ呼び出してください。省略しても問題ありません。デフォルト設定でそのまま動作します。すべての引数はキーワード専用です。上記のように名前で渡してください。
base_dir が None(デフォルト)の場合、SDKは $AGENTEYE_HOME が設定されていればそれを使用し、未設定の場合は ~/.agenteye にフォールバックします。これはコレクター自身の解決方法と一致しているため、AGENTEYE_ENVIRONMENT 環境変数ひとつで SDK とコレクター両方のイベントスプールを共有設定できます。
環境
すべてのイベントにデプロイ環境のラベルを付けます(production、staging、qa、canary など)。一度設定するだけで、SDKがすべてのイベントに自動的に付加します。
オプション1: configure() 経由:
configure(environment=...) が環境変数より優先されます。どちらも設定されていない場合、デフォルトは "dev" です。
環境の値はダッシュボードのファーストクラスフィルターとして表示され、高速クエリのためサーバーに保存されます。
警告: 環境の値にリテラルのカンマ,を含めることはできません。ダッシュボードのフィルターはワイヤー上でカンマ区切りのマルチセレクトを使用するため(?environment=prod,staging)、prod,blueという名前の環境は2つの値に分割されます。カンマを含む環境名のイベントはインジェスト時に拒否されます。
データとプライバシー
SDKは明示的に渡したフィールドのみを記録します。プロンプト、メッセージ、ツールの入出力、モデルのコンテンツは、event.* 呼び出しに渡した場合にのみキャプチャされます。プロセスからの暗黙的な読み取りやキャプチャは一切行いません。未設定のフィールドはイベントから完全に省略され、ディスクに書き込まれません。
そのため、データのマスキングはお客様の判断と責任で行ってください。プロンプトやツールのペイロードに保存したくないPIIや機密情報が含まれている場合は、イベントメソッドに渡す前にそれらを除去またはマスクしてください。
イベントリファレンス
ほとんどのイベントは相関IDを共有する開始/終了ペアで構成されています:tool_use と tool_result は tool_call_id を共有し、hook_triggered と hook_completed は hook_id を共有し、human_wait と human_input は input_id を共有します。開始イベントを発行し、処理を実行してから、同じIDで終了イベントを発行してください。Failproof AI Observabilityがペアを照合し duration_ms を自動計算するため、duration_ms を自分で渡す必要はありません。

すべてのメソッドはカスタムメタデータ用の任意の
**kwargs も受け付けます(カスタムフィールド 参照)。
event.agent_start()
エージェントが作業を開始したときに発行されます。
event.agent_end()
エージェントが作業を完了したときに発行されます。
event.tool_use()
エージェントがツールを呼び出したときに発行されます。tool_result とペアにしてください。SDKが duration_ms を自動計算します。
event.tool_result()
ツールが返答したときに発行されます。tool_call_id を通じて tool_use と関連付けられます。
event.model_request()
LLMにプロンプトを送信する直前に発行されます。
messages のエントリはプレーン文字列の content でも、Anthropic形式のブロックリストの content でも受け付けます。サンプリングパラメータ(temperature、max_tokens など)は追加のkwargsとして渡せます。
event.model_response()
LLMがレスポンスを返したときに発行されます。
content はプレーン文字列(汎用プロバイダー)またはAnthropic形式のコンテンツブロックのリストを受け付けます。ツール呼び出しは {"type": "tool_use", ...} ブロックとして content 内に含まれます。別途 tool_calls フィールドはありません。
event.hook_triggered()
フックが発火したときに発行されます。hook_completed とペアにしてください。SDKが duration_ms を自動計算します。
event.hook_completed()
フックが完了したときに発行されます。hook_id を通じて hook_triggered と関連付けられます。
event.error()
未処理のエラーが発生したときに発行されます。
ヒューマン・イン・ザ・ループ イベント
ヒューマン・イン・ザ・ループイベントは、エージェントの実行に人間が介入する瞬間(承認待ち、入力提供、一時停止、またはエージェントの停止)を監視するためのものです。これらのイベントにより、人間が応答するまでの時間を計測し(SDKがペアイベントのduration_ms を自動計算します)、誰がエージェントを一時停止または中断したかを監査し、ダッシュボードに表示される承認・監視ワークフローを構築できます。
event.human_wait()
エージェントが人間からの入力を待つために実行を一時停止したときに発行されます。human_input とペアにしてください。SDKが duration_ms(人間が応答するまでの時間)を自動計算します。
event.human_input()
人間が入力を提供してエージェントが再開したときに発行されます。input_id を通じて human_wait と関連付けられます。duration_ms は自動計算されるため、呼び出し元から渡してはいけません。
event.human_pause()
人間がエージェントを能動的に一時停止したとき(例: ダッシュボードのコントロール経由)に発行されます。エージェントは中断されますが、終了はしません。
event.human_interrupt()
人間がエージェントの実行中に能動的に停止させたときに発行されます。human_pause とは異なり、エージェントの作業は中断ではなく終了します。
カスタムフィールド
追加のキーワード引数は、標準フィールドの後にイベントへ付加されます:timestamp、type、environment は予約済みであり、カスタムフィールドとして渡すと ValueError(Reserved field names cannot be used as custom fields: [...])が発生します。session_id と agent_id はすべてのイベントメソッドの必須パラメータであり、2回渡すことはできません。その場合、Pythonは TypeError を発生させます。環境の設定には configure(environment=...) または AGENTEYE_ENVIRONMENT 変数を使用してください。
ペイロードのフィールドをクエリしたい場合は、構造化JSONで保持してください。JSON がネイティブにサポートしない値(日時、UUID、Decimal、セット、バイト、モデルオブジェクトなど)は文字列に変換されるため、記録は安全に続行されます。
イベントの書き込み方法
イベントはプロセス内でバッファリングされ、flush_interval 秒ごと(デフォルト500ms)にディスクにフラッシュされます。各フラッシュは1つのJSONLファイルを書き込みます:

