この記事は、連載「読まない技術」の第 11 回です。うまくいかない症状と、その対処を一つずつ並べています。各回はファイルやスクリプトを一つ置けば完結します。その仕組みがなぜ要るのかは、置いたあとに解説を読めば分かります。連載の全体像と各回の一覧は序論にあります。
今回は、AIが作業している途中に、人間が口を挟むときの話です。AIは、途中で挟まれた一言を、進行中の作業より優先します。そのぶん、進行中の作業は後回しになり、後回しになっている間に壊れていきます。
まず一つだけ、探してみてください。
直近のセッション(AIとの、始まりから終わりまで一続きのやり取り)で、あなたがAIの作業の途中に口を挟んだ箇所です。「この画面、表示が崩れている」「ついでにこれも直して」。
その直後から、AIが指摘への対応を先に進め、数ターン後には「元の作業はどこまで進んでいたんだっけ」という状態になっていませんでしたか。
しかも、人間がAIの作業の問題に気づくのは何周も後です。
AIが作業している途中で、あなたは「ついでに、この画面の表示崩れも直して」と打ちました。AIはその直後から表示崩れの原因の調査と修正を先に進め、数ターン後には、元の作業がどこまで進んでいたのか分からなくなっていました。次に、作業の途中で何かに気づいたとき、あなたなら次のどちらにしますか。
- 気づいたことを、その場ですぐに追加で頼む
- AIが作業を終えるまで待ってから、入力する
答えは、待つほうです。元の作業が後回しになったのは、AIが、実行中の操作が終わりしだいあなたの一言を読み、次の操作をその一言に合わせたからです。その場ですぐに追加で頼めば、AIはそのたびに、あなたの一言を入れて次に何をするかを決め直し、その一言への対応を先にすれば、元の作業はその間止まります。止まっている作業の指示は、AIがあなたの一言に対応している間に、コンテキスト(AIの作業記憶)の前のほうに取り残され、AIが忘れはじめることがあります。しかも、すぐに頼んだつもりでも、あなたが気づくのは、AIがその作業をしてから何周も後です。AIが作業を終えてから入力すれば、後ろに回る作業はありません。
理解したことは一文にできます。
人間が作業の途中に口を挟むと、AIは実行中の操作が終わりしだいその一言を読むので、進行中の作業よりその一言を優先する。後回しになった作業の指示は、その間に、コンテキストの前のほうに取り残される。だから、気づいたことは、AIが作業を終えるまで待ってから入力する。
CC BY 4.0
なぜAIは、人間が途中で挟んだ一言を、進行中の作業より優先するのか
第 6 回で見たとおり、指示ファイルの中身と、人間がセッションの途中で直接打つ一言は、どちらも同じユーザーメッセージとしてAIに届きます。違うのは届く時点で、途中で挟んだ一言が届くのは、AIが作業している最中です。
AIがツールを実行している最中に、人間が止めずに打った一言について、Claude Code の公式ドキュメントが書いているのは、AIはその呼び出しが終わりしだい、同じターンの中でその一言を読み、次の操作に進む前に合わせるということです。途中で挟んだ一言を読んだAIは、元の作業とその一言を合わせて、次に何をするかを決め直します。その一言への対応を先にすれば、元の作業は、その対応が終わるまで後回しになります。
進行中の作業が後回しになるだけなら、あなたが困ることはありません。あなたが困るのは、後回しになっている間に、後ろに回った作業に起きることです。
AIがあなたの一言に対応している間も、コマンドの出力や読んだファイルは、コンテキストに積み上がっていきます。その一言への対応に要る操作が多いほど、積み上がる量も増えます。あなたの一言そのものも、そのあと会話に残り続けるものの一つです。人間の一言は、そのセッションが終わるまでコンテキストに残り、AIは毎ターン、それをほかの内容といっしょに読み直します。第 1 回で見たとおり、AIを呼び出すAPIは、呼び出すたびに会話の履歴を全部送るからです。元の作業の指示は、そのぶん、コンテキストの前のほうに残ります。同じ第 1 回で引いた Claude Code のベストプラクティスは、コンテキストが埋まりかけると、AIが前の指示を「忘れ」はじめたり、誤りを増やしたりすることがある、と書いています。上限に近づいて会話が要約されれば、第 3 回で見たとおり、人間の依頼は保たれますが、会話の前半で渡した詳しい指示は、失われることがあります。AIがやることの一覧を書き出して作業していれば、その一覧は要約を越えて残ります。失われることがあるのは、一覧の項目を決めた、会話の前半の詳しい指示のほうです。AIが元の作業に戻ったときには、元の作業の指示の細部が、もう手元に無いことがあります。
そして、後回しになったまま終わらなかった作業は、報告にも出てきません。第 9 回で見た測定では、頼まれたファイルを全部は読まなかった実行のうち 80.4% で、最終の応答が、全部読んだと書くか、読み残したことに触れていませんでした。あなたの一言への対応を終えたAIの報告に、元の作業が途中で止まっていることが書かれていなければ、あなたがそれに気づくのは、何周も後です。
仕組み: AIが作業を終えるまで待ってから入力する
AIが作業している間に気づいたことを、は、AIが作業を終えるまで待ってから入力します。typingtube(YouTube の音楽動画でタイピング練習ができる Web サービス)の開発で、画面の崩れや命名の違和感に気づいたときも同じです。待っている間、進行中の作業は、AIが立てた計画とTODOのとおりに最後まで進みます。の一言がAIに届くのは、そのあとです。
復習: 操作のその場で指摘を返すhook
人間が気づくのは何周も後だという弱点への対処として、は、これまでの回でhook(AIの操作に合わせて自動で走るスクリプト)を紹介しました。紹介したのは、素のテストコマンドを止めてラッパーへ案内するhook(第 1 回)、保存が済んだ直後に、書かれた差分と基準を突きつけるhook(第 2 回・第 7 回)、使う前の準備が済んでいなければ止めてエラーを返すhook(第 4 回)、用意しておくファイルがそろうまでサブエージェントの起動を止めるhook(第 5 回)、同じやり方でリトライしようとしたところで方針を差し込むhook(第 8 回)です。
hookの指摘がAIに届くのは、AIが操作をしようとしたその場か、操作が済んだ直後で、どちらも、AIが次の操作を決める前です。第 8 回で見た、方針を差し込む瞬間がこれに当たります。hookが返すのは、AIがいましようとした操作か、いま済んだ操作そのものに対するエラーや方針です。
CC BY 4.0 はここまで
言わなくなったもの
作業中の指摘です。「そこ違う」「ついでにこれも」を、は、AIが動いている間に言わなくなりました。言いたいことは、AIが作業を終えてから入力します。
次回は応用編の最後、「作業結果を読まない技術」。AI が仕上げた作業を、は確認しません。 だけど、抜けはちゃんと見つかります。
連載「読まない技術」
- ← 前回: 第 10 回 AI に要約しろと言わない技術
- → 次回: 第 12 回 作業結果を読まない技術
- 全回の一覧: 序論 AIの出力を、もうほとんど読んでいない