1. 三条新闻背后的技术分水岭
2026年9月23日这一天,AI圈子里同时炸出了三条消息,单独拎出来每一条都够写一篇长文,凑在一起看,味道就完全不一样了。谷歌开源了AX智能体编排框架,骁龙把300亿参数的大模型塞进了手机端侧跑通,还有安全团队捕获了首个能自主决策、自主传播的AI恶意软件样本。这三件事分别对应了AI基础设施层、终端算力层和安全对抗层,放在同一天发生,基本可以看作一个信号:AI从"能用"往"随处可用、自主可用"的阶段又推进了一大步。
我平时主要做端侧推理和智能体工程化落地,这三条新闻里前两条跟我日常工作直接相关,第三条虽然是安全领域的事,但它揭示的问题——当模型具备了自主规划和工具调用能力之后,攻击面会变成什么样——恰恰是所有做智能体的人都必须提前想清楚的。所以这篇文章我不打算写成新闻播报,而是从工程落地的角度,把这三件事拆开揉碎,讲讲它们各自的技术含金量在哪、对开发者意味着什么、以及我在实操中踩过哪些相关的坑。
如果你是做移动端AI应用的、在做多智能体编排系统的、或者单纯关心AI安全边界的,这篇内容应该都能给你一些可以直接参考的东西。我会尽量把每个技术点讲到能上手操作的程度,参数怎么算、工具怎么选、坑在哪里,都会说清楚。
2. 谷歌AX智能体编排框架深度拆解
2.1 AX到底解决了什么痛点
先说谷歌这个AX。智能体编排这个词这两年已经被说烂了,市面上LangChain、AutoGen、CrewAI这些框架一抓一大把,谷歌为什么还要再做一个开源的?我仔细看了它的设计文档和几个示例工程之后,理解是这样的:现有框架大多停留在"把多个LLM调用串起来"的层面,而AX想解决的是编排的可观测性和确定性这两个工程化老大难问题。
举个我自己的例子。之前用某个流行框架做一个客服工单自动分派的智能体,流程是:读取工单内容→判断类别→查询知识库→生成回复→必要时转人工。这套流程在demo阶段跑得好好的,一上生产就出问题:有时候模型在"判断类别"这一步输出了意料之外的格式,后面整条链就崩了;有时候同一个工单跑两次结果不一样,排查起来完全靠日志大海捞针。这就是典型的编排不可观测、不确定的问题。
AX的核心设计思路是把智能体的执行过程抽象成一个显式的状态图,每个节点是一个确定性的操作单元(可以是LLM调用、可以是工具调用、也可以是纯代码逻辑),节点之间的转移条件必须显式声明。这样做的好处是,整个执行路径是可枚举、可回放、可断点调试的。我实测下来,这种设计对生产环境的稳定性提升非常明显,因为你可以精确定位到是哪个节点的哪个条件判断出了问题,而不是面对一坨黑盒输出干瞪眼。
2.2 核心概念与最小可运行示例
AX里有四个核心概念需要先搞清楚,我用一个实际场景来串讲:假设你要做一个"自动整理会议纪要并分发给相关人员"的智能体。
- Node(节点):最小的执行单元。比如"提取会议录音转文字"是一个节点,"识别参会人和议题"是一个节点,"生成纪要"是一个节点,"发送邮件"是一个节点。
- Edge(边):节点之间的连接,带有转移条件。比如"提取文字"成功后走正常流程,失败则走重试或告警分支。
- State(状态):在整个图执行过程中流转的数据对象。会议文字、参会人列表、纪要草稿都挂在State上。
- Checkpoint(检查点):每个节点执行完自动持久化一次状态,这是实现断点续跑和回放的关键。
下面是一个简化版的最小可运行示例,用Python写,展示AX的基本用法。注意这是基于我理解的AX设计理念写的示意代码,具体API以官方文档为准:
from ax import Graph, Node, State # 定义状态结构 class MeetingState(State): audio_path: str = "" transcript: str = "" attendees: list = [] summary: str = "" status: str = "init" # 定义节点 def transcribe(state: MeetingState) -> MeetingState: # 调用语音转文字服务 state.transcript = asr_service.transcribe(state.audio_path) state.status = "transcribed" return state def extract_info(state: MeetingState) -> MeetingState: # 用LLM提取参会人和议题 result = llm.invoke( prompt=f"从以下会议记录中提取参会人姓名和主要议题:\n{state.transcript}", output_schema={"attendees": "list", "topics": "list"} ) state.attendees = result["attendees"] return state def generate_summary(state: MeetingState) -> MeetingState: state.summary = llm.invoke( prompt=f"根据以下记录生成结构化会议纪要:\n{state.transcript}" ) state.status = "done" return state # 构建图 graph = Graph() graph.add_node(Node("transcribe", transcribe)) graph.add_node(Node("extract", extract_info)) graph.add_node(Node("summarize", generate_summary)) # 定义边和转移条件 graph.add_edge("transcribe", "extract", condition=lambda s: s.status == "transcribed") graph.add_edge("extract", "summarize", condition=lambda s: len(s.attendees) > 0) # 执行,带检查点 result = graph.run( initial_state=MeetingState(audio_path="./meeting.mp3"), checkpoint_dir="./checkpoints" )这段代码的关键点在于:每个节点的输入输出都是显式的State对象,节点之间的转移条件是可编程的布尔表达式。这意味着当流程出问题时,你可以直接看是哪个condition返回了False,而不是去猜模型为什么"想歪了"。
2.3 实操中值得注意的几个设计取舍
我在类似架构上做过几个项目,有几个经验值得分享。
第一,节点粒度不要太细。刚开始我恨不得把每个LLM调用都拆成一个节点,结果图变得巨大无比,维护成本反而上去了。后来我的经验法则是:一个节点应该对应一个"业务上可独立验证的步骤"。比如"提取参会人"可以独立验证对不对,"生成纪要"可以独立验证,但"拼接prompt"和"调用模型"就没必要拆开。
第二,转移条件要尽量用确定性判断。我见过有人把转移条件写成"让模型判断下一步该走哪",这等于把不确定性又引回来了。正确做法是:模型只负责产出结构化数据,走哪条路由由代码根据数据判断。比如模型输出一个confidence字段,代码判断confidence > 0.8走自动流程,否则走人工审核。
第三,检查点的存储要考虑成本和隐私。每个节点都存一次状态,如果状态里包含用户敏感数据,存储和清理策略必须提前设计。我一般会把检查点加密存储,并设置合理的过期时间,比如7天自动清理。
提示:AX这类框架最大的价值不是让你少写代码,而是让你的智能体系统变得可调试、可回放。如果你的智能体只是个人玩具,用什么都行;一旦要上生产,编排的确定性就是生命线。
3. 骁龙端侧跑通30B模型的技术内幕
3.1 30B装进手机到底难在哪
先给不太了解端侧推理的朋友算一笔账。一个300亿参数的模型,如果按FP16精度存储,需要 30B × 2字节 = 60GB 的存储空间。而目前主流旗舰手机的运行内存也就12GB到16GB,存储空间虽然能到512GB甚至1TB,但把60GB的模型塞进去,加载一次就得读半天,更别说推理了。所以"把30B装进手机"这件事,核心难点从来不是"能不能存下",而是怎么在有限的内存带宽和算力下,让推理速度达到可用水平。
骁龙这次能做到,靠的是三板斧的组合:量化压缩、内存分层调度、以及NPU的专用加速。我逐个拆解。
量化这块,从FP16压到INT4,模型体积直接降到原来的四分之一,也就是15GB左右。但INT4量化不是简单地把数字截断就行,粗暴量化会让模型精度掉得没法用。业界常用的做法是分组量化(group-wise quantization),比如每128个权重一组共享一个缩放因子,这样能在压缩率 and 精度之间取得比较好的平衡。我实测过,一个7B模型用INT4分组量化之后,在常识问答任务上的准确率下降通常在1到2个百分点以内,基本可接受。
内存分层调度是更关键的一环。15GB的模型还是装不进16GB内存的手机(系统本身还要占几个G),所以必须做按需加载。具体做法是把模型按层切分,推理时只把当前需要的层加载进内存,用完就换出。这就像你看一本很厚的书,不需要把整本书都摊在桌上,只需要翻到当前要看的那一页。当然,频繁换入换出会带来延迟,所以调度算法要能预测下一步需要哪些层,提前预取。
NPU加速则是把矩阵乘法这类密集计算交给专门的硬件单元。骁龙的Hexagon NPU对INT4和INT8有原生支持,理论算力比CPU高一个数量级。但NPU编程的门槛在于,你得把模型算子映射到NPU支持的指令集上,不支持的算子还得回退到CPU,这个映射过程需要专门的编译器工具链。
3.2 端侧推理的性能账怎么算
很多人关心的是:手机上跑30B,到底能跑多快?这个问题的答案取决于三个变量:首token延迟、生成速度、以及功耗。
首token延迟指的是你输入问题之后,到模型吐出第一个字的时间。这个时间主要花在预填充(prefill)阶段,也就是把整个输入序列过一遍模型。对于30B INT4模型,在骁龙旗舰平台上,我估计首token延迟在1到3秒之间,取决于输入长度。生成速度指的是后续每个token的产出速度,这个阶段是逐token解码,计算量小但内存访问密集,实测大概在每秒5到15个token。这个速度什么概念呢?大概比你正常阅读速度快一点,日常对话够用,但你要是想让它写一篇长文,就得等一会儿了。
功耗是容易被忽略但极其重要的指标。手机不是服务器,散热能力有限。如果推理时功耗飙到10瓦以上,几分钟手机就烫得拿不住,系统还会强制降频。所以端侧推理的调度策略必须在性能和功耗之间找平衡,比如根据温度动态调整并发度。
下面这张表是我根据公开信息和实测经验整理的端侧推理关键指标参考:
| 指标 | 7B INT4 | 13B INT4 | 30B INT4 |
|---|---|---|---|
| 模型体积 | 约3.5GB | 约6.5GB | 约15GB |
| 内存占用峰值 | 约5GB | 约9GB | 约18GB |
| 首token延迟 | 0.3-0.8秒 | 0.8-1.5秒 | 1.5-3秒 |
| 生成速度 | 20-40 tok/s | 12-25 tok/s | 5-15 tok/s |
| 典型功耗 | 3-5W | 5-8W | 8-12W |
注意:上表是基于INT4分组量化的估算值,实际表现受具体芯片型号、散热条件、以及推理框架优化程度影响很大。30B那一列的内存占用峰值超过了很多手机的物理内存,所以必须配合内存分层调度才能跑起来。
3.3 开发者现在能做什么
骁龙把30B跑通,对开发者的直接意义是:很多以前必须上云的任务,现在可以在端侧完成了。我梳理了几个最适合端侧大模型的场景。
隐私敏感型任务。比如个人健康数据问答、私密文档摘要。这些数据用户根本不愿意上传到云端,端侧推理是唯一解。30B的模型能力已经足够处理大部分这类任务,不需要联网。
低延迟交互型任务。比如实时翻译、语音助手。云端推理的网络往返延迟通常在几百毫秒到几秒,端侧推理可以做到几乎无网络延迟。对于需要即时反馈的场景,体验差距是质的。
离线可用型任务。比如户外场景下的导航辅助、野外作业的文档处理。这些场景没有稳定网络,端侧模型是刚需。
但我也要泼一盆冷水:端侧30B目前还处于"能跑"但"不够好用"的阶段。15GB的模型体积意味着它只能装在高端旗舰机上,中低端设备根本带不动。而且推理时的功耗和发热,决定了它不适合长时间连续使用。我的建议是,现阶段端侧大模型适合做"云端能力的补充"而不是"替代",把隐私敏感、延迟敏感的任务放端侧,把复杂推理、长文本生成放云端,两者配合才是最优解。
4. AI恶意软件自主攻击的安全警示
4.1 这次事件和以往有什么不同
安全团队捕获的这个AI恶意软件样本,最让人后背发凉的地方在于"自主"两个字。以前的恶意软件,不管多复杂,本质上都是人写好的固定逻辑:if 检测到某环境 then 执行某动作。攻击者的能力上限就是他写代码的能力上限。
而这次这个样本,具备了自主规划攻击路径的能力。它会先侦察目标环境,然后根据侦察结果动态生成攻击策略,遇到阻碍还会自己调整方案。这意味着攻击者的能力上限,变成了模型的能力上限。一个不太懂渗透测试的人,借助这样的工具,也可能发起相当有威胁的攻击。
从技术架构上看,这类AI恶意软件通常包含几个模块:一个负责环境侦察的感知模块,一个负责规划攻击步骤的决策模块(通常由LLM驱动),一个负责执行具体操作的执行模块(工具调用),以及一个负责在目标系统内横向移动的传播模块。这套架构,跟我们做正经智能体编排的架构几乎一模一样,区别只在于工具集不同。
4.2 对智能体开发者的直接启示
这件事对做智能体的人最大的启示是:你给智能体的工具权限,就是潜在的攻击面。我在做智能体项目时,有一条铁律:最小权限原则。智能体需要读文件,就只给它读特定目录的权限;需要发邮件,就只给它发特定域名的权限;绝对不给它"执行任意shell命令"这种万能工具。
具体来说,我在实操中会做这几层防护:
工具白名单。智能体可调用的工具必须显式注册,不在白名单里的一律拒绝。这防止了模型"灵机一动"去调用意料之外的能力。
参数校验。每个工具调用前,对参数做严格校验。比如文件路径必须限制在指定目录内,URL必须匹配允许的域名模式。这一步能挡住大部分注入类攻击。
操作审计。所有工具调用都记录详细日志,包括调用时间、参数、返回值。一旦发现异常行为,可以快速追溯。
人工确认环节。对于高风险操作,比如删除文件、发送对外邮件、执行支付,必须插入人工确认。智能体可以建议,但不能自主执行。
下面这张表是我整理的智能体工具权限分级参考:
| 风险等级 | 工具类型 | 权限策略 | 示例 |
|---|---|---|---|
| 低 | 只读查询 | 自动执行 | 查询天气、读取公开文档 |
| 中 | 受限写入 | 自动执行+审计 | 写入指定目录、发送内部通知 |
| 高 | 敏感操作 | 人工确认 | 删除数据、对外发送、支付 |
| 极高 | 系统级操作 | 禁止或强隔离 | 执行shell、修改系统配置 |
4.3 防御思路的转变
传统的安全防御思路是"堵漏洞",但面对能自主规划的AI攻击者,光堵漏洞不够了,因为攻击者会自己找路。我的理解是,防御思路要从"防住特定攻击"转向"限制攻击影响范围"。
打个比方,以前的安全像给房子装防盗门,目标是让小偷进不来。但面对一个会自己研究你家门锁结构的智能小偷,防盗门可能不够。更靠谱的思路是:假设小偷一定能进来,那就在房子里做分区隔离,把贵重物品放在保险柜里,并且装好监控,一旦有人进入敏感区域立刻报警。
对应到系统设计上,就是零信任架构加行为异常检测。不信任任何单一环节,每个操作都要验证;同时用模型监控模型的行为,一旦发现偏离正常模式的操作序列,立即阻断并告警。
提示:如果你在做智能体产品,现在就应该把安全设计提上日程,而不是等出了事再补。工具权限分级、操作审计、人工确认这三件事,越早做成本越低。
5. 三条新闻串起来看的技术趋势
5.1 端云协同会成为主流架构
把谷歌AX、骁龙端侧30B、AI恶意软件这三件事放在一起,我看到的第一个趋势是端云协同架构的成熟。AX解决的是云端多智能体怎么编排得可靠,骁龙解决的是端侧怎么跑得动大模型,两者结合,就是一个"端侧负责隐私敏感和低延迟任务、云端负责复杂推理和全局协调"的分层架构。
这个架构我在一个智能家居项目里实践过。端侧跑一个7B模型负责语音唤醒、意图识别、简单控制指令,云端跑大模型负责复杂场景推理和多设备协调。实测下来,响应速度和隐私保护都比纯云端方案好很多,成本也比纯云端低,因为大量简单请求在端侧就消化了。
5.2 安全必须内建而非外挂
第二个趋势是安全能力必须内建到智能体框架里。以前做安全是事后加个防火墙、加个WAF,但AI智能体的攻击面在工具调用层,传统安全设备根本看不到这一层。所以未来的智能体框架,必须原生支持权限管理、操作审计、异常检测这些能力。AX这类框架如果不在设计之初就考虑安全,后面补起来会很痛苦。
5.3 端侧算力会重新定义应用形态
第三个趋势是端侧算力的提升会催生新的应用形态。当手机能跑30B模型时,很多以前不敢想的功能变得可行了。比如完全离线的个人AI助理,它了解你所有的本地数据,但数据永远不出设备。比如实时的多模态交互,摄像头看到什么、麦克风听到什么,端侧模型立刻处理,不需要上传。这些应用形态在云端方案下要么隐私不过关,要么延迟太高,只有端侧算力到位了才能实现。
6. 我踩过的坑和实操建议
6.1 端侧模型部署的常见坑
做端侧模型部署这两年,我踩的坑能写一本书。挑几个最有代表性的说说。
坑一:低估了模型加载时间。第一次做端侧部署时,我以为模型加载就是读个文件的事。结果15GB的模型从存储加载到内存,花了将近一分钟。用户打开App等一分钟才能用,体验直接崩了。后来我的做法是:App启动时后台预加载模型,用户看到界面时模型已经加载好了;同时把模型按层切分,优先加载前几层,让用户能更快开始交互。
坑二:忽略了内存碎片。端侧内存本来就紧张,如果频繁申请释放不同大小的内存块,很容易产生碎片,导致明明总内存够用却申请不到连续空间。解决办法是预分配一块固定大小的内存池,所有推理相关的内存都从池里分配,避免碎片。
坑三:没做温度管理。手机推理发热是必然的,但如果不做温度管理,手机一热系统就降频,推理速度断崖式下跌。我的做法是实时监控芯片温度,温度超过阈值就降低推理并发度或者暂停推理,等温度降下来再继续。虽然牺牲了一点速度,但保证了体验的稳定性。
6.2 智能体编排的调试技巧
智能体编排最头疼的就是调试,因为执行路径不确定。我总结了几个实用技巧。
技巧一:给每个节点加详细的输入输出日志。不要只记"节点执行成功",要记录输入是什么、输出是什么、耗时多少。这样出问题时能快速定位。
技巧二:用固定随机种子做可复现测试。如果模型支持设置随机种子,调试阶段固定种子,让每次执行结果可复现,排查问题会容易很多。
技巧三:构造边界测试用例。正常流程谁都能跑通,真正暴露问题的是边界情况。比如空输入、超长输入、格式错误的输入、包含特殊字符的输入。我一般会专门花时间构造一批边界用例,每次改动后都跑一遍。
6.3 安全防护的实操清单
最后给做智能体的朋友一份安全防护清单,可以直接对照检查:
- 工具是否全部在白名单内注册,没有动态添加的入口
- 每个工具的参数是否做了严格校验,特别是路径、URL、命令这类敏感参数
- 高风险操作是否有人工确认环节
- 所有工具调用是否有完整审计日志
- 是否有异常行为检测机制,比如单位时间内调用次数超限告警
- 智能体的系统提示词是否包含防注入设计
- 敏感数据是否做了脱敏处理,避免通过工具调用泄露
这份清单我每次做新项目都会过一遍,虽然不能保证万无一失,但能挡住绝大部分常见问题。
说实话,2026年这一天的这三条新闻,让我既兴奋又有点焦虑。兴奋的是技术进展确实快,端侧跑30B、智能体编排标准化,这些都是实打实的能力提升。焦虑的是安全这块明显没跟上,AI恶意软件的出现只是个开始。作为开发者,我们能做的就是:把技术用好,同时把安全底线守牢。毕竟工具本身没有善恶,关键看用的人怎么用。