◉ANTIGRAVITY LABEN
記事一覧/Agents & Manager
◈ Agents & Manager/2026-07-17上級

エージェントに渡した参照メモの7割は届いていませんでした — head で切る運用の限界を測った記録

head で行数を切って渡していた参照メモの7割がエージェントに届いていなかった、という実測に基づく記録です。行数ではなくセクション単位の契約で切り取り境界を設計し直し、予算内で何を残すかを決めるまでの過程を、検証データとともにまとめています。

Antigravity386エージェント74コンテキスト設計6無人実行6運用13

✦ プレミアム記事

朝に流している更新作業のエージェントが、既知の不具合メモに書いてある回避策を無視して同じ罠を踏んでいました。指示文は前日と一字も変えていません。メモにもその項目は確かに書いてあります。

原因はエージェントの理解力ではありませんでした。私がメモを渡すときに書いていた head -150 が、その項目の手前で文章を切っていただけでした。

同じ指示なのに、参照されるメモとされないメモがある

個人開発でアプリの更新作業を定期実行に載せるとき、エージェントには「リリース手順メモ」「既知の不具合メモ」「端末別の分岐メモ」といった参照資料を渡しています。プロンプトの中で cat して流し込む、よくあるやり方です。

# 当時の渡し方(問題があった書き方)
cat "${NOTES}/release_steps.md" | head -150
cat "${NOTES}/known_issues.md" | head -150

head -150 を付けていたのは、メモが育つほどプロンプトが膨らみ、本題の指示が薄まるからです。歯止めとしては正しい判断でした。

ただ、この書き方は「メモの上位150行が最も重要である」という前提に立っています。私はその前提を一度も確かめていませんでした。

切っているのは行数、価値が乗っているのはセクション

まず、自分が実際に渡しているファイルを測りました。推測で議論しても仕方がないためです。

for f in "${NOTES}"/*.md "${NOTES}"/*.txt; do
  L=$(wc -l < "$f"); B=$(wc -c < "$f"); H=$(head -150 "$f" | wc -c)
  printf '%s: lines=%s bytes=%s head150=%s reach=%s%%\n' \
    "$(basename "$f")" "$L" "$B" "$H" "$(( H * 100 / B ))"
done

手元の3ファイルの結果です。

ファイル行数全体バイトhead -150 で届くバイト到達率
更新履歴メモ(追記型)63369,13019,25227%
キーワード・要点メモ(追記型)860105,54023,17421%
読者・前提メモ(全面書き換え型)432,9192,919100%

7割から8割が届いていませんでした。しかも到達率は、ファイルの育ち方によって大きく違います。追記型のメモは先頭に新しい節が積まれるため、行数の予算はすぐ食い潰されます。全面書き換え型のメモは小さいままなので全文が通る。同じ head -150 が、ファイルごとに別の意味になっていたわけです。

さらに悪いのは境界の落ち方でした。150行目の前後を見ると、切り取りは日付セクションの途中に着地していました。見出しと最初の2行だけが渡り、その節の結論が落ちる。エージェントから見れば、書きかけの断片が資料として届いている状態です。

行数はファイルの構造と無関係な単位です。私はバイト予算を守るつもりで、意味の切れ目を無視した場所にハサミを入れていました。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦参照メモ633行・69,130バイトに対し head -150 が届けていたのは19,252バイト(27%)という実測と、切り取り境界が日付セクションの途中に落ちる構造
✦cat の失敗と head の切り取りはどちらも exit 0 で通るため欠落が検知できない、という非対称の切り分け
✦行数ではなくセクション単位でバイト予算内に詰める抽出器と、必須キー欠落を落とすプリフライトの実装一式
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

◈ Agents & Manager2026-04-26
Antigravity エージェントに「失敗の理由が一発で分かる」トレースを設計する — 可観測性の実践
自前のエージェント実行ループに OpenTelemetry のスパンを入れ、失敗の理由を数行で読めるようにするための設計です。スパン構造、属性の線引き、failure_class の分類、リトライ表、ダッシュボード、コスト属性、PII の扱いまでを、動くコードと一緒に整理します。
◈ Agents & Manager2026-10-16
エージェントに .zip を渡す前に、.git を除いて 29 MB を 15 MB にし、秘密情報の警告 28 件を見分けました
Antigravity アプリ v2.23.0 で .zip を添付できるようになりました。自分のリポジトリを実際に固めて .git の重さと秘密情報検査の誤検知を数え、除外・検査・マニフェストを一度に行う Python スクリプトの全文を残します。
◈ Agents & Manager2026-09-24
無人実行のエージェントが設定ファイルを書き換えたら戻す、小さな番人スクリプトの組み方
読み取り専用にしたはずの枠をエージェント自身が設定ファイルごと広げてしまう、という報告を読んで、夜間の無人実行を外側から包む番人を組みました。実行前後の指紋比較・退避と復元・打ち切り時間の3点を、動くコードでお伝えします。