AI research agents are becoming the workhorse of AI-assisted scientific discovery: an agentic system that has access to data sources, and is able to conduct long-form research to provide the user with a response, grounded in exhaustive and comprehensive research, without compromising credibility. However, agentic systems are complex systems, in order to iteratively improve our systems, we need to introduce rigorous evaluations at each step of the way.
In this blog, I want to dissect how I've contributed to AI research assistants in the past through step-wise improvements, guided by evaluation metrics and clear targets. I'll take an example system, a Materials Research Agent, to illustrate the methodology, which I like to call Evaluation Driven Agentic Design (EDAD)1. The system is built with Google's Agent Development Kit (ADK), a simple-to-understand framework for building agentic systems, and accesses a structured DB with thousands of materials to surface diverse material solutions to the user's query, without hallucinations.
Establishing metrics with clear targets
The first step is to agree on the key metrics that will track the agent's performance, as well as to agree on what success looks like.
For the example research agent, it's paramount that:
- The agent's responses contain a diverse number of materials and ingredients. Researchers are interested in having a variety of alternatives at hand to contrast solutions against each other, which lets them choose the best for their use-case.
- The agent's responses cite a wide variety of sources. Researchers need a variety of sources; citations coming from multiple journals will provide a more holistic answer.
- The agent's responses contain 0 hallucinations. Researchers are deep critical thinkers, if there is one hallucination, it might undermine the credibility of the agent's responses.
The three requirements above can be translated into clear metrics, with clear targets:
- Materials diversity: The average number of unique materials and ingredients per answer returned by the agent. The target will be 8 materials per response.
- Source diversity: The average number of unique sources returned by the agent. For enough diversity, the target will be a minimum of 5 unique sources per response.
- Hallucinated citations: The agent is instructed to ground its statements against citations. If a citation is made up, it's a strong proxy for parts of the answer to be made up. The target will be 0 hallucinated citations per response.
To benchmark agentic performance along the way, let's use an evaluation dataset of several representative tasks and assess whether these agentic designs meet the above targets.
Single Agent System
Single-agent architecture: one ResearchAgent takes the task, queries the materials database through a SQL toolset, and returns a grounded research response in a single pass.
The baseline design is a single agent with access to tools for querying a SQL database. The tools to query the DB are grouped with the SQLToolSet ADK object. From recent benchmarks, agents have proven to be very good at code generation2, so there's no need to create vector stores or the like, as the agent will perform well traversing a structured database purely with SQL queries. In this architecture, a single agent is in charge of querying the database for materials, as well as returning a grounded response to the user.
This design is ready to be benchmarked against the evaluation dataset across the metrics we defined. This is done across multiple thinking budgets (including dynamic thinking) to see if the single agent architecture can improve performance by just increasing its inference budget.
Left: materials and unique sources retrieved per question across thinking budgets, shown against the target for each. Right: rate of responses containing fabricated citations & rate of citations that were fabricated.
There are two things to note: (1) the baseline system is below target in source diversity, regardless of thinking budget, and (2) the baseline system is happy to generate made-up URLs to back some of the responses. This system does not meet the design criteria.
Addressing hallucinations with callbacks & structured output
Single-agent architecture with structured output & callbacks: the callback is represented as a diamond that revises the single agent's response for hallucinations.
The first priority for the next system evolution is addressing hallucinations; a research agent must be trustworthy first and foremost. A first, easy win, is to evolve the baseline system's design to return structured outputs that contain the ResearchFinding, including the materials and their traceable URLs. The structured output gives the system direct access to source URLs without the need to parse them from the agent's text response.
With the structured output, the next evolution of the system is to use ADK's handy callbacks3. The system will use an after_agent_callback that is able to access source URLs, flag hallucinated ones, and make a call to a fast LLM to return a response that does not contain any content or materials referencing the hallucinated source: the redact_hallucinations_callback.
By introducing structured outputs and the redact_hallucinations_callback, the system is able to introduce a near-deterministic check that removes all hallucinations when evaluated against the evaluation set of representative research tasks!
Responses containing a fabricated citation and citations that were fabricated, with and without the redaction callback and structured output.
Addressing source diversity
Multi-agent architecture: a cohort of ResearchAgents queries the materials database in parallel through the SQL toolset, and a SynthesisAgent merges their findings into one grounded response.
The second priority is addressing the issue of insufficient materials and sources per response. The system should surface numerous unique materials coming from varied reputable sources, to support researchers' decision making process.
There are generally two alternatives to improve the system (apart from shopping for other models):
- Prompt engineering: incentivize the agent to spend more time and resources interrogating the DB.
- System changes: increase the number of agents conducting the research, therefore performing more depth-first searches across the space defined by the DB.
In EDAD, improvements in performance should be easy to trace to changes to the system. With prompt engineering, it's not easy to trace which sections in the prompt are driving improvements. On the other hand, system changes that lean on the agentic framework of choice can be easy to trace and relate directly to performance improvements.
Specifically, SequentialAgent can be used to decouple the research from the synthesis & presentation phase, and ParallelAgent to easily increase the number of agents performing the research task4. At this point, the system has evolved into a Multi-Agent System (MAS), as defined below.
This change now makes it possible to track the direct relationship between the number of agents and the comprehensiveness of the system's response. With just 3 research agents, it is possible to surpass the targets.
Materials and unique sources per question, plus ingredient and source diversity scores, for the single agent alongside the three-agent cohort.
Compromising performance with cost & latency
Now that the system is able to meet the stated requirements, it's time to think about two basic metrics that will affect both the user's experience and the ability to host the model sustainably: cost & response latency (i.e. Time to First Token).
One can approach this optimization by setting some targets:
- Cost: if this were rolled out to, say, 100 lab users, the cost of this agent should not exceed USD 500 per month; if those users use it on average 3 times a week, with 2 interactions every time, the ceiling is $0.21 per response.
- Latency: multi-agent systems have leniency of taking between 30-180s Time to Last Token (TTLX)5. Given that this system is on the simpler side, it should return its response in no longer than 60s.
For simplicity, the two main levers to pull are number of agents, and the thinking budget of each agent. It is possible to map the behavior of the system as both of these levers are increased.
Retrieval per question, cost per question and sequential latency, across the number of parallel research agents (top) and across thinking budgets for the three-agent cohort (bottom).
This type of metrics-driven view makes it easy to spot the trade-offs: 3 agents let the system stay within target both in cost & latency, but also in performance. When 3 agents are locked in and the thinking budget is dialed up, it becomes clear that while it doesn't affect system performance, it does affect cost & latency.
This analysis makes it possible to settle on the following system design, validated against the evaluation dataset: a multi-agent system using 3 research agents and 1 synthesis agent, with 0 thinking budget, is able to return a comprehensive, trustworthy research response to users, while doing so in less than 60s for a relatively affordable price.
Conclusion
Evaluation Driven Agentic Design can be a very powerful tool for evolving a baseline agent design through principled, evaluation-driven improvements, resulting in a performant agentic system that is ready for initial deployment.
Footnotes
-
This is akin to Test Driven Design (TDD) but for designing agents. back
-
See AI Analysis Index: Coding Agents for a comprehensive review of agent code generation benchmarks and agentic system capabilities. back
-
See the full ADK callbacks documentation for implementation details and advanced usage. back
-
For more on ADK agent patterns see https://adk.dev/agents/. back
-
See Wang, M., Yue, Y., Li, S., Zhou, Y.E., Wang, C., & Huang, J. (2026). Benchmarking LLM Serving Systems for Agentic AI Workloads with XPerf. arXiv:2608.20370v1 [cs.DC], University of Illinois, Urbana-Champaign & IBM Research. Both authors contributed equally. https://arxiv.org/html/2608.20370v1 — License: CC BY 4.0. back