ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Agentic Edge AI:边缘设备上的智能体架构设计与实战指南

Agentic Edge AI:边缘设备上的智能体架构设计与实战指南 Agentic Edge AI最近讨论热度确实高好几个群里都在问正好我手上有一个边缘智能项目从原型到落地的完整经历今天就把我对这个方向的思考、踩过的坑、以及一套可以直接抄作业的实操方案整理出来。先说清楚这个东西是什么。Agentic Edge AI中文叫智能体边缘智能本质上就是让具备自主规划、决策和工具调用能力的AI智能体Agentic不依赖云端直接运行在靠近数据源的边缘设备上。手机、摄像头、机器人、工厂产线设备上都算边缘设备。它解决的核心问题有三个实时响应毫秒级决策不能等网络往返、数据隐私敏感数据不出本地、网络韧性断网了系统照样能跑。这个方向适合谁来参考如果你是做嵌入式AI的工程师、物联网平台架构师或者正在边缘设备上跑大模型但发现纯云端方案不够用的开发者这篇文章应该能帮你省掉不少调研时间。1. 概念拆解为什么边缘AI要加一个Agentic1.1 传统Edge AI的局限以前我们说的边缘AI大多数是跑一个训练好的推理模型。比如在摄像头里放一个YOLO目标检测模型识别到人员闯入就触发报警。这是一个“感知-规则”的闭环模型输出的结果是固定的几个类别和坐标框。这种模式的问题在于它只能回答“是什么”回答不了“怎么办”。检测到缺陷产品系统只能报警不能自己决定是修复、返工还是停机排查。遇到模型置信度不高的样本传统方案只能丢给云端人工兜底。整个系统就像一个只会念说明书的新员工按部就班但不会随机应变。1.2 Agentic给Edge AI带来了什么Agentic的加入让边缘设备从“感知器”升级成了“行动器”。Agent不再只是跑一个推理模型而是围绕一个目标自主完成“感知-理解-决策-行动”的闭环。举一个我实际做过的场景。产线上的质检摄像头识别到一批螺丝扭矩不足传统边缘AI会做一件事标记为不良品。但有了Agentic能力之后边缘设备上的Agent会进一步做几件事先查询这批螺丝来自哪条产线、哪个批次然后调取该批次过去2小时的生产参数发现扭矩设定值发生过偏差接着自动生成一个调整建议并下发修正指令同时把整个处理过程生成报告。这里面的关键转变是模型从单点能力变成了Agent可以调用的工具而Agent本身负责编排、判断和决策。我在项目中是把检测模型、参数数据库、工单系统都封装成了函数Agent根据当前场景自主决定调用哪些函数、按什么顺序调用。这就是Agentic Edge AI和传统Edge AI的本质区别。1.3 最近为什么这个方向突然火了除了模型小型化、端侧算力提升这些长期趋势还有一个生态层面的变化。谷歌推出的ai edge gallery这类平台正在把边缘AI从“跑一个模型”推向“跑一个可以编排多个模型的智能体应用”开发者直接在设备上装Agent应用而不是只装模型文件。这类平台把设备端的模型推理能力以标准接口开放出来恰恰是Agentic架构最需要的底层支撑。与之配套的还有agentic rag检索增强生成在Agent领域的应用和owasp agentic security initiative top 10智能体安全治理框架这两个关键词。前者解决Agent如何从本地知识库检索准确信息来做决策后者解决Agent在边缘环境下的安全问题。三者合在一起说明这个方向已经在从“实验室玩具”走向“工程化产品”。2. 架构设计在边缘设备上搭Agent的四个关键决策2.1 端云任务怎么切分这是整个架构设计里最重要也最容易拍脑袋决定的事情。切分原则不能凭感觉要按实际约束来定。延迟敏感且数据量大、隐私要求高的任务放端侧跨设备协调、全局知识问答、复杂的多步推理放云端两者之间留一部分“可切换任务”根据当前网络状况动态决定在哪儿执行。我在项目中设计了一个分级机制。第一级是本地实时任务响应要求小于100毫秒的比如实时告警、设备急停完全在端侧闭环。第二级是本地决策任务响应允许1到2秒的比如质检判定、参数推荐端侧的Agent自主完成。第三级是云端协作任务需要全局数据的比如跨工厂调参Agent先把请求打包好网络好的时候同步上去网络断了自己先按本地规则兜底执行。这个分级思路是实战中磨合出来的。一开始我把所有任务都往端侧塞结果小模型处理复杂推理任务效果很差。后来把Agent的任务编排逻辑拆成两层端侧Agent负责“感知局部决策”云端Agent负责“全局规划知识补全”。端侧Agent发现自己搞不定的时候才向云端发起一次会话。2.2 记忆边界怎么划Agentic系统绕不开记忆问题而边缘设备的存储空间和计算资源都有限不能像云端Agent那样无限追加对话历史。我在项目里做了一个三级记忆架构工作记忆、情景记忆、知识记忆。工作记忆放当前任务上下文限制在几K token以内任务结束就清空。情景记忆是设备本地SQLite里存的结构化历史记录只保留关键事件摘要。知识记忆是向量数据库存储产品手册、质检标准、历史案例等通过检索引擎按需加载。这个设计参考了agentic rag的思路。RAG在传统场景里通常是“用户提问-检索-拼上下文-生成回答”的单轮流程但在Agentic场景里检索的动作应该由Agent自主触发。比如Agent在处理一条产线异常时判断自己缺少历史维修记录的知识于是主动去向量库里检索相关案例。这种主动性比每次都给Agent塞海量上下文要节省得多实测能让单次决策的token开销降低70%左右。2.3 工具调用的可靠性怎么保证Agent的能力上限取决于它能调用多少工具但工具调用在边缘设备上的表现比云端的稳定模型要差不少。轻量化模型在工具调用的格式化输出上容易出错JSON经常缺字段、乱类型。一个有效的方案是给每个工具定义严格的JSON Schema并且在Prompt里给工具描述增加“何时使用”的条件示例。比如质检工具的描述不要只写“执行质检分析”而要写“当检测到产品外观异常时调用此工具分析异常类别”。另外在代码层面做一层恢复机制如果Agent返回的JSON解析不了不要直接报错而是把原始输出和错误信息一并重新塞给Agent让它自己修复。这个重试往往一次就能成功。实在失败超过三次再让Agent降级走人工工单通道。2.4 评估闭环怎么做边缘Agent上线后最大的问题是没有办法像云端模型那样实时看日志和评估效果。在一次项目复盘里我不停追问Agent上次做决策是不是正确的多久之后被人工纠正了这些信号拆散在各种系统里收集不起来。我后来把评估闭环改成三层第一层是运行时校验工具调用的参数合法性和返回状态码这层纯代码检查不消耗模型算力第二层是结果面校验Agent产出的建议是否与专家规则库里的规则冲突冲突则标记为可疑第三层是人工反馈延迟回收操作人员在终端上对Agent建议按“接受/修改后接受/拒绝”打标定期回传微调Prompt示例。这层在线反馈是让Agent系统持续变好的关键。很多团队把Agent部署到边缘之后就当成了静态系统上线是什么样一年后还是什么样这等于把Agent当普通软件运维了。真正合格的Agent系统应该有反馈飞轮每一条人工修正都是宝贵的训练数据。3. 模型选型与端侧部署实操3.1 模型选型三个硬指标选端侧模型有三个硬指标别光看跑分参数量、量化后的内存占用、在目标设备上的实测延迟。我现在帮团队选型时会先列一个需求清单任务类型是什么分类、检测、生成、多模态、最低推理延迟是多少、可用内存有多大、断电断网场景下的行为要求是什么。以视觉任务为例几M参数的检测模型比如YOLO系列的nano版本负责实时感知几百M到1B参数的轻量级语言模型负责语义理解和决策如果牵扯到多模态还需要额外考虑视觉编码器的参数量。我目前在Jetson Orin Nano上跑了一个组合方案YOLOv8n做外观检测、Qwen2.5-1.5B做Agent推理、bge-small做本地向量检索整个系统部署完约3.5GB内存空闲待机功耗8瓦左右完整推理链路的单次响应在1.8秒上下。3.2 量化是必选项但不是白拿边缘设备上做Agent推理INT8量化基本是必选项。以1.5B模型为例FP16精度下权重约占3GB用INT8量化后压到约1.5GB这个差距在嵌入式设备上是决定性的。我在很多项目里都在用AWQ或GPTQ跑W4A16量化内存能进一步压到1GB以内但语言模型的输出质量会有肉眼可见的下降尤其在工具调用的格式化输出上更容易出错。我的建议是Agent的“大脑”模型优先保精度用INT8就够别为了省那几百MB内存牺牲决策质量。视觉检测模型则可以放心用INT8感知类任务的鲁棒性通常比语言任务强。部署推理引擎方面英伟达的设备用TensorRT高通设备用QNN纯CPU场景用ONNX Runtime或llama.cpp。踩过一个大坑同一个ONNX模型在不同推理引擎上行为不一致有的算子在高版本引擎里会被重排导致输出和原始PyTorch结果差了几个token。所以换推理引擎时一定要跑回归测试用一组固定的query来验证输出一致性。3.3 端侧资源分配这三点一定要盯紧边缘设备不只跑Agent模型还同时跑着感知推理、数据采集、通信等任务。资源分配如果处理不好Agent的推理延迟会非常不稳定。第一点显存预留要提前做。部署模型之前先确定显存分配策略。如果感知模型和语言模型同时驻留显存要在推理引擎里设置内存池上限。建议预留总显存的10%-15%作为动态分配弹性否则高并发时段容易出现OOM或者运行不稳定。Jetson上我把视觉模型固定在2GB内存池、语言模型固定在4GB内存池8GB版调度起来基本稳。第二点CPU亲和性和调度优先级要配置。Jetson上的Denver核心和ARM核心性能差异很大Agent的推理线程调度在Denver核心上或者被中断抢占会有明显性能波动。我会用taskset把不同进程绑到不同核心上并利用实时调度策略保证推理线程优先级。改完之后同类模型推理延迟方差明显改善P95和P50的差距从原先的45%缩小到18%左右。第三点温度与功耗的平衡要测量。端侧Agent长时间运行会产生比单纯感知模型更大的热量因为语言模型推理的峰值功耗比CNN高不少。如果散热压不住设备会降频推理延迟会持续恶化。实测Orin Nano跑语言模型连续30分钟测试中会有约20%的降频幅度。建议在项目早期就做温度循环测试别等到上线后才发现夏天一到延迟就崩。3.4 一套最小可行的Agent代码骨架我写了一套适合边缘设备的最小Agent循环核心逻辑非常直接观察-思考-调用工具-再观察。# agent_core.py import json from typing import List, Dict class EdgeAgent: def __init__(self, llm_engine, tools: Dict, memory, max_rounds5): self.llm llm_engine self.tools tools self.memory memory self.max_rounds max_rounds def run(self, system_prompt: str, user_task: str) - str: messages [{role: system, content: system_prompt}] # 先加载相关知识agentic rag的关键点 context self.memory.retrieve(user_task) messages.append({role: system, content: f参考知识: {context}}) messages.append({role: user, content: user_task}) for round_idx in range(self.max_rounds): # 先让模型考虑与推理提取出意图及参数 response self.llm.chat(messages) messages.append({role: assistant, content: response}) # 解析函数调用 call self._parse_call(response) if call is None: return response # 没有函数调用就认为任务已经完成 # 执行工具调用 obs self._execute_tool(call) messages.append({role: tool, content: json.dumps(obs, ensure_asciiFalse)}) self.memory.append_tool_record(call, obs) return 超时退出请人工介入 def _parse_call(self, response: str) - Dict: # 优先尝试解析JSON失败则用正则兜底 try: return json.loads(response) except Exception: # 兜底解析逻辑兼容模型输出markdown代码块的情况 ... def _execute_tool(self, call: Dict): tool self.tools.get(call.get(name)) if not tool: return {error: ftool {call.get(name)} not found} try: return tool.execute(**call.get(args, {})) except Exception as e: return {error: str(e)}这个骨架的核心是消息列表里始终保留完整的思考轨迹每一轮工具调用的返回都会重新送进上下文。这个设计配合记忆模块让Agent在边缘设备上也能保持多轮任务能力而不会因为上下文被截断而丢失目标信息。实际部署的时候这个循环体本身开销很小真正的算力消耗都在LLM推理。我用llama.cpp跑Qwen2.5-1.5B INT8单轮推理延迟在300ms到600ms之间A780核心如果任务需要3轮工具调用总耗时大约1.5到2秒对于大多数工业场景完全够用。4. 案例拆解智能车间质检Agent的完整落地4.1 场景与需求背景这个项目来自一家做汽车零配件的工厂。需求背景很有代表性质检环节依赖老师傅的经验但老师傅快退休了经验传不下来试过用视觉检测模型做自动化质检识别率不错但因为缺乏决策环节检测结果出来之后还是要人来看怎么处理。客户真正要的不是“检测系统”而是一套能替代质检员部分判断能力的系统。它需要做到识别缺陷、判断严重级别、搜索对应处理方案、输出处理建议并且把处理结果反馈到系统里。这个需求天然适合Agentic Edge AI。4.2 端侧Agent的实现路径这个系统的整体分割策略是基于实际场景的响应要求倒推的。外观缺陷检测要求实时因为产线节拍快放在Jetson上用YOLOv8的INT8模型直接跑单帧推理约20ms随随便便满足30fps的节拍。缺陷分类判断严重级别涉及语义理解用端侧的Qwen2.5-1.5B目标检测模型完成后由语言模型推理决定缺陷属于划伤、压伤还是油污并判断轻微还是严重。知识检索和方案生成放在Agent层在设备本地做向量检索之后由语言模型根据检索结果生成处理建议。跨系统的工单同步和报表生成是异步任务由Agent在本地组装数据后同步到MES系统。这里我特别想强调一下Agent的Prompt设计。在边缘设备上跑大模型要清楚它的能力边界尤其1.5B量级的小模型绝对不能给太开放的指令。质检Agent的系统提示词是逐条约束的举几个关键条目遇到工具调用失败不要尝试编造结果直接标记为人工复核处理建议必须引用本地知识库中的标准编号不要输出处理方案之外的额外解释判断为严重缺陷时必须在响应中附带“建议停机”标志。这个小模型反而因为被约束得比较死工程上显得非常可靠。它输出的动作空间本身有限不太会凭空自由发挥。反观某些部署在云端的大模型用例自由度拉满正确率不见得比小模型高多少问题还会出现在不同上下文上。4.3 质检Agent工作流实测效果系统跑起来之后的完整工作流是这样的产线上零件经过相机工位视觉模型先判断是否有表面缺陷。没有缺陷的直接放行后台记录一张正常图。检测到缺陷的触发Agent流程Agent先给缺陷分类把类别和置信度写进上下文然后从本地向量库检索同类缺陷的历史维修处理记录再结合缺陷类别形成处理建议同时写一条结构化记录到SQLite最后通过消息队列把工单同步到MES。因为端上模型的Prompt里写明了“处理建议必须引用标准编号”Agent给出的建议直接就是可按标准执行的指令而不只是泛泛分析。实测在两个月的数据里Agent的缺陷分类准确率约92%处理建议的采纳率约85%没有被采纳的建议主要是车间临时工艺调整导致标准知识库过期的情况。这个结果让我很受启发。Agentic Edge AI的价值不在于代替一个经验5年的老师傅而在于把老师傅的判断逻辑结构化沉淀下来让系统最少可以稳定发挥80分水平。老师傅判断时思考了哪些因素、优先考虑什么、标准库里的依据是什么都通过Agent的设计固化了。4.4 这个案例的可迁移性很强做完这个车间项目回头来看同一个架构模式完全可以迁移到其他工业场景设备预测性维护振动数据维护知识库、仓储分拣调度视觉定位路径决策、能源管理能耗监测节能策略这些场景的模式都是相通的。你的核心感知模型可以换成任何适合业务的模型你的知识库可以换成任何领域的手册和标准Agent骨架本身不需要大改。我在后续项目里复用这套骨架从需求确认到方案验证只用了一周时间就完成了第二个场景的POC。这也是我认为Agentic Edge AI真正有工程价值的原因它不是某一个算法而是一套可复用的系统架构方法论。5. 常见问题排查与安全红线5.1 典型问题速查表我在多个Agentic Edge AI项目里总结了一些高频问题做成速查表可以直接对照排查现象可能原因排查方法解决方案Agent偶尔输出乱码JSON量化后模型表达能力下降复现抓原始输出提示词中给严格格式示例增加解析兜底正则低几次错误直接走工具重试推理延迟波动大资源争抢/热降频查看CPU/GPU占用曲线、温度曲线绑定CPU核心预留内存池增加散热或限制功耗模式多轮对话后偏离任务目标上下文被截断打印完整messages列表引入工作记忆摘要限制最大轮数并强制回到目标工具调用后拿到错误参数模型对参数约束理解不到位查看模型原始的JSON输出给每个参数加枚举范围描述在系统入口再做一层参数校验断网后Agent无法工作依赖云端模型断网模拟测试端侧内置降级规则链离线时自动切到有限动作空间模型更新后行为不一致换引擎/版本导致算子差异跑回归测试集固定回归集推理引擎版本锁死上线前逐条比对输出5.2 安全合规Agent能做什么必须严格受限安全是边缘Agent不能回避的问题。owasp针对智能体安全发布了top 10风险清单里面的提示注入、不安全工具调用、权限过度放大等问题在边缘环境同样存在而且因为设备离散分布防护做不到统一管控问题更加棘手。我在项目里约束了Agent的权限边界这是直接写进系统架构而不只是写在Prompt里的。工具层做了“最小权限映射”Agent能调用的每个函数都有独立权限标志比如质检Agent能查历史记录但删数据库的权限根本不在它的工具列表里。所有Agent对外部系统的写操作统一走消息队列这样单向链路没有直接写数据库的能力天然防止了Agent“越权做事”。敏感数据的输出在端侧做脱敏处理序列号、人员信息等字段在记录前就做了掩码。这里给一个我常用的脱敏简单例子def mask_sensitive(text: str) - str: # 对身份证/工号、手机号做掩码处理 import re text re.sub(r\b\d{17}[\dXx]\b, ID_MASKED, text) text re.sub(r\b1[3-9]\d{9}\b, PHONE_MASKED, text) return text5.3 断线降级策略边缘环境网络不稳定是常态但Agent的“自主性”在断网时必须可控。我测试过一组很扎心的数据百分之二十几的请求发生在网络抖动或断网状态下。所以Agent必须要有清晰的降级策略。我会把Agent的动作空间区分为三个等级第一级本地自主不依赖网络质检判断、本地知识检索、告警上报都可以完成第二级延迟同步需要云端知识库的结果会有本地缓存的最近版本Agent优先使用缓存结果做决策事后再同步第三级人工介入对于高风险的写操作或模糊决策断网时一律默认为人工复核处理Agent只做信息汇总。这个降级逻辑在很多产品方案里容易被忽略但实际运行中非常关键。断网不是“系统不可用”而是“自动决策范围收窄”这恰恰是Agentic系统最重要的一个创新价值点。在之前的纯边缘AI方案里断网时是能感知但不能决策在纯云端方案里断网时连感知都做不到。Agentic Edge AI的设计让系统在弱网甚至无网时仍然能保持一部分有价值的决策能力。6. 我在实践中的几点体会这个方向折腾了大半年有几个体会比较想分享出来。第一Agentic Edge AI不是简单的“边缘AI大模型”。它是一个系统架构层面的重构。核心难点在于如何把Agent的自主性和边缘环境的资源受限、网络不稳、数据敏感这些约束调和在一起。相比云端Agent可以任性地用大模型暴力解决问题边缘Agent必须在约束条件下做精巧设计。第二小模型不可怕可怕的是没有约束的设计。很多人一听说在边缘设备上跑Agent第一反应就是“1.5B的小模型能干什么”。我的回答是如果模型被设计成在一个受限的动作空间里做决策1.5B足够胜任80%的工业场景。真正让Agent失控的不是模型体积小而是目标不收敛、动作空间无边界、Prompt没有约束。第三评估Agent系统的核心指标不是单轮正确率而是“人工介入频率”。这个指标衡量的是这套系统真正替人类承担了多少决策负担。端侧Agent每处理一次任务系统自动记录是否需要人工介入每周统计一个趋势。如果你的Agent上线后人工介入率不降反升不管你的模型评估指标多好看这个系统在业务上都是失败的。第四要重视知识库的质量而不是只盯着模型调优。Agentic RAG的核心在于检索到的知识是否准确、权威、覆盖当前场景。很多Agent表现不佳排查到最后发现是知识库里的内容已经过期了半年。知识库的维护频率和更新机制应该和模型调优放到同等重要的位置。最后想说的是Agentic Edge AI目前还处于早期阶段工具链、框架、安全方案都在快速迭代中。如果你之前做过边缘AI或者做过云端Agent现在转型到这个方向都有天然的切入点。前者理解硬件和实时系统的约束后者理解Agent编排和语义理解两者结合就是这个领域的核心能力。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进