$ show MEKXH/golem
Golem is a production-grade, self-evolving GeoAI agent purpose-built for geospatial (GIS) workflows. It bridges natural language with professional GIS tooling (GDAL, PostGIS) and operates as a standalone application with three access modes: a terminal TUI (Bubbletea), an embedded WebUI (Vue.js), and multi-channel IM bots (Telegram, Discord, Slack, Feishu, WhatsApp, QQ, DingTalk, MaixCam). The architecture is a modular monolith in Go, centered around an agent loop that processes messages, executes tools via a guarded registry, enforces policy (strict/relaxed/off), and supports human-in-the-loop approval. It includes a message bus for decoupling, a session manager for persistent conversation history, and a context builder that dynamically composes system prompts from workspace files with cache invalidation. The system also features a learned pipeline reuse mechanism, a spatial SQL codebook with verified PostGIS patterns, and a skill telemetry system for self-improvement. While primarily an application, it incorporates data-intensive components like the geo codebook and pipeline learning, giving it a hybrid character with a strong application dominance.
The LLM identified 5 files worth highlighting for reuse:
Implements an asynchronous message bus using Go channels for decoupling inbound/outbound message routing between channels and the agent loop. Provides a clean, reusable pattern for event-driven communication in any multi-component system.
Tool registry with a guard interceptor that enforces policy (strict/relaxed/off), triggers approval workflows, and writes audit logs before tool execution. This separation of concerns is reusable for any agent tool system requiring governance and observability.
Loads and manages a library of 40+ verified PostGIS query patterns with parameterized templates, variables, tags, and success rates. Demonstrates a reusable pattern for domain-specific SQL knowledge bases that can be applied to other spatial or non-spatial domains.
Full HTTP SSE client for the Model Context Protocol with endpoint discovery, retry with exponential backoff, and candidate message path aliasing. A self-contained, reusable component for integrating any MCP-compliant tool server.
Dynamically constructs system prompts from workspace files (skills, memory, geo codebook, etc.) with caching and file-change-based invalidation. Demonstrates a reusable pattern for document-aware agent context assembly.