<?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>DEV Community: Vinny Barreca</title>
    <description>The latest articles on DEV Community by Vinny Barreca (@phantom-byte).</description>
    <link>https://dev.to/phantom-byte</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3962211%2F52789747-268f-4ecf-a2e9-76d76b3978e9.jpg</url>
      <title>DEV Community: Vinny Barreca</title>
      <link>https://dev.to/phantom-byte</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/phantom-byte"/>
    <language>en</language>
    <item>
      <title>Your Agent's Tool Descriptions Are Costing You 66% Accuracy</title>
      <dc:creator>Vinny Barreca</dc:creator>
      <pubDate>Tue, 15 Sep 2026 18:56:49 +0000</pubDate>
      <link>https://dev.to/phantom-byte/your-agents-tool-descriptions-are-costing-you-66-accuracy-74f</link>
      <guid>https://dev.to/phantom-byte/your-agents-tool-descriptions-are-costing-you-66-accuracy-74f</guid>
      <description>&lt;p&gt;A $4 experiment rewrote three strings per MCP tool and moved SQLite success from 34% to 100%. The model never changed.&lt;/p&gt;

&lt;p&gt;The failure was never the model.&lt;/p&gt;

&lt;p&gt;SQLite strict success rate: 34%. That is a failing grade on a benchmark nobody was running.&lt;/p&gt;

&lt;p&gt;Toolmetry, an open-source project that measures how well agents use MCP tools, took existing MCP server tool descriptions and had an LLM rewrite them. The strings that tell an agent what each tool does and how to call it. That was the entire change.&lt;/p&gt;

&lt;p&gt;The model did not change. The harness did not change. Only the descriptions changed.&lt;/p&gt;

&lt;p&gt;After the rewrite, SQLite hit 100%. Total API spend for the whole experiment was $4.&lt;/p&gt;

&lt;p&gt;This is an interface problem, not a model problem. Tool descriptions are the contract between your agent and the outside world. When the contract is ambiguous, the agent breaks the terms every single time.&lt;/p&gt;

&lt;p&gt;The three failure archetypes&lt;/p&gt;

&lt;p&gt;Toolmetry found three patterns that were killing agent success rates before the rewrite.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Wrong tool confusion. Two tools in the same MCP server have overlapping descriptions, so the agent picks Tool A when it needs Tool. B. It looks like a bug. It is bad documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ritual extra calls. The agent makes a call it believes is a prerequisite, burning tokens and latency for nothing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deprecated parameter patterns. The description references parameters or usage patterns that no longer work. The agent follows the instructions faithfully and produces errors.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each one is fixable with better words. Not better models. Better words.&lt;/p&gt;

&lt;p&gt;Wrong tool confusion in practice&lt;/p&gt;

&lt;p&gt;Before the rewrite, the SQLite server's read and write query tools were described almost identically. Most failures were the agent calling a read tool when it needed a write tool.&lt;/p&gt;

&lt;p&gt;Two tools that sound similar to a human sound identical to an agent. After the rewrite, the query tool description stated explicitly what it could and could not do. Success jumped to 100%.&lt;/p&gt;

&lt;p&gt;If two tools could be confused by a smart human, they will be confused by your agent.&lt;/p&gt;

&lt;p&gt;Ritual extra calls and the implied prerequisite&lt;/p&gt;

&lt;p&gt;Agents were calling a list_tables function before every query because the query tool's description said "first enumerate available tables." Implied, not required.&lt;/p&gt;

&lt;p&gt;Before:&lt;/p&gt;

&lt;p&gt;Tool: query&lt;/p&gt;

&lt;p&gt;Description: Execute an SQL query against the database. First enumerate&lt;br&gt;
available tables using list_tables, then construct your query against&lt;br&gt;
those tables.&lt;/p&gt;

&lt;p&gt;The agent called list_tables before every query, even when it already knew the schema from the previous call. Two extra API calls per interaction, doubled latency, zero benefit.&lt;/p&gt;

&lt;p&gt;After:&lt;/p&gt;

&lt;p&gt;Tool: query&lt;/p&gt;

&lt;p&gt;Description: Execute an SQL query against the database. Available tables:&lt;br&gt;
users, orders, products, invoices, and audit_log. Use standard SQL syntax.&lt;br&gt;
This tool handles both reads and writes. No need to call list_tables first.&lt;/p&gt;

&lt;p&gt;The ritual calls stopped immediately. The table list was right there in the description. No extra round trips, no wasted tokens.&lt;/p&gt;

&lt;p&gt;Remove implied prerequisites from your descriptions. If a step is not required, do not imply that it is.&lt;/p&gt;

&lt;p&gt;Deprecated parameters&lt;/p&gt;

&lt;p&gt;The git server had deprecated parameter references baked into its descriptions. Agents were passing old parameter names and getting failures. The documentation was lying about how the API worked.&lt;/p&gt;

&lt;p&gt;After the rewrite, all parameters matched current names. Success went from 75% to 96.7%.&lt;/p&gt;

&lt;p&gt;Version your tool descriptions. When you change an API, update the description in the same commit. A stale description is worse than no description. &lt;/p&gt;

&lt;p&gt;With no description, the agent guesses. With a stale description, the agent confidently does the wrong thing.&lt;/p&gt;

&lt;p&gt;The before and after numbers&lt;/p&gt;

&lt;p&gt;Server  Before  After   Improvement&lt;/p&gt;

&lt;p&gt;SQLite  34.0%   100%    +66.0 points&lt;br&gt;
Memory  61.8%   96.4%   +34.5 points&lt;br&gt;
Git 75.0%   96.7%   +21.7 points&lt;/p&gt;

&lt;p&gt;$4 of API spend for the entire run.&lt;/p&gt;

&lt;p&gt;Now compare that against upgrading to a frontier model. A cheaper model with broken descriptions still fails. An expensive model with broken descriptions still fails. The model is not the bottleneck. The interface is.&lt;/p&gt;

&lt;p&gt;Audit your MCP server in under an hour.&lt;/p&gt;

&lt;p&gt;This costs less than $5 in API spend and takes about an hour.&lt;/p&gt;

&lt;p&gt;List every tool in your MCP server and print each description.&lt;/p&gt;

&lt;p&gt;Read pairs of descriptions side by side. If two could be confused by a smart human, they will be confused by the agent.&lt;/p&gt;

&lt;p&gt;Check for implied prerequisites. Does any description say "first do X" when X is not actually required?&lt;/p&gt;

&lt;p&gt;Check for deprecated parameters. Diff your current API against the description text.&lt;/p&gt;

&lt;p&gt;Rewrite the descriptions with an LLM. Feed it the tool name, the current description, and the real API signature. Ask for a clear, non-overlapping description.&lt;/p&gt;

&lt;p&gt;Re-run your agent test suite and compare success rates.&lt;/p&gt;

&lt;p&gt;Toolmetry ships three commands to automate the loop: measure, optimize, and proxy. The proxy rewrites descriptions on the fly, so you can test improvements before committing anything.&lt;/p&gt;

&lt;p&gt;Why this matters more than model selection&lt;/p&gt;

&lt;p&gt;This is the fourth data point in a pattern that keeps repeating. Three separate papers already showed orchestration design beating model selection by 10x on token cost. &lt;/p&gt;

&lt;p&gt;Structural scaffolding reduces failure rates under a fixed model. Graph-structured context beats flat text. And now tool descriptions alone move a server from 34% to 100%.&lt;/p&gt;

&lt;p&gt;How you structure the agent's control flow, context, and tool interfaces matters more than which model you use. That is a direct challenge to the scaling; all you need is orthodoxy.&lt;/p&gt;

&lt;p&gt;The competitive advantage is shifting from model ownership to orchestration design. The people who understand that will win. The people who keep throwing bigger models at broken interfaces will keep getting 34% success rates and wondering why.&lt;/p&gt;

&lt;p&gt;The bottom line:&lt;/p&gt;

&lt;p&gt;Your tool descriptions are three strings per tool. They cost nothing to write and everything to get wrong.&lt;/p&gt;

&lt;p&gt;Wrong tool confusion, extra ritual calls, and deprecated parameter patterns exist in every MCP server that has never been audited. They exist in yours.&lt;/p&gt;

&lt;p&gt;Audit them today. It takes an hour. It costs $4. It might double your agent's success rate.&lt;/p&gt;

&lt;p&gt;Originally published at &lt;a href="https://articles.phantom-byte.com/tool-descriptions-cost-66-accuracy.html" rel="noopener noreferrer"&gt;articles.phantom-byte.com&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://phantom-byte.com" rel="noopener noreferrer"&gt;PhantomByte&lt;/a&gt; teaches you to build real AI infrastructure: local AI stacks, autonomous agents, multi-agent orchestration, and custom tools. Step-by-step tutorials you download, follow, and deploy.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>agents</category>
      <category>programming</category>
    </item>
    <item>
      <title>The $750 Copilot: Why Your AI Dependency Just Got a Price Tag</title>
      <dc:creator>Vinny Barreca</dc:creator>
      <pubDate>Mon, 01 Jun 2026 07:44:18 +0000</pubDate>
      <link>https://dev.to/phantom-byte/the-750-copilot-why-your-ai-dependency-just-got-a-price-tag-39jn</link>
      <guid>https://dev.to/phantom-byte/the-750-copilot-why-your-ai-dependency-just-got-a-price-tag-39jn</guid>
      <description>&lt;p&gt;Your GitHub Copilot bill just went from $29 to $750/month.&lt;/p&gt;

&lt;p&gt;Microsoft taught developers to "vibe code" (write less and let AI do the work).&lt;/p&gt;

&lt;p&gt;Build entire workflows around that subsidy.&lt;/p&gt;

&lt;p&gt;Then they installed a toll booth.&lt;/p&gt;

&lt;p&gt;This is not a pricing change. It is a dependency trap snapping shut.&lt;/p&gt;

&lt;p&gt;The $750 Copilot: the first honest price tag in a subsidized industry. &lt;a href="https://articles.phantom-byte.com/the-750-copilot-why-your-ai-dependency-just-got-a-price-tag.html" rel="noopener noreferrer"&gt;Full breakdown and the local-first alternative&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>opensource</category>
      <category>news</category>
    </item>
  </channel>
</rss>
