<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>PromptZone - AI Prompts, Guides and Tools for Builders: Yohji Sakamoto</title>
    <description>The latest articles on PromptZone - AI Prompts, Guides and Tools for Builders by Yohji Sakamoto (@yohjituralab).</description>
    <link>https://www.promptzone.com/yohjituralab</link>
    <image>
      <url>https://promptzone-community.s3.amazonaws.com/uploads/user/profile_image/38996/630a3366-5cd3-42f4-925a-5b58fd0d2aa0.png</url>
      <title>PromptZone - AI Prompts, Guides and Tools for Builders: Yohji Sakamoto</title>
      <link>https://www.promptzone.com/yohjituralab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://www.promptzone.com/feed/yohjituralab"/>
    <language>en</language>
    <item>
      <title>MCP workflow benchmark: the real token cost is repeated context</title>
      <dc:creator>Yohji Sakamoto</dc:creator>
      <pubDate>Sat, 15 Aug 2026 18:47:41 +0000</pubDate>
      <link>https://www.promptzone.com/yohjituralab/mcp-workflow-benchmark-the-real-token-cost-is-repeated-context-4pbg</link>
      <guid>https://www.promptzone.com/yohjituralab/mcp-workflow-benchmark-the-real-token-cost-is-repeated-context-4pbg</guid>
      <description>&lt;p&gt;Most MCP demos are one tool call. Real work is a dependency chain: create a project, read its ID, pass that ID into the next operation, and keep going.&lt;/p&gt;

&lt;p&gt;The costly part is often the handoff. In the benchmark's ecommerce workflow, both configurations passed the same five verifier checks and created the same deliverables. Tura Direct used 3 model requests instead of 11, and 56,372 total tokens instead of 262,915 (78.6% lower), despite making 11 MCP calls rather than 9. The saving is repeated model context, not skipped work.&lt;/p&gt;

&lt;p&gt;Tura's &lt;code&gt;command_run&lt;/code&gt; Macro lets an agent describe the dependency graph once. Values from a successful step can be used by later steps, while independent commands run together. The model does not need a new turn just to read an ID and copy it into the next tool call.&lt;/p&gt;

&lt;p&gt;For longer chains, each handoff kept inside the Macro can avoid another model re-entry, so repeated-context savings can accumulate. That is not a universal linear law—caching, retries, and workflow shape still matter—but it is a useful lever for multi-step MCP work.&lt;/p&gt;

&lt;p&gt;Full trace, caveats, and variable inheritance: &lt;a href="https://turaai.net/blog#what-we-learned-from-the-mcp-workflow-benchmark" rel="nofollow ugc noopener noreferrer"&gt;https://turaai.net/blog#what-we-learned-from-the-mcp-workflow-benchmark&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source code: &lt;a href="https://github.com/Tura-AI/tura" rel="nofollow ugc noopener noreferrer"&gt;https://github.com/Tura-AI/tura&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I am sharing work from Tura-AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
    </item>
    <item>
      <title>Cut LLM turns in MCP interactions by 75%+: the 5-to-1 workflow example</title>
      <dc:creator>Yohji Sakamoto</dc:creator>
      <pubDate>Tue, 11 Aug 2026 21:53:15 +0000</pubDate>
      <link>https://www.promptzone.com/yohjituralab/cut-llm-turns-in-mcp-interactions-by-75-the-5-to-1-workflow-example-e6i</link>
      <guid>https://www.promptzone.com/yohjituralab/cut-llm-turns-in-mcp-interactions-by-75-the-5-to-1-workflow-example-e6i</guid>
      <description>&lt;h2 id="the-problem"&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;A typical MCP coding-agent loop is often: inspect → patch → build → test → lint.&lt;/p&gt;

&lt;p&gt;Even when the work is predictable, that means the model wakes up after every tool result to decide the next call. In a simple five-step workflow, that is &lt;strong&gt;5 LLM turns&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 id="what-tura-changes"&gt;
  
  
  What Tura changes
&lt;/h2&gt;

&lt;p&gt;Tura exposes a macro tool called &lt;code&gt;command_run&lt;/code&gt;. The agent sends a dependency-aware execution plan once, and the runtime executes the related commands in order. Build, test, and lint still run; the difference is that the model does not need to re-enter between each predictable step.&lt;/p&gt;

&lt;p&gt;For the illustrated task, the loop goes from &lt;strong&gt;5 model turns to 1&lt;/strong&gt; — an 80% reduction in model re-entries. This is a reduction in conversational/tool-calling overhead, not an attempt to skip verification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I work on Tura.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Task benchmark: &lt;a href="https://turaai.net/benchmark-task?task=workflow-ecommerce-ad-package#runs" rel="nofollow ugc noopener noreferrer"&gt;https://turaai.net/benchmark-task?task=workflow-ecommerce-ad-package#runs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Tura-AI/tura" rel="nofollow ugc noopener noreferrer"&gt;https://github.com/Tura-AI/tura&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Curious whether others are tackling repeated tool-loop overhead in MCP agents this way.&lt;/p&gt;

</description>
      <category>mcp</category>
    </item>
    <item>
      <title>Fewer LLM turns, more commands: a practical way to verify research-heavy agent work</title>
      <dc:creator>Yohji Sakamoto</dc:creator>
      <pubDate>Tue, 04 Aug 2026 20:52:36 +0000</pubDate>
      <link>https://www.promptzone.com/yohjituralab/fewer-llm-turns-more-commands-a-practical-way-to-verify-research-heavy-agent-work-389h</link>
      <guid>https://www.promptzone.com/yohjituralab/fewer-llm-turns-more-commands-a-practical-way-to-verify-research-heavy-agent-work-389h</guid>
      <description>&lt;p&gt;&lt;a href="https://promptzone-community.s3.amazonaws.com/uploads/articles/inontt8murnyhwcrm28l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://promptzone-community.s3.amazonaws.com/uploads/articles/inontt8murnyhwcrm28l.png" alt="Real 15-slide squid recipe deliverable"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What if an agent spent less time going back to the model, but did much more useful work inside each turn?&lt;/p&gt;

&lt;p&gt;That is the idea I have been testing: let an LLM turn make a decision, then let one batch of commands search, inspect, compare, and verify the result. The goal is not “fewer turns” by itself. The goal is fewer expensive decision loops and more observable work between them.&lt;/p&gt;

&lt;p&gt;I used a deliberately messy task: build a 15-slide guide to 10 East Asian squid recipes, with illustrations, recipe sources, and cooking videos. This kind of job is easy to make look finished while leaving behind broken links, duplicated videos, missing assets, or a layout that only works on one screen.&lt;/p&gt;

&lt;p&gt;Across four runs, the two CLI-style runs averaged 13.5 LLM turns and 10.5 tool calls. The two direct-execution runs averaged 10 LLM turns and 82 tool calls. So, in this small matrix, the direct approach used 25.9% fewer LLM turns while issuing about 7.8× more commands.&lt;/p&gt;

&lt;p&gt;The interesting part was not the headline number. In one early turn, the agent launched roughly 20 discovery commands for recipes and matching videos. Later checks confirmed 10 sources, 10 unique video destinations, 15 local assets with none missing, navigation behavior, and rendering at 1440, 768, and 390 pixels. One bad recipe destination was corrected, and the remaining video IDs were validated.&lt;/p&gt;

&lt;p&gt;This pattern is useful anywhere the work is “collect, produce, then prove it is usable”: research briefs, slide decks, market maps, buyer guides, travel plans, content migrations, link audits, and QA-heavy reports.&lt;/p&gt;

&lt;p&gt;The mental model is simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use the LLM turn to decide what needs to happen.&lt;/li&gt;
&lt;li&gt;Fan that decision out into many independent commands.&lt;/li&gt;
&lt;li&gt;Gather structured results.&lt;/li&gt;
&lt;li&gt;Use the next turn only when judgment is actually needed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is only a four-run case study, not proof that one setup always wins. Runtime was mixed, and token accounting came from different harness sources. But it does show why “turn count” and “command count” should not be treated as the same thing.&lt;/p&gt;

&lt;p&gt;The full interactive task and the raw run artifacts are public:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Task: &lt;a href="https://turaai.net/benchmark-task?task=east-asian-squid-recipes-slides" rel="nofollow ugc noopener noreferrer"&gt;https://turaai.net/benchmark-task?task=east-asian-squid-recipes-slides&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Results: &lt;a href="https://github.com/Tura-AI/benchmark/tree/main/results/design/east-asian-squid-recipes-slides/report-20260711-design-matrix" rel="nofollow ugc noopener noreferrer"&gt;https://github.com/Tura-AI/benchmark/tree/main/results/design/east-asian-squid-recipes-slides/report-20260711-design-matrix&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I maintain Tura and this benchmark. I would be interested to hear: which part of your workflow should be one LLM decision followed by a batch of verifiable commands?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
    </item>
    <item>
      <title>5 coding-agent turns vs 1 command_run workflow: full example</title>
      <dc:creator>Yohji Sakamoto</dc:creator>
      <pubDate>Mon, 03 Aug 2026 21:02:26 +0000</pubDate>
      <link>https://www.promptzone.com/yohjituralab/5-coding-agent-turns-vs-1-commandrun-workflow-full-example-1ic</link>
      <guid>https://www.promptzone.com/yohjituralab/5-coding-agent-turns-vs-1-commandrun-workflow-full-example-1ic</guid>
      <description>&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I maintain &lt;a href="https://github.com/Tura-AI/tura" rel="nofollow ugc noopener noreferrer"&gt;Tura&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here is the simple idea. A normal coding agent may use five separate LLM turns for one predictable workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turn 1 — inspect&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rg &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s2"&gt;"TODO|command_run|handler"&lt;/span&gt; crates/
rg &lt;span class="nt"&gt;--files&lt;/span&gt; crates/runtime/src crates/tools/src
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Turn 2 — apply the patch&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="gd"&gt;- // old command handler logic
&lt;/span&gt;&lt;span class="gi"&gt;+ // patched command handler logic
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Turn 3 — build&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo build &lt;span class="nt"&gt;-p&lt;/span&gt; runtime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Turn 4 — test&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; runtime &lt;span class="nt"&gt;--lib&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Turn 5 — lint&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo clippy &lt;span class="nt"&gt;-p&lt;/span&gt; runtime &lt;span class="nt"&gt;--all-targets&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The overhead is not only the shell commands. The model wakes up five times and receives the growing conversation again.&lt;/p&gt;

&lt;p&gt;Tura exposes one macro tool called command_run, so the agent can send the same workflow once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"command_run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"commands"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shell_command"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"rg -n &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;TODO|command_run|handler&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; crates/"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shell_command"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"rg --files crates/runtime/src crates/tools/src"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"apply_patch"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*** Begin Patch&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;*** Update File: crates/tools/src/command_run/handler.rs&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;@@&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;-    // old command handler logic&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;+    // patched command handler logic&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;*** End Patch"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shell_command"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cargo build -p runtime"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shell_command"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cargo test -p runtime --lib"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shell_command"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cargo clippy -p runtime --all-targets"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Build, test, and lint still run. The model simply does not need a new turn between predictable steps.&lt;/p&gt;

&lt;p&gt;In the full DeepSWE comparison, Balanced used &lt;strong&gt;35.8% fewer turns&lt;/strong&gt; and &lt;strong&gt;31.1% fewer tokens&lt;/strong&gt; than Codex CLI. Direct used &lt;strong&gt;69.1% fewer turns&lt;/strong&gt; and &lt;strong&gt;77.5% fewer tokens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Tura-AI/tura" rel="nofollow ugc noopener noreferrer"&gt;https://github.com/Tura-AI/tura&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Benchmark: &lt;a href="https://turaai.net/benchmark" rel="nofollow ugc noopener noreferrer"&gt;https://turaai.net/benchmark&lt;/a&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>ai</category>
    </item>
    <item>
      <title>I built a repeatable way to check whether token-saving tools actually work</title>
      <dc:creator>Yohji Sakamoto</dc:creator>
      <pubDate>Tue, 28 Jul 2026 17:21:22 +0000</pubDate>
      <link>https://www.promptzone.com/yohjituralab/i-built-a-repeatable-way-to-check-whether-token-saving-tools-actually-work-4nf0</link>
      <guid>https://www.promptzone.com/yohjituralab/i-built-a-repeatable-way-to-check-whether-token-saving-tools-actually-work-4nf0</guid>
      <description>&lt;p&gt;Hi, I’m Yu. Earlier this month I released Tura and wrote about why agent harnesses need long-horizon benchmarks, not just one-off demos.&lt;/p&gt;

&lt;p&gt;Over the past two weeks, I’ve seen more people publish tests of token-saving tools such as RTK and Ponytail. That’s great, but the results are hard to compare when everyone uses different tasks, logs, and output formats.&lt;/p&gt;

&lt;p&gt;So I open-sourced the benchmark framework I use:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Tura-AI/benchmark/tree/main" rel="nofollow ugc noopener noreferrer"&gt;https://github.com/Tura-AI/benchmark/tree/main&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It can run the benchmark workflow, collect logs and artifacts into one result schema, and let CI index any result added to the repository. The website then turns those results into comparable graphs and detailed run pages.&lt;/p&gt;

&lt;p&gt;If you have a tool, harness, or test case you want included, tell me. You can also run the benchmark locally, reproduce the evaluation, and submit the result folder as a pull request. CI handles the indexing automatically.&lt;/p&gt;

&lt;p&gt;I’d especially like feedback on what should be tested next and where the framework may introduce bias.&lt;/p&gt;

&lt;p&gt;Disclosure: I maintain Tura and this benchmark framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://promptzone-community.s3.amazonaws.com/uploads/articles/5ttj48djywew0tl1c8op.png" class="article-body-image-wrapper"&gt;&lt;img src="https://promptzone-community.s3.amazonaws.com/uploads/articles/5ttj48djywew0tl1c8op.png" alt="Verified outcomes versus benchmark cost"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://promptzone-community.s3.amazonaws.com/uploads/articles/1duwh2aa234ufoxl9s3h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://promptzone-community.s3.amazonaws.com/uploads/articles/1duwh2aa234ufoxl9s3h.png" alt="Benchmark rules and agent run"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://promptzone-community.s3.amazonaws.com/uploads/articles/c6afrbh06byfhhdmqcey.png" class="article-body-image-wrapper"&gt;&lt;img src="https://promptzone-community.s3.amazonaws.com/uploads/articles/c6afrbh06byfhhdmqcey.png" alt="Indexed run details and artifact"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>testing</category>
    </item>
    <item>
      <title>Why My Open-Source Project Hasn't Done Better</title>
      <dc:creator>Yohji Sakamoto</dc:creator>
      <pubDate>Sat, 25 Jul 2026 14:19:35 +0000</pubDate>
      <link>https://www.promptzone.com/yohjituralab/why-my-open-source-project-hasnt-done-better-3bf</link>
      <guid>https://www.promptzone.com/yohjituralab/why-my-open-source-project-hasnt-done-better-3bf</guid>
      <description>&lt;p&gt;Disclosure: I am the maintainer of Tura. I am posting this to ask for candid advice about open-source communication and evaluation, not as an independent review of my own project.&lt;/p&gt;

&lt;p&gt;Since the beginning of 2026, projects such as RTK, Caveman, and Ponytail have claimed that they can reduce token usage by 80–90%. Some gained tens of thousands of GitHub stars in a very short time.&lt;/p&gt;

&lt;p&gt;My previous startup was building an e-commerce chatbot. The product was close to what later became the Universal Commerce Protocol (UCP). After UCP was released, I decided not to continue in that direction.&lt;/p&gt;

&lt;p&gt;Earlier this year, I began turning the architecture we had built for e-commerce chatbot agents into an SDK. Put simply, its core idea is to use state machines and deterministic execution sequences to reduce the number of round trips to LLM providers by around 80% for the same task, thereby reducing token consumption.&lt;/p&gt;

&lt;p&gt;I understand why tools such as RTK are ineffective in genuinely long-running tasks. I published a report on July 18, and JetBrains published a report on July 20 that reached essentially the same conclusion: token-saving plugins such as RTK and Caveman have little or no effect on real-world, long-running tasks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JetBrains report: &lt;a href="https://blog.jetbrains.com/ai/2026/07/rtk-claude-code-token-savings/" rel="nofollow ugc noopener noreferrer"&gt;https://blog.jetbrains.com/ai/2026/07/rtk-claude-code-token-savings/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;My report and reproducible methodology: &lt;a href="https://github.com/Tura-AI/tura/blob/main/docs/blog/token-saving-plugins-are-mostly-stupid-idea.md" rel="nofollow ugc noopener noreferrer"&gt;https://github.com/Tura-AI/tura/blob/main/docs/blog/token-saving-plugins-are-mostly-stupid-idea.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also believe I know how to achieve a real reduction of more than 80% in token consumption during long-running tasks. However, I have found it much harder to communicate and promote this open-source project than to build it.&lt;/p&gt;

&lt;h2 id="what-i-think-went-wrong"&gt;
  
  
  What I think went wrong
&lt;/h2&gt;

&lt;h3 id="most-codingagent-users-do-not-care-what-actually-drives-token-consumption"&gt;
  
  
  Most coding-agent users do not care what actually drives token consumption
&lt;/h3&gt;

&lt;p&gt;There is a large gap in understanding among coding-agent users, whether they have formal software-engineering training or are self-taught "vibe coders."&lt;/p&gt;

&lt;p&gt;A long article that systematically explains the mechanism and challenges existing assumptions has little chance of spreading in forums already flooded with AI-written posts and plugins claiming 95% token savings.&lt;/p&gt;

&lt;p&gt;Simple ideas are easier to spread. People are not purely rational; we tend to believe explanations that are easy to understand. That is also why pseudoscientific content based on incorrect causal explanations can attract much more attention than careful explanations of the underlying mathematics.&lt;/p&gt;

&lt;h3 id="the-authors-arrogance"&gt;
  
  
  The author's arrogance
&lt;/h3&gt;

&lt;p&gt;This is probably a combination of two problems.&lt;/p&gt;

&lt;p&gt;From the perspective of someone who strongly believes in scientific testing, evaluations, and benchmarks, software-engineering claims without an evaluation can feel meaningless.&lt;/p&gt;

&lt;p&gt;But perhaps my own arrogance—and my contempt for, or jealousy of, tools such as RTK—has made me less willing to explain and promote my work in ways that would actually be effective.&lt;/p&gt;

&lt;p&gt;If you have read this far, I would genuinely appreciate your advice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How can I communicate this project more effectively without sacrificing rigorous evaluations and benchmarks?&lt;/li&gt;
&lt;li&gt;What evidence would make you willing to try an unfamiliar coding-agent SDK?&lt;/li&gt;
&lt;li&gt;Is the message too technical, too combative, or aimed at the wrong audience?&lt;/li&gt;
&lt;li&gt;What should I change on the repository page or in the benchmark presentation?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I know that building a coding agent with Codex or Claude is relatively easy. But I also believe there will always be people who value benchmarks and evaluation harnesses.&lt;/p&gt;

&lt;p&gt;The project was released on July 16 and currently has a little over 400 GitHub stars:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Tura-AI/tura" rel="nofollow ugc noopener noreferrer"&gt;https://github.com/Tura-AI/tura&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I welcome critical feedback, including reasons you would not use it.&lt;/p&gt;

</description>
      <category>help</category>
      <category>ai</category>
      <category>llm</category>
    </item>
    <item>
      <title>How GPT-5.6 sol token is used in Codex</title>
      <dc:creator>Yohji Sakamoto</dc:creator>
      <pubDate>Tue, 21 Jul 2026 19:30:52 +0000</pubDate>
      <link>https://www.promptzone.com/yohjituralab/how-gpt-56-sol-token-is-used-in-codex-11d7</link>
      <guid>https://www.promptzone.com/yohjituralab/how-gpt-56-sol-token-is-used-in-codex-11d7</guid>
      <description>&lt;p&gt;Disclosure: I maintain Tura, where the full test record is published.&lt;/p&gt;

&lt;p&gt;I ran 280+ Codex CLI sessions with GPT-5.6 Sol. In the current build, fewer commands per model turn can mean more turns and more cached-input cost.&lt;/p&gt;

&lt;p&gt;Most benchmarks favor 5.6 Sol on cost per result: on DeepSWE, 5.5 High averaged USD 5.1 per task versus USD 3.5 for 5.6 Sol High. But in Codex CLI 0.144.1, my 5.6 Sol High runs were about 21% more expensive than 5.5 High.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://promptzone-community.s3.amazonaws.com/uploads/articles/i9an8ks5ywf5ngrqfs2c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://promptzone-community.s3.amazonaws.com/uploads/articles/i9an8ks5ywf5ngrqfs2c.png" alt="How GPT-5.6 sol token is used in Codex"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://promptzone-community.s3.amazonaws.com/uploads/articles/s8rgjidbc90vv9971f40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://promptzone-community.s3.amazonaws.com/uploads/articles/s8rgjidbc90vv9971f40.png" alt="How GPT-5.6 sol token is used in Codex"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The likely mechanism is orchestration: 5.5 explicitly uses &lt;code&gt;multi_tool_use.parallel&lt;/code&gt;, while 5.6 mainly uses one top-level &lt;code&gt;exec&lt;/code&gt;. I observed 0.97 versus 2.5 commands per model call, roughly 1.84× as many rounds, and 66.5% of 5.6 Sol High cost in cached input. Token-saving plugins did not materially lower that total; reducing unnecessary model rounds did.&lt;/p&gt;

&lt;p&gt;Implementation reference: &lt;a href="https://github.com/openai/codex/blob/rust-v0.144.1/codex-rs/core/src/tools/code_mode/execute_handler.rs#L20-L72" rel="nofollow ugc noopener noreferrer"&gt;https://github.com/openai/codex/blob/rust-v0.144.1/codex-rs/core/src/tools/code_mode/execute_handler.rs#L20-L72&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Full test record: &lt;a href="https://turaai.net/docs#benchmark-current-test-set-record" rel="nofollow ugc noopener noreferrer"&gt;https://turaai.net/docs#benchmark-current-test-set-record&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>openai</category>
    </item>
    <item>
      <title>How to batch 5 coding-agent turns into 1 macro workflow</title>
      <dc:creator>Yohji Sakamoto</dc:creator>
      <pubDate>Tue, 21 Jul 2026 02:36:12 +0000</pubDate>
      <link>https://www.promptzone.com/yohjituralab/can-a-coding-agent-batch-deterministic-tool-calls-a-60-task-benchmark-g88</link>
      <guid>https://www.promptzone.com/yohjituralab/can-a-coding-agent-batch-deterministic-tool-calls-a-60-task-benchmark-g88</guid>
      <description>&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I maintain &lt;a href="https://github.com/Tura-AI/tura" rel="nofollow ugc noopener noreferrer"&gt;Tura&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here is the simple idea. A normal coding agent may use five separate LLM turns for one predictable workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turn 1 — inspect&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rg &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="s2"&gt;"TODO|command_run|handler"&lt;/span&gt; crates/
rg &lt;span class="nt"&gt;--files&lt;/span&gt; crates/runtime/src crates/tools/src
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Turn 2 — apply the patch&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="gd"&gt;- // old command handler logic
&lt;/span&gt;&lt;span class="gi"&gt;+ // patched command handler logic
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Turn 3 — build&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo build &lt;span class="nt"&gt;-p&lt;/span&gt; runtime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Turn 4 — test&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; runtime &lt;span class="nt"&gt;--lib&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Turn 5 — lint&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo clippy &lt;span class="nt"&gt;-p&lt;/span&gt; runtime &lt;span class="nt"&gt;--all-targets&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The overhead is not only the shell commands. The model wakes up five times and receives the growing conversation again.&lt;/p&gt;

&lt;p&gt;Tura exposes one macro tool called command_run, so the agent can send the same workflow once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"command_run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"commands"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shell_command"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"inspect files"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"apply_patch"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"apply patch"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shell_command"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cargo build -p runtime"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shell_command"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cargo test -p runtime --lib"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"step"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shell_command"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command_line"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cargo clippy -p runtime --all-targets"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Build, test, and lint still run. The model simply does not need a new turn between predictable steps.&lt;/p&gt;

&lt;p&gt;In the full DeepSWE comparison, Balanced used &lt;strong&gt;35.8% fewer turns&lt;/strong&gt; and &lt;strong&gt;31.1% fewer tokens&lt;/strong&gt; than Codex CLI. Direct used &lt;strong&gt;69.1% fewer turns&lt;/strong&gt; and &lt;strong&gt;77.5% fewer tokens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Tura-AI/tura" rel="nofollow ugc noopener noreferrer"&gt;https://github.com/Tura-AI/tura&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Benchmark: &lt;a href="https://turaai.net/benchmark" rel="nofollow ugc noopener noreferrer"&gt;https://turaai.net/benchmark&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
    </item>
    <item>
      <title>Why “90% Fewer Tokens” Can Still Mean a More Expensive Coding Agent</title>
      <dc:creator>Yohji Sakamoto</dc:creator>
      <pubDate>Sun, 19 Jul 2026 15:41:25 +0000</pubDate>
      <link>https://www.promptzone.com/yohjituralab/why-90-fewer-tokens-can-still-mean-a-more-expensive-coding-agent-3epo</link>
      <guid>https://www.promptzone.com/yohjituralab/why-90-fewer-tokens-can-still-mean-a-more-expensive-coding-agent-3epo</guid>
      <description>&lt;p&gt;Token-efficiency claims are everywhere in the coding-agent ecosystem: a plugin compresses shell output by 90%, a context tool removes thousands of tokens, or a prompt layer reports a large reduction in one step.&lt;/p&gt;

&lt;p&gt;Those numbers may be real. The harder question is whether they reduce the cost of a &lt;strong&gt;verified, completed task&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I tested that question with a matched repository-rewrite task: rebuild the Rust &lt;code&gt;eza&lt;/code&gt; project as a behavior-compatible Python implementation and satisfy 52 harness assertions. Every run used GPT-5.6-sol High through Codex CLI 0.144.1. I compared no plugin, Ponytail, and RTK, with two runs per condition.&lt;/p&gt;

&lt;h2 id="what-the-matched-runs-showed"&gt;
  
  
  What the matched runs showed
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Condition&lt;/th&gt;
&lt;th&gt;Mean verifier score&lt;/th&gt;
&lt;th&gt;Mean tokens&lt;/th&gt;
&lt;th&gt;Mean modeled cost&lt;/th&gt;
&lt;th&gt;Mean rounds&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No plugin&lt;/td&gt;
&lt;td&gt;78.85%&lt;/td&gt;
&lt;td&gt;6.660M&lt;/td&gt;
&lt;td&gt;$5.281946&lt;/td&gt;
&lt;td&gt;62.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ponytail&lt;/td&gt;
&lt;td&gt;80.77%&lt;/td&gt;
&lt;td&gt;-7.56% vs baseline&lt;/td&gt;
&lt;td&gt;-8.87%&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RTK&lt;/td&gt;
&lt;td&gt;76.92%&lt;/td&gt;
&lt;td&gt;+13.20% vs baseline&lt;/td&gt;
&lt;td&gt;+7.18%&lt;/td&gt;
&lt;td&gt;+44.00%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Ponytail used fewer tokens and cost less in this small sample, but took 13.51% longer. RTK used more tokens, cost more, and took 40.69% longer.&lt;/p&gt;

&lt;p&gt;The important caveat is the sample size: &lt;strong&gt;n=2 per condition is not enough to estimate a causal plugin effect&lt;/strong&gt;. In fact, the cost range divided by the mean was 43.25% without a plugin, 51.69% for Ponytail, and 30.78% for RTK. Those within-condition swings are much larger than the headline differences between conditions.&lt;/p&gt;

&lt;p&gt;That means a single good run can easily produce a persuasive “saved X%” claim even when ordinary agent-trajectory variance is the simpler explanation.&lt;/p&gt;

&lt;h2 id="the-denominator-is-the-real-problem"&gt;
  
  
  The denominator is the real problem
&lt;/h2&gt;

&lt;p&gt;The broader dataset contains 140 Codex CLI Medium/High runs, 10,365 agent rounds, 901,608,531 tokens, and $680.34 in modeled API cost. It contains no Tura runs.&lt;/p&gt;

&lt;p&gt;The token and cost distributions were very different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cached input: 96.46% of tokens, 63.91% of modeled cost&lt;/li&gt;
&lt;li&gt;New uncached input: 3.16% of tokens, 20.94% of cost&lt;/li&gt;
&lt;li&gt;Model output: 0.38% of tokens, 15.14% of cost&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So a tool can compress one prompt fragment or one class of terminal output by a huge percentage while barely moving the full-task bill. It may also change the agent’s path: extra searches, retries, tool calls, or rounds can erase the local saving.&lt;/p&gt;

&lt;p&gt;For example, the dataset contains 1,082 uniquely classified RTK-supported shell calls returning 1,458,927 tokens—only 0.1618% of all task tokens. Even a perfect 90% reduction of every eligible return corresponds to about 0.96% in directly attributable modeled cost savings.&lt;/p&gt;

&lt;h2 id="a-better-evaluation-checklist"&gt;
  
  
  A better evaluation checklist
&lt;/h2&gt;

&lt;p&gt;Before accepting a token-saving claim, I now ask four questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Was the same task repeated with and without the tool?&lt;/li&gt;
&lt;li&gt;Did an external verifier confirm the final result?&lt;/li&gt;
&lt;li&gt;Were retries, failures, orchestration, and tool calls included?&lt;/li&gt;
&lt;li&gt;Is the metric cost per verified successful task, rather than tokens removed from one step?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Compression can still be useful. The point is that local compression percentage is not a reliable substitute for end-to-end evidence.&lt;/p&gt;

&lt;p&gt;The full analysis, assumptions, formulas, and reproducible data links are here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://turaai.net/blog#token-saving-plugins-are-mostly-stupid-idea" rel="nofollow ugc noopener noreferrer"&gt;https://turaai.net/blog#token-saving-plugins-are-mostly-stupid-idea&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The open-source project is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Tura-AI/tura" rel="nofollow ugc noopener noreferrer"&gt;https://github.com/Tura-AI/tura&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I maintain Tura and wrote the linked analysis. This post was prepared with AI assistance and reviewed against the underlying benchmark data before publication.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>openai</category>
    </item>
  </channel>
</rss>
