AIエージェントが指示を守らない理由——記事118本で「検査あり」と「注意書きだけ」の遵守率を測った
AIエージェントに同じ注意を何度書いても直らないとき、原因は指示の書き方ではなく「守らせる仕組みが無いこと」です。私たちは自分たちの記事118本を機械で走査し、同じ日に同じ文書で決めた6つのルールについて遵守率を測りました。

結果は、あとから機械検査を足したルールが遵守率100%、注意書きのまま残したルールが49%でした。この記事では、その実測値と、注意書きを検査に変換する手順を公開します。
「守らない」のはAIの性格ではなく、門が無いから
Claude Code のようなAIエージェントに渡す指示文は、あくまで参考にされる文章です。守るかどうかは確率で決まり、書いた側は守られたかどうかを知る手段を持ちません。一方で、コマンドを実行する前に必ず走る仕組み(フック)や、終了コードで落ちる検査は、確率ではなく必ず効きます。
Anthropic の公式ドキュメントは、この違いをはっきり書いています。フックの解説ページには「Hooks provide deterministic control over Claude Code's behavior(フックは Claude Code のふるまいに決定的な制御を与える)」とあります(Claude Code Hooks・Anthropic 公式(新しいタブで開く))。指示文の置き場である CLAUDE.md 側はメモリの解説ページ(新しいタブで開く)で「guidance(手引き)」として説明されており、位置づけがそもそも違います。
つまり、指示文と検査は代わりになりません。ここを混ぜたまま「指示を丁寧に書けば守られるはず」と考えると、何度でも同じ場所を踏みます。
同じ日に決めた6つのルール、遵守率は93.5%と54.5%だった
私たちは公式サイトのブログを毎日AIエージェントに書かせています。書き方の作法は運用ドキュメントに数十項目あり、そのうち一部だけが公開前の検査(post-lint.mjs)になっています。
比較を公平にするため、2026年7月25日に同じ文書で同時に決まったルールだけを取り出しました。片方はのちに機械検査になった3項目、もう片方は注意書きのまま残った3項目です。母集団は、そのルールが決まった翌日以降に公開した118本です。
| ルール(2026-07-25に同時制定) | 公開前の検査 | 遵守率(118本) |
|---|---|---|
| 既存記事への内部リンクを1本以上 | あり | 96.6% |
| 図解(表・手順図・グラフ)を1つ以上 | あり | 94.9% |
| FAQを3問以上置く | あり | 89.0% |
| 「この記事でわかること」型の定型ボックスを使わない | なし | 100% |
| 太字は10本以内(結論と実測数値だけに使う) | なし | 50.0% |
| 1段落は3文以内 | なし | 13.6% |
検査のある3項目の平均は93.5%、検査の無い3項目の平均は54.5%でした。書いた文書も、決めた日も、書き手(同じエージェント)も同じです。違いは「公開前に落とす門があるか」だけです。
検査を1つ足したら、そのルールだけ100%になった
この差が「たまたま検査しやすい項目を選んだから」ではないことは、時期で切ると分かります。図解・FAQ・内部リンクの3項目は、2026年8月30日に機械検査になりました。その前後で、同じルールの遵守率を測り直します。
検査を足した3項目は、8月30日以降に公開した32本すべてで100%になりました。一方、注意書きのまま残した「1段落は3文以内」は、同じ期間に17.4%から3.1%へ下がっています。エージェントは賢くなっても、門の無いルールは守るようになりませんでした。
段落そのものを数えると、8月30日以降の929段落のうち148段落が4文以上でした。太字は1記事あたり中央値11本、最大44本です。「結論と実測数値だけ」という指示は、量として明らかに破られています。
例外もあった——「書くな」は検査なしでも100%守られた
面白いのは、検査が無いのに100%守られたルールが1つあることです。「『この記事でわかること』型の定型ボックスを使わない」は、118本すべてで守られていました。
違いは、義務か禁止かではなく、放っておくと発生するか否かです。「1段落3文以内」も「太字は控えめに」も、何もしなければ自然に破られる側に落ちます。逆に「この定型文を書くな」は、書こうと決めない限り発生しません。
ここから運用の目安が1つ出ます。検査を書く優先順位は、重要度の高い順ではなく「放っておくと勝手に破られる順」だということです。
検査があっても、数え方が2か所にあると割れる
検査を足せば終わり、でもありません。私たちは同じ月に、この続きの失敗も踏んでいます。
タイトルの表示幅の上限は8月27日に「サフィックス込みで全角換算29」と決め、記事にも書きました。ところが検査側は「seoTitle の生の文字数が32以内・サフィックスは無視」のままで、9月3日に数え直すまで、公開済み152本のうち83本が検索結果で切れる幅のまま出ていました。説明文でも同型で、上限70に対し155本中115本(74%)が超過していました。
原因は単純で、同じ基準を数える場所が4か所(検査・運用ドキュメント2箇所・生成時の指示文)にあり、値がそれぞれ違っていたことです。いまは数え方を1ファイル(serp-width.mjs)に集め、全員がそこを読むようにしています。この経緯は検索結果でタイトルが切れていた話に詳しく書きました。
注意書きを検査に変換する4つの手順
実際にやっていることは、難しくありません。
- 破られた事実を1つ特定する。「守られていない気がする」ではなく、いつ・どの成果物で・何本破られたかを数える
- 破られたかどうかを機械が判定できる形に言い換える。「読みやすく」ではなく「1段落は句点3つ以内」にする
- 20行ほどのスクリプトを書き、既存の成果物すべてに走らせる。ここで違反率が出ます
- 公開・提出の直前に必ず走る場所へ差し込む。落ちたら止まる位置でなければ、書いても意味がありません
大事なのは3番目です。既存分に走らせると、たいてい「思っていたより破られている」という数字が出ます。私たちの場合、段落ルールは体感では「たまに長い」でしたが、実際は86.4%の記事に4文以上の段落がありました。
もう1つの目安は、検査は過去に実際に事故った項目だけに書くことです。網羅を目指すと検査自体が保守できなくなり、値がずれて先ほどの「割れ」を起こします。
それでも検査にできない指示はどうするか
すべてを検査にはできません。「面白く書く」「読者の次の行動を進める」は機械で判定できないからです。この種の指示については、私たちは3つに分けて扱っています。
1つ目は、判定できる代理指標に落とすものです。「読者の次の行動を進める」は測れませんが、「除外すると決めた話題を書いていないか」なら文字列で測れます。2つ目は人が定期的に見る枠を作るもの(週次の抜き取り)、3つ目は諦めて指示文に残すものです。
大切なのは、3つ目に置いたルールについて「守られているはず」と思わないことです。守られていない前提で、成果物の質を別の指標で見ます。AIエージェントの自動化では、失敗が音を立てずに進むのが最大の敵で、この構図は無言で失敗する自動化の話でも同じでした。
指示文そのものの設計についてはCLAUDE.mdの書き方にまとめています。
なお、この記事自体は「1段落3文以内」を守って書いています。守れるかどうかではなく、守ったことを誰かが確かめるかどうかが、ここまでの話の全部です。
よくある質問
Q. CLAUDE.md に「必ず守ること」と強く書けば守られますか。
私たちの実測では、強調の有無より検査の有無のほうが効きました。運用ドキュメントには「必ず」「⚠️」付きで書かれた項目がいくつもありますが、検査の無い項目の遵守率は49〜56%でした。強く書くこと自体は無駄ではありませんが、それだけで100%にはなりません。
Q. 検査はどこに置けばよいですか。
「落ちたら作業が止まる場所」に置きます。私たちの場合は公開スクリプトの手前で、検査が0で終わらない限りコミットに進めません。CI や Claude Code のフック機能(公式ドキュメント(新しいタブで開く))も同じ役割を果たします。
Q. 検査が増えすぎて保守できなくなりませんか。
なるので、対象を絞ります。私たちの方針は「過去に実際に事故った項目だけを検査する」で、思いつきの網羅はしません。また基準の数値は1ファイルにまとめ、検査もドキュメントもそこを参照させます。
Q. この数字は他のチームにも当てはまりますか。
そのままは当てはまりません。母集団は当サイトの記事118本(2026年7月26日〜9月6日公開・この記事は含みません)という単一の事例で、書き手も1つのエージェントです。ただ「注意書きだけのルールは半分しか守られない」という向きは、指示が確率的に扱われる以上、他の自動化でも起こりやすいと考えています。
コメント
#AI開発#Claude Code#自動化