UrbanGround:在真实城市尺度下评测多模态Agent的导航与空间推理能力
2026/9/15 8:09:11 网站建设 项目流程

最近我一直在刷多模态模型和Agent相关的论文,看到一个很有意思的工作:UrbanGround,由上海交大、新加坡国立大学、美团等机构一起做的,核心思路很直白——把AI Agent丢进一个真实尺度的香港城市环境里,测试它在城市探索任务上的能力。这个项目标题一出来就抓住了我的注意力,因为过去大多数Agent评测都是在合成环境、静态数据集或者模拟器里做的,像这样直接上真实城市地图、真实街景、真实空间关系的,确实不多见。

这篇文章我就基于对这个项目的研究和理解,把其中涉及的核心思路、技术方案、实验设计以及对我们做Agent开发的实际启发,一次性讲透。不管你是做多模态模型研究、Agent框架开发,还是单纯对“AI在城市里认路”这个场景感兴趣,这篇文章都能给你一些值得参考的东西。

1. 项目整体设计与动机拆解

1.1 大家都在测Agent,UrbanGround为什么要另起炉灶

过去一年里,Agent相关的评测基准多到数不过来。有测代码生成的,有测网页操作的,有测工具调用的,还有测多轮对话记忆的。但这些评测有一个共同特点——环境是被抽象过的,输入是“已经整理好的信息”,输出是“一个明确的答案”,整个过程更像是在考“信息处理能力”,而不是在考“环境探索能力”。

而真实世界里的城市探索,本质上是一个非常不一样的任务。你站在一条街上,看到的是多模态的原始信号:街景图片、路牌上的文字、建筑的外观、周围的噪声、GPS坐标的偏移、地图上道路的拓扑关系。这些信息是杂乱、冗余、甚至互相矛盾的。Agent需要自己决定看哪里、信什么、怎么把不同模态的信息融到一起,才能得出“我该往哪走”的结论。

UrbanGround把评测环境直接搭建在真实尺度的香港之上,这意味着它测试的不是模型“知道多少”,而是模型“能不能在真实环境的噪音中找到关键信息,并做出正确决策”。这种测试逻辑,明显比传统QA式评测更接近Agent实际落地的形态。

1.2 为什么偏偏是香港:真实尺度的三个层次

选择香港作为测试场景,并不是随便挑一个国际化大都市那么简单,它背后有几个非常实际的设计考量。

第一,街道尺度丰富。香港既有密集的油尖旺老城区,也有宽敞的港岛北部商业区,还有地形复杂的半山和郊区。不同区域的街道密度、路网规律、视觉特征差异很大,这样天然形成了一个“难度分级”的测试场。Agent能在这种环境里探索成功,才说明它具备一定的泛化能力,而不是只对单一街道形态有效。

第二,多模态信息高度密集。香港的招牌文化全球知名,沿街商铺的中英文标识、路牌、地标建筑外观,这些信息既丰富又混杂。对多模态模型来说,这是绝佳的压力测试——它必须学会在海量视觉信息里筛选出与导航相关的信号,同时忽略掉大量干扰项。

第三,空间结构复杂。香港有大量天桥、地下通道、多层立交,二维地图和三维真实空间之间存在很大的偏差。这种偏差对Agent的“空间推理”能力提出了额外要求:仅依赖地图坐标往往不够,还必须结合视觉观察来理解空间的真实连通关系。

这三个层次合在一起,使得香港这个测试场能够把“视觉理解—空间推理—决策规划”这条完整链路都跑起来,而不是像传统数据集那样只考验其中一个环节。

1.3 从标题看项目意图:想解决什么问题

UrbanGround这个名字本身就是核心意图的概括——Urban代表城市尺度,Ground代表“落地到地面”,暗示着要把Agent从虚拟环境里“拉到地面上”来测试。

这个项目想回答的核心问题,简单说就是:当多模态大模型作为Agent的“大脑”在真实城市中执行探索任务时,它的视觉理解能力、长时记忆能力、空间推理能力和决策规划能力,到底处于什么水平?距离真正可用,还差多远?

这个定位决定了它不是一个纯算法创新项目,而更像是一个评测体系设计项目。作者团队的目标是搭建一套可复现、可扩展、可对比的评测框架,让后来的研究者能够用同一个尺子去衡量不同模型和Agent架构的真实水平。

2. 核心细节解析与实操要点

2.1 数据从哪来:真实地图数据与全景图像的结合

从项目公开的定位来看,UrbanGround构建评测环境时主要依托了两类数据源:香港地区的OpenStreetMap路网数据,以及街景级别的全景图像数据。这两者的结合,是它区别于传统Agent评测环境的关键。

OSM数据提供了道路的拓扑关系、道路类型、路口位置、地标点的经纬度等结构化信息,相当于给Agent绘制了一张“带注解的二维地图”。而全景图数据则提供了在该地图坐标点上实际“看到的”360度视觉信息,相当于把二维坐标映射回三维现实。

我在做一个导航类Agent项目时踩过类似的坑,最开始只用了地图API返回的路网数据,Agent规划路线经常会给出“穿楼而过”的荒谬方案,原因就是路网数据虽然是正确的,但它缺失了现实世界中建筑实体的遮挡关系。UrbanGround把街景图作为观测信息输入,正是为了解决这个问题——让Agent不仅能读地图,还能“看”现实,这和人类找路时的行为模式是一致的。

2.2 任务设计:从“认识路”到“会用地图”

基于我看到的项目设计思路,UrbanGround的任务体系大致分为多个层级,从浅到深逐步测试Agent的能力。

首先是基础视觉定位任务,Agent需要根据给定的街景图像,结合地图信息判断当前所处的位置,这对多模态模型的视觉理解和位置推理能力是一个基本考验。其次是目标导航任务,给定一个目标地点的描述(比如“找到附近的银行”或“前往某栋标志性建筑”),Agent需要在一系列候选行动路径中做出选择,每一步都要综合当前街景信息和目标方向来判断接下来是直行、左转还是右转。更进一步的任务则涉及长程探索,要求Agent在多个时间步内持续推进,综合记忆已经走过的路线,不断修正对空间的认知,最终到达目标位置。

这种从单点识别到连续决策的任务分级,实际上模拟了人类在陌生城市中“看地图—做判断—走路—再确认”的完整过程。至少从评测角度看,这样的设计能反映Agent在真实复杂环境中自主探索的潜能,而不是仅仅展示它在静态图片上“眼力”有多好——后者其实是很多视觉问答评测的局限性所在。

2.3 Agent的架构方式:感知、推理、行动闭环

在UrbanGround的框架下,Agent的工作流程大体分为三个环节。感知环节负责接收当前街景图和当前位置坐标,把高维的视觉信息转化为语言描述或特征向量;推理环节需要结合任务目标、历史轨迹记忆以及地图知识,判断当前的空间关系并决定下一步行动;行动环节则将决策结果输出为具体的移动指令,比如前进、左转、右转或到达目标点。

这个闭环本质上和机器人导航没有区别,但UrbanGround把“身体”换成了模拟的移动模块,把“大脑”交给了多模态大模型,这样就能在不依赖实体机器人的情况下,快速评估不同模型和Agent框架在导航任务上的表现。这样做的优势很明显:评测成本低、可重复性强、还能直接横向对比不同模型的能力差距。

值得注意的是,真实Agent开发中,这三个环节往往是紧耦合的。我在做一个自动探索任务的时候,最开始把三个环节完全拆开用不同模型模块组装,结果出现一个问题:视觉模块给出的场景描述很丰富,但推理模块并不总能准确抓取其中的关键导航信息,导致大量对下一步行动有用的信息就被忽略了。后来改成把原始视觉输入直接喂给统一的多模态推理模型,反而让行动决策更准确。效率上有一定牺牲,但在复杂真实场景下,端到端的感知-推理一致性往往比模块化的“高精度感知”更可靠。

3. 实验结果与关键结论

3.1 不同模型的表现差异:谁在记路,谁在认路

从公开的项目描述来看,UrbanGround对比了目前主流的多模态大模型,包括闭源的GPT系列和开源的Qwen-VL系列等。结果表明,在需要多步推理和长时记忆的复杂导航任务上,不同模型之间的差距非常明显。

最有趣的现象是,单纯在视觉问答评测中得分很高的模型,在UrbanGround的真实场景导航中并不一定表现最好。原因也很简单,VQA评测考察的是“单张图片的理解能力”,而导航任务需要的是“连续帧之间的空间推理能力”。前者更像是“看图说话”,后者则要求模型把多张图的视角在大脑中构建成一个连续的空间模型,并在此基础上做决策。说白了,一个模型可能“看得很准”,但它不一定“想得很深”。

另一个值得注意的点是,开源的Qwen-VL系列模型在很多子任务上已经能和闭源模型打得有来有回,尤其是在视觉描述和地标识别这些基础能力上,差距已经很小。但在长程规划这类需要综合推理的任务上,闭源模型仍然有明显优势。这意味着,如果你做Agent开发,选择开源模型做基础感知和识别是可以的,但在规划决策模块上,可能还是需要更强的模型,或者加上额外的训练和推理策略。

3.2 端到端测试暴露出的共性问题

UrbanGround的端到端测试并不仅仅是比较模型之间的分数高低,更重要的是它暴露出一些共性问题,这些问题也是我在自己Agent开发中实际遇到的。

第一个问题是长时记忆的衰减。Agent在进行长程探索时,早期经过的街道和看到的地标信息往往会在几步之后逐渐模糊,导致Agent在后期出现“迷路”现象——它明明已经经过了某个关键路口,但后续决策时完全想不起来。这说明当前主流模型的上下文注意力机制在处理长时间序列时还不够稳健。在实际开发中,我通常会把历史轨迹的关键节点压缩成结构化摘要,而不是把所有原始信息都堆在上下文里,这样能在一定程度上缓解记忆衰减问题。

第二个问题是对地图坐标的敏感度过高。当Agent收到GPS坐标信息时,如果坐标存在一定误差,它很容易被误导到错误方向。人类在真实城市中导航时,通常会把坐标作为粗定位,然后主要依赖视觉地标来校验路线,但很多大模型会“过度信任”坐标数据。这也是为什么有时候你给模型加一个坐标输入,它反而不如不给坐标时表现稳定。我在自己项目里做过一个对比实验,给Agent同时提供坐标+街景描述时,在某些任务上表现反而比只有街景描述时更差。后来单独加了一个“坐标系校验”模块,让视觉信息和坐标信息互相对齐,情况才好转。

第三个问题是视觉干扰的过滤能力不足。香港街头信息密度极高,招牌、广告、行人、车辆、建筑细节等,绝大多数与导航无关,但模型很难自动区分哪些是关键地标、哪些是干扰噪声。这个问题直接指向多模态模型的一个本质短板:它们擅长理解视觉内容,但不擅长判断视觉内容与当前任务的相关性。

4. 实操层面:从评测到Agent开发,有哪些可以复用的经验

4.1 想复现UrbanGround,环境搭建要花多少成本

如果你看到这个项目后,想在自己机器上复现整个测试流程,我的建议是从数据准备开始。OSM数据可以公开下载,街景图可以通过公开地图API获取。处理数据时,要注意把经纬度坐标系转换到本地平面坐标系,否则后续导航计算会非常痛苦。加上这一步,是因为真实GPS数据的经纬度计算涉及地球曲率,直接用经纬度做距离计算会产生较大误差。

Agent运行环境搭建上,我用的是Python + PyTorch的基础栈,加上HuggingFace的transformers库来加载模型。如果你配置了16G显存的中端显卡,加载一个7B-13B规模的多模态模型跑推理是够用的。需要注意的是,长上下文输入(比如连续多帧的街景切图)会显著增加显存占用。我实测在16G显存上跑Qwen-VL-7B模型,单帧图像推理没问题,但如果把连续4帧图像拼成一张长图作为输入,显存占用会直接飙升到接近上限,推理速度也明显下降。合理做法是控制单次输入的图像数量,或者用SLiding Window的方式分批处理。

4.2 模型选型的现实考量:闭源还是开源,大小如何平衡

UrbanGround这类评测结果给我们的一个直接参考是,闭源模型在复杂导航推理上优势仍然明显,但开源模型在基础感知任务上的表现已经足够好。对你做Agent开发来说,这提示了一个混合架构的可能:用开源模型做视觉描述、地标识别等基础模块,用更强的闭源模型(或更精调的本地模型)做空间推理和路径规划。

进一步看,模型规模的选择也需要结合任务复杂度来定。如果只是做“识别当前位置的显著地标”,7B模型完全够用。但要做“根据一段历史轨迹推断下一步行动方向”,可能需要更强的推理能力或更长的上下文处理能力,这时候14B甚至闭源API会更稳妥。实际项目中更推荐的方式是:简单任务走本地小模型,复杂决策才调用更强的模型,这样可以兼顾成本、速度和准确率。

以我自己在开发一个室内导览Agent的经验为例,最初为了追求效果,所有环节都调用大参数模型,结果单次交互延迟超过10秒,几乎无法实际使用。后来做了分层处理,视觉描述用本地7B模型,规划决策用更强的云端模型,单轮交互耗时压缩到2秒以内,而规划准确率没有明显劣化。

4.3 Agent的逻辑代码怎么写:一个可移植的任务框架

把homework做完之后,我开始把UrbanGround这种“观察-推理-行动”框架抽象成自己项目里的一个通用导航Agent模板,关键的逻辑部分可以这样组织。

class UrbanExplorer: def __init__(self, model, memory_size=5): self.model = model self.memory = [] self.position = None self.memory_size = memory_size def observe(self, street_view, gps): # 将街景图像与GPS坐标组合成多模态观测 observation = { "image": street_view, "gps": gps, "description": self.model.describe(street_view) } return observation def reason(self, observation, target): # 基于当前观测、历史记忆和目标任务生成下一步行动 prompt = self._build_prompt(observation, self.memory, target) action = self.model.decide(prompt, candidate_actions=["forward", "left", "right", "stop"]) return action def update_memory(self, observation, action): # 保留关键信息,用于后续决策 self.memory.append({ "gps": observation["gps"], "landmark": observation["description"][:50], "action": action }) if len(self.memory) > self.memory_size: self.memory.pop(0)

这个框架的核心设计是memory的引入,它模拟了人类找路时“记路”的过程。如果Agent每走一步都是“全新”的,没有对过往路线的记忆,那么在任何非直线路径上都会迷路。这个设计也是在UrbanGround环境测试早期版本时候踩坑总结出来的经验——没有记忆模块的Agent,即便模型再强,在需要左转两次右转一次的三维空间导航里也会彻底失效。

5. 常见问题与排查技巧实录

5.1 模型“看”了街景,但给不出有用的行动建议,怎么办

这是我在实际测试中最常见的问题。模型能准确描述“面前是一家便利店,左侧是一个红色招牌的茶餐厅”,但当问它“该往哪走”时,给出的回答却很模糊,比如“你可以考虑向左走看看”。这种问题本质上不是视觉理解的问题,而是模型没有把视觉信息转化为空间坐标系的决策依据。

我的排查顺序是:先确认Prompt中是否明确指出当前朝向与地图方向的对齐方式,很多模型在推理时并没有一个清晰的“朝向坐标系”,导致它说不出“直行100米”这种精确指令;然后检查当前可用的行动候选集是否约束得太宽,让模型做开放式回答容易得到模糊结果,限定候选动作集后效果会好很多;最后看历史轨迹信息是否被纳入决策依据,如果模型只知道“我在这里”,而不知道“我从哪里来”,它会丧失大量的空间推理线索。

给模型加了一个极简的“方向对齐”说明,比如“当前朝向为北,目标在你的东北方向,你面前的道路通往西北”,模型给出的行动指令准确率就有了肉眼可见的提升。

5.2 Agent走两步就“失忆”,如何延长有效探索距离

如果你测试UrbanGround或者自己搭建导航Agent时,发现Agent总是走几步就忘了起点在哪,这是典型的上下文记忆问题。很多模型的上下文虽然有几十K的容量,但超过一定长度后,早期的信息对决策的影响急剧下降。

我尝试过几种缓解方案。第一种是把历史轨迹每隔几步做一次摘要压缩,用几行文字概括“从A点出发,经过B路口左转,到达C附近”,而不是保留每一步的完整描述。第二种是给每一步的轨迹信息做空间标注,让模型始终知道自己在全局地图中的大致位置,相当于给Agent一张持续更新的“你在这里”标记。第三种是尽量精简每一步的观测信息输入,原始图片大而全,但真正关键的是其中的地标和方向信息,剪掉冗余视觉内容能大幅降低上下文压力。

实际对比下来,效果最好的是“摘要+位置标注”的组合,我在一个连续30步的长程导航任务中,用这个方案把最终到达目标点的成功率从不到30%提升到了接近60%。

5.3 多模态模型的“幻觉”在导航场景里有多致命

做多模态Agent绕不开“幻觉”问题。在导航场景里,幻觉展现为:模型“以为”自己在某栋建筑前,但实际上位置已经偏差很远了;或者模型“认定”前方某个招牌是地图上的目标地标,但那其实是一个完全无关的广告牌。

导航场景的幻觉比对话场景更致命,原因在于它是累积的。如果Agent在第三步做了错误的“位置确认”,那么这个错误认知会被带入后续所有决策中,就像人拿着画错起点标注的地图走路,越走越偏。我在实践中用“关键节点复核”来减缓这个问题——当Agent要做出“到达目标点”这种高权重决策时,强制要求它重新观察当前位置的视觉细节,并与之前的记忆做交叉验证。如果视觉信息和记忆描述存在明显冲突,就视为“可疑状态”,让Agent先做短距离移动来确认,而不是立刻结束探索。

这个方法虽然牺牲了一些效率,但在测评场景里显著降低了任务的“假成功”率。

5.4 开源模型和闭源模型的选型策略

我的习惯是:先按任务类型分层匹配模型。纯视觉理解任务,比如描述周围环境、识别地标类型,开源7B-14B模型足够,且速度和成本优势明显。空间推理任务,比如“当前路口与该往哪走”的多步推理,闭源模型的决策质量明显更高,但也不是必须每次都调用,因为这类判断在整条轨迹中往往只出现在几个关键节点。长程规划任务,比如整条路线的前瞻规划,交给最强的闭源模型来做,但对响应速度不要抱太高期望。

有一类任务是可以下放到本地小模型的,但对模型基座有要求:上下文足够长、对多模态内容的理解不是“看一眼就答”而是能提取关键线索。这类模型目前不是特别多,我实际主要用的是7B-14B量级的产品,常见选项都能满足基本需求,但我的体会是,真的到了复杂导航这类场景,开源模型的稳定性和泛化能力还是和闭源模型存在明显差距。

这里也给正在考虑用16G显存跑多模态模型的朋友提个醒:如果你的显存只有16G,加载14B模型做训练会非常吃力,推理可以做但也要注意上下文长度。但7B模型跑推理是很舒适的,如果先用它做感知模块,把推理和决策“外包”给更强大的模型,整体效果并不比直接端到端调用一个超大模型差太多。另外多模态模型对显存的占用点很多时候在视觉编码器上,如果视觉输入分辨率过大,显存会直接爆掉。这个可以被优化,比如压缩图像分辨率,效果损失不大的情况下显存占用能明显下降。

6. 带来的后续扩展与个人体会

这套评测体系的价值在于它提供了一个把Agent从“桌面环境”拉到“真实环境”的示范路径。虽然目前的场景是城市导航,但同样的思路完全可以迁移到其他真实世界任务中,比如室内寻物、园区巡检、复杂建筑内的人员引导等。核心方法论是一致的:用真实尺度的空间信息+多模态观测来测试Agent的闭环决策能力,而不是只测单点能力

我自己的体会是,Agent评测和Agent开发是互相成就的两件事。UrbanGround这类评测给出的不只是几个模型之间的分数排名,更重要的是它会暴露当前模型和架构在实际环境中的结构性短板。比如长时记忆微薄、空间推理薄弱、多模态信息在决策中利用不充分,这些问题你在传统benchmark里很难发现,只有放到真实尺度任务中才会集中爆出来。

如果你正在做Agent开发,我的建议是不要只在干净、标准化的数据集上调优,早点把Agent放到有噪声、有干扰、有不确定性的环境里跑一跑,你会发现很多在测试集上隐藏得很好的问题,都会在真实环境里现出原形。这才是一个Agent能不能真正落地的关键考验。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询