Tool calling
How the agent calls the GIS tools with the <tool_call> format.
The GIS tools are ordinary Hermes tools. Hermes declares them to the model
inside <tools>...</tools> and the model calls one by emitting a
<tool_call> object in a single assistant turn, with no external parsing.
The format
<tool_call>
{"name": "esri.query_features",
"arguments": {"layer": "Zoning/2",
"where": "ZONING = 'C-3'",
"out_fields": ["APN", "ADDRESS", "HEIGHT_LIMIT"]}}
</tool_call>The tool runs, and its structured result is fed back to the model as tool output before it writes the final answer.
Typed schemas
Each GIS tool ships a JSON schema, so the model knows the argument shape.
That is what lets the agent fill in out_fields and a valid where clause
without you spelling out the API.
Toolsets
Related tools are grouped into a toolset. The GIS toolset bundles esri,
open-data, and postgis; toggle the whole set or individual tools with
hermes tools.
Hybrid reasoning helps here. For a multi-step question, the agent can plan
in a <think> block, then issue the tool calls it decided on.