コンテンツにスキップ
LinkedInX

ツールのエラー処理

対象読者: ツールが失敗したときにAIが暴走したり黙って進んだりする問題を防ぎたい方
前提知識: ツール利用とは の基礎

ツールは必ず失敗します。エラー処理を設計していないと、AIは失敗に気づかずに進むか、同じ実行を延々と繰り返します。

エラーメッセージは次の行動の手がかりにする

AIにとってエラーメッセージは、次に何をするかを決める入力です。原因だけでなく、取れる選択肢まで含めます。

# 手がかりのない例
Error: failed

# 手がかりのある例
Error: ファイル 'config/settings.json' が見つかりません。
パスを確認するか、list_files でディレクトリの内容を確認してください。

内部のスタックトレースをそのまま返すのは避けます。情報量は多くても、次の行動につながりません。

失敗を隠さない

もっとも危険なのは、失敗したのに正常な形の結果を返す設計です。

設計AIの解釈結果
失敗時に空配列を返す「該当なし」と判断する誤った結論のまま進む
失敗時にエラーを返す失敗を認識する再試行または人へ引き渡す
この表は横方向にスクロールできます。キーボードでは、表にフォーカスして左右の矢印キーを使用してください。

「見つからなかった」と「取得に失敗した」は別の状態です。区別できる形で返します。

リトライは種類で分ける

すべてのエラーがリトライで解決するわけではありません。

エラーの種類リトライ
一時的な障害ネットワーク切断、混雑、タイムアウト有効(間隔を空けて数回)
入力の誤りパラメータ不正、パスの誤り入力を直してから再実行
権限不足アクセス拒否無効(人へ引き渡す)
対象が存在しない削除済みリソース無効(計画を見直す)
この表は横方向にスクロールできます。キーボードでは、表にフォーカスして左右の矢印キーを使用してください。

権限不足を何度も再試行しても結果は変わりません。リトライして意味があるのは一時的な障害だけです。

上限を決めて人へ渡す

リトライ回数には上限を設け、超えたら自動で続けずに人へ引き渡します。上限がないと、自己修正のループと組み合わさって、同じ失敗を長時間繰り返すことがあります。

まとめ

  • エラーメッセージには、失敗内容と次の行動の手がかりを含める
  • 失敗時に正常な形の結果を返すと、AIは誤りに気づかず進んでしまう
  • リトライが有効なのは一時的な障害のみで、権限不足などには効かない
  • リトライ上限を決め、超えたら人へ引き渡す

関連リンク

クイズ