From metrics to insights
Move the agent from answering single-metric lookups to delivering the multi-metric context business users actually want.
A business user rarely wants one number in isolation. "How's revenue?" really means "revenue, its trend, and what's driving it." A good analytics agent composes several metric queries into a coherent read — and the tool-use loop makes that natural, because the model can call query_metrics several times before answering.
What 'insight' looks like
Ask "which channels are worth the money?" and a strong agent will pull cac, aov, and new_customers by channel, then reason across them: Organic is both the cheapest channel to acquire from and the biggest source of new customers — even though its shoppers spend the least per order — while Paid Search and Social pay over a thousand dollars per new customer. That's an insight — a comparison and a recommendation — not just a table.
User: Which channels give us the best return?
Agent → query_metrics(cac, aov, new_customers by channel)
Agent: Organic is your most efficient channel — lowest CAC (~$88) and the
most new customers (573), though its buyers spend the least per
order (AOV ~$86). Email is the next cheapest at ~$359 per customer.
Referral shoppers spend the most per order (AOV ~$93) but cost ~$425
to acquire — mid-pack, behind Email. Paid Search (~$1,405) and
Social (~$1,141) are your expensive acquisition channels. Consider
shifting budget from Paid Search and Social toward Organic and Email.Guiding the agent toward insight
- Encourage comparison in the prompt. "Add one line of business interpretation when useful" nudges it past bare tables.
- Expose the right metrics. Insight comes from relating metrics — revenue with CAC, orders with AOV. A rich metric catalog enables richer answers.
- Let it make several calls. Because the loop allows multiple tool calls per turn, the model can gather everything it needs before speaking — don't constrain it to one query.
Even when the agent editorializes ("Organic is your best channel"), every number underneath came from the governed layer. The interpretation is the model's; the facts are the layer's. That's the right division of labor for a trustworthy copilot.