Building an Agentic Scientific Research Team with Google’s Agent Development Kit
(This post was co-written by and cross-posted with Kristopher Overholt, Developer Relations Engineer, Google)
Overview
The landscape of scientific knowledge and publications is vast and ever-expanding. Identifying relevant methodologies used by other researchers before starting a new project is crucial but can be incredibly time-consuming. Can AI agents help streamline this process? Let’s use Google’s new open-source Agent Development Kit (ADK) to build a multi-agent research team to automate parts of this scientific literature review-and-extract workflow!
tl;dr (too long; didn’t research)
The literature review process isn’t just about finding papers; it involves iterative searching, reading, extracting specific information (like methodologies), and synthesizing findings. This can be especially time consuming because the literature review process is comprised of many tasks that require decisions at multiple steps. This makes simple automation hard, but it’s a perfect fit for a multi-agent system where specialized agents can collaborate and work together to solve complex problems.
Building an AI team
We designed an agentic scientific research team: a Supervisor Agent (root_agent) to coordinate, a Search Agent (search_agent) to find papers on bioRxiv, and a Methodologies Agent ( methodologies_agents) to download, read, and extract methods from those papers.
Tools of the trade
To give our agents capabilities to interact with the real world (and all the latest research), we wrote Python functions that our agent will be able to use as tools. Thanks to open-source software, we can avoid reinventing the wheel by using biorxiv_retriver to search for papers, requests to download papers, and pymupdf to read the PDF files.
Protip: Clearly written and descriptive docstrings, descriptions, and instructions along with type hints and well-designed functions are crucial for the agent’s LLM to be able to use these tools effectively. Here are the tools we defined for searching bioRxiv, downloading papers, and loading PDFs:
# Tool to search publications on bioRxiv
def search_biorxiv(query: str):
"""Search for scientific publications on bioRxiv"""
br = BiorxivRetriever()
papers = br.query(query)
return papers
# Tool to download papers from bioRxiv
def download_biorxiv_paper(biorxiv_url: str):
"""Download a paper from bioRxiv"""
url = biorxiv_url + ".full.pdf"
r = requests.get(url, allow_redirects=True)
open("paper.pdf", "wb").write(r.content)
return("Downloads complete!")
# Tool to load the downloaded PDF content
def load_pdf():
"""Load downloaded PDF file as text"""
doc = pymupdf.open("downloads/paper.pdf")
# … (reads text page by page) …
return(" ".join(out))Let’s go!
With the tools defined, we created the agents based on the class that we loaded using from google.adk.agents import Agent. Each agent has a specific description (so the supervisor knows when to delegate) and instruction prompt guiding its LLM brain.


