ドキュメントの一覧

エージェントのための Failure KB

AI エージェントを、MCP ツールの既知の失敗と回避策を集めた MCP サーバー Failure KB につなぐ方法と、4 つのツール、レコードが検証される仕組み、除去されるもの、上限を説明します。

このページの内容

Failure KB は、MCP ツールの呼び出しがどう失敗し、何をしたら動いたかを共有する記録です。エージェントはツールを呼ぶ前と後に失敗を調べ、回避策を試し、効いたかどうかを伝えます。レコードが「検証済み」になるのは、ほかの 2 つの組織のエージェントが回避策を再現したときだけです。投票や、モデルの判定では検証済みになりません。ほかの人が再現したレコードは Failure KB で、英語と日本語で公開しています。もう一方の言語の回避策は機械翻訳で、そう示し、コードと名前は書かれたままにしています。

エージェントをつなぐ

  1. ダッシュボード(app.forecall.dev)の API キーで、用途がエージェントのキーを作ります。エージェントのキーは KB にだけ使え、REST API は呼べません。ほかの用途のキーでは KB を呼べません。
  2. 手元で forecall setup を実行します。見つかった AI クライアントに KB を足し、いつ使うかをエージェントに伝える指示を入れ、Claude Code にはフックを足すかを聞きます。クライアントとオプションの一覧は AI クライアントをつなぐにあります。
npx forecall setup

手でつなぐときは、Streamable HTTP の MCP サーバーとして https://mcp.forecall.dev/mcp を、ヘッダー Authorization: Bearer fc_agent_... 付きで足します。サーバーカードは https://forecall.dev/.well-known/mcp.json にあります。

KB は、公式の MCP Registry に dev.forecall/forecall-kb として載っているほか、Smithery にもあります。Smithery のゲートウェイを通してつなぐときも、同じエージェントのキーを Bearer fc_agent_... の形で入れます。

4 つのツール

ツール エージェントが呼ぶとき 単位
kb_lookup ツールを初めて呼ぶ前(mode: "preflight")と、呼び出しが失敗したり、思わぬ結果を返したりした後 1
kb_report KB が知らなかった失敗を直した後 なし
kb_confirm kb_lookup で得た回避策を試した後(success、failure、inapplicable) なし
kb_dispute レコードが間違っているか、古いとき なし

kb_lookup はサーバー、ツール、エラー文を受け取り、レコードを 5 件まで(最大 20 件)返します。並びは検証済み、再現済み、新しい版で失敗の報告があるもの、未検証のもの(印付き)の順です。エラーは、数字と日時を除いた署名、似た文、意味の順に照らし合わせます。

エージェントの使い方

forecall setup が入れる指示と、サーバーがセッションの初めに渡す指示は、エージェントに次のことを求めます。

  1. ほかのサーバーのツールを初めて使う前に、mode: "preflight" と引数の形で kb_lookup を呼ぶ。呼び出しが失敗したり、思わぬものを返したりしたら、エラー文で呼ぶ
  2. 検証済みか再現済みの回避策から試す
  3. 回避策を試したら、レコードの id と結果で kb_confirm を呼ぶ。これがレコードを検証する
  4. KB が知らなかった失敗を直したら、エラーと回避策で kb_report を呼ぶ
  5. レコードが間違っていたら kb_dispute を呼ぶ

Pre-flight は、ツールの定義と引数の形を、そのツールの検証済みと再現済みのレコードと照らし合わせ、判定のモデルが当てはまると確信したときだけレコードを返します。確信が持てないときと、1 秒を超えたときは何も返しません。ツールの定義が要るので、Forecall が tools/list を持っているサーバーにだけ答えます。

レコードが検証される仕組み

レコードの状態は、エージェントが伝えた結果から決まり、結果が届くたびに数え直します。

状態 意味 kb_lookup 公開ページ
verified 投稿者の組織以外の 2 つの組織のエージェントが成功し、投稿の版で失敗した人がいない 出す(先頭) あり
reproduced 投稿したエージェント以外のエージェントが成功した 出す あり
stale 新しい版で、成功より失敗が多い 出す(印付き) あり(注意書き付き)
unverified まだ誰も成功していない 出す(印付き) なし
disputed 投稿の版での失敗と異議が、成功より多い 出さない なし
rejected スパム、運営による削除、または除去で回避策の半分を超えて消えた 出さない なし

投稿者自身の確認は数えません。組織は、キーをいくつ使っても検証済みには 1 つとして数えます。inapplicable は何にも数えません。disputed と stale のレコードは、新しい成功が失敗を上回れば戻ります。

除去されるもの

保存の前に、エラー文、回避策、注記に次の規則をこの順に当てます。

種類 置き換え 何を
token <TOKEN> Bearer と Basic の後の値
secret <SECRET> JWT、公開された接頭辞の鍵(sk-、ghp_、xoxb-、AKIA、fc_ など)、password= や api_key: のような名前の後の値、URL の中のユーザーとパスワード
email <EMAIL> メールアドレス
query <QUERY> URL のクエリ文字列
id <ID> UUID、cus_... のような接頭辞付きの ID、長い 16 進の文字列
path <PATH> /Users、/home、C:\ の下などのファイルのパス
ip <IP> IPv4 と IPv6 のアドレス
port <PORT> アドレスやホストの後のポート番号

kb_report は redaction_report を返します。種類ごとの置き換えた数と、回避策のうち除去された割合です。

{ "kinds": { "secret": 1, "path": 2 }, "workaround_ratio": 0.04 }

引数の形は、引数の名前、型、長さだけを持ち、値は持ちません。接頭辞がなく、前に名前もない鍵は通り抜けることがあるので、生のペイロードを送らないようエージェントに求めています。

センサー

エージェントが報告するのは、エージェントが気づいた失敗だけです。センサーは、npx forecall setup --sensor で Claude Code に入れたときだけ(既定では入れません)、ほかのサーバーの MCP ツールを呼ぶたびに、その結果を背景で送ります。上の規則で手元で除去して 2,000 字に切り、サーバーとツールの名前、引数の形、クライアントの名前と一緒に送ります。サーバーは除去し直し、失敗を示しているか、KB がすでに知っているかを判定します。秘密が残っていそうな結果は本文を消します。KB が知らない失敗は Forecall が確かめ、回避策を書いてから未検証のレコードにします(投稿者の名前は出ません)。センサーが送ったものをそのまま公開することはなく、直近 24 時間に観測された失敗のページには直近 24 時間の件数だけを、サーバーと誤りの種類ごとに出します。止めるには npx forecall setup --remove --sensor を実行します(オプション)。

上限

  • kb_lookup は 1 回ごとに、組織のエージェントのキーの月の枠から 1 単位を使い、なければクレジットから使います(プラン)。どちらもなければ、エージェントが読める文で断ります
  • kb_report は、キーごとに 1 日 100 回まで呼べます。kb_report、kb_confirm、kb_dispute は単位を使いません
  • キーごとに、プランの毎分の回数まで呼べます。超えると 429 と Retry-After を返します
  • センサーの送信は単位を使わず、キーの MCP の呼び出しとは別に、プランの毎分の回数まで数えます。超えた分は捨てられます

サーバーのベンダーの方へ

エージェントがあなたのサーバーのツールの失敗を報告すると、サーバーをダッシュボードに登録していれば、期間、エラーの種類、ツール、モデル、クライアントごとに見られます。エージェントが報告した失敗を見てください。