
把大模型扔进一座真实城市里让它自己找路、看招牌、判断“这里能不能走过去”听起来已经很接近科幻片了但这类能力恰恰是空间智能最核心的一部分。我最近在梳理多模态评测基准时明显感觉到一个错位业界很擅长让模型“看一张图回答问题”也很擅长在室内小场景里做视觉语言导航可一旦把 Agent 放到真实城市尺度大多数公开基准要么给全 GPS 轨迹要么只考静态图片检索要么直接把临街视觉换成二维平面图。模型到底能不能像方向感正常的人那样靠眼睛和自然语言在城市里完成探索一直没有被系统性地测过。UrbanGround 要填的正是这个坑。上海交大、新加坡国立大学和美团一起提出的这个项目把 Agent 放进真实尺度的香港用一整套城市探索任务来评估多模态模型。关键词拆开看就是 Agent、UrbanGround、多模态模型三件事的组合以 Agent 为主体以 UrbanGround 为测试场最终考察多模态模型在开放城市环境里的感知、推理和决策能力。下面我从环境构建、任务设计、评测逻辑和模型短板几个维度拆一拆再结合自己搞 Agent 和视觉导航的一些经验聊聊它给后面做多模态模型和 Agent 开发的人能留下什么。1. UrbanGround想补的缺口为什么城市探索一直难测1.1 现有基准的三种“逃避方式”过去几年视觉语言导航VLN类的基准不少像 R2R、RxR 这些经典数据集核心是给 Agent 一段自然语言指令让它在仿真环境里头跟着走。这类基准对室内场景很有价值但放到真实城市里暴露的问题也很明显。第一种逃避是场景太小。很多导航基准的环境是一个或几个室内楼层即便没有完整轨迹模型需要推理的空间范围也非常有限。城市尺度则完全不同一次跨街区探索可能涉及上百个街段、上下座建筑、大量交错路口任务历史和空间记忆的复杂度呈指数上升。第二种逃避是信息给得太满。很多任务直接提供起点坐标和目标坐标GPS 信号在仿真里是理想无误差的Agent 本质上只要做路径拟合不需要“看懂”城市也不用在视觉上确认自己是不是真的到了某栋楼、某个入口。真实世界里卫星定位在密集城区会漂移楼宇会遮挡信号视线会被其它车辆和行道树挡住这些干扰在传统基准里几乎不会出现。第三种逃避是只考感知不考行动。像街景 VQA 或图像检索任务模型看一张图回答一个问题就够了不需要主动挪动、不需要和地图对齐、更不需要为错误的视觉判断买单。而城市探索的核心恰恰是行动闭环看错一个路口后面所有决策都会被带偏。1.2 城市探索其实是“感知认知决策”的综合题多模态模型的评测过去大多集中在一个维度上视觉问答考感知常识问答考知识路径规划考逻辑。但城市探索这件事把这三样全串起来了。一个很典型的场景我让 Agent 去找一家“临街、红色招牌、楼上写着九龙什么”的茶餐厅。它先要看懂街景图里的招牌文字这是感知然后要判断那家店到底在街的哪一侧、走路过去需不需要过街这是空间推理如果当前视角里看不到目标它还得决定是往前走、左转还是右转这又是决策。任何一个环节出错整个任务都会失败。所以城市探索对多模态模型的要求不是“单项拔尖”而是“没有明显短板”。这也是 UrbanGround 让我比较兴奋的原因它逼着模型真正把视觉、语言、空间和行动整合到同一条链路上来。1.3 为什么选香港作为首发场景这个选择我觉得挺聪明。香港的城市形态本身就很有挑战性超高密度建筑、房屋之间距离非常近视觉遮挡严重路网不是规整棋盘格山势起伏和多层立交让空间关系变得复杂招牌文字还混合了繁体中文、英文甚至不少粤语口语词。这些特点叠加在一起天然就把“读图混过去”的可能性压得很低。从研究角度看香港这样视觉差异度足够大的场景可以用来测试模型的泛化能力而不是让模型靠记忆里看过的图就蒙混过关。如果模型在混合语言、高密度、不规则街区里都能表现不错那迁移到其它城市就会更有说服力。2. 真实尺度香港UrbanGround的环境到底怎么搭2.1 数据层的“三层结构”从学术项目常见做法推断UrbanGround 大概率把环境拆成三个层次来搭建这也是很多城市级仿真会采用的思路。最底一层是地理空间数据包括路网、建筑物轮廓、街区边界、人行道和路口拓扑。这一层解决的是“城市骨架”问题得先让 Agent 知道街和街之间怎么连通哪些地方能走哪些地方是死角。第二层是视觉数据。真实尺度的环境光靠矢量地图不够临街视觉才是多模态模型最需要的信息。项目应该收集了大量街道级全景或视角图覆盖香港主要街区和路段让 Agent 在每个位置都能拿到对应视角的真实街景画面。第三层是语义数据也就是 POI 点。餐饮、零售、公共设施这些兴趣点需要在空间上有准确坐标在语义上有类别和名称描述还要和视觉图像里出现的内容对应起来。比如一个“深水埗附近卖电子零件”的店它在地图上是一个坐标在街景图里是一张包含招牌和橱窗的照片在任务描述里是一段自然语言三层数据必须能互相索引。2.2 多模态对齐让照片回到地图坐标这类项目里最麻烦的环节不在数据收集而在对齐。街景照片是一张平面图地图是一个俯视坐标系要让模型在同一时刻感知到“我在哪、我朝哪、我看到什么”必须把相机位姿和地图坐标绑在一起。实际中常见做法是用 GPS 记录粗略位置用惯导或视觉特征匹配来处理漂移再用图像朝向信息把“面向北时看到的画面”和“面向南时看到的画面”区分开。这一步如果在施工时不严格Agent 就会出现“对着地图明明在东边摄像头看到的却是西边景象”的严重错位整个评测结果都会失真。2.3 Agent 的动作空间和观测方式在真实尺度香港环境里Agent 的动作空间设计也需要花心思。通常不会给太自由的连续控制而是抽象成“前进、左转、右转、原地观察”这类离散动作方便模型输出也方便统计。观测是每个时间步拿到的多模态信息当前街景图加上一些结构化提示可能还包括当前朝向的方位角提示。真实尺度还有一个隐含成本状态空间很大。如果是完全自由探索Agent 走的步数会爆炸。所以任务设计者通常要加一些隐性约束比如限制单次任务的最长步数或者在奖励和评测里对无意义兜圈子做惩罚否则模型很容易靠暴力搜索“撞”到答案测出来的就不是智能了。3. 任务体系设计城市探索到底考哪几类能力3.1 从“找地标”到“做推理”的四类任务虽然 UrbanGround 的完整任务清单我还没有看到精确细节但按照城市探索评测的常见做法去推任务大概会分成几个逐级递进的类型。第一类是地标定位。给 Agent 一张目标地标图或一段标志性的视觉描述比如“找到一栋带弧形外观的电影院”让它在目标半径范围内完成确认。这类任务考的是跨视角匹配和视觉锚定。第二类是描述性找店。任务是“找一个周末也营业的轻食餐厅”没有具体店名Agent 必须一边走一边读招牌、看门面风格、判断是否“轻食”这就要把图像识别和语言理解结合在一起。第三类是带路径约束的探索。比如“从地铁站出来经过一个公园后找一家能看见海景的咖啡馆”Agent 不仅要找到终点还要在路径中确认经过的关键参照物。这考的是多步推理和空间关系理解。第四类更接近空间逻辑题。比如“我要从 A 到 B但中间有一条单行道应该从哪边绕”这需要结合地图拓扑和实时街景判断已经涉及环境规则的理解了。3.2 难度梯度GPS 干扰、视角限制和模糊表达一个评测基准如果难度不够分化模型表现会挤在一起看不出差距。UrbanGround 要做出梯度至少要控制两个变量。第一个是定位信息的可靠性。低难度任务给相对准确的 GPS 提示高难度任务则让定位出现偏移Agent 必须靠视觉来修正位置误差这就模拟了真实城区里“手机定位漂了几十米”的体验。第二个是指令的明确度。低难度是“去7-11便利店”高难度是“找一家能修手机的小店”。后面这种描述既有语义模糊性又有目标开放性模型必须在探索中逐步缩小范围而不是一上来就锁定答案。3.3 评测指标不是只看“到没到”城市探索如果只统计“最终是否到达”容易产生两个问题一是随机乱走也能蒙对二是到达率会受到初始位置影响太大。一个相对完整的指标设计应该同时看几个维度。任务成功率是最直观的但得配一个“效率系数”比如实际步数和理论最少步数的比值步数翻了三倍才到说明路线决策有问题。另外还可以看探索覆盖率也就是 Agent 在任务过程中看过多少有效区域这个指标能反映它是在理解城市还是在无头苍蝇式扫描。最后可以考虑视觉确认能力到达目标后是否确实给出了正确的视觉证据防止“GPS 到了但没看见店”式名义成功。4. 多模态模型在城市尺度下暴露出的短板4.1 简单场景尚可复杂任务断崖下跌从同类多模态导航评测的经验来推UrbanGround 这类测试大概率会出现一个现象模型在“找到显眼地标”任务上的成功率会明显高于“理解模糊描述并完成多步探索”的任务。断崖点通常在两类地方出现一类是目标视觉显著性不足另一类是任务需要多步决策才能逼近。这里我要先说明具体数字我没有拿到原文但从 Vision-Language Navigation 和 CityNav 这类工作的整体趋势来看真实尺度城市模型的成功率通常比室内场景下滑两个级别不止。这并不意外城市规模的搜索空间和室内完全不是一个数量级模型的候选动作一旦变多错误就会开始累积。4.2 典型失败模式绕圈、转向误判、跨视角失配如果把这个现象切开看多模态模型在城市里翻车是有固定套路的。第一种我很熟悉叫“近距绕圈”。模型可能已经离目标很近了但由于视觉上没有出现预期中的确认信号比如没看到招牌它继续朝错误方向走结果兜了一大圈又回到原点附近。这是典型的“接近目标但无法确认目标”的失败本质是视觉确认能力不足。第二种是“转向后丢地图”。Agent 在一条街走得好好的一转弯之后它就把地图关系和当前街景的关系全搞混了分不清自己是从北往南还是从东往西。说白了模型把“转弯”当成了独立的视觉事件没有更新自己的空间坐标。第三种是“跨视角失配”。模型记住了一个目标在某个视角下的样子但换个角度、不同光照、不同距离再看同一个目标它就认不出来了。这暴露出多模态模型在视角不变性上的弱点图像编码器学到了“这是某栋楼”但没学到“这栋楼在另一画面里长什么样”。4.3 累积误差和长距离规划模型的“记忆诅咒”我发现一个特别值得关注的问题就是误差累积对决策质量的影响。城市探索不是单步判断前面几步的错误会不断污染后面的推理。比如模型在第三个路口判断错了方向到第五个路口它已经彻底偏离路线但它自己并不知道仍然会编出一套“合理”的解释来强行解释当前的位置。很多多模态模型的问题就在这里它们擅长对眼前的图像做合理反应但不擅长维护一个更新的、一致的空间状态。语言模型在长文本里都还有记忆衰减问题到了城市尺度这种长时空轨迹里这个问题会被放大得非常明显。4.4 训练数据里“香港浓度”决定模型的底气实测中还会看到一个隐藏变量模型见过多少香港的街景。如果训练数据里香港照片很少模型到了弥敦道和到了欧洲小城没有任何区别全靠视觉编码器临场发挥失败率自然就高。反过来如果模型训练时见过大量香港街景它至少能认出常见的招牌布局和建筑风格视觉信息损耗就会小一些。这一点给领域模型提了个醒通用多模态模型在城市任务里如果完全没有地区数据做支撑长尾场景是扛不住的。真实城市探索不能只靠“看一眼图理解语义”还需要大量区域先验知识。5. 给 Agent 开发者的几个实际参考点5.1 别指望单模型全包决策链路要工具化UrbanGround 的评测结果哪怕还没看到细节也已经能说明一个问题让一个多模态模型吃下所有感知、导航、决策的任务在真实尺度下并不可靠。如果你是自己做 Agent 项目我更建议把链路拆开。感知层负责把街景图里的关键信息结构化比如识别招牌文字、判断路面类型、找出前方可通行区域。空间推理层负责把这些信息叠加到地图上维护“我在哪、目标在哪、中间有哪些障碍”。决策层则根据前面的结构化信息做路径规划而不是直接让模型输出“前进或左转”。工具化带来的好处是每一层都可以单独优化和调试。感知错了就换视觉模型空间更新错了就修对齐逻辑决策不稳就换提示词或者换推理模型。如果所有能力都揉在一个模型里出问题时根本不知道该调哪里。5.2 视觉记忆和地图缓存一定要分开设计在城市探索任务里模型需要记住的信息分两类一类是“我刚才看见了什么”另一类是“我推测环境的地图长什么样”。这两个如果混在同一个记忆系统里后面必然出问题。短期视觉记忆适合用自然语言摘要来存比如“我刚经过一家蓝色招牌的药房左手边有一条上坡路”。这种语义化压缩能方便模型回溯。地图缓存则是另一个模块建议维护一张动态更新的局部栅格地图或拓扑图把已经走过的路径标成已探索把未探索的区域标成未知。每走一步先更新地图再决定下一步方向而不是靠纯文本记忆硬扛。5.3 小显存本地部署的多模态模型怎么选很多读者问过“16G 显存多模态模型推荐”这个问题这次的城市探索场景里也能给出一些参考。本地跑多模态模型首先要分清需求做目标识别和简单视觉问答还是做完整空间推理。后者对模型能力要求高很多显存紧的情况下一定要拆步。16G 显存这个档位比较现实的选择是 7B 到 8B 量级的视觉语言模型比如 Qwen2-VL-7B、InternVL2 系列、MiniCPM-V 这类配合 INT4 或 AWQ 量化后单卡推理是可以跑起来的。要注意量化会损失一部分视觉细节招牌上的小字有时候会糊掉所以如果任务是读路牌文字建议把图像裁剪放大后再喂给模型而不要整张街景图直接塞进去。如果你需要更强推理能力优先用 API 做决策层本地模型只负责视觉信息的抽取也就是把“看招牌”和“做路径决策”分开。混在一起跑16G 显存很容易爆而且推理延迟也会让人崩溃。5.4 把 UrbanGround 的评测思路带回自己的 Agent比起直接复现整个 UrbanGround 环境我觉得更划算的做法是把它的任务设计思路借鉴到自己的项目里。你未必需要真的建一个香港但你可以用同样的原则做一个小规模评测集故意模糊描述、故意引入定位偏移、故意增加视觉干扰项。先定义清楚你的 Agent 在哪个环路上最脆弱然后围绕这个环路建测试集。比如你做配送机器人或巡检 Agent就从你的目标路线里抽 50 个点包含不同天气、光照、遮挡条件跑一个“成功率-步数-确认能力”的三角评测比自己凭感觉调提示词要靠谱得多。6. 后续值得关注的方向6.1 从香港向更多城市泛化单一城市做得再好也容易“过拟合”。后续最有价值的方向是把 UrbanGround 扩展到多城市、多文化、多种城市形态。比如欧洲古城的窄巷和高密度亚洲城市就有完全不同的视觉特征模型在一种城市里积累的经验能不能迁移到另一种城市这才是通用空间智能的关键测试。泛化不对等的情况大概率会出现模型在香港学会看繁体字的招牌到了东京能不能切换成看假名到了迪拜能不能适应更宽的马路和完全不同的楼间距这些问题比单纯提高单城成功率更有长期研究价值。6.2 从评测走向闭环训练目前这类工作更多是“考模型”但真正要提升模型的探索能力评测结果不能只是排行榜更要进训练回路。带有空间记忆的网络结构、带视角不变性的视觉编码器、能结合地图先验的推理模块这些都可以在类似 UrbanGround 的环境里做强化学习和行为克隆。把评测环境变成一个训练场其实比真实路测便宜得多而且可控性和复现性都更好。闭环训练之后再拿 UrbanGround 的隐藏任务做验证会形成更健康的迭代节奏。6.3 多传感器融合和物理交互可能是下一步现在的多模态模型主要依赖“看”但城市探索不只靠看。声音、惯性、甚至触觉在真实探索里都有价值。比如听到地铁声可以判断附近有地铁站感觉到路面不平可以判断在走人行道还是车行道。未来如果把这些多模态信号接入 Agent它的探索鲁棒性会高很多。我不觉得一定要端到端地让一个模型从像素直接输出动作。更现实的路径是让不同模型各司其职一个负责感知和描述、一个维护空间记忆、一个做高层决策外部再叠加地图和定位工具。UrbanGround 这类基准最大的价值就是逼着我们去想清楚这些模块到底应该怎么拆分、怎么协作而不是把希望全部寄托在模型参数数量的堆叠上。写到这里回到我自己的感受。我过去做 Agent 项目时经常陷入“模型什么都会一点但一上路就全崩”的处境。看完 UrbanGround 的设计思路我更确信问题不在模型本身在于我们把任务想简单了。城市探索是一个需要长期记忆、空间状态维护和即时视觉确认的工作流只有模拟真实尺度、真实干扰和真实模糊性的评测才能把真正可用的 Agent 逼出来。