opengeos/GeoAgent
A multimodal AI agent for geospatial data analysis and interactive visualization
What it solves
GeoAgent provides a shared AI agent layer for geospatial Python packages, live map widgets, and QGIS plugins. It eliminates the need for each geospatial library to build and maintain its own individual agent stack by centralizing common features like tool binding, provider configuration, and safety hooks.
How it works
Built on Strands Agents, GeoAgent acts as a facade that binds large language models (LLMs) to geospatial contexts (such as a QGIS session or a leafmap object). It uses a @geo_tool decorator to turn Python functions into structured tools with metadata. It provides specialized factories (e.g., for_leafmap, for_qgis) to automatically bind sets of tools to specific map environments. It supports a wide array of model providers including OpenAI, Anthropic, Google Gemini, and local models via Ollama or vLLM.
Who it’s for
It is designed for geospatial developers who want to integrate AI agents into their libraries or applications, and for GIS users who want to control map canvases and perform geospatial analysis using natural language.
Highlights
- Broad Provider Support: Compatible with OpenAI, Anthropic, Gemini, Bedrock, OpenRouter, LiteLLM, vLLM, and Ollama.
- Multi-Platform Integration: Works across QGIS,
leafmap,anymap, and browser-based MapLibre apps. - Safety Mechanisms: Includes confirmation hooks to pause the agent before executing destructive or expensive operations.
- Multimodal Capabilities: Supports vision-based workflows, allowing users to paste images or take screenshots of the map canvas for the AI to analyze.
- Extensible Tooling: Provides built-in tool surfaces for QGIS project management, NASA OPERA data search, and general map navigation.
Related
- Project
- Project
- Project
- Project
- Project