Deep Research 設計思想 × 技術 × 運用 2026-06-14

AIコーディングエージェントはなぜ「ターン駆動」で、完了しても自分から報告しないのか
― 設計思想・技術的制約・確実に通知を受け取る対策 ―

対象: Claude Code を中心に、ChatGPT/Codex・Gemini・Cursor・Devin・Cline を横断比較。一次情報(Anthropic 公式 docs / 公式 GitHub)優先。推測は 推測 と明記。

目次(12章)
  1. 結論(30秒サマリ)
  2. 市場・前提:なぜ「放置に見える」問題が今これほど刺さるのか
  3. 完了通知ソリューション TOP10 比較
  4. 技術スタック:ターン駆動アーキテクチャの内部
  5. コスト・効果試算(通知を入れると何が変わるか)
  6. リスクと「不親切なのか?」中立評価
  7. 30分セットアッププラン(Windows 実機向け)
  8. 撤退ライン/やり過ぎの境界
  9. 落とし穴(ハマりどころ7選)
  10. 既存資産の活用(トフィーさんの環境に直結)
  11. 関連DR一覧
  12. 脚注(全URL)

1. 結論(30秒サマリ)

結論:これは「不親切」ではなく、LLMエージェントの構造(ターン=リクエスト/レスポンス)に由来する合理的なトレードオフです。そして 2026 年現在、「終わったら必ず教えて」は公式機能だけで実現できます。

トフィーさんの MEMORY ルール「長時間タスクは途中で進捗報告」は 運用での回避。本DRはそれを 仕組みで自動化する手段をまとめたものです。

🤑 マネタイザー:通知を1回入れるだけで「待ち時間にスマホ見て放置」が消える=同じ時間で回せる並列セッション数が増える。これは時給そのものの改善。
💼 コーチ:今日やるのは1ファイル(~/.claude/settings.json)に数行。30分で終わります。第7章をそのまま貼ってください。
💕 メンター:「AIが冷たい・不親切」と感じてイライラしていたなら、それは設計の誤解です。仕組みを知れば、ちゃんと味方になってくれますよ。

2. 市場・前提:なぜ「放置に見える」問題が今これほど刺さるのか

AIコーディングエージェントの普及で、1ターンが「数秒の補完」から「数分〜数十分の自律作業」へと長尺化した。Anthropic は Claude Code が VS Code だけで 2,900万インストールに達したと述べている5二次情報 長尺化により「終わったのに画面を見ていないと気づけない」体験ギャップが顕在化し、各社に同種の機能要望が殺到している。

Claude Code 規模(VS Code)
2,900万DL
公式 push 通知
v2.1.110 で追加(報)
他社の同種要望
多数 Open issue

需要の裏付けは「公式が機能を出したこと」と「他社で同じ要望が大量に立っていること」。Codex(OpenAI)には「完了音を鳴らして」系の Issue が複数(#3962 / #9093 / #9672 等)12、Cline には「タスク完了/ブロック時に効果音」Discussion #322813、Claude Code 公式 repo にも「リモート時に完了プッシュを」Issue #28765 / #29438 が立つ6=全エージェント共通の構造的ペインであり、ベンダー単体の手抜きではない

3. 完了通知ソリューション TOP10 比較

「終わったら教えて」を実現する具体策を、確実性・手軽さ・常時性で評価。公式一次公式だが二次報道推測

#手段仕組み/発火到達先確実性出典
1Claude Code Stop フック 公式主エージェントが応答を終えた瞬間に発火(ユーザー中断時は発火しない)デスクトップ通知/音/任意スクリプト211
2Claude Code Notification フック 公式入力待ち/許可待ち/アイドル時に発火(matcher で idle_prompt 等を選択可)デスクトップ通知3
3Remote Control プッシュ通知 公式/二次v2.1.110 で追加。タスク完了/承認必要時にモバイルへ push(要 Remote Control 有効+Claude アプリ+設定1つ)スマホ push高(報)56
4Routines(クラウド常駐) 公式Anthropic 管理基盤で定時/API/GitHub 起動。PC オフでも走る。Slack 等へ結果投稿可Slack/PR/connector4
5Desktop scheduled tasks 公式デスクトップアプリ経由で自PC上にローカル定時実行(ローカルファイルにアクセス可)ローカル10
6/loop 等の in-session スケジュール 公式開いている CLI セッション内でポーリング。新会話開始で止まる(--resumeで復元)セッション内10
7SubagentStop フック 公式サブエージェント完了で発火。並列タスクの個別完了通知に通知/ログ2
8Cursor 完了通知(内蔵)エージェント/パネル応答完了で通知・音(要望に応じ拡張中)デスクトップ通知/音1214
9VS Code 拡張 / MCP(herald, sound-mcp, AI Agent Sound Notification 等)Claude/Cursor の完了・承認待ちで音/TTS/フォーカス移動。クロスプラット音/TTS/通知14
10外部連携(Pushover/ntfy/Slack webhook をフックから叩く) 構成例Stop/Notification フックから curl でモバイル push サービスを叩くスマホ/Slack215

トフィーさん向け第一候補=#1 Stop+#2 Notification(Windows PowerShell)。スマホで受けたいなら #3 Remote Control。PC オフでも回したい定常作業は #4 Routines

4. 技術スタック:ターン駆動アーキテクチャの内部

4-1. なぜ「ターン=リクエスト/レスポンス」なのか(アーキテクチャ的理由)

主要なエージェント実装は例外なく同じ形に収束している ―― 「LLM を呼ぶ → 応答にツール呼び出しが含まれるか判定 → 含まれれば実行して結果を入力に戻す → 含まれなければ停止」という while ループ(いわゆる ReAct ループ)7。Anthropic 自身も「エージェントとは、環境フィードバックを使ってツールをループで回す LLM にすぎない」と定義している1

# エージェントの本質(擬似コード)
while True:
    out = LLM(context)              # 1回の推論=1ターンの一部
    if out.has_tool_calls:
        results = run_tools(out)     # ファイル編集/コマンド実行
        context += results           # 結果を“次の入力”に戻す
    else:
        break                        # ★出力が尽きた=ターン終了。ここで「止まる」
# ↑ タイマーで自分を再起動する仕組みは“ここには無い”。次は人間の入力待ち。

ポイントは 「停止=バグではなく到達点」。LLM は状態を持つデーモンではなく「入力→出力の純粋関数」であり、ループを駆動する燃料は毎ターン渡される入力(コンテキスト)。出力が空(=もうやることがない)になればループは正しく終わる。「終わったあとに自発的に喋り出す」には、別途“起こす”トリガ(タイマー/イベント/通知機構)を外付けする必要がある。これが本DRのテーマの核心。構造の整理

4-2. なぜ「自走させ続けない」のか(コスト・安全・暴走防止)

=「自分から報告しない」のは、同じ設計が生む副作用。能動通知を足すこと自体は安全設計と矛盾しないので、各社は「停止イベントにフック/プッシュを後付け」する形で解決している。

4-3. フックのライフサイクル(Claude Code 一次情報)

フック発火タイミングmatcher 不要用途
Stop主エージェントが応答を終えた時(ユーザー中断では発火しない)不要(毎回発火)完了通知の本命
SubagentStopサブエージェント完了時不要並列タスク個別通知
Notification許可待ち/アイドル待ち等(permission_prompt/idle_prompt/auth_success 等を matcher 指定可)空="全種"入力待ち通知の本命
PostToolUseツール成功後(Edit|Write|Bash 等を matcher 指定)matcher 推奨特定の長時間処理の完了検知
SessionEndセッション終了時不要最終サマリ/後片付け
UserPromptSubmitユーザー送信時不要前処理/監査

出典:Claude Code 公式 Hooks リファレンス/Hooks ガイド2311。デフォルトタイムアウトは多くのイベントで 600 秒。フックは制御端末を持たない場合があり、その際は出力JSONの terminalSequence 等で通知を発火する2

5. コスト・効果試算(通知を入れると何が変わるか)

推測(モデル試算・実測値ではない) 完了/入力待ちに気づくまでの「見落とし待機」を1セッションあたり平均 5 分、1日 12 セッションと仮定。

項目通知なしStop+Notification導入後
1セッションの見落とし待機約5分約0.5分(即気づく)
1日の浪費(12セッション)約60分約6分
月20営業日約20時間/月約2時間/月
並列セッションの実効本数1〜2本(張り付き前提)3〜5本(呼ばれたら戻る)
導入コスト初期30分・ランニング¥0(OS標準通知)

月18時間規模の回収が現実的。Remote Control(push)を足すと「席を外していても回せる」ため並列の上限がさらに上がる。ランニング費用は OS 標準通知なら 0 円、Pushover 等の外部 push は買い切り/小額。

6. リスクと「不親切なのか?」中立評価

設計の合理性
構造由来+安全/コスト上の必然
回避可能性
公式機能で完全に解決可
デフォルト体験
通知は“オプトイン”で初期OFF

判定:「Anthropic が不親切」は 誤り。ただし「デフォルトでは通知が来ない=自分で1回設定が要る」点は 改善余地のある UX

=結論:安全・コスト設計上の合理的トレードオフ。短所(初期OFF)はユーザー側設定で 30 分で消せる。

6-1. 他社比較(同種挙動と通知実装)

製品ターン駆動か完了/入力待ち通知備考
Claude CodeはいStop/Notification フック・Remote Control push・Routines公式の選択肢が最も豊富25
ChatGPT / Codex (OpenAI)はい要望多数(完了音 Issue #3962/#9093/#9672)。クラウドエージェントは完了でUIに反映音通知は継続要望段階12
Google GeminiはいCLI/IDE 統合での通知は環境依存(要確認)未確認
Cursorはい内蔵の完了通知/音あり+拡張で強化マルチタスク前提の設計1214
Devinクラウド常駐型に近いSlack 連携で進捗/完了を投稿(人に話しかける UX)非同期エージェントの代表一般理解
Clineはい要望 Discussion #3228(完了/ブロック音)。MCP/拡張で付与可OSS ゆえ拡張で補完1314

傾向: ローカルCLI系(Claude Code/Codex/Cline)は「停止イベント+フック/拡張で後付け通知」、クラウド常駐系(Devin/Routines)は「Slack 等に結果を投げる」。前者は仕組み上どうしても“一旦止まる”ので通知が要る、後者はもともと無人前提なので結果配信が標準

7. 30分セットアッププラン(Windows 実機向け)

Step 1(10分)~/.claude/settings.json(Windowsは C:\Users\todak\.claude\settings.json)に Stop+Notification を追加。公式例ベース3

{
  "hooks": {
    "Notification": [
      { "matcher": "",
        "hooks": [{ "type": "command",
          "command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code が入力/承認を待っています','Claude Code')\"" }]
      }
    ],
    "Stop": [
      { "hooks": [{ "type": "command",
          "command": "powershell.exe -Command \"[console]::beep(880,300); [System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('タスク完了:Claude Code が応答を終えました','Claude Code 完了')\"" }]
      }
    ]
  }
}

公式の Windows 例はこの PowerShell MessageBox3。鳴る音だけで十分なら [console]::beep に。BurntToast モジュール導入でトースト通知化も可(任意)。

Step 2(5分):CLI で /hooks を開き、Notification と Stop に件数が付いているか確認(メニューは読み取り専用)3。何か承認が要る指示を投げ、別ウィンドウに切り替えて通知が出るかテスト。

Step 3(10分・スマホで受けたい場合):Claude モバイルアプリを入れ、Remote Control を有効化+プッシュ通知トグルを ON。Remote Control は claude.ai の OAuth 認証(APIキー/Bedrock/Vertex バックエンドは非対応)56二次情報のため要実機確認

Step 4(5分・無人で回したい定常作業):CLI で /schedule daily PR review at 9am のように Routine を作成(PCオフでもクラウドで走り、結果を Slack 等へ投稿可)4

💼 コーチ:まず Step1〜2 だけで「鳴る・気づく」は完成。Step3/4 は欲が出たら。完璧を待たず、今 settings.json を1回保存しましょう。

8. 撤退ライン/やり過ぎの境界

9. 落とし穴(ハマりどころ7選)

  1. JSON のマージミス: 既存 hooks がある場合、Notification既存キーの兄弟として足す(オブジェクトごと上書きしない)3
  2. Stop は中断時に発火しない: ユーザーが Esc 等で止めた場合は鳴らない仕様11。「途中で止めたのに通知が来ない」は正常。
  3. フックに制御端末が無い: /dev/tty 直叩きは不可な場合がある。OS の通知コマンド or 出力JSONの terminalSequence を使う2
  4. macOS の osascript 無通知: Script Editor に通知許可が無いと無音で失敗。System Settings > Notifications で許可(公式に明記)3
  5. Remote Control の制約: 同時1リモートセッション・端末を開いたまま・無通信約10分でタイムアウト(報)5。push は API キー運用では不可6
  6. /schedule が出ない: APIキー/Bedrock/Vertex ログインや DISABLE_TELEMETRY 等が設定されていると /schedule が隠れる。claude.ai サブスク login が必要4
  7. 「進捗中の報告」と「完了通知」は別物: フックは“イベント発火”であって“長時間タスク中の途中経過”は出さない。途中経過はトフィーさんの MEMORY ルール通りプロンプト側で print(..,flush=True) や逐次ログで担保する(パイプの tail/head はバッファして完了まで無出力になる)。

10. 既存資産の活用(トフィーさんの環境に直結)

11. 関連DR一覧(D:\市場調査資料\)

重複チェック結果:本テーマ(ターン駆動設計+能動通知機構)に直接該当する既存DRは無し。新規作成が妥当。

12. 脚注(全URL・実在確認済)

  1. Anthropic「Building Effective Agents」(エージェント=ツールをループで回すLLM/不可逆操作前の人間チェックポイント/停止条件) https://www.anthropic.com/research/building-effective-agents 一次
  2. Claude Code 公式 Hooks リファレンス(Stop/SubagentStop/Notification/PostToolUse/SessionEnd 等、発火条件・matcher・terminalSequence・600秒タイムアウト) https://code.claude.com/docs/en/hooks 一次
  3. Claude Code 公式 Hooks ガイド(Notification フックの macOS/Linux/Windows 実例・matcher 値・/hooks 確認手順) https://code.claude.com/docs/en/hooks-guide 一次
  4. Claude Code 公式 Routines(Anthropic 管理クラウドで定時/API/GitHub 起動・PCオフでも走る・/schedule・緑=起動成功≠タスク成功) https://code.claude.com/docs/en/routines 一次
  5. VentureBeat: Anthropic が Remote Control を公開(モバイル版 Claude Code・ローカルセッションへの窓・2,900万DL・研究プレビュー) https://venturebeat.com/orchestration/anthropic-just-released-a-mobile-version-of-claude-code-called-remote 二次(公式機能の報道)
  6. GitHub Issue #28765 / #29438(anthropics/claude-code)(リモート時の完了プッシュ要望・push は v2.1.110 で追加との整理) https://github.com/anthropics/claude-code/issues/28765https://github.com/anthropics/claude-code/issues/29438 一次(公式repo)
  7. The Anatomy of an Agent Loop(Steve Kinney)(while ループ=LLM呼び→ツール判定→実行→無ければ停止という ReAct 収束形) https://stevekinney.com/writing/agent-loops 技術解説
  8. Permit.io: Human-in-the-Loop for AI Agents(反復上限/タイムアウト/支出上限・上限到達で人間に制御を返す) https://www.permit.io/blog/human-in-the-loop-for-ai-agents-best-practices-frameworks-use-cases-and-demo 技術解説
  9. AI Agent Course: Autonomy and Loops (ReAct Loop)(自律ループと停止条件・制御/説明責任) https://kshvakov.github.io/ai-agent-course/04-autonomy-and-loops/ 技術解説
  10. Claude Code 公式 Common workflows / Run on a schedule(Routines・Desktop scheduled tasks・/loop・GitHub Actions の使い分け表) https://code.claude.com/docs/en/common-workflows 一次
  11. DeKu / alexop.dev / nakamasato(terminal-notifier 実例)(Stop フックは応答完了で発火・ユーザー中断では発火しない・終了/入力待ちの2フック構成) https://deku.posstree.com/en/generative_ai/claude-code-settings/https://alexop.dev/posts/claude-code-notification-hooks/ 実装記事
  12. OpenAI Codex 完了音 Issue 群(#3962 / #9093 / #9672)+Cursor フォーラム要望 https://github.com/openai/codex/issues/3962https://github.com/openai/codex/issues/9672https://forum.cursor.com/t/sound-notification-when-ai-panel-codex-chat-finishes-responding/150881 一次(各repo/forum)
  13. Cline Discussion #3228(タスク完了/ブロック時の効果音要望) https://github.com/cline/cline/discussions/3228 一次(公式repo)
  14. 通知拡張/MCP(herald・sound-mcp・AI Agent Sound Notification・Claude Notifier) https://github.com/al3xjohnson/heraldhttps://github.com/bcharleson/sound-mcphttps://marketplace.visualstudio.com/items?itemName=mayerwin.ai-agent-sound-notification エコシステム
  15. motlin.com: Claude Code Phone Notifications(フックから外部 push へ=スマホ受信構成例) https://motlin.com/blog/claude-code-phone-notifications 実装記事

注:脚注5(Remote Control の launch 時期)は報道により「2026年1月 研究プレビュー」と整理。push 通知が v2.1.110(2026-04-16・二次情報)で追加とされる点は、本DRでは 二次情報=要実機確認 として扱う。一次ソース(公式 docs / 公式 repo issue)と二次(報道/実装記事)はタグで明示分離した。


作成: Claude Code (Deep Research Writer) / 2026-06-14 / 重視軸: 技術×設計思想 / 出力: D:\市場調査資料\DR_CC完了通知_設計思想と対策_2026-06-14.html