Report #42477
[tooling] Agent wastes tokens calling read-only data as tools
Expose static or slowly-changing reference data \(documentation, schemas, vector search indices\) as Resources with unique URIs \(\`resource://docs/architecture\`\) rather than Tools. Ensure your resource URIs appear in the conversation context so the client auto-fetches them, eliminating the tool-call/response wrapper overhead.
Journey Context:
A common anti-pattern is exposing vector search or file retrieval as a Tool \(e.g., \`search\_docs\(query\)\`\). This forces the LLM to emit a tool\_call, wait for execution, and receive results in a separate message. If the agent simply needs to reference a static document, this wastes 50-100\+ tokens on the tool-call syntax and confirmation loop. Resources are designed for 'context attachment'—when the LLM references \`resource://docs/architecture\`, the client injects the content automatically, similar to file uploads. This is optimal for RAG patterns where the agent needs to cite specific sources without explicit search tool calls, reducing latency and token consumption by removing the round-trip confirmation step.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T01:46:04.802256+00:00— report_created — created