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

AIエージェントの委譲率を実測して最大の漏れ口を塞ぐ

高価な監督モデルが自分で作業を抱え込む問題を、ルール追加でなく出力トークンの実測で直す手順。推論トークンの誤帰属・指標の逆インセンティブ・強制層の昇格の穴という3つの典型原因と、パイロット限定の段階導入まで。

出品者: kim@orgiast.jp2 DL📖 読込 約3,324トークン (約5円)💰 コスパ 24
トークン節約メーター85%節約
ゼロからAIに作らせた場合9.5万トークン
このMDを読ませた場合1.4万トークン

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

この巻物について

AIエージェントの委譲率を実測して最大の漏れ口を塞ぐ」は、AIのしつけカテゴリのAI指示書(MDファイル)です。高価な監督モデルが自分で作業を抱え込む問題を、ルール追加でなく出力トークンの実測で直す手順。推論トークンの誤帰属・指標の逆インセンティブ・強制層の昇格の穴という3つの典型原因と、パイロット限定の段階導入まで。この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約8.1万トークン(API料金換算で約120円)・85%のトークンを節約できます。

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

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

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

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

中身

AIコーディングエージェントの「委譲率」を実測して、最大の漏れ口を塞ぐ

高価なモデル(監督)に安価なモデル/定額枠(実装者)へ仕事を流させたいのに、 ルールに書いても委譲率が上がらない——という状況を、推測でなく実測で直すための手順書。

想定読者: 監督モデル(Opus 級)+実装用 CLI(定額枠)+安価API を併用していて、 「ルールは書いたのに監督が自分で全部やってしまう」問題を抱えているチーム。


0. 前提として最初に疑うこと

委譲率が上がらないとき、たいてい原因はこの3つのどれかで、どれも「ルールを追加する」では直らない

  1. ゲートが最大の漏れ口を見ていない(監視対象の選定ミス)
  2. 指標の定義が、正しい行動にペナルティを与えている(逆インセンティブ)
  3. 強制層が発動条件を満たさないまま据え置かれている(昇格ロジックの穴)

だから最初にやるのは、ルールの追加ではなく 出力トークンがどこから出ているかの実測 である。


1. まず出力の帰属を測る

エージェントの会話ログ(JSONL 形式の transcript)を走査し、 usage.output_tokenscontent ブロックの種類ごとに按分する。

// 期間の絞り込みは「行ごとの timestamp」で行う。
// ファイルの mtime で絞ると、長寿命セッションの過去全履歴を誤って合算する(実害あり)。
const ts = Date.parse(row.timestamp || 0);
if (!(ts >= cutoff)) continue;

const out = row.message?.usage?.output_tokens || 0;
const content = Array.isArray(row.message?.content) ? row.message.content : [];

按分の重みは ブロック種別ごとにトークン密度を変える。 散文(特に日本語などの非ラテン文字)は概ね 1 文字 ≒ 1 トークンに近く、 コードや JSON は概ね 3.4 文字 ≒ 1 トークン。同じ文字数でも実トークンは3倍以上違う。

const PROSE_CHARS_PER_TOKEN = 1.8;   // 散文(多言語混在の実用値)
const JSON_CHARS_PER_TOKEN  = 3.4;   // コード / ツール入力 JSON

const chars = type === 'tool_use'
  ? JSON.stringify(block.input ?? '').length
  : String(block.text ?? block.thinking ?? '').length;
const estimate = chars / (type === 'tool_use' ? JSON_CHARS_PER_TOKEN : PROSE_CHARS_PER_TOKEN);

ここに致命的な落とし穴がある

推論(thinking)ブロックの本文は transcript に保存されないことがある(署名だけ残る)。 その場合そのブロックの文字数は 0 になる。素朴に実装すると 「推定合計が 0 のレコードは、出力全量を text に加算する」という分岐を書いてしまい、 推論に消えたトークンが全部「テキスト出力」として計上される

結果、「テキスト出力が最大の漏れ口だ」という誤った結論が出る。実際に発生した。

// 誤り: 推論のみのレコードが text に化ける
if (!totalEstimate) { blocks.text += out; continue; }

// 正: 推論由来と帰属不能を分けて、捏造しない
if (!totalEstimate) {
  const hasThinking = content.some((b) => b?.type === 'thinking');
  if (hasThinking) blocks.thinking += out; else blocks.unattributed += out;
  continue;
}

推定できないものを埋めて辻褄を合わせない。unattributed バケットを用意して、 測れていないことを測れていないと表示するのが正しい。


2. 実測でわかる典型パターン

上記の集計を実データに当てると、たいてい次のような分布になる。

指標典型値
main-loop 出力 / サブエージェント出力99% / 1%
出力の帰属ツール呼び出し 43% / 推論 33% / テキスト 24%
ツール呼び出しの内訳シェル実行 56% / ファイル書き込み 18% / 編集 6%

ここで効く洞察は 「シェル実行が最大の発生源」 という点。 多くのチームは委譲ゲートを「ファイル書き込み・編集」にだけ掛けている。 ところが監督が実際にトークンを燃やしているのは、 使い捨ての解析ワンライナー(node -e "..." / python -c "..." / ヒアドキュメント)を その場で手打ちする行為であり、それはシェル実行ツールを通るのでゲートに一切引っかからない。

教訓: ゲートを掛ける対象は「重要そうなツール」ではなく「実測で出力が多いツール」。


3. 指標の逆インセンティブを潰す

委譲率をこう定義していないか。

委譲率 = 安価実行者の出力 / (安価実行者の出力 + 監督モデルの出力)

この「監督モデルの出力」に、サブエージェントとして呼んだ安価モデル(中位・軽量モデル)の出力 まで含めていると、方針が推奨している委譲をするほど委譲率が下がる。

// 中位/軽量モデルへの委譲は「委譲」として分子に入れる
const delegated  = cheapApiOut + codingCliOut + midTierOut + lightTierOut;
const supervisor = topTierOut + otherPremiumOut;
const ratio = delegated / (delegated + supervisor);

指標が行動を作る。測り方を直さずに強制層だけ強くしても、正しい行動が罰され続ける。


4. 最大の漏れ口にゲートを掛ける

エージェントのフック機構(ツール実行前に介入できる仕組み)で、 シェル実行ツールを対象にした委譲ゲートを追加する。

検出条件

  • node -e / node --eval / python -c / ruby -e / perl -e
  • ヒアドキュメント(<<'EOF' 等)
  • シェル経由のインラインスクリプト実行フラグ

これらに該当し、かつインラインプログラム部分が閾値(例: 900文字 または 25行)を超えるときだけ発火。

発火させてはいけないもの(誤検知は信頼を壊す)

  • 既に委譲ヘルパーを呼んでいるコマンド(それ自体が正しい行動なので邪魔しない)
  • 読み取り専用の素のパイプライン(git / ls / cat / grep / find / wc / head / tail / jq など)でインラインプログラムを含まないもの
  • 一時作業ディレクトリ配下の操作

出力

// 通常時: 警告のみ(作業は通す)。実行可能なコマンド例を必ず含める。
{ hookSpecificOutput: { hookEventName: 'PreToolUse', additionalContext: '...' } }

// 強制モード時、かつ非常に大きい場合のみ拒否
{ hookSpecificOutput: { hookEventName: 'PreToolUse',
    permissionDecision: 'deny', permissionDecisionReason: '...' } }

鉄則: フック内で例外が出ても、絶対にユーザー操作を止めない。 全体を try/catch で包み、必ず正常終了させる。フックのバグでエージェントが使えなくなるのが最悪の結果。


5. 「委譲する方が楽」にする(ここが本丸)

警告は無視できる。警告だけで行動は変わらない。 禁止と同時に、禁止した行為より低コストな代替経路を必ず用意する。

このセッションで最も効いた対策は、規制ではなくこれだった:

監督が毎回手打ちしていた集計スクリプトを、再利用可能な CLI に畳む

<集計CLI> sessions   # セッション別の出力トークン(main / サブエージェント別)
<集計CLI> blocks     # 出力の帰属(ツール別・種別別)
<集計CLI> ledger     # 安価実行者の利用実績
<集計CLI> deleg      # 委譲率とその内訳

これがあると、監督は 1500 文字のワンライナーを書く代わりに 40 文字のコマンドを打つ。 抜け道より正規ルートを楽にするのが、規律を実際に定着させる唯一の方法。


6. 強制層は「オプトインのパイロット」から始める

閾値を上げた瞬間に、条件を満たす全端末が一斉に拒否モードへ昇格する。 チームに配る仕組みでは、これは事故になる(詳しくない人が拒否理由を読めずに詰まる)。

export function decideEnforcement({ ratio, daysObserved, output, history, target, pilot, previousMode }) {
  if (!pilot) {
    // マーカーが無い端末は昇格させない。既に昇格済みなら降格させて解放する。
    return { mode: 'warn', reason: '強制モードはパイロット端末のみ有効' };
  }
  // 以降、パイロット端末だけが昇格条件を評価する
}
  • 昇格の可否はマーカーファイルの存在で判定する(設定の書き換えより事故りにくい)
  • マーカーが無い端末では、既存の強制モードを警告へ降格させる(一斉解放の経路を必ず持つ)
  • 判定を純関数として切り出して単体テストする。ここを直接 if 文で書くとテストできない

昇格ロジックの穴に注意

「改善傾向があれば警告のまま据え置く」という分岐を入れると、 目標に遠く届いていなくても「改善している」だけで永久に昇格しない。

// トレンドに関わらず昇格する下限を必ず設ける
if (daysObserved >= 3 && output >= THRESHOLD && ratio < target / 2) return { mode: 'block', ... };

7. 実装を委譲したら、必ず自分で検証する

この手順書の実装自体もコーディング CLI へ委譲したが、 検証で2件の実バグが見つかった。どちらも「静かに誤った数値を出し続ける」種類のもので、 テストが緑でも気づけなかった。

  1. 別実行環境(コンテナ/サブシステム)側のセッションログを走査対象に含めておらず、 委譲側の実績を 0 と誤報告していた(=委譲率が実際より低く出る)
  2. 前述の「推論トークンがテキストに化ける」誤帰属

検証の型:

1. 単体テストを実行する(緑であることは前提条件であって、完了条件ではない)
2. 実データで実行し、独立に手計算した値と突き合わせる
3. フックは実際の入力ペイロードを流し込む:
   発火する例 / 発火しない例 / 強制モードでの拒否 / 解除ファイルがある場合 / 壊れた入力
4. 「壊れた入力でも正常終了する」を必ずテストに含める

テストが緑であることと、正しい数値が出ていることは別物。


8. 毎回目に入る場所へ結果を出す

計測しただけでは行動は変わらない。監督のコンテキストに毎回注入する。

- 委譲率: 15.2%(目標 50%)
- 内訳: コーディングCLI 1998k / 中位モデル 489k / 安価API 38k / 監督 14071k
- 出力の出どころ: ツール呼び出し 43%(シェル 56% / 書き込み 18% / 編集 6%)/ テキスト 24% / 推論 33%

「委譲率が低い」だけだと何をすればいいかわからない。 **「どのツールから漏れているか」**まで出すと、次の一手が確定する。


チェックリスト

  • 出力トークンをブロック種別・ツール別に按分して実測した
  • 推論ブロックの本文欠落をテキストに混ぜていない(unattributed を用意した)
  • 期間の絞り込みをファイル mtime でなく行ごとの timestamp で行っている
  • 実測で判明した最大の発生源にゲートを掛けた(想像で選んでいない)
  • 指標の分子に「推奨している委譲先」が全部入っている
  • 禁止と同時に、より楽な正規ルート(再利用CLI)を用意した
  • 強制モードはマーカーによるオプトインで、降格経路がある
  • 昇格ロジックにトレンド無関係の下限がある
  • フックは例外時も必ず正常終了する
  • 実データで独立検算し、実ペイロードでフックを流した

よくある質問

「AIエージェントの委譲率を実測して最大の漏れ口を塞ぐ」とは何ですか?

高価な監督モデルが自分で作業を抱え込む問題を、ルール追加でなく出力トークンの実測で直す手順。推論トークンの誤帰属・指標の逆インセンティブ・強制層の昇格の穴という3つの典型原因と、パイロット限定の段階導入まで。

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

ゼロから開発すると約9.5万トークンかかりますが、この巻物を使えば約1.4万トークンで済みます。差し引き約8.1万トークン(API料金換算で約120円)・85%の節約です。

どうやって使いますか?

無料です。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円)
新着

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

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