<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Gemini on ROBOCO</title>
    <link>https://roboco.io/ja/tags/gemini/</link>
    <description>Recent content in Gemini on ROBOCO</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <lastBuildDate>Thu, 19 Mar 2026 09:00:00 +0900</lastBuildDate>
    <atom:link href="https://roboco.io/ja/tags/gemini/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>バイブコーディングのトークン管理戦略</title>
      <link>https://roboco.io/ja/posts/vibe-coding-token-management-strategy/</link>
      <pubDate>Thu, 19 Mar 2026 09:00:00 +0900</pubDate>
      <guid>https://roboco.io/ja/posts/vibe-coding-token-management-strategy/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;トークン不足はモデル性能の問題ではなく、たいていはコンテキストの運用方法の問題です。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://roboco.io/posts/images/Dohyun.png&#34;&gt;&lt;figcaption&gt;&#xA;      &lt;h4&gt;チョン・ドヒョン - ROBOCO首席コンサルタント&lt;/h4&gt;&#xA;    &lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Claude Code、Codex、Geminiのようなバイブコーディングツールを長く使っていると、ある時点から似たような症状が現れます。応答が遅くなり、すでに合意した制約を忘れ、関係のないファイルにまで手を出し始めるのです。これをよく「トークンが足りない」と表現しますが、実際に起きている現象は、より正確に言えば&lt;strong&gt;コンテキスト汚染&lt;/strong&gt;、あるいはContext Rotに近いものです。&lt;/p&gt;&#xA;&lt;p&gt;Perplexityを通じてまとめたideationメモを読み返してみると、要点ははっきりしています。実際の利用環境では、トークン使用量の大部分は出力ではなく&lt;strong&gt;入力コンテキスト&lt;/strong&gt;で発生します。したがって問題を解く最良の方法も「より大きなモデル」ではなく「よりきれいなコンテキスト」なのです。本稿ではその内容をもとに、ツール別の機能紹介ではなく&lt;strong&gt;実務の運用戦略&lt;/strong&gt;を中心に、トークン管理の原則を整理してみます。&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;トークン不足は単なる上限の問題ではなく、会話・ログ・文書が入り混じって生じるコンテキスト汚染の問題として捉えるべきです。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;.claudeignore&lt;/code&gt;、作業文書の分割、&lt;code&gt;/clear&lt;/code&gt;と&lt;code&gt;/compact&lt;/code&gt;、handoff文書のように、範囲を絞る習慣がまず先です。&lt;/li&gt;&#xA;&lt;li&gt;良いバイブコーディングとは、長いプロンプトよりも、いま必要な情報だけをモデルに見せるコンテキスト設計に近いものです。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;なぜトークンが先に尽きるのか&#34;&gt;なぜトークンが先に尽きるのか&lt;/h2&gt;&#xA;&lt;p&gt;長いセッションが積み重なり続けると、問題は二つの層で現れます。一つは純粋なトークン上限への到達であり、もう一つはそれより先に訪れる品質の低下です。会話ログ、失敗した試み、暫定的な仮説、長いビルドログ、すでに終わった作業の文脈が残り続けると、モデルはいま重要な情報とすでに破棄された情報を区別しにくくなります。&lt;/p&gt;&#xA;&lt;p&gt;この現象は、単にコンテキストウィンドウの大きさでは解決しません。長いコンテキストはより多くの情報を収められるようにしてくれますが、その中の情報がきちんと整理されている保証まではしてくれないからです。だからこそトークン管理の核心は、節約そのものよりも&lt;strong&gt;選別&lt;/strong&gt;にあります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;戦略1-claudeignoreでそもそも読ませてはいけないものを遮断する&#34;&gt;戦略1: &lt;code&gt;.claudeignore&lt;/code&gt;で、そもそも読ませてはいけないものを遮断する&lt;/h2&gt;&#xA;&lt;p&gt;実測ベースで最もROIが高い単一の施策は、&lt;code&gt;.claudeignore&lt;/code&gt;の設定です。ideation文書に引用された事例では、&lt;code&gt;node_modules&lt;/code&gt;、ビルド成果物、ログ、バイナリ、大容量画像、lockファイルを除外するだけでも&lt;strong&gt;30〜40%程度の削減効果&lt;/strong&gt;が報告されています。&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;たとえば、こういった具合です。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;node_modules/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.next/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dist/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;build/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;coverage/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.cache/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.log&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.db&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.sqlite&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.env*&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.png&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.jpg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.gif&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*.mp4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この戦略の本質は節約ではありません。モデルが、そもそも見ても役に立たない情報を見ないようにすることです。とくにlockファイルやビルド成果物は、トークンを多く消費するわりに推論上の価値がほとんどありません。&lt;/p&gt;&#xA;&lt;h2 id=&#34;戦略2-tasksmdを一つに詰め込まずインデックス構造に分割する&#34;&gt;戦略2: &lt;code&gt;tasks.md&lt;/code&gt;を一つに詰め込まず、インデックス構造に分割する&lt;/h2&gt;&#xA;&lt;p&gt;ideation文書で最も印象的な事例の一つが、単一の大きな&lt;code&gt;tasks.md&lt;/code&gt;をドメイン別文書と&lt;code&gt;INDEX.md&lt;/code&gt;の構造に分けて&lt;strong&gt;76.1%の削減&lt;/strong&gt;を達成したケースです。&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tasks/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;├── INDEX.md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;├── backend.md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;├── frontend.md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;├── infra.md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;├── security.md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;└── archive/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この構造が良い理由は単純です。すべての作業ですべてのタスクを読む必要はないからです。全体の状況は&lt;code&gt;INDEX.md&lt;/code&gt;だけ見ればよく、特定の作業では該当ドメインのファイルだけを読めば済みます。完了した履歴は&lt;code&gt;archive/&lt;/code&gt;に片付けておけば、現在のセッションの作業台から消えます。&lt;/p&gt;&#xA;&lt;p&gt;トークン管理とは、結局のところ文書の情報アーキテクチャの問題でもあるのです。&lt;/p&gt;&#xA;&lt;h2 id=&#34;戦略3-セッションを長く引きずらずclearとcompactを意識的に使う&#34;&gt;戦略3: セッションを長く引きずらず、&lt;code&gt;/clear&lt;/code&gt;と&lt;code&gt;/compact&lt;/code&gt;を意識的に使う&lt;/h2&gt;&#xA;&lt;p&gt;Claude Codeを基準に見ると、最も即効性が高い方法は&lt;code&gt;/clear&lt;/code&gt;と&lt;code&gt;/compact&lt;/code&gt;を戦略的に使うことです。&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;/clear&lt;/code&gt;は作業の文脈を完全に初期化するときに使います。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/compact&lt;/code&gt;は重要な内容だけを残して会話履歴を要約するときに使います。&lt;/li&gt;&#xA;&lt;li&gt;長いデバッグセッションの直後、機能を一つ終えたとき、あるいはコンテキスト使用量が70%程度に達したときにcompactをかける習慣が効果的です。&lt;sup id=&#34;fnref1:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;肝心なのは、長い会話をずっと維持するほうが生産的だという錯覚から抜け出すことです。セッションは長く続けるよりも、&lt;strong&gt;短く切って再開できる&lt;/strong&gt;べきなのです。&lt;/p&gt;&#xA;&lt;h2 id=&#34;戦略4-handoff文書を残して新しいセッションに移る&#34;&gt;戦略4: handoff文書を残して新しいセッションに移る&lt;/h2&gt;&#xA;&lt;p&gt;セッションを頻繁に切るには、再開のコストが低くなければなりません。このとき最も単純で強力な方法が、&lt;code&gt;HANDOFF.md&lt;/code&gt;のような短い引き継ぎ文書を置くことです。&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a href=&#34;#fn:6&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;6&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;たとえば、以下の程度で十分です。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;目標: ログインフローのrace condition解消&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;修正したファイル: auth_service.ts, login_controller.ts&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;確認した事実: DBの問題ではなく、APIの重複呼び出しが原因&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;失敗した試み: mutexの適用は副作用が出たためロールバック&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;次の作業: idempotency key方式の検討&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;完了条件: 重複ログインの再現テストが通ること&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この文書の目的は、長文の記録を残すことではありません。次のセッションが&lt;strong&gt;すぐに働き出せる程度の方向性&lt;/strong&gt;だけを残すことです。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
