我看到 GeoAgent 的时候,脑子里冒出来的不是一个很宏大的问题。
不是“GIS 厂商是不是要被 Agent 干掉”。
也不是“自然语言会不会替代所有地图软件界面”。
我想到的是一个特别小的 QGIS 场景。
你打开一个城市建筑图层,里面有 height 字段。你选中一片区域的建筑,然后对右侧聊天窗口说:
“把这些建筑按高度分级着色,低层用浅绿,中层用橙色,高层用红色。”
以前这件事不难,但也不算一句话。
你要打开图层样式,找 graduated renderer,选字段,设分类数量,调色带,应用。要是想更自动化一点,还得写 PyQGIS 脚本。
如果只是问普通大模型,它大概率会告诉你步骤,或者给你一段脚本。
但 GeoAgent 这个方向真正有意思的地方在于:它不只是回答你怎么做,它试图知道你现在 QGIS 里有什么,然后把操作接回 QGIS。
这就不一样了。
因为地图软件一旦能“听懂当前项目”,聊天窗口就不再只是一个说明书入口。
它开始靠近操作界面本身。
这次先说清楚:我还没做本机完整实测
先把边界摆在前面。
这篇不是 GeoAgent 的本机评测。我没有在自己的 QGIS 环境里完整安装插件、跑项目、验证每个工具调用。
所以我不会写“我实测它已经多稳”“它可以替代某某软件”这种话。
我这篇只做一件事:基于 GeoAgent GitHub、官方文档和 QGIS 插件文档,拆它为什么值得 GIS 从业者盯一下。
截至 2026 年 5 月 27 日,opengeos/GeoAgent 在 GitHub 上是一个 MIT 协议的 Python 开源项目,定位是 geospatial data analysis 和 interactive visualization 的 multimodal AI agent。仓库 topics 里就有 qgis 和 qgis-plugin。
更关键的是它的 QGIS 插件 OpenGeoAgent。
文档里说得很直接:它给 QGIS 增加一个 dockable、project-aware 的 AI assistant。
注意这里的关键词不是 AI assistant。
而是 project-aware。
它不是漂在 QGIS 外面的聊天框。
它要知道当前项目。
普通 AI 问答和 GeoAgent 差在哪
很多人第一次听到“QGIS + AI”,会以为就是在软件旁边放一个 ChatGPT。
你问:
“QGIS 怎么按字段分级渲染?”
它答:
“第一步,右键图层;第二步,打开属性;第三步,选择 Symbology。”
这当然有用,尤其对新手。
但它还不算空间 Agent。
因为它没有进入你的工作现场。
它不知道你当前项目有几个图层。
不知道哪个是 active layer。
不知道你选中了哪些要素。
不知道地图画布现在缩放到哪。
也不知道你这个字段到底叫 height、floors,还是 building_h。
这就像你打电话问朋友怎么修电脑,朋友说得很耐心,但他看不到你的屏幕。
GeoAgent 想解决的是这个问题。
它的 QGIS 工具面里,文档列出了一批很具体的能力:读取项目状态、列出图层、获取 active layer、检查图层字段、读取选择集、缩放到图层或选中要素、添加矢量/栅格/XYZ 图层、运行 QGIS Processing algorithm、打开属性表、保存项目。
这些词都不性感。
但它们非常 GIS。
因为真实的 GIS 操作,从来不是“地图”两个字。它是一堆项目状态、图层树、字段、选择集、坐标系、范围、样式、处理工具、输出文件缠在一起。
AI 如果进不去这堆上下文,它就只能当老师。
进去了,才可能当助手。

我最在意的是选择集
在这些功能里,我最在意的不是聊天,也不是截图。
是选择集。
做 GIS 的人都知道,选择集是一个很微妙的东西。
它不是完整数据。
也不是纯粹的查询条件。
它更像用户刚刚做出的一个判断。
我框选了一片建筑。
我筛出了人口大于 10000 的地块。
我只选中这个风险区里的学校。
这些选择背后有人的意图。
如果 Agent 能读取 selected features,它就不再只是面对一个抽象图层,而是面对用户刚刚在地图上指出来的那一部分现实。
这点很重要。
因为很多 GIS 需求一开始都不是完整自然语言。
用户经常是先在地图上点一点、框一框、缩放一下,然后才说一句:
“就这些,帮我统计一下。”
“这几个点周边 500 米缓冲一下。”
“把这片按高度重新分级。”
“这个范围内找一下最近的避难场所。”
如果 AI 只听文字,它会丢掉一半上下文。
但如果它能同时读 QGIS 的图层、选择集和画布状态,它就能接住这种“人先用地图表达一半,剩下一半用话说”的工作方式。
这比纯聊天自然得多。
截图也不是装饰,它是地图现场证据
GeoAgent 插件文档里还有一个功能点:支持从 map canvas、选定地图区域、QGIS window 或屏幕区域捕获截图,并作为图像上下文给支持视觉输入的模型。
这个功能如果写成宣传语,很容易变成“多模态 GIS 助手”。
但我更愿意说得土一点:
它终于能看一眼你正在看的地图了。
GIS 里很多问题,光靠图层名和字段名不够。
比如你问:
“为什么这个栅格颜色看起来不对?”
“这条线是不是没有和道路对齐?”
“这几个点是不是落到水里了?”
“这个图例是不是太难读?”
这些问题一半是数据问题,一半是视觉问题。只给 AI 一段属性表,它不一定懂。让它看一眼当前地图画布,至少有机会把视觉异常纳入判断。
当然,这不等于它真的理解测绘精度,也不等于它能替你做质量验收。
但对日常 GIS 调试来说,截图是很现实的上下文。
很多时候我们向同事求助,也是先截一张图发过去。
GeoAgent 把这个动作放进了插件里。
PyQGIS fallback 才是它像 Agent 的地方
还有一个我觉得更关键的设计:PyQGIS fallback。
文档里的意思是,当任务没有专用 GeoAgent 工具覆盖时,Agent 可以生成一段 PyQGIS 脚本,通过确认机制在 QGIS GUI context 里执行。执行后还可以复制最近执行的 PyQGIS script,便于检查、复现和分享。
这就开始有点像真正的 GIS Agent 了。
因为 QGIS 的能力太大了。
任何插件都不可能提前封装完所有动作。
你可以做专用工具:
列图层。
缩放。
选要素。
打开属性表。
运行常见 processing algorithm。
但 GIS 工程里总会出现一些奇怪需求。
改一下标注规则。
批量调整图层树。
改某个 raster band renderer。
把几个字段拼成标签。
按项目命名规则导出一组图层。
这些事情如果都要写成固定工具,工具面会膨胀得很快。
PyQGIS fallback 的意义就在这里:常规动作走工具,特殊动作生成脚本。
而且它不是偷偷执行。
文档明确提到,对执行 fallback PyQGIS 脚本、删除图层、保存项目、运行长任务这类操作,要有确认机制。
这个确认很重要。
会操作软件的 AI,必须有刹车。

这件事为什么比“AI 看地图”更接近空间智能
我之前写过“给 AI 一张卫星图”,讲的是 AI 能不能从图像里生成三维场景,给机器人或无人机一个行动前的草稿。
GeoAgent 是另一条线。
它不是让 AI 看懂一张地图。
它是让 AI 进入地图软件的操作循环。
空间智能如果只停在“识别地图上有什么”,那还是视觉理解。
更往前一步,是它能不能把空间对象、软件状态和操作动作串起来。
比如:
当前项目里有哪些图层?
哪个图层是建筑?
哪些要素被选中了?
字段里有没有高度?
按高度分级应该改 renderer 还是先算一个新字段?
改样式前要不要确认?
执行完脚本后能不能把代码复制出来,留给人复查?
这串问题一点都不炫。
但这才是 GIS 工作现场。
地图软件不是一张图,它是一套操作系统。
GeoAgent 这种东西真正值得看,是因为它把大模型从“地图旁边的解说员”,往“地图软件里的操作员”推了一步。
它承接的是 Agent 冲击 GIS,但这次不用喊那么大
我之前写过 Agent 会不会冲击 GIS 厂商,那篇偏宏观。
写产业格局的时候,很容易说大话。
什么界面消失。
什么 License 价值下降。
什么空间智能体重构 GIS。
这些判断不是完全没道理,但如果每天都这么写,读者会麻。
GeoAgent 这个题更适合反过来写。
别先问 GIS 厂商会不会被冲击。
先问一个更小的问题:
QGIS 里的一个普通操作,能不能从“人点十几个地方”变成“人说一句,Agent 读当前项目,生成或调用动作,人确认后执行”?
如果这条链跑通,冲击自然会发生。
它不是发布会里的冲击。
它是工具栏被慢慢绕过去。
以前用户要记住按钮在哪里。
后来用户要会搜教程。
再后来用户问 AI 要脚本。
下一步可能就是:AI 直接知道你当前 QGIS 项目里有什么,然后给出可执行动作。
这才是变化的颗粒度。
不是“GIS 软件马上消失”。
而是很多具体菜单、插件、脚本片段,开始被自然语言重新组织。
当然,现在别急着神化它
这里要泼几盆冷水。
第一,安装和运行门槛不会凭空消失。
QGIS 插件、QGIS Python 环境、provider API key、本地模型或远程模型、依赖安装,这些东西对普通用户仍然不轻。文档里也提到,QGIS Python runtime 需要 Python 3.11 或更新版本。
第二,坐标系和脏数据还是会折磨人。
Agent 可以帮你调用工具,但它不一定能自动判断所有 CRS、拓扑错误、字段缺失、编码问题和数据质量问题。GIS 里最烦的往往不是 happy path,而是那些“为什么这个图层就是对不齐”的现场问题。
第三,脚本安全必须严肃对待。
能生成 PyQGIS 脚本是能力,也是风险。保存项目、删除图层、覆盖文件、跑长任务、调用外部服务,这些都应该确认。GeoAgent 文档里把确认机制写出来,我觉得是对的。
第四,生成脚本不等于正确脚本。
复制 PyQGIS script 很好,因为它给了人复查和复现的入口。但这也意味着人不能完全闭眼。GIS 工程师以后可能少写一些样板代码,但要更会看代码。
这点和 AI 写代码很像。
它降低了输入门槛。
但提高了验收门槛。
写在最后
我喜欢 GeoAgent 这个方向,不是因为它把 QGIS 变成了聊天软件。
聊天只是入口。
真正有价值的是它开始把 QGIS 的项目状态、图层树、选择集、地图截图、Processing 工具和 PyQGIS 脚本放进同一个 Agent 循环里。
这件事如果继续往前走,地图软件会发生一个很微妙的变化。
过去我们操作地图软件,像是在和一堆按钮打交道。
后来我们学 Python,像是在和 QGIS 的内部能力打交道。
现在 Agent 进来,它像是在中间加了一层翻译:
你说你的意图。
它读当前地图。
它生成动作。
你确认。
它执行。
然后把脚本留下来。
这不是终点。
甚至现在还只是很早期的工具形态。
但它已经足够说明一件事:GIS 里的 AI,不应该只会回答“缓冲区怎么做”。
它应该知道你现在选中了哪几个要素,当前图层有哪些字段,地图缩放到了哪里,接下来该调用哪个工具,或者写哪段 PyQGIS。
地图软件终于开始听人话了。
但更准确地说,是它开始有机会听懂人话背后的那张地图。
资料来源:
GitHub:opengeos/GeoAgent,https://github.com/opengeos/GeoAgent GeoAgent Documentation:https://geoagent.gishub.org QGIS Plugin 文档:https://github.com/opengeos/GeoAgent/blob/main/docs/qgis-plugin.md QGIS 插件页:https://plugins.qgis.org/plugins/open_geoagent

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。
夜雨聆风