Jake Tennant of ElevenLabs on Product and Growth Directions: Removing Fields Improves Retrieval Agent Accuracy More Than Prompt Tuning
ElevenLabs' internal operations team shared engineering experiences using the ElevenAgents agent. The core finding is that for retrieval agents, reducing redundant fields in the data schema yields greater accuracy improvements than any prompt tuning they have attempted. The author also introduces two specific practices: Salesforce picklist type injection and task verification.
Jake Tennant, who works on product and growth at ElevenLabs, introduced the company's operational experience with its internal ElevenAgents in a blog post. These agents cover sales, support, engineering, and product marketing teams; the company reports saving over 1,200 hours monthly and answering more than 5,000 questions while creating over 150 tickets.
However, what truly warrants attention from peers is not these numbers, but the engineering judgment provided by the author in the 'What We Learned' section. Tennant wrote that the greatest improvement in answer quality for their retrieval agents came from removing fields rather than adjusting system prompts. Every extra column or object field gave the model another opportunity to guess incorrectly; trimming the data schema down to a critical subset improved accuracy more than any prompt changes they had tried.
This finding creates tension with current mainstream prompt engineering approaches. Many teams default to fine-tuning at the prompt level, but Tennant's experience suggests that when agents rely on external data retrieval, the data structure fed into the model itself becomes a larger quality bottleneck. Fewer fields mean less room for the model to guess.
The author provides a specific implementation example: fields such as deal stage or account type in Salesforce are picklists, meaning a fixed set of valid values. If left to generate freely, the model might create a plausible-sounding option that does not exist in Salesforce. ElevenLabs' approach is to fetch the list of valid values at startup and inject them into the MCP tool's type definitions, ensuring the model can only choose from real options.