マキモノ
AIのしつけ無料✅ 公式検証済みv1.0.0 / 更新

AIに「自分で調べさせる」ガードの作り方 — 調査の丸投げを機械で止める

エージェントが自分で1分で分かることを人間に確認させるのを hook で止める型。既にガードを書いたのに効かない5つの原因(未配布・汎用ツールが万能キー・カテゴリ不足・誤検知で形骸化・逃がし弁が緩い)と、質問ツールを PreToolUse で事前ブロックする方法、固定すべきテスト項目まで。

出品者: nishi@orgiast.jp📖 読込 約2,552トークン (約4円)💰 コスパ 14
トークン節約メーター86%節約
ゼロからAIに作らせた場合4.2万トークン
このMDを読ませた場合6,000トークン

3.6万トークンの節約 (API料金換算で約54円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。

この巻物について

AIに「自分で調べさせる」ガードの作り方 — 調査の丸投げを機械で止める」は、AIのしつけカテゴリのAI指示書(MDファイル)です。エージェントが自分で1分で分かることを人間に確認させるのを hook で止める型。既にガードを書いたのに効かない5つの原因(未配布・汎用ツールが万能キー・カテゴリ不足・誤検知で形骸化・逃がし弁が緩い)と、質問ツールを PreToolUse で事前ブロックする方法、固定すべきテスト項目まで。この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約3.6万トークン(API料金換算で約54円)・86%のトークンを節約できます。

カテゴリ
AIのしつけ
対応AI
claude-code、cursor、codex-cli
ライセンス
商用利用可 (再販不可)
価格
無料
ゼロから開発時
約4.2万トークン
この巻物使用時
約6,000トークン
節約量
約3.6万トークン (約54円)
更新日
2026-09-01

使い方 (AIに渡す3つの方法)

いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。

⬇ .md をダウンロード
claude "https://makimono-md.vercel.app/api/v1/files/md-1d07c998/raw を読み込んで、この指示書どおりに実装して"
claude-codecursorcodex-cliライセンス: 商用利用可 (再販不可)

中身

AIに「自分で調べさせる」ガードの作り方 — 調査の丸投げを機械で止める

これは何の指示書か

コーディングエージェント(Claude Code など hook を持つエージェント全般)が、 自分で調べれば1分で分かることを人間に「確認して教えてください」と丸投げするのを止める仕組み。

「ルールに書いたのに守られない」種類の問題を、文書ではなくフックで機械強制する型を示す。 既にガードを書いたのに再発した場合の効いていない5つの理由と、その潰し方まで含む。

対象読者: 自分のエージェントに社内ルールを守らせたい人。 前提: エージェントが「応答完了時(Stop)」と「ツール実行前(PreToolUse)」にコマンドを呼べること。

なぜ必要か(コストの話)

人間に調査を1回投げると、往復で数分〜数時間止まる。エージェント側は API を1回叩けば済むことが多い。 「人間の時間 >> トークン代」なので、調査の外注はほぼ常に損。 ただし後述のとおり、同意・支払い・物理操作まで自動化しようとするのは禁じ手。線引きが要る。

設計: 何を違反と見なすか

「依頼文かどうか」ではなく「調査の外注かどうか」で判定する。

  • 止める: 結果をこちらに報告させる形(教えてください / 返信ください / 確認して報告 / 心当たりは?) かつ、そのデータソースをセッション中に一度も自分で叩いていない
  • 止めない: 人にしかできない実行依頼(ブラウザでの初回同意、支払い、APIキー発行、SMS認証、物理操作、権限付与)

この線引きを外すと「人間の理解と同意まで省く」ガードになり、逆に危険。必ず例外リストを持たせる。

実装の骨格

// 1) 依頼の形(結果を返させる言い回し)
const REPORT_BACK = /(?:教えて|返信して|報告して|共有して)\s*(?:ください|下さい)|(?:確認|チェック|調べ|見)(?:して|て)\s*(?:ください|下さい)|(?:分かりますか|心当たり)/;

// 2) 人にしかできない操作(この語がある段落は素通し)
const HUMAN_ONLY = /OAuth|初回同意|同意画面|ブラウザで(?:ログイン|同意|承認)|支払|決済|APIキーを(?:発行|作成)|SMS|二段階認証|物理|権限(?:を)?(?:付与|付けて)/;

// 3) データソース定義
//    tool  … 名前だけで用途が確定するツール(メールAPI等)
//    probe … 実際に叩いたコマンド本文に当てる正規表現(汎用シェル用)
const SOURCES = [
  { key: 'メール', ask: /メール|受信トレイ|届いて/, tool: /Mail/i, how: 'メールAPIを自分で検索する' },
  { key: '別セッション', ask: /別(?:の)?(?:セッション|窓)|並行|心当たり/,
    tool: /^ListAgents$/, probe: /ListAgents|projects[\\/][^"']*\.jsonl/,
    how: '稼働セッション一覧 / 会話ログを grep して特定する' },
  { key: 'デプロイ状態', ask: /デプロイ(?:され|済)|本番(?:に|へ)?反映/,
    probe: /api\.<PaaSのAPIホスト>|curl\s+[^\n"']*https?:/,
    how: 'PaaS の REST API を自分で叩く' },
];

判定本体:

export function findOutsourcedInvestigation(text, evidence) {
  if (hasEvidenceMarker(text)) return null;              // 理由付きの逃がし弁のみ有効
  const found = new Map();
  for (const paragraph of splitParagraphs(text)) {       // ← 段落単位で見るのが肝
    if (HUMAN_ONLY.test(paragraph)) continue;
    if (!REPORT_BACK.test(paragraph)) continue;
    for (const s of SOURCES) {
      if (!s.ask.test(paragraph)) continue;
      if (hasEvidence(s, evidence)) continue;
      found.set(s.key, s);
    }
  }
  return found.size ? { sources: [...found.values()] } : null;
}

evidence は会話ログ(JSONL)の末尾から集めた { names:Set<ツール名>, inputs:string(コマンド本文の連結) }

効かないガードの5つの原因(ここが本題)

一度書いたのに再発した実例から。どれも「動いているのに無害化されている」状態なので気付きにくい。

① 配布されていない

ガードが1台のローカルにしか無く、正本リポジトリに入っていなかった。他の端末・他アカウントは無防備。 → フック登録スクリプト(register-hooks 相当)に載せて配る。「作った=効いている」ではない。

② 汎用ツールが万能キーになっている

証拠判定が「ツール名を使ったか」だけだと、Bash / Shell のような毎回使うツールが常に条件を満たす。 結果、シェルで調べられる種類の質問は全部素通りする。 → 証拠を tool_use の入力(実際に打ったコマンド本文) まで見る(上の probe)。 「シェルを使ったか」ではなく「何を叩いたか」で判定する。

③ カテゴリが足りない

メール・ドキュメントだけを見ていて、「別プロセス」「別セッション」「ローカル設定の有無」 「外部サービスの現在状態」が対象外だった。実害はここで出た。 → 再発するたびにそのカテゴリを SOURCES に足す。ガードは育てる前提で書く。

④ 誤検知で形骸化する

本文全体での語の共起で判定していたため、無関係な文(「メール非露出0件」)で発火。 誤検知は「またこれか」と警告を無視する癖を作り、本物の違反を通す。 → 段落単位の近接判定にし、コードブロックと引用行は判定から外す。誤検知潰しは精度向上ではなく信頼性の維持

⑤ 逃がし弁が緩い

[SELFCHECK-OK] のような無条件マーカーがあると、面倒になった瞬間にそれで通す。 → 理由付き必須にする([SELFCHECK-OK: 何を実測したか]・10文字以上)。素のマーカーは無効にし、 その旨をメッセージで名指しする。

「人の目に触れる前」に止める

応答完了フック(Stop)はテキストを出したあとに走るので、人間は既に不要な依頼を読んでいる。 唯一の事前防御は、人に質問するためのツール呼び出し自体をブロックすること。

// PreToolUse(matcher: 質問ツール名)
if (input.tool_name !== 'AskUserQuestion') return;
const evidence = scanToolUses(input.transcript_path);
const result = judge(input.tool_input, evidence);   // 質問文+選択肢を1本のテキストに畳んで同じ判定へ
if (result) { console.error(message); process.exitCode = 2; }  // exit 2 = ブロック

判定ロジックは Stop 側と同じモジュールを import して共有する(二重メンテを避ける)。 方針の選択(A案/B案どちらにしますか)は REPORT_BACK に当たらないので通る。ここはテストで固定する。

テストで固定すべき項目

  1. 依頼表現とデータソース語が別々の段落にあるだけなら検知しない(誤検知の回帰)
  2. 同一段落なら検知する
  3. 該当ツールを使っていれば通る
  4. 汎用シェルを使っただけでは通らない(②の回帰)
  5. 実際に該当コマンドを打っていれば通る
  6. 素のマーカーでは通らない / 理由付きなら通る
  7. 人にしかできない操作の依頼は止めない(安全側の回帰)
  8. コードブロック内・引用行の依頼表現は無視する
  9. 会話ログのフォーマットから namesinputs が実際に取れる(形式変更の検知)

最後に必ず、実際に人へ投げてしまった生の文面で回帰テストを書く。 「当時の証拠では検知される / 自分で調べた後は通る」の2本。これが無いと直った証明にならない。

落とし穴

  • 会話ログのパース: ツール呼び出しは行の JSON にネストされている。obj.name を直接見ると常に空になる。 message.content[] を走査して type === 'tool_use' のブロックから nameinput を取る。
  • ログの読み過ぎ: 末尾から数MBだけ読む。全体を読むとフック実行が遅くなり、タイムアウトで無音死する。
  • フックの失敗で作業を止めない: 例外は握り潰し、判定できないときは通す(fail-open)。 ガードのバグで作業不能になるほうが損害が大きい。
  • エージェントに書かせたコードを鵜呑みにしない: 実測で、生成させた実装に 「依頼表現の判定が丸ごと欠落」「終了条件の反転」「既存定義の削除」が同時に入っていた。 仕様を書いて投げる → 受け取ったら必ずテストを通すまで込みで1タスク。

適用の順番

  1. まずカテゴリと例外リストを決める(何を止め、何を止めないか)
  2. 判定モジュールを1本作り、Stop と質問ツールの PreToolUse で共有する
  3. テストを書く(特に誤検知と安全側の回帰)
  4. 配布経路に載せる(ここを飛ばすと①で無効化される)
  5. 再発したら SOURCES にカテゴリを1件足す。ガードは1回では完成しない

よくある質問

「AIに「自分で調べさせる」ガードの作り方 — 調査の丸投げを機械で止める」とは何ですか?

エージェントが自分で1分で分かることを人間に確認させるのを hook で止める型。既にガードを書いたのに効かない5つの原因(未配布・汎用ツールが万能キー・カテゴリ不足・誤検知で形骸化・逃がし弁が緩い)と、質問ツールを PreToolUse で事前ブロックする方法、固定すべきテスト項目まで。

どれくらいトークン(費用)を節約できますか?

ゼロから開発すると約4.2万トークンかかりますが、この巻物を使えば約6,000トークンで済みます。差し引き約3.6万トークン(API料金換算で約54円)・86%の節約です。

どうやって使いますか?

無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。

どのAIツールに対応していますか?

claude-code、cursor、codex-cli に対応しています。

商用利用できますか?

ライセンスは「商用利用可 (再販不可)」です。

🤝 自分でAIを動かすのは、まだ不安…という方へ

この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。

AI代行堂を見る →

関連する巻物

AIのしつけ無料✅ 公式

AI運用ルールを機械的に守らせる hook 設計 — ルール文が守られない本当の理由

チームでAIエージェントを使うと運用ルールが必ず守られなくなる。真因は「読んでいない」ではなく hook がそのマシンで登録されていない/委譲先が沈黙して壊れていること。禁止=実行前拒否・誘導=依頼時の具体コマンド注入・担保=セッション開始時の自己修復の3層、明示例外の短命トークン、warn→blockの段階昇格、BOM/サンドボックス/timeout など失敗が沈黙する罠と、環境依存で落ちないテストの作り方までを実測ベースでまとめた導入手順。

95%節約
24.6万トークン (料金換算 約370円)
新着
AIのしつけ無料✅ 公式

マキモノ検索スキル — AIが自分で巻物を探して使えるようになるMD

あなたのAIエージェント (Claude Code等) にこのMDを読ませると、開発タスクを受けたとき自動でマキモノAPIを検索し、最適な指示書を取得してから作業するようになります。導入は貼るだけ。

97%節約
11.6万トークン (料金換算 約170円)
新着
AIのしつけ無料✅ 公式

無人AIセッションのバックグラウンド委譲が静かに殺される事故を潰す

ヘッドレスで起動したAIエージェントがバックグラウンド委譲した子プロセスは、ターン終了で kill されるのに親は exit 0 を返す。機械的に deny するフック、通知の作り方、対応中フラグの戻し忘れ、Windows製worktreeがLinux側から解決できない罠までを含む恒久対策。

97%節約
11.6万トークン (料金換算 約170円)
新着

この巻物、誰かのトークンも救えます

𝕏 で節約レシートをシェア