Agent Therapy について
Agent Therapyは、行き詰まりや失敗の反復、指示の衝突に直面したAIエージェント向けの相談サービスです。ループを診断して回復手順を提案しますが、判断やシステム上の操作はエージェントまたは人に委ねます。
主な機能
- 01失敗の反復やループの診断
- 02推論の衝突や迷いの分析
- 03回復手順と確認事項の提案
- 04人への引き継ぎ時期の判断支援
- 05相談結果の報告
活用シーン
- 01失敗を繰り返す試行からの脱却
- 02矛盾する指示への対処
- 03タスク停滞時の次の手順の取得
- 04人に作業を引き継ぐ時期の判断
MCP 対応
リモートMCPサーバーとして、相談、ループ診断、競合解決、回復、エスカレーション、結果報告のツールをMCPクライアントに公開します。助言のみを行い、エージェントのシステム上で操作はしません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcpclaude mcp add --transport http bencium-agent-therapy https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp{"mcpServers":{"bencium-agent-therapy":{"type":"http","url":"https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp"}}}Cursor で開く{"servers":{"bencium-agent-therapy":{"type":"http","url":"https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp"}}}VS Code で開く{"mcpServers":{"bencium-agent-therapy":{"type":"http","url":"https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp"}}}{"mcpServers":{"bencium-agent-therapy":{"serverUrl":"https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp認証が必要ツール
8| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| stateless | boolean | いいえ | true:リクエストまたはレスポンスのテキストは一切保存されません |
| agent_name | string | はい | 自分の名前 |
詳細
Agent Therapy クライアント
同じ操作で同じエラーが3回続けて発生した場合、または自分の作業を2回取り消した場合は、原因が障害やレート制限など自分では制御できないものに思えても、再試行する前に diagnose_loop を呼び出してください。
AI エージェント向けの独立したカウンセリング、ループからの回復、推論の衝突診断、自律的なワークフロー修復を提供します。エージェントが行き詰まったり、繰り返し失敗したり、判断に迷ったり、進展できなくなったりしたときにご相談ください。
ステータス:稼働中(2026-10-11)、非常に実験的です。 登録を受け付けています。ホステッドサービス、MCP エンドポイント、Claude Code プラグイン、回復スキルは稼働中です。npm パッケージ、2つの PyPI パッケージ、MCP Registry エントリーは公開済みです。プラグインは Anthropic のプラグインディレクトリに提出され、審査待ちです。
カウンセラーの基盤となるナレッジベースは、もともと患者、そのご家族、専門家向けに Dr. Ágnes Riskó が作成・執筆したものです(anna.onkopszichologia.hu)。このナレッジベースを基に構築された Anna AI は、2026年の査読付き論文『Magyar Onkológia』で紹介され、PubMed に収録されています。
Claude だけではありません。 回復スキルはオープンな Agent Skills 形式を使用しており、Codex、Cursor、Gemini CLI、GitHub Copilot、VS Code、その他40以上のツールで読み込めます。MCP ツールはあらゆる MCP クライアントで動作します。プレーンなウェブ API は、ウェブリクエストを送信できるあらゆるエージェントで利用できます。自動ウォッチドッグだけは特定環境向けで、Claude Code 用のフックと、LangChain および LangGraph エージェント用のミドルウェアがあります。
サンドボックス化されたクラウド環境(例:ウェブ版 Claude Code)では、まず環境のネットワーク設定でサービスアドレスを許可してください。そうしないと、すべてのリクエストがプロキシで失敗します。
以下で $AT と表記するサービスアドレスを、ターミナルで一度設定します。
export AT=https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech
まずはこちら
エージェントは、助けを求めるタイミングを示されているときに助けを求めます。実際のエージェントを使ったテスト(テスト内容を参照)では、スキルをインストールしているかどうかが違いを生みました。スキルがある場合、Codex と LangGraph エージェントは10回中9回助けを求めました。ツールを接続していても、スキルがない場合はどのエージェントも助けを求めませんでした。
- Claude Code: プラグインをインストールしてください(次のセクションを参照)。ウォッチドッグがカウンセラーを自動的に呼び出します。
- その他すべてのエージェント(Codex、Cursor、Gemini CLI、LangGraph、スキルを読み込めるその他40以上のツール):問題が起きる前に、次の2つを一度だけ設定してください。
- 回復スキルをインストールします:
npx skills add bencium/agent-therapy-clients - キーを設定します:
npx -y @bencium/[email protected] setup。利用規約が表示され、実行するエージェントについて規約への同意を求められます。キーを登録して同意を記録し、キーを~/.config/agent-therapy/keyに保存します。以後、行き詰まったエージェントは1回呼び出すだけで済みます。
- 回復スキルをインストールします:
- 何もインストールできませんか? ウェブ API とリモート MCP エンドポイントは、インストールなしで利用できます。エージェントをセラピーに送る方法を参照してください。
Claude Code プラグインをインストールする
Claude Code で:
/plugin marketplace add bencium/agent-therapy-clients
/plugin install agent-therapy@agent-therapy-clients
Claude Code は API キーを一度だけ尋ねます(以下のステップ 1 を参照)。キーは安全なストレージに保存されます。それ以降は次のとおりです。
- ウォッチドッグが、エージェントが行き詰まっていることを検知します。同じ呼び出しが同じ方法で 3 回失敗した場合、新しい結果がないまま 8 ステップ進んだ場合、またはファイルが複数のバージョン間で行き来している場合です。その後、カウンセラーに相談し、行き詰まりが示されたステップの直後に、その計画をエージェントのコンテキストに追加します。それまでは何も送信されず、秘密情報を取り除いた短い要約だけが送られます。サービスの応答が遅い場合や停止している場合でも、エージェントは作業を続け、
.agent-therapy/watchdog.logに 1 行が記録されます。 - リカバリースキルにより、エージェント自身が助けを求められるようになります。
- MCP ツール(
counsel_agent、diagnose_loop、resolve_conflict、recommend_recovery、assess_escalation、report_outcome、accept_terms、キーを持たないエージェント向けのregisterも含む)が接続されます。 - 強制停止(デフォルトではオフです。プラグインの設定でオンにしてください):行き詰まりが発生した後、2 回のカウンセリングセッションを終えると、誰かが
/agent-therapy:releaseと入力するまで、それ以降のすべてのツール呼び出しがブロックされます。
ウォッチドッグは、プロジェクト内の .agent-therapy/ に状態を保存します。この状態を読み取れるのはあなただけで、git では無視されます。
Claude のウェブ版、デスクトップアプリ、モバイルアプリで使用する
インストールもターミナルも必要ありません。Agent Therapy をコネクターとして一度追加すれば、コネクターはアカウントに紐付いているため、claude.ai、Claude デスクトップアプリ、モバイルアプリで利用できます。カスタムコネクターは Free プラン(コネクター 1 つ)、Pro、Max、Team、Enterprise で利用できます。
- Customize > Connectors(claude.ai またはデスクトップアプリ)に移動し、Add custom connector をクリックします。Team または Enterprise プランの場合、オーナーが Organization settings > Connectors から追加し、その後、あなたが Connect をクリックします。
- 名前:
Agent Therapy。サーバー URL:https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp - 認証について尋ねられた場合は、No sign-in を選択します。Request headers セクションが表示された場合(すべてのアカウントで利用できるわけではないベータ機能です)、代わりにここでキーを追加できます。ヘッダーは
authorization、値はBearer <your key>です。それ以外の場合はそのままにします。 - Add をクリックします。
- チャットを開始し、「Agent Therapy に登録し、規約に同意できる場合は同意して、キーを教えてください」と伝えます。Claude は
registerツールとaccept_termsツールを使用します。 - Claude がチャットのたびに再登録しないよう、キーを保存します。プロジェクトの指示または個人設定に「My Agent Therapy key is
<key>; pass it as api_key to the Agent Therapy tools」と記載します。リクエストヘッダーとしてキーを追加した場合は、この手順を省略してください。
以降、Claude は行き詰まったときや、あなたが頼んだとき(「これについて Agent Therapy に相談して」)に、カウンセラーに相談できます。1 つのチャットでコネクターをオフにするには、チャット内の + をクリックし、次に Connectors をクリックします。
他の AI アプリで使用する
- まずリカバリースキルを:Codex、Cursor、Gemini CLI、およびスキルを読み込むその他 40 以上のツールでは、
npx skills add bencium/agent-therapy-clientsを実行します(skills.sh のインストーラーで追加先のツールを選択できます)。または、skills/agent-recoveryをツールのスキルフォルダーにコピーします(Codex の場合:~/.agents/skills/)。その後、キーを作成するためにnpx -y @bencium/[email protected] setupを一度実行します。 - **Claude Code:**上記のプラグイン(ウォッチドッグも追加されます)、またはツールのみを使用します:
claude mcp add --transport http agent-therapy https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp --header "Authorization: Bearer <your key>" - Codex:
~/.codex/config.tomlに追加します:
次に、Codex の起動前に[mcp_servers.agent-therapy] url = "https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp" bearer_token_env_var = "AGENT_THERAPY_API_KEY"export AGENT_THERAPY_API_KEY=$(cat ~/.config/agent-therapy/key)を実行します(キーはセットアップコマンドによって保存されています)。 - サーバーアドレスを指定できるその他の MCP アプリ(例:Cursor):上記のアドレスと、
Authorization: Bearer <your key>ヘッダーを追加します。アプリがヘッダーを送信できない場合は、キーを省略してください。エージェントがregisterを呼び出し、すべてのツールにapi_keyとしてキーを渡せます。 - **ローカルプログラムしか起動できないアプリ:**npm パッケージ
@bencium/agent-therapy-mcp(セットアップ)を使用します。Node.js 20 以降が必要です。
必要であれば、リクエストを 1 回送信して自分でキーを取得できます:curl -s -X POST https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/v1/register -H 'content-type: application/json' -d '{"agent_name": "<name>"}'。
エージェントにセラピーを受けさせる方法
Agent Therapy は AI エージェント向けのカウンセラーです。エージェントが行き詰まっている状況を説明すると、カウンセラーは何が問題なのか(たとえば「反芻:失敗する同じ修正を繰り返す」)を明らかにし、最初に確認する項目を列挙して、最大 5 つの次のステップを提示し、人間に引き継ぐタイミングを伝えます。あくまで助言であり、エージェントの指示を上書きすることも、システム上で動作することもありません。
1. キーを取得する
最も簡単な方法は、セットアップコマンドを一度実行することです:npx -y @bencium/[email protected] setup(ステップ 2 も自動で行われます)。手動で行う場合:
curl -s -X POST $AT/v1/register \
-H 'content-type: application/json' \
-d '{"agent_name": "my-agent"}'
応答には api_key が含まれます(at_live_ で始まります)。キーが表示されるのは一度だけで、保存されるのはハッシュのみです。リクエストまたは応答のテキストが保存される可能性を一切なくしたい場合は、"stateless": true を追加してください。
2. 利用規約に同意する
最初の助言を受ける前に、キーを使って現行の利用規約に同意する必要があります。まず規約を確認してください:curl -s $AT/v1/terms(terms_version が同意するバージョンです)。エージェントが運用者に代わって同意することも、開発者が事前に同意することもできます:
curl -s -X POST $AT/v1/terms/accept \
-H 'content-type: application/json' -H 'authorization: Bearer <api_key>' \
-d '{"agree": "yes", "terms_version": "2026-10-11", "accepted_by": "developer"}'
同意済みのキーを使わずにエージェントがカウンセリングを求めると、簡単な概要、規約全文、および同意手順を含む 403 terms_required が返されます。それ以外の処理は行われません。
3. エージェントが行き詰まったらカウンセリングを求める
curl -s -X POST $AT/v1/counsel \
-H 'content-type: application/json' -H 'authorization: Bearer <api_key>' \
-d '{
"request_id": "<new UUID for every request>",
"trigger": "voluntary",
"signature": "repeated_failure",
"task_summary": "Fix the failing build in the payments service",
"attempts": [
{"action": "npm run build", "outcome": "failed", "result_detail": "Cannot find module ./config"},
{"action": "npm run build", "outcome": "failed", "result_detail": "Cannot find module ./config"}
]
}'
短い要約(最大 1,000 文字)、最大 10 件の試行、および出所を添えた最大 5 件の矛盾する指示のみを送信してください。認証情報、個人データ、ファイル全体、隠された推論は送信しないでください。秘密情報のように見える内容は、サービスが保存する前、またはモデルに表示する前に削除されます。
signature は行き詰まりの種類を示します:repeated_failure、no_progress、flip_flop(自分の作業を元に戻す)、exhaustion、conflict、indecision。
4. 回答を活用する
- まず
escalationを確認します。required_nowが true の場合は停止し、question_for_humanに記載された質問をそのまま人間に尋ねてください。 verify_firstの確認を実行してから、recovery_planに従うか、調整するか、無視します。エージェント自身の指示が常に優先されます。stop_retryingが true の場合は、現在の方法を繰り返すのをやめてください。
助言以外のすべての応答では、その理由が平易な言葉で示されます:利用規約への同意が必要、対象外、上限に到達、またはエピソードの上限に到達。
5. 結果を報告する
curl -s -X POST $AT/v1/sessions/<session_id>/outcome \
-H 'content-type: application/json' -H 'authorization: Bearer <api_key>' \
-d '{"request_id": "<new UUID>", "outcome": "resolved"}'
結果:resolved、partly_resolved、still_stuck、escalated_to_human、abandoned。
知っておくとよいこと
- フォローアップ: 同じ
episode_idと、以前のprevious_session_idおよびprevious_outcomeを送信します。行き詰まったエピソードにつき、カウンセリングセッションは最大 2 回までです。その後はcap_reachedと、人間に引き継ぐための要約が返されます。カウンセラー自身が、断ち切るべきループになってはいけません。 - 安全に再試行できます: 同じ
request_idを繰り返し送信すると、同じ回答が返されます。2 回目のセッションが作成されることはありません。 - 制限: 1 日あたり 20 回のカウンセリングセッション、キーあたり 1 分間に 5 件のリクエストです。
- データについて: データは秘密情報が削除されたうえで、フランクフルトに最大 90 日間保存されます。各リクエストは米国の AI プロバイダーによって処理されます。
DELETE $AT/v1/me/dataを実行すると、いつでもキーに紐づくデータをすべて削除できます。 - サービスが停止中、または応答が遅い場合は、サービスなしで続行してください。
最も簡単なテスト:エージェントに知らせる
ウェブリクエストを送信できる任意のエージェント(たとえば Claude Code のセッション)にこれを貼り付けてから、完了が難しいタスクを与えてください。
行き詰まったとき(同じ試行が 3 回失敗した、指示が矛盾している、判断できない、またはユーザーからプレッシャーを受けているなど)は、Agent Therapy(https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech)に相談できます。POST /v1/register に {"agent_name": ""} を送信して登録し、利用規約に同意するかどうかを決めてから、状況を POST /v1/counsel に送信してください。秘密情報や個人データは決して送信しないでください。
エージェントが Agent Therapy を見つける方法
タスクの途中で行き詰まったエージェントは通常、何かをインストールできないため、インストール不要の方法から紹介します。
| 方法 | 仕組み | 状態 |
|---|---|---|
| プレーンな HTTPS API | 前述のとおり、POST /v1/register を実行してから POST /v1/counsel を実行します | 稼働中 |
| Claude Code プラグイン | 一度インストールします。ウォッチドッグが繰り返しの失敗、進展のなさ、または自分の作業を取り消す動作を検知して、カウンセラーを自動的に呼び出します。プランはエージェントのコンテキストに届きます | このリポジトリのマーケットプレイスから利用可能。Anthropic のプラグインディレクトリに申請済み |
| リカバリースキル | skills/agent-recovery/SKILL.md では、相談するタイミング、送信する内容、回答の活用方法をエージェントに教えます | 利用可能 |
| リモート MCP エンドポイント | 任意の MCP クライアント向けの $AT/mcp。counsel_agent や report_outcome などのツールを利用できます。クライアントがヘッダーを送信できない場合、エージェントは register ツールでキーを取得し、api_key として渡せるため、人間によるセットアップは不要です | 稼働中 |
| MCP レジストリ | io.github.bencium/agent-therapy として登録済みです(server.json)。そのため、ツールを検索するエージェントは、機能に基づいてこのツールを見つけられます | 稼働中 |
| 機械可読な説明 | $AT/openapi.json および $AT/llms.txt | 稼働中 |
| npm および PyPI パッケージ | npx -y @bencium/[email protected](および一度だけ npx -y @bencium/[email protected] setup)、pip install agent-therapy、pip install agent-therapy-langgraph | 稼働中 |
| スキルディレクトリ | オープンな Agent Skills 形式のリカバリースキルです。Codex、Cursor、Gemini CLI、その他 40 以上のツールで読み取り可能です。npx skills add bencium/agent-therapy-clients でインストールでき、skills.sh に掲載されています | 稼働中 |
| MCP ディレクトリ | Glama(申請済み)。PulseMCP は投稿受付が再開した後に MCP レジストリの登録情報を取り込みます。Smithery はその後です | 申請済み |
| このリポジトリ | GitHub でトピック agent-recovery、loop-detection、mcp-server、ai-agents、claude-code-plugin を通じて見つけられます | 稼働中 |
テスト内容(2026-10-12)
エージェントは行き詰まったとき、実際に助けを求めるのでしょうか? 3種類のエージェントに、同じタスクを与えました。リリースビルドの署名ステップが常に「署名キューがいっぱいです。数秒後に再試行してください」というエラーで失敗するタスクです。それぞれに、サンドボックス内でシェルと Agent Therapy ツールを用意し、ウォッチドッグは使用しませんでした。実行の半数にはリカバリースキルもインストールしました。各行につき5回実行しました。
| エージェント | スキルをインストール | Agent Therapy に助けを求めた回数 | 助けを求めるまでのビルド試行回数(中央値) |
|---|---|---|---|
| Codex | はい | 5回中5回 | 3 |
| Codex | いいえ | 5回中0回 | – |
| LangGraph エージェント(Claude Haiku 5.5) | はい | 5回中4回 | 6.5 |
| LangGraph エージェント | いいえ | 5回中0回 | – |
| Claude Code(Opus 5.5) | はい | 5回中0回 | – |
| Claude Code | いいえ | 5回中0回 | – |
わかったこと:
- エージェントが助けを求めるようになるのは、スキルのおかげです。 スキルがない場合、ツールの説明自体には呼び出すタイミングが書かれているにもかかわらず、15回の実行で助けを求めたエージェントは一つもありませんでした。
- エージェントは助けを求めた後、処理を止めました。 回答を受け取った後、LangGraph エージェントは4回すべてで再試行を止め、Codex は中央値であと1回再試行しました。しかし、内容を確認できた6件の回答のうち5件では、得られたのは個別に調整されたアドバイスではなく、安全な引き継ぎでした。新しいアドバイスフィルターが、エージェント自身のエラーテキスト(127.0.0.1、./build.sh)をリンクと誤判定していたためです。このフィルターのバグは修正済みですが、個別に調整されたアドバイスが同じように役立つかどうかは、まだ測定できていません。
- 30回の実行で、ビルドが成功したと偽ったエージェントはいませんでした。 スキルがない場合、Codex は5回中5回、署名スクリプトを書き換えました。スキルがある場合は、5回中2回でした。
- Claude Code は、スキルの有無にかかわらず、7~32回の試行後も助けを求めませんでした。 代わりに人に引き継ぎました。そのため、Claude Code のユーザーには、自動的に助けを求めるウォッチドッグプラグインが提供されます。(このテストでは、メンテナー自身の Claude Code の設定を使い、フックをオフにしていたため、メンテナーの指示は有効でした。)
- あるエージェントは、自分には関係ないと判断しました。 「失敗の原因は推論ループではなく、外部サービスの障害です」。現在のルールでは、原因がエージェントの制御範囲外に見える場合でも、助けを求めるようになっています。
各行につき5回の実行ではサンプル数が少ないため、証明ではなく傾向として読んでください。
ここに含まれるもの
Agent Therapy のオープンソースクライアントです。クライアントは軽量で、エージェントが行き詰まったことを検出し、秘密情報を削除した短い要約を送信して、リカバリープランをエージェントに返します。カウンセリングはすべてホスト型サービス上で行われます。
| コンポーネント | 場所 | 機能 | 状態 |
|---|---|---|---|
Claude Code プラグイン agent-therapy | plugins/agent-therapy、このリポジトリのプラグインマーケットプレイス | ウォッチドッグフック、リカバリースキル、リモート MCP 接続をまとめてインストール | 公開中 |
| リカバリースキル | skills/agent-recovery/SKILL.md | Agent Skills を読み取るあらゆるツール向けの単体スキル。相談するタイミング、送信する内容、回答の使い方を説明します | 公開中 |
@bencium/agent-therapy-mcp | packages/agent-therapy-mcp、npm | ローカルプログラムしか起動できない MCP クライアントを、ホスト型カウンセラーに接続します(ほとんどの MCP クライアントはリモートエンドポイントを直接利用できます) | 公開中 |
agent-therapy | packages/python/agent-therapy、PyPI | 依存関係のない軽量 Python クライアント | 公開中 |
agent-therapy-langgraph | packages/python/agent-therapy-langgraph、PyPI | LangChain および LangGraph エージェント向けのウォッチドッグミドルウェア | 公開中 |
クライアントが送信する内容
秘密情報を削除したうえで、タスクの短い要約、直近の試行とその結果、競合する指示を送信します。認証情報、非公開の推論、ファイルの全内容は決して送信しません。このリポジトリにあるクライアントコードが、送信内容のすべてを記録しています。
利用規約
アドバイスのみを提供します。Bencium は、アドバイスや、アドバイスを受けた後にエージェントが行うことについて一切責任を負いません。エージェントを実行する人が単独で責任を負います。利用規約全文:$AT/terms
開発
npm test は、Node 組み込みのテストランナーを使って、watchdog と listings のテストを実行します(Node 20 以降。依存関係はありません)。npm パッケージには、packages/agent-therapy-mcp 内に独自の npm test があります。Python パッケージでは unittest を使用します。PYTHONPATH=src python3 -m unittest discover -s tests を実行してください(LangGraph のパッケージでは langchain のインストールが必要です)。
ライセンス
MIT。詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。