去年我在某园区做了一套视频监控系统的智能化改造,核心是在原有算法仓库上面挂了一层AI Agent。项目收尾那天我从监控中心往外走的时候,脑子里只有一句话:原来值班员每天面对几十路实时画面,是真的看不过来。这也是今天想聊“AI Agent在智能城市安全监控中的角色”的起点——这个标题听着很宏大,但落地之后你会发现,Agent做的事情其实非常具体:把人的重复劳动接过去,把人的注意力留给真正需要判断的时刻。
这篇文章我会从监控场景的真实痛点讲起,拆解Agent在安全监控里承担的具体角色,再给出一套可以落地的架构参考,最后分享我接入Agent之后实测的数据对比和踩坑记录。不管你是做安防集成、算法平台,还是单纯对Agent怎么落地感兴趣,应该都能从这里拿到一些可复用的经验。
1. 监控大屏背后的真实困境:数据越堆越多,人却越来越看不过来
1.1 几十路摄像头背后,值班员的注意力正在被稀释
先还原一个典型的监控中心场景:一整面电视墙,几十路甚至上百路摄像头画面轮巡切换,两到三名值班员坐在屏幕前,每人盯着十几个窗口。他们的工作内容大致是:观察画面里有没有异常,处理各类门禁告警、入侵告警,偶尔还要翻看录像回放给事后调查提供线索。
问题在于,人眼的注意力是极其有限的资源。连续盯屏超过二十分钟,大部分人就会开始漏看画面边缘的活动目标;到了凌晨两三点,疲劳叠加画面光线差,漏报几乎是必然的。更麻烦的是,现代城市里的摄像头数量还在涨,但值班人力基本不可能匹配着涨。结果就是:系统在采集越来越多的数据,可数据到了人这一环就开始大量流失。
我在项目里做过一次粗略统计:某园区单日产生大约3200条各种类型的算法告警,但经过人工确认真实有效的只有18条左右。也就是说,值班员每天要在三千多条噪音里找那十几条真消息。这种环境下,告警疲劳几乎是必然出现的——人看了太多假告警之后,对系统推送的内容会越来越不敏感,真正重要的事件反而容易被忽略。
1.2 单点AI已经很强,为什么还是救不了监控中心
过去几年,算法仓库的能力提升很快。人脸识别、车牌识别、烟火检测、跌倒检测、区域入侵检测,单点的识别准确率都已经做得相当可观。但把所有单点算法叠在一起,就会发现监控中心的运作模式并没有本质改变:算法只是在替人“多看”了一部分画面,可告警到了平台之后,依然需要人来看、人来查、人来判断、人来决定下一步怎么办。
举个例子。某日凌晨三点,一个目标出现在园区东北角围墙附近,两分钟后消失在画面里;又过了十五分钟,同一个目标出现在地下车库入口。传统单点算法能把这分别记成两条“区域入侵告警”——但这两条告警是不是同一个人?他中间去了哪?行为符不符合正常逻辑?这些问题算法都回答不了,只能靠值班员手动翻录像、拼时间线。整个过程耗时少则十几分钟,多则一两个小时,而且非常依赖个人经验。
所以真正的瓶颈不在“识别得准不准”,而在“识别之后有没有人能把信息串起来”。碎片化信息如果不被串联,每一帧单独看都只是孤立事件,构不成任何判断。
1.3 Agent的本质差别:从“能识别”到“会办事”
AI Agent进入这个场景,解决的正是从“识别”到“决策”之间的那段空白。Agent可以被粗浅地理解为:一个以大语言模型为核心、能调用工具、能记住上下文、能按步骤完成任务的智能体。它跟单点算法的差别,类似于“一个会认东西的传感器”和“一个会办事的助手”之间的差别。
单点算法负责回答“这是什么”,Agent负责回答“这事要不要处理、怎么处理、处理完要不要上报”。后者要把前面这些碎片化信息收集起来,按照某种工作流程,决定先做什么再做什么,最终产出一个值班员可以直接参考的结论或操作建议。这也是我认为AI Agent在智能城市安全监控中真正有价值的定位:不是替代摄像头或替代算法,而是在它们的上面加一个会思考和办事的“管理层”。
2. Agent在三类安全监控场景里分别担任什么角色
2.1 跨摄像头目标追踪:把碎片信息串成一条时间线
第一个角色,是帮值班员“串线”。前面提到的那个凌晨三点目标消失又出现的场景,就是典型的跨摄像头追踪任务。传统做法是人工回放多路录像,按时间轴手动拼接。有了Agent之后,流程可以变成这样:Agent收到一条“区域入侵”告警,自动向视频结构化服务发起查询,请求检索该时间段内所有摄像头拍到的相似目标;拿到检索结果后,Agent按照时间顺序排列目标出现的位置,并在轨迹节点上比对特征相似度;最后生成一条完整的移动时间线,同时标注那些时间断档较大的区间,提示值班员这些路段存在盲区。
这个过程中Agent并没有直接“看懂”视频,它只是调用了多个现有算法工具,再把工具的返回结果组织起来。真正关键的是它“知道”先查什么、再查什么、查出来的结果怎么排列才有意义。唯一需要说明的是用在模拟项目里的这版Agent只处理了结构化描述数据,没有做端到端的视频理解——后者成本太高,且实测稳定性不如“检测模型+Agent编排”的方案。
2.2 告警研判与风险分级:替值班员先过滤掉九成的噪音
第二个角色是研判过滤。这是我认为落地价值最直接的部分。监控场景里大量告警其实是“假阳性”:白天太阳角度变化导致光影误判、夜间昆虫飞过镜头、装修扬尘被识别成烟雾、树枝晃动被当成人员入侵。传统算法只能给出一个置信度分数,但置信度高不代表事件一定有效。
Agent可以把更多维度的上下文引进来做综合判断。它会先读取告警发生的位置信息、时间信息、天气数据,再去查历史告警记录——比如这个位置是否频繁出现同类告警。如果某个摄像头每个晴天的傍晚都会报一次“光影入侵”,而当前告警跟历史记录高度一致,Agent就会把这条告警标记为低风险,直接归档到日志,不推送给值班员。反之,如果一条告警发生在深夜、位置敏感、且特征与历史记录不一致,Agent会把它升级为高风险事件,立刻推送并附加初步研判说明。
这项能力最大的价值是修正告警的“信噪比”。我们的实测数据显示,接入Agent后,每天需要值班员关注的事件数从三千多条压缩到了三四十条,过滤掉了99%左右的噪音。值班员不再被无效告警轰炸,真正的事件反而更不容易被漏掉。
2.3 应急调度辅助:给出能直接执行的处置建议
第三个角色是应急调度辅助。当确认一个高风险事件正在发生时,比如突发火情、人员异常聚集或者闯入受限区域,Agent的角色从“研判员”变成“参谋”。它会快速收集周边摄像头画面摘要、门禁开关状态、最近出口位置、当前园区人员分布密度,然后基于这些信息生成一份处置建议:哪些出口适合疏散、哪些通道可能存在拥堵风险、需要通知哪些岗位的人、建议调派什么类型的资源到场。
这里要特别强调,Agent给出的只能是处置建议,不能直接控制关键设备。它的产出是一份结构化的参考方案,由值班员或管理人员确认后再执行。这种设计不是技术上的妥协,而是刻意保留的“人在回路”——机器负责把复杂情况快速归纳成可操作的选项,人负责按下那个决定性的按钮。
2.4 三类角色的共同边界:Agent是参谋,不是决策者
把三个角色放在一起看,会得出一个很明确的结论:Agent在安全监控里的定位是“增强人类”,而不是“取代人类”。它可以负责跨摄像头追踪、告警过滤、应急处置辅助,但所有关键决策的最终确认权都应该留在人那里。
这里面有一个很实际的理由:当前Agent的能力边界依然模糊,它可能在95%的情况下判断准确,但剩下的5%是难以预测的——可能是工具返回了错误数据,也可能是推理链条某个环节出现了幻觉。如果系统设计成让Agent全权负责,一旦那5%发生,后果往往比不用Agent更严重。所以我的原则是:Agent可以把决策效率提高好几个数量级,但它永远是一个“高智商参谋”,不是一个“最终责任人”。
3. 从感知到执行的完整闭环:一套能落地的Agent监控架构
3.1 感知层:视频流如何变成Agent能读的结构化事件
要让Agent处理监控场景,第一步不是让Agent直接看视频,而是把视频流先转成结构化事件。这个思路很多刚接触的人会绕不过弯来:既然Agent这么强,为什么不直接把视频帧喂给它?原因很简单——成本。视频帧的信息密度极低,一秒钟25帧画面里可能99.9%都是无变化的内容,把这些数据全塞进多模态模型,算力账单会直接爆掉。
所以我在项目中采用的做法是分层净化。底层设备采集原始视频流,交给端侧的检测模型做第一轮分析,只提取出有异常的目标框、行为类型、时间戳、置信度等元信息;这些元信息再进入事件总线,由规则引擎做基础过滤,只有触发阈值的才会形成“事件”进入Agent的待处理队列。Agent打交道的是这些结构化的JSON事件,而不是原始视频流。只有当Agent确认某个事件需要进一步确认时,它才会调用工具去取对应的画面截图或短视频片段。
3.2 决策层:一次典型告警中Agent的内部思考路径
Agent的决策过程我采用的是ReAct模式,也就是推理-行动-观察-再推理的循环。拿一次夜间告警来拆解:
第一步,Agent收到一条事件:“晚上23:47,A栋西侧围墙出现目标入侵,置信度0.86”。Agent先做初始推理:夜间围墙区域出现目标,置信度不算低,需要进一步确认,但这个位置过去是否有类似记录?于是它决定行动——查询这个位置过去三十天的同类告警历史。
第二步,Agent拿到查询结果:过去三十天该位置有七次同类告警,全部被核实为误报,原因是围墙外道路有路灯车灯扫过。此时Agent的推理倾向转向“可能是误报”,但它没有直接下结论,而是再调用一个工具:读取当前摄像头最近一分钟的画面帧,确认画面里是否存在人影轮廓。
第三步,画面返回结果:画面中有人在围墙边缘停留。Agent此时更新判断:特征与历史误报不一致,风险等级上调,需要生成一条预警,附上画面证据和相关分析,推送给值班终端。
整个过程大约耗费四十多秒,比传统规则引擎慢很多,但它的优势在于能够动态利用多维信息做交叉验证。规则引擎只能按固定条件过滤,Agent则可以根据每个事件的具体上下文临时调整推理路径。
3.3 执行层:通过标准工具接口操作外部设备
执行层解决的是Agent“能做动作”的问题。Agent本身没有手脚,它能做的所有外部操作都封装在工具接口里。我在项目中给Agent挂了两类工具:一类是查询类工具,包括视频结构化检索、告警历史查询、门禁状态查询、地图资源查询等,只读不改;另一类是操作类工具,比如云台角度调整、电子围栏布防撤防、推送给指定终端、触发广播通知等,会改变系统状态。
这两类工具权限必须严格分离。查询类工具Agent可以自由调用,操作类工具则增加了二次确认机制——Agent会先生成操作意图和参数说明,提交到人的审批节点,确认通过后才真正执行。这样既能利用Agent提高执行效率,又能守住安全底线。
3.4 记忆与反思:Agent为什么不会重复犯同一个错
Agent和传统脚本最大的不同在于它有记忆,而且记忆分两层。短期记忆就是当前事件的处理上下文,一次推理过程中的所有输入输出都会保留在会话里,保证连续推理的上下文一致;长期记忆则以向量数据库的形式保存历史事件的特征、处置结果和复盘结论。
这套记忆机制解决了一个非常现实的问题:Agent会从过去的错误里学习。比如第一次遇到某个摄像头傍晚的“光影误报”时,Agent可能还判断错了,会按高风险推送;但这件事被值班员纠正之后,Agent会把“该位置傍晚光线变化模式会导致特定误报”这条经验写入长期记忆。下一次再收到同类告警,Agent就会在推理时优先匹配这条经验,直接降低风险等级。这本质上是一个人机协同的持续优化过程——Agent记住规律,人来提供关键纠正。
4. 部署初期最容易翻车的五个工程问题,以及我的处理方案
4.1 误报率不降反升?LLM幻觉在监控场景的放大效应
接入AI Agent后,最反直觉的一个现象是:系统总告警量确实降下来了,但如果配置不当,新的误报会冒出来。来源就是LLM幻觉——Agent在信息不足时,会“脑补”出那些不存在的判断依据。
我踩过一次很典型的坑。初版Agent在处理一条摄像头离线告警时,自己推理“该摄像头近期离线次数增多,疑似设备故障风险”,然后就以这条“推断出来的规律”为依据,给这条告警升了级。事后排查发现,所谓“近期离线次数增多”完全是Agent基于一两次离线记录的脑补,根本不是统计事实。从那以后,我在Agent的推理指令里加了一条硬约束:所有需要下结论的数据,必须有工具返回的明确证据支撑,没有证据的推测只能作为“待验证假设”记录,不能直接用于风险判定。另外,Agent的可信度评分里也加入了证据项覆盖率,用于对推理结果做最终影响修正。
4.2 实时性预算:从决定到动作,延迟如何分配
安全监控对实时性有硬要求,但Agent做不到所有环节都快。一条告警从产生到人工确认识别,实测延迟分布在三个环节:感知层的检测模型推理大约在几百毫秒到一两秒;决策层的Agent推理链需要调用多个工具,通常是几十秒到两三分钟;人工确认环节还要再加几十秒到几分钟。
我的处理思路是分级路由:对于风险极高且模式明确的事件,走规则引擎快速通道,秒级响应,不经过Agent;只有那些需要综合判断的模糊事件,才交给Agent做深度推理。这样一来,既保住了关键场景的实时性,又让Agent集中在它擅长的高价值判断任务上。实测中Agent处理一条告警的平均耗时大约在45秒到90秒,虽然在数字上比规则引擎慢很多,但由于过滤了大量低风险告警,整体事件响应效率反而从十几分钟降到了三五分钟。
4.3 算力账单:全量上大模型是真的跑不起
如果让所有告警都走一遍大模型推理,算力账单会非常难看。我的压测数据显示,一个区域节点每小时会产生几百条事件,要全部过一遍通用大模型,需要至少8张高性能推理卡持续满载,成本远远超出项目预算。
最终的方案是把模型分成两档:轻量级模型负责初筛,处理大多数模式明确的告警;复杂通用模型只负责那些初筛阶段判定为模糊、需要深度推理的事件。这一步大概能把大模型的调用量降到原来的10%左右。另外,把同类事件的推理结果做缓存策略也很关键——相似的告警组合在短期内可以直接复用之前的结论,不需要每次都从头推一遍。
4.4 责任边界:机器给出的只能叫建议,不能叫结论
责任边界是在需求阶段就要设计清楚的。监控系统跟普通办公AI系统不同,它直接关系到人和财产的安全,一旦出现误判,后果不能简单用“AI还在迭代”来解释。
我的做法是,Agent在系统里的所有输出都标记为“建议”或“参考信息”,事件处置结论字段必须具备人工确认节点。人员可以一键同意Agent的建议,也可以修改甚至推翻。同时,Agent的每一条处理链路都全程留痕,包括它做了哪些查询、调用了哪些工具、每一步的依据是什么。这样做的目的不是为难Agent,而是为了让人的监督能力可以覆盖到每一个机器决策。毕竟现在的Agent做不到100%可靠,让它背它承担不起的责任,只会给整个系统带来风险。
4.5 数据合规与私有化部署的基本要求
视频数据的安全等级本身就高,所以Agent架构在设计之初就只能考虑私有化部署。所有的模型推理、数据存储、向量检索都必须运行在内网环境里,原始视频和带身份信息的画面不能出内网。外部训练好的开源模型可以拿来做底座,但微调必须在本地完成。
还有一个工程细节是数据脱敏。Agent在处理事件时并不需要看到完整的人脸画像,我把它与业务系统联动获取的信息做了字段拆分——比如是否有访客记录、是否出现在白名单等判断条件,业务系统返回的是布尔标记而不是原始身份字段。这样既满足了Agent做逻辑判断的需求,又避免敏感信息在模型推理链路里被明文搬运。
5. 在模拟园区跑了一周之后:Agent接入前后的数据对比与踩坑记录
5.1 实验环境与基线数据:没有对比就没有说服力
为了让结果有说服力,我把Agent接入前后的数据做了一次对照实验。选用的是某个模拟园区里的一段监控数据流,基线是未接入Agent的纯规则引擎状态,实验组是接入Agent后的状态。同一周的数据,同一个告警集。
基线数据是这样的:日告警量大约3200条,有效事件18条,误报率约99.4%;需要值班员人工逐一确认所有告警,平均每次确认耗时约12分钟,全天基本处于告警疲劳状态。这个基线本身也印证了前面说的“数据越多,人越看不过来”的困局。
5.2 Agent接入一周后的实测变化
接入Agent后,数据变化很直观。日推送量从3200条降到了40条左右,其中需要人工复核的大约20条,其余低风险事件直接进入日志归档。Agent的巡检命中率在有效事件上有小幅提升,最明显的变化是响应时间:一条告警从产生到人工确认完成,平均耗时压到了3分多钟,比之前快了不少。
有效事件的漏报情况也做了统计。一周内Agent把一条新颖的非典型事件推给了值班员,但这条事件的特征与历史记录差异较大,被Agent标记为“信息不足,建议人工确认”,人工介入后判定为有效事件。这其实是一个比较健康的处理结果——Agent没有能力确认的事件,它至少知道不要假装确认。
5.3 踩坑记录一:工具调用失序与重复查询
在调通初期,Agent出现了一个很蠢的问题:它会在处理一个告警的过程中反复查询同一个摄像头同一个时间段的数据,而且循环往复,完全无视之前已经拿过同样结果这个事实。原因在于Agent的自回归生成机制没有“记住”自己已经查过这个数据,每次都重新决策去查一遍。这问题严重时光拖长了处理时间,严重时会导致下游服务限流。
解决方案是在Agent的会话记忆层增加了一个工具调用去重机制:每次工具返回结果都写入短期记忆,决策引擎在发起新调用前先检查记忆库,如果发现相同参数的查询已经存在,就直接复用上次的结果。这个改动看起来很小,但把平均每次事件处理的工具调用次数从3到5次降到了2到3次,同时也压低了延迟和算力消耗。
5.4 踩坑记录二:上下文污染与Agent之间互相干扰
做多区域并行部署时遇到的另一个坑,是Agent之间的“记忆污染”。我给每个区域都部署了一个Agent实例,但它们共用了同一个长期记忆库。结果一个区域学到的错误规律,会被另一个完全不相干的区域调用到——比如A区域的晚间灯光误报经验,被B区域当作研判依据,直接误导了一次事件的风险评级。
解决方式很简单:按区域隔离记忆空间。每个Agent实例维护自己的长期记忆库,仅共享一些通用的环境知识和规则,不再共享事件级的经验记录。这个教训也有点代表性,可以提醒大家:Agent的记忆设计要跟着业务边界走,不能图省事用一个全局记忆库打天下。
5.5 可复用的调参组合与运行参数参考
最后给一份可复用的参数参考,我是跑了一周之后逐步调出来的。这个组合不一定是通用最优解,但对“监控场景+私有化部署+人机协同”这个方向比较有效:
模型选择上,初筛用的6B量级开源模型在CPU上的推理延迟已经可以接受;终判环节用的则是更大的对话模型,只处理少量模糊事件,成本可控。Agent推理温度设在0.1左右,这个值越低输出越稳定,但也不能太低,否则碰到需要发散联想的多源关联场景会显得呆板。决策最大迭代步数限制在6步以内,超过步数视为复杂事件,转入人工队列。工具调用的超时时间统一设5秒,返回异常则自动跳过该来源并记录。风险等级的判定阈值从0到1共分三档,0到0.4记录日志、0.4到0.7推送提醒、0.7以上发起人工复核流程。
这套参数在模拟园区跑了一周,效果比较稳定,日推送量一直控制在40条上下,人工介入率维持在50%左右。它会根据各个区域摄像头数量和环境复杂度做微调,比如摄像头特别密集的区域适当提高了初筛阈值,夜间环境较多的地方则降低了光影类告警的初始权重。
之前不少同行问我Agent到底适不适合接入监控系统,我的判断是:它是目前把碎片化算法能力整合成“可用决策支持”的最佳方式之一。但请一定记住,它不是一个什么都能做的黑盒,更不是一个可以完全替代人的自动装置,它适合自己的定位是“高强度信息处理+初步研判+决策辅助”。把期望值摆正,架构里留好人的位置,这套东西就能在智能城市安全监控里实实在在发挥作用。我自己的体会是,上了Agent以后,团队值班人员的精神状态比之前好了很多,因为他们终于不再被几千条假告警牵着走了。如果你也在做类似的场景,可以从一个区域、一栋楼的试点开始,用数据跑出对比,再决定要不要铺开。