Getting started
Your first spatial query
Pair a GIS skill with a tool and watch the agent answer.
The configuration works by pairing skills (what the agent knows about your data) with tools (how it fetches that data). Here is the whole loop.
Write a skill
Skills are markdown in ~/.hermes/skills/gis/. This one teaches the agent
how your zoning layer is laid out:
# Zoning lookups
The zoning layer is `Zoning/FeatureServer/2`. The district code field is
`ZONE_CODE`; height limits are `HEIGHT_LIMIT` (feet). For anything
address-based, use the `esri.query_features` tool with an
`intersects(...)` clause. Always cite the district code in the answer.Ask a question
hermes
› which zoning district covers 1234 J Street?What happens
The skill tells the agent which layer and field to use, so it emits a single tool call:
<tool_call>
{"name": "esri.query_features",
"arguments": {"layer": "Zoning/2",
"where": "intersects('1234 J Street')"}}
</tool_call>The esri tool runs the query with your ArcGIS token, returns the matching
feature, and the agent answers, citing ZONE_CODE because the skill said
to.
The first time you correct the agent on your schema, its learning loop can fold that correction back into the skill. See Memory and the learning loop.