GeoAgent + QGIS tools + Claude (mock iface)¶
This notebook runs without QGIS using geoagent.testing mocks so you can try the agent in Jupyter.
In QGIS (Python console or plugin), use the real interface:
from qgis.utils import iface
from geoagent import for_qgis
from geoagent.core.config import GeoAgentConfig
agent = for_qgis(iface, config=GeoAgentConfig(provider="anthropic", model=MODEL))
agent.chat("List project layers.")
Requires pip install "GeoAgent[anthropic]" and ANTHROPIC_API_KEY.
In [ ]:
Copied!
%pip install -q "GeoAgent[anthropic]"
%pip install -q "GeoAgent[anthropic]"
In [ ]:
Copied!
import os
if not os.environ.get("ANTHROPIC_API_KEY"):
raise RuntimeError("Set ANTHROPIC_API_KEY")
MODEL = os.environ.get("ANTHROPIC_MODEL", "claude-sonnet-4-6")
import os
if not os.environ.get("ANTHROPIC_API_KEY"):
raise RuntimeError("Set ANTHROPIC_API_KEY")
MODEL = os.environ.get("ANTHROPIC_MODEL", "claude-sonnet-4-6")
In [ ]:
Copied!
from geoagent import for_qgis
from geoagent.testing import MockQGISIface, MockQGISLayer, MockQGISProject
project = MockQGISProject()
project.addMapLayer(MockQGISLayer("StudyArea", "/tmp/a.shp"))
iface = MockQGISIface(project=project)
agent = for_qgis(
iface,
project,
provider="anthropic",
model_id=MODEL,
fast=True,
)
resp = agent.chat("List the layer names in this project in a short bullet list.")
print(resp.answer_text)
print("tools:", resp.executed_tools)
from geoagent import for_qgis
from geoagent.testing import MockQGISIface, MockQGISLayer, MockQGISProject
project = MockQGISProject()
project.addMapLayer(MockQGISLayer("StudyArea", "/tmp/a.shp"))
iface = MockQGISIface(project=project)
agent = for_qgis(
iface,
project,
provider="anthropic",
model_id=MODEL,
fast=True,
)
resp = agent.chat("List the layer names in this project in a short bullet list.")
print(resp.answer_text)
print("tools:", resp.executed_tools)
In [ ]:
Copied!
from geoagent import for_qgis
import os
if not os.environ.get("ANTHROPIC_API_KEY"):
raise RuntimeError("Set ANTHROPIC_API_KEY")
MODEL = os.environ.get("ANTHROPIC_MODEL", "claude-sonnet-4-6")
agent = for_qgis(
iface,
provider="anthropic",
model_id=MODEL,
fast=True,
)
resp = agent.chat("List the layer names in this project in a short bullet list.")
print(resp.answer_text)
print("tools:", resp.executed_tools)
from geoagent import for_qgis
import os
if not os.environ.get("ANTHROPIC_API_KEY"):
raise RuntimeError("Set ANTHROPIC_API_KEY")
MODEL = os.environ.get("ANTHROPIC_MODEL", "claude-sonnet-4-6")
agent = for_qgis(
iface,
provider="anthropic",
model_id=MODEL,
fast=True,
)
resp = agent.chat("List the layer names in this project in a short bullet list.")
print(resp.answer_text)
print("tools:", resp.executed_tools)