Finding Earth Engine Data Doesn’t Have to Be a Struggle: Let AI Agents Do the Heavy Lifting
By Eric Abelson & Kristopher Overholt
(co-written with Kristopher Overholt, Developer Relations Engineer, Google)
Overview
Google Earth Engine (GEE) is a powerhouse for working with remote sensing data, but if you’re not already familiar with its ecosystem, a simple task such as finding exactly the right dataset that you’re looking for can be overwhelming. What if, instead of scanning through collection pages and deciphering cryptic dataset descriptions, you could just describe what you’re trying to study and have AI agents guide you to the right data?
But what actually is an AI agent in this scenario? Is it a language model responding to simple instructions or is made up of a more complex system? Can it reason through challenging geoscience research tasks, can it use tools to talk to external data sources, or can it explore and learn insights from the data the way a researcher might?
The next few sections will walk through how we built an agentic system like this with ADK, including: how the agents are defined, how the sub-agents coordinate and work together, and how such agents can support researchers to help them find the perfect dataset for them (needle) within the mountain of map layers in Earth Engine (haystack).
tl;dr (too long; didn’t research)
Navigating the Earth Engine catalog requires domain expertise in the geosciences and the ability to extract meaning from metadata. It’s not just confusing for developers who are just starting with AI agents and generative AI; even long-time experts can spend a lot of time during the early stages of dataset exploration.
As a researcher, there were many times that I knew where to look for clues to find my next golden dataset, but I always encountered developer friction: I would find amazing spatial datasets with resolutions that I couldn’t use, I encountered naming schemes that felt like secret codes, and overall, I had the sense that I needed deeper specialization in satellite metadata just to get started exploring it.
Here, we designed a multi-agent system using the free and open-source Agent Development Kit (ADK) . This allowed us to describe the research goals in plain language via prompts and system instructions and get out a comprehensive response that includes a curated shortlist of data layers, plus a summary of their coverage, resolution, and usage considerations.
Building an AI Team to explore Earth Engine data
We designed our agentic system around three core research workflows (and we even left some ideas for future versions as well!): 1) interpreting the user’s research needs, 2) finding relevant datasets, and 3) summarizing those datasets in a way that highlights their utility and tradeoffs. We used the ADK to do the heavy lifting, including agent orchestration, tool use, and session management. And we started with the multi-agent team example in the ADK documentation and further customized the agent’s reasoning instructions and tools for our research tasks.
(Agentic) Tools of the Trade
To power our agents, we gave them access to a few key tools — small, purpose-built Python functions for querying the Earth Engine catalog, filtering results, and pulling metadata fields. These tools are designed to mimic the kinds of steps a user would normally take in the GEE Code Editor, Client Libraries, or Catalog but instead helps them build their own agent in a structured and modular way, so that the agent can make us of these tools while we’re talking and exploring the data along with it.
search_gee_catalog(query)
This tool constructs a search URL to the Earth Engine dataset catalog, based on a user’s input query, and returns the search results to the agent. It allows the agent to simulate what a human might do when browsing the official GEE datasets search page.
google_search()
This google_search tool enables our agent to perform web searches using Google Search to augment information from the GEE data catalog and map layers. By the way, you can use any search tool that works with ADK, LangChain, or other agent frameworks!
fetch_webpage_text(url)
This helper tool fetches the full text content of a provided URL, of which the agent can use to understand key characteristics such as spatial resolution, date ranges, or intended use cases.
Let’s Go (Agentic) Team!
Each agent was instantiated using the ADK’s Agent class, with a clear and descriptive name, scope, instructional prompt, and access to the tools that it needs. This allows the root agent to assign tasks intelligently and stay focused on its job. And more importantly, it helps the root agent understand 1) which tools it has available, 2) how it should use a given tool, and 3) an overarching goal that it can use to steer the team of agents towards a common goal.
root_agent
The root agent acts as the system’s coordinator. It interprets the user’s query, delegates tasks to the search and web agents, and brings the pieces back together into a structured output that we defined as researchers.
gee_search_agent
This agent is in charge of exploring the Earth Engine data catalog based on the researcher’s needs. It passes search queries to the search_gee_catalog tool and helps researchers discover and assess candidate datasets.
web_search_agent
This agent conducts a broader web search using the google_search tool to find related context, existing research, and metadata. This is especially helpful when researchers are trying to evaluate if a layer will meet their research needs.
web_fetch_agent
This agent retrieves the actual content for specific dataset pages or other web resources using the fetch_webpage_text tool. It hands that content off to other agents (or back to the root agent) for further summarization. It’s designed to retrieve text from any URL without assumptions about the web page’s syntax, structure, frontend frameworks, or other rendering details.
A (Very Brief) Guided Tour of Earth Engine
Once the system is up and running, users can just explain their research problem and goals such as, “What are the monthly drought indices for Africa?” or “Help me find layers that can be used to understand how human generated light at night influences nocturnal animal movement behavior”, and the agent researcher team goes to work, helping us at each step along the way.


