<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Token-Optimization on ROBOCO</title>
    <link>https://roboco.io/ja/tags/token-optimization/</link>
    <description>Recent content in Token-Optimization on ROBOCO</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <lastBuildDate>Sun, 26 Jul 2026 10:00:00 +0900</lastBuildDate>
    <atom:link href="https://roboco.io/ja/tags/token-optimization/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>意外にも9倍安いラルフループ - コンテキストキャッシングの経済学</title>
      <link>https://roboco.io/ja/posts/vibe-coding-token-experiments/</link>
      <pubDate>Sun, 26 Jul 2026 10:00:00 +0900</pubDate>
      <guid>https://roboco.io/ja/posts/vibe-coding-token-experiments/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;ゴールだけを与えて完了するまで回す単一セッションのループが、計画ベースのワークフローの1/9のコストで同じ課題を完走しました。秘訣はループではなく、キャッシュにあります。&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;ラルフループ（Ralph loop）は単純な方式です。ゴールと完了条件だけを明示し、単一セッションでエージェントが完了判定を通過するまで自律的に反復させます。計画書も、タスク分割も、セッション間の引き継ぎ文書もありません。一見すると無計画で非効率に見えます。&lt;/p&gt;&#xA;&lt;p&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;a href=&#34;https://github.com/roboco-io/vibecoding-token-experiments&#34;&gt;vibecoding-token-experiments&lt;/a&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; を作りました。トークン使用に関する仮説をカタログとして管理し、RealWorld App&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;p&gt;その第一の軸がワークフロー戦略でした。実測してみると、ラルフループというこの単純な方式が、計画ベースのワークフローより&lt;strong&gt;約9倍安く&lt;/strong&gt;同じ課題を完走しました。この記事では、これまでに実施した四つの実験の結果とともに、ラルフループを安くする本当のメカニズムである&lt;strong&gt;プロンプトキャッシングの動作原理&lt;/strong&gt;を説明します。&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-実験-ラルフループ-vs-計画ベースのワークフロー&#34;&gt;1. 実験: ラルフループ vs 計画ベースのワークフロー&lt;/h2&gt;&#xA;&lt;p&gt;共通の課題はRealWorld Appのバックエンド実装です。MediumクローンのREST APIを仕様どおりに実装し、公式APIテストを100%通過して初めて完走と認めます。モデルはClaude Opus一つに固定してモデル差による撹乱を排除し、ツールはClaude Codeを使いました。測定はセッションログのusageフィールドを集計し、&lt;strong&gt;billableトークン&lt;/strong&gt;（input + output + cache_creation）を基準としました。&lt;/p&gt;&#xA;&lt;p&gt;比較した二つのワークフローは次のとおりです。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ralph loop&lt;/strong&gt;: ゴールと完了条件だけを明示し、単一セッションでエージェントが完了判定を通過するまで自律的に反復させる方式&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Plan-then-execute (PTE)&lt;/strong&gt;: 計画セッションでタスクを分割しインターフェース契約を文書化したうえで、タスクごとに独立したセッションを立ち上げて実装する方式&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;始める前に、この実験の範囲を明確にしておきます。RealWorld Appは**仕様が完全に固定された課題です。**APIスペックとテストがすでに与えられているため、エージェントがするのは純粋な実装だけです。一方、実際の開発では要件定義や設計の段階からエージェントが投入されるのが一般的で、その段階では探索と計画の成果物そのものが目的になります。したがってこの実験が測定するのは「計画が必要か」ではなく、**実装段階におけるコンテキストキャッシングの効果とラルフループのコスト効率です。**何を作るかがすでに決まっている状態で、ワークフローとコンテキスト構造がトークンコストをどれだけ左右するのかを見ます。&lt;/p&gt;&#xA;&lt;h2 id=&#34;2-結果-ラルフループが約9倍安かった&#34;&gt;2. 結果: ラルフループが約9倍安かった&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;指標&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: right&#34;&gt;Ralph loop&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: right&#34;&gt;Plan-then-execute&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;完了判定&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;通過&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;通過&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;実時間&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;14分&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;49分&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;セッション数&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;16&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;outputトークン&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;90,877&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;797,845&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;cache_creationトークン&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;233,687&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;2,040,513&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;billable合計&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;324,775&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;2,839,815&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;両条件ともAPIテストを100%通過しました。品質は同じなのにコストが分かれたのです。ラルフループは14分、単一セッション、約32万トークンで完走しました。billable基準でPTEの&lt;strong&gt;1/8.7&lt;/strong&gt;、時間では1/3.5です。PTEの計画セッション一つ（約36万トークン）だけで、ラルフループの実行全体より高くついていました。&lt;/p&gt;&#xA;&lt;p&gt;ラルフループが回避したコストをログから分解すると、四つあります。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;セッション起動の固定費&lt;/strong&gt;: セッションを新しく開くたびに、システムプロンプトとツール定義がコンテキストに新たに組み込まれます。実測した起動税はセッションあたり約20.6Kトークン。PTEは16セッションなので33万トークンを支払い、ラルフの1回分（約2.1万）を引いた差額の約31万トークンだけで、ラルフの実行費全体（32.5万）に匹敵します。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;同じファイルの繰り返し読み込み&lt;/strong&gt;: PTEの各セッションはリポジトリを初めて見る状態から始まります。&lt;code&gt;src/app.ts&lt;/code&gt; を7回、同じ仕様書を5回読み直しました。ラルフは一つのコンテキストの中で、一度見たものを見直しません。Read呼び出しはラルフ 2回に対しPTE 49回、検証用のBash呼び出しは35回に対し186回でした。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;文書の連続性を保つ生産コスト&lt;/strong&gt;: PTEの成果物の44%はコードではなく、セッション間の知識伝達用の文書（仕様、完了記録）でした。ラルフではこのコストがゼロです。コンテキストそのものが生きた引き継ぎ文書だからです。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;アトミック分割のパラドックス&lt;/strong&gt;: PTEでは、GETエンドポイント一つだけの最小タスクが15.6万トークンを使いました。ラルフ全体の半分に近い量です。タスクが小さくなるほど、固定費（起動税 + リポジトリ把握 + 独立した検証）の比重が支配的になります。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;3-秘訣はプロンプトキャッシングにある-その動作原理&#34;&gt;3. 秘訣はプロンプトキャッシングにある: その動作原理&lt;/h2&gt;&#xA;&lt;p&gt;ラルフループが勝ったのは、ループ構造が優れているからではありません。**一度作ったコンテキストをプロンプトキャッシュで最後まで再利用したからです。**このメカニズムを理解すれば、結果は当然のものになります。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
