AIエージェントを捉える
ハルシネーションを始める前に
AIコーディングエージェントとの長いセッションが、一気に壊れることはめったにありません。そっと一つの指示を飛ばし、その一、二ターン後には、存在しないファイルやAPI、もともと無かった判断をでっち上げます。AgentsRoomのcanaryは、そのコンテキストのドリフトの瞬間を早めに捉えるので、ハルシネーションがコードに届く前に手を打てます。
エージェントがすでに出している信号を使うので、設定するものも覚えておくものもありません。Claude Code、Codex、Gemini CLI、そしてAgentsRoomが操縦するあらゆるプロバイダーが対象です。

canaryが静かになると、AgentsRoomはエージェントのターミナルの上にこの警告を出します。きれいなコンテキストで再起動するか、会話を圧縮しましょう。
context rotは、長いエージェントセッションの静かな殺し屋です。毎ターン、モデルは会話全体を読み直し、理解をゼロから組み立て直します。コンテキストウィンドウが埋まっていくと、真っ先に崩れるのが指示の遵守です。モデルはまだ自信ありげに聞こえますが、ついていくために、重要度が低いと判断した制約から手放し始めています。
これがcanaryの肝心な気づきです。劣化はハルシネーションから始まるのではありません。モデルが小さな指示を黙って無視するところから始まります。消えたときに気づかれることだけを役目とする指示を仕掛けておけば、本当の被害が出る前に作動する仕掛け線が手に入ります。
AgentsRoomはすでに、すべてのエージェントにその指示を与えています。各エージェントは毎ターンの終わりに一行のステータスを書きます。サイドバーやスマホで見える、あの短い要約です。このターンごとの書き込みこそがcanaryです。更新が続いているうちは、エージェントはまだ指示を読み、守っています。それが消える最初のターンが、あなたの早期警告です。
出力を読むより、canaryが優れている理由
エージェントが一つなら、すべての返答を読んで、いつドリフトしているか感じ取れます。並行して動く群れのエージェントとなると、誰もすべての返答をリアルタイムに読み直しません。canaryは、見逃しようのない受け身の信号をくれます。
context rotとlost-in-the-middle現象はよく知られています。コンテキストが長いほど、その奥に埋もれた個々の指示をモデルが守る信頼性は下がります。canaryは、その脆さを目に見える警報に変えます。
canaryはハルシネーションに先んじます。ステータスは、エージェントがでっち上げを始める一、二ターン前に更新を止めます。それこそ、あなたが反応したい窓です。
走らせるテストも、打ち込むコマンドもありません。別のエージェントや別のプロジェクトに取り組んでいる間に、検知はひとりでに進みます。
canaryの仕組み
各エージェントがすでに報告しているステータスの上に乗る、組み込みの早期警告ループ。
すべてのエージェントが自動でcanaryを受け取る
AgentsRoom経由でエージェントを起動すると、そのプロンプトにセッションの指示が注入されます。毎ターンの終わりに、セッションファイルへ一行のステータスを書くこと。あなたは何も足しません。canaryは、サイドバーとモバイルのプッシュを支えるのと同じステータスです。
AgentsRoomはターンの開始時にステータスを記録する
エージェントが考え始めた瞬間、AgentsRoomは現在のステータスを記録します。これが、ターンが終わったときに比べる基準になります。
ターンが落ち着いてから再チェックする
ターンが終わった少しあとの猶予をおいて、AgentsRoomはエージェントのセッションファイルを読み直します。エージェントが書き、ステータスのポーラーが拾うのに十分な時間なので、書き込みが遅いだけのものをcanaryの死と取り違えることはありません。
更新の取りこぼしでカウントが進む
ステータスが変わっていなければ、取りこぼしたターンのカウンターが上がります。エージェントが新しいステータスを書いていれば、カウンターはゼロに戻り、警告も消えます。一ターン静かなだけでは警報になりません。短くても正当なターンは、ステータスを変えずに済むことがあるからです。
二ターン続けて静かだと警告を出す
エージェントが二ターン続けてステータスを飛ばしたら、それはノイズではなく、忘却の明確な信号です。そのエージェントのターミナルの上に警告バナーが現れます。canaryは死に、エージェントはおそらくドリフトしています。
きれいに再起動するか、圧縮して、続ける
バナーは、エージェントを終了させて新しいコンテキストで再生成するワンクリックの再起動と、会話を圧縮するリマインダーを提示します。エージェントが再びステータスを報告し始めると、警告はひとりでに消えます。
炭鉱の canary(カナリア)を、あなたのAIセッションに
炭鉱夫が canary を地下に連れて行ったのは、鳥が自分たちよりずっと早く有毒ガスに反応したからです。ここでも発想は同じです。
プロンプトの canary とは、エージェントが毎ターン守るはずの些細な指示です。守っているうちは、モデルがあなたの指示を端から端まで読んでいると分かります。それを忘れた最初の返答が、あなたの仕掛け線です。
AgentsRoomは、別の小細工をエージェントに後付けしたりはしません。各エージェントがサイドバーとスマホの通知のためにすでに書いているステータスを再利用します。だから canary はコストゼロで、設定し忘れることもありません。
狙いは、もともとステータスの文面ではありません。タイミングです。タイトな指示を載せたきれいなコンテキストウィンドウは、肥大したものに毎回勝ちます。canary が死んだとき、あなたは進捗を失うのではなく、モデルを引きずり下ろしていた重荷を捨てているのです。
ステータス追跡から、ドリフト検知へ
たいていのコックピットは、エージェントが作業中か完了かを教えてくれます。canaryは、調子を崩しかけていることを教えてくれます。
canaryがないと
- : エージェントがおかしいと気づくのは、ハルシネーションのファイルパスや間違ったAPIを読んだときだけ。
- : その頃には直近の数回の返答はすでに怪しく、あなたはコードではなくエージェントをデバッグしている。
- : 複数のエージェントを同時に動かしていると、ドリフトしている一つが堂々と紛れて見えない。
- : 悪い出力が着地したあと、手遅れになってから再起動する。
AgentsRoomのcanaryがあると
- : エージェントがステータスの報告を止めた瞬間、ターミナルの上に警告が現れる。
- : ハルシネーションが始まる一、二ターン前にドリフトを捉える。
- : プロジェクト全体ではなく、調子を崩した一つのエージェントだけをリセットする。
- : きれいで短いコンテキストで再起動し、エージェントはより鋭く、より速くなる。
事後検証ではなく、早期警告を。それがcanaryのすべてです。
新しいコンテキストが、より良いエージェントを作る理由
エージェントに情報を積み上げるほど、ドリフトし、ハルシネーションを起こし、遅くなりがちです。大半が古い探索、行き止まり、すでに片付いた問いで埋まったコンテキストウィンドウは、毎ターン、モデルの足を引っ張ります。
canaryが死んだとき、同じ流れをさらに押し進めるのが正解であることはまずありません。直近の二つほどの返答を信じるのをやめ、会話を圧縮するか、新しいセッションを始めて、要るものだけを入れ直してください。編集中のファイル、目標、そしてすでに下した判断です。
圧縮は会話を要約し、エージェントが量を持たずに要点を保てるようにします。再起動は白紙の状態を与えます。どちらもあなたをタイトな指示に戻します。そこがコーディングエージェントの最も得意な場所です。AgentsRoomのcanaryは、どちらの瞬間が正しいかを教えてくれます。
これは設計からしてプロバイダー非依存です。Claude Code、Codex、Gemini CLIといったエージェントはいずれも同じコンテキストの限界を抱え、いずれもAgentsRoom経由でステータスを報告するので、同じcanaryがそのすべてを守ります。ドリフト検知は特定のCLIではなく、AgentsRoomの中にあります。
canaryの完全ガイドを読む
canaryのトリックについて掘り下げた記事を書きました。なぜエージェントは脱線するのか、CLAUDE.md や AGENTS.md に手作業でcanaryを仕込む方法、そして死んだ瞬間にすべきこと。AgentsRoomは、群れ全体にわたって見張る部分を自動化します。
canaryの記事を読むFAQ
AgentsRoomのcanaryとは何ですか?
コンテキストのドリフトを知らせる早期警告の信号です。各エージェントは毎ターンの終わりに一行のステータスを書きます。あるエージェントがそのステータスを二ターン連続で更新しなくなると、AgentsRoomはcanaryが死んだとみなし、エージェントがおそらくコンテキストを失っていると警告します。たいていはハルシネーションが始まる前です。
何か設定する必要はありますか?
いいえ。canaryは、すべてのAgentsRoomのエージェントがサイドバーとモバイル通知のためにすでに書いている、ターンごとのステータスを再利用します。エージェントを起動すれば、検知はオンです。設定するものも、覚えておくものもありません。
context rotとは何ですか?
会話が伸びるにつれ、モデルは毎ターンすべてを読み直し、指示の遵守が劣化します。小さな制約を黙って手放し始め、やがてハルシネーションを起こします。でっち上げのファイル、間違ったAPI、あなたが却下した判断。関連するlost-in-the-middle現象により、長いコンテキストに埋もれた指示は、守られる信頼性が下がります。
なぜ一ターンではなく、二ターンの取りこぼしを待つのですか?
短い一ターンは、たとえばエージェントがファイルを読んで手短に答えるだけのとき、ステータスを変えずに済むことが正当にあります。二ターン続けて静かなことが、エージェントが実際に指示を守るのをやめたという明確な信号で、これが誤検知を抑えます。
警告が出たら何をすればいいですか?
二つの道があります。ワンクリックでエージェントを再起動して新しいきれいなコンテキストにするか、/compact と入力して会話を要約し、量を持たずに要点を保つか。どちらもエージェントをタイトな指示に戻します。そこが最も力を発揮する場所です。
Claudeだけでなく、Codexや他のプロバイダーでも使えますか?
はい。canaryは、基盤となるCLIが何であれ、すべてのAgentsRoomのエージェントが従うセッションステータスのプロトコルだけに依存します。Claude Code、Codex、Gemini CLIなど、すべて対象です。検知は特定のプロバイダーではなく、AgentsRoomの中にあります。
警告はひとりでに消えますか?
はい。エージェントが新しいステータスを再び書いた瞬間、取りこぼしたターンのカウンターはリセットされ、バナーはひとりでに消えます。そのセッションについて手動で閉じることもできます。
エージェントを一つしか動かさない場合でも役に立ちますか?
役には立ちますが、本領を発揮するのは複数を同時に動かすときです。エージェントが一つなら、すべての返答を読めます。並行する群れとなると、誰もすべての返答をリアルタイムに読み直さないので、受け身のドリフト警報こそが、静かに劣化していくエージェントをすり抜けさせない決め手になります。
canaryはエージェントを遅くしますか?
いいえ。エージェントが毎ターンすでに書いている一行のステータスに相乗りするだけです。追加のプロンプトも、追加のモデル呼び出しも、増える遅延もありません。
なぜきれいなコンテキストがエージェントを良くするのですか?
古いコンテキストを抱えるほど、エージェントはドリフトし、ハルシネーションを起こし、遅くなります。再起動や圧縮は重荷を捨て、エージェントを短く焦点の定まった指示に戻します。そこがコーディングエージェントの最も信頼でき、最も速い場所です。
こちらもおすすめ
エージェントのステータス追跡
どのエージェントが考え中か、完了か、入力待ちかを示す、色分けされたライブのインジケーター。
Dynamic Island
あらゆるアプリの上に常に見える、フローティングで最前面のエージェントステータス表示。
エージェントの通知
エージェントが完了したり、あなたの入力を必要としたときの未読バッジとプッシュ通知。
トークン使用量
セッションごとのトークン消費とコストをライブで確認し、どこを最適化すべきか把握。
プロジェクト統計
プロジェクトごと、エージェントごとの時間、プロンプト、トークン、コストを一つのダッシュボードで。
マルチプロバイダー
Claude Code、Codex、Gemini CLIを横並びで動かし、コンテキストを失わずに切り替え。
コンテキストのドリフトを、代償を払う前に捉える
どれかが筋を見失い始めたら警告してくれるコックピットで、AIコーディングエージェントを動かしましょう。macOS版のAgentsRoomをダウンロード。
コンパニオンアプリ:外出先でもエージェントを確認
Claude、Codex、Gemini CLI、またはその他の AI プロバイダーを使用します。
バグや要望を公開バックログに直接送信できます。
実際の AgentsRoom の様子。