ANTIGRAVITY LABEN
記事一覧/Editor View
Editor View/2026-07-16中級

4,000行のログをエージェントに渡す三つの道 — 貼り付け・.txt 添付・@ 参照を測り分ける

v2.3.0 でプレーンテキスト添付に対応しました。長いログをエージェントへ渡す手段が三つに増えたことで、どれをいつ選ぶかという新しい迷いが生まれています。切り出し・計測・判断フローを実装込みで整理しました。

Antigravity336ログコンテキスト設計3デバッグ7個人開発89

プレミアム記事

夜間の自動処理が朝には赤くなっていました。個人開発でアプリの更新を回していると、失敗の一報を受け取るのはたいてい寝起きの数分です。

CI のログは 4,000 行あまり。原因の見当がつかないまま、私はそれを全選択してチャット入力欄に貼り付けました。入力欄が縦に伸びていく間、これはたぶん間違ったやり方だという感覚だけが先にありました。

返ってきた答えは、ログの後半に出ていた明白なスタックトレースではなく、前半の警告行についての一般論でした。エージェントが手を抜いたわけではありません。4,000 行という塊の中で、どこに重心を置くべきかを示さないまま渡した私の側の設計不足です。

v2.3.0(2026-07-13)でプレーンテキストファイルの添付とレンダリングに対応しました。これで、長いテキストをエージェントへ渡す手段が実質三つに増えています。手段が増えることは、そのまま迷いが増えることでもあります。

三つを同じログで比べ、どの条件でどれを選ぶか。切り出しと計測のスクリプトごと、以下に整理しております。

渡す手段は三つある — それぞれが壊れる場所が違う

まず整理します。Antigravity で長いテキストをエージェントに渡す方法は、現時点で次の三つです。

手段 実体 向く長さ 壊れる場所
チャットへ貼り付け 会話本文の一部として扱われる 〜120 行程度 長いと会話全体を圧迫し、以降のターンの参照精度が落ちる
.txt 添付(v2.3.0〜) 添付として渡り、会話内でレンダリングされる 120 行〜数千行 「全部読んだつもり」の要約が返る。重心の指示が要る
@ でのファイル参照 ワークスペース内のファイルを指し示す 制限は緩い ワークスペース外のファイルは指せない

三つの違いは「長さの上限」ではありません。壊れ方が違うという点が本質です。

貼り付けは会話そのものを汚します。一度貼った 4,000 行は、その後のターンでもコンテキストの一部として残り続けます。私が最初に踏んだのはこれでした。

.txt 添付は会話本文を汚さない代わりに、読み方の指定がないと重心が定まりません。長い PDF を添付したときに起きる読み飛ばしと、構造としては同じ現象です(この論点は添付した長い PDF をエージェントが読み飛ばす問題で詳しく扱っております)。

@ 参照はワークスペースに置いたファイルにしか使えません。/var/log 配下や、別マシンから持ってきたログには届きません。

つまり、選択肢は三つあるのに、条件を満たすものは場面ごとに一つか二つしかない。ここを毎回勘で決めていたのが、私の朝の失敗でした。

渡す前に削る — 4,000 行から関連区間を切り出す

三択の話をする前に、先にやるべきことがあります。削ることです。

4,000 行のログのうち、失敗の説明に必要な行はたいてい 100 行前後です。残りは正常時と変わらない進行ログで、渡しても判断の助けにはなりません。

私が使っている抽出スクリプトです。エラー行を見つけ、その前後を文脈ごと切り出します。

#!/usr/bin/env bash
# extract-log-window.sh — エラー周辺だけを切り出す
# 使い方: ./extract-log-window.sh run.log 40 10 > slice.txt
set -euo pipefail
 
LOG="${1:?usage: extract-log-window.sh <logfile> [before] [after]}"
BEFORE="${2:-40}"
AFTER="${3:-10}"
 
# 判定に使うマーカー。プロジェクトに合わせて足す
PATTERN='ERROR|FATAL|Traceback|Exception|panic:|✗|FAIL|exit code [1-9]'
 
if ! grep -nEq "$PATTERN" "$LOG"; then
  echo "# マーカーに一致する行がありません。末尾 ${AFTER} 行を出します" >&2
  tail -n "$AFTER" "$LOG"
  exit 0
fi
 
TOTAL=$(wc -l < "$LOG")
echo "# source: $LOG (${TOTAL} lines)"
echo "# window: -${BEFORE}/+${AFTER} around /${PATTERN}/"
echo "# ---"
 
# 前後の窓を取り、重なった区間は --- で区切って連結される
grep -nE -B "$BEFORE" -A "$AFTER" "$PATTERN" "$LOG"

実行するとこうなります。

$ wc -l run.log
4127 run.log

$ ./extract-log-window.sh run.log 40 10 > slice.txt
$ wc -l slice.txt
143 slice.txt

4,127 行が 143 行になりました。96.5% を落とした計算です。この 143 行なら、貼り付けでも添付でも成立します。

なぜ前を 40 行、後ろを 10 行にするのか。 エラーの原因は、たいていエラー行より前に書かれているからです。後ろにあるのは後始末とプロセスの終了コードで、行数は少なくて足ります。この非対称が、私自身が何度か調整して落ち着いた比率です。

ここに落とし穴が一つあります。set -euo pipefail を書いていないシェルスクリプトを回していると、本当の失敗は最初のエラーで、以降は連鎖した二次被害であることが多い。窓を広げるほど二次被害ばかりが増えます。この場合は最初の一致だけを見て回避します。

# 最初のエラーだけを窓で切る
FIRST=$(grep -nEm1 "$PATTERN" "$LOG" | cut -d: -f1)
sed -n "$((FIRST > 40 ? FIRST - 40 : 1)),$((FIRST + 10))p" "$LOG"

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

この記事の続きを読む

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

この記事で得られること
貼り付け・.txt 添付・@ 参照の三択を、同じログで同条件比較した結果と選択フロー
4,000行のログから関連区間だけを切り出す抽出スクリプト(bash / Node の完全版)
渡す前に測る: 行数・バイト数・トークン概算を出して手段を機械的に決める計測手順
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Editor View2026-06-26
Antigravity が一気に書いた巨大な差分を、意味単位のコミットに分け直す
エージェントが書いた数百行の差分を、そのままコミットしていませんか。レビューできない一括コミットを、関心ごとに分け直すための実践的なワークフローとスクリプトを紹介します。
Editor View2026-07-16
UI を日本語にしても、コミットログは英語のままでした — 無人エージェントの出力言語が揺れ続けた6週間の記録
日本語UIの設定を終えても、エージェントがリポジトリに残すコミットメッセージやコードコメントの言語は揺れ続けます。無人運用6週間で測った混在の実数値と、出力言語を層別に固定する契約の書き方、混在を機械的に弾くゲートの実装を記録しました。
Editor View2026-07-12
会話パネルの幅を変えたら、エージェントのレビューが速くなった話
Antigravity v2.2.1 で追加された Conversation Width と構文ハイライトの拡充を、エージェントが生成した diff を読み切る作業に落とし込んだ実運用メモです。表示設定という地味な調整が、レビューの手数をどう変えたかを記録しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →