ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

AI周报:推理成本下探、端侧小模型与Agent工程化实践

AI周报:推理成本下探、端侧小模型与Agent工程化实践

1. 这期周报到底在聊什么

先把时间线钉死:2026年10月1日到10月8日,正好横跨一个长假周期。做AI行业跟踪的人都知道,假期前后的信息密度往往呈现"两头高、中间平"的规律——节前厂商抢着发版本,节中社区沉淀讨论,节后第一波复盘集中爆发。这一周我翻完了主流模型厂商的更新日志、开源社区的合并记录、几场线上技术分享的回放,以及若干开发者群里的真实吐槽,筛出来的东西不算多,但每一条都值得单独拎出来说。

这期周报的核心关键词落在三个方向:推理成本下探、端侧小模型的能力边界扩张、Agent工程化从演示走向可维护。如果你是从业者,这三个词基本决定了你接下来一个季度的技术选型;如果你是刚入门的开发者,这期内容能帮你避开"追新追到一半发现方向错了"的坑。我不打算写成新闻播报,那种东西你刷任何信息流都能看到。我想做的是把每条动态背后的"为什么"拆开,告诉你哪些是真信号,哪些是营销噪音,以及如果你要动手,第一步该踩在哪里。

先说结论性的判断:这一周没有出现那种"改天换地"级别的发布,但有几处工程细节的调整,会在未来两三个月里慢慢显现出影响。真正值得花时间研究的,是那些看起来不起眼、但改变了默认工作流的改动。下面按模块展开。

2. 推理成本这条线:降价背后的账怎么算

2.1 表面是价格战,实际是架构调整

这一周最直观的变化是几家主流推理服务商调整了计费口径。注意,我说的是"计费口径"而不是单纯"降价"。这两者有本质区别:单纯降价是商业行为,计费口径变化往往意味着底层推理架构动了。

我拿到的几个调整样本里,有一个共同特征——按缓存命中与否分档计费的粒度变细了。以前很多服务商是"输入token一个价、输出token一个价",现在变成了"缓存未命中的输入""缓存命中的输入""输出"三档甚至四档。这个变化对普通聊天场景影响不大,但对长上下文、多轮复用同一段前缀的场景,成本差异能拉到三到五倍。

为什么会有这个变化?因为推理侧的**前缀缓存(prefix caching)**技术成熟了。简单类比:你每次问模型问题,如果前面都带着同一份5000字的文档,传统做法是每次都要把这5000字重新"读"一遍,算力全花在重复劳动上。前缀缓存相当于把这份文档的中间计算结果存下来,下次直接复用。服务商省了算力,自然愿意把这部分让利出来。

2.2 自己算一笔账:什么场景该关心缓存

很多人看到"缓存命中便宜"就兴奋,但实际上不是所有场景都能吃到这个红利。我整理了一个判断表,你可以对照自己的业务:

场景特征能否吃到缓存红利原因
单轮问答,每次问题都不同基本吃不到前缀不重复,缓存无意义
多轮对话,系统提示词固定能吃到系统提示词部分可缓存
RAG,同一文档反复查询能吃到,且收益大文档前缀高度重复
批量处理,每条数据独立吃不到无共享前缀
代码补全,同一文件反复编辑能吃到文件上下文重复度高

这里有个实操细节:缓存的有效期和失效策略。不同服务商对缓存保留时间的定义不一样,有的是几分钟,有的是几小时,有的按会话隔离。如果你做的是RAG,文档更新频率低,那缓存命中率会很高;但如果你做的是实时数据问答,缓存可能刚建立就失效了,反而增加管理复杂度。

提示:在接入任何带缓存计费的服务前,先用你自己的真实流量跑一遍,统计"相同前缀重复出现"的比例。这个比例低于30%的话,缓存优化对你意义不大,别为了省那点钱把架构搞复杂。

2.3 成本下探对产品形态的连锁反应

推理成本往下走,最直接的反应不是"同样的产品更便宜了",而是以前不划算的产品形态变得划算了。这一周我观察到两个苗头:

第一个是长文档的常态化处理。以前处理一份几万字的合同或报告,开发者会下意识地做摘要、分段、只取关键部分,因为全量塞进去太贵。现在成本降下来,开始有人尝试"整份文档直接进上下文,让模型自己找重点"。这个转变听起来小,但它改变了整个pipeline的设计——你不再需要精心设计检索策略,模型能看到全貌,很多因为"检索没召回"导致的错误自然消失了。

第二个是高频调用的Agent循环。Agent的本质是"模型调用模型",一个任务可能要跑十几轮甚至几十轮推理。以前每轮都心疼成本,所以大家拼命压缩轮数,导致Agent经常"想得不够就动手"。成本下来之后,允许Agent多思考几轮变得可行,这对任务成功率是实打实的提升。

但我要泼一盆冷水:成本降低不等于可以浪费。我见过太多团队,成本一降就开始无脑堆上下文,结果延迟上去了、效果反而因为噪声变差。成本优化的正确姿势是"把省下来的钱花在刀刃上",比如增加一轮自我校验,而不是把所有能塞的都塞进去。

3. 端侧小模型:这一周的几个真实进展

3.1 小模型不是"缩水版大模型"

先纠正一个常见误解。很多人觉得端侧小模型就是"把大模型砍小",能力按比例缩水。这个理解是错的。小模型和大模型的关系,更像是专才和通才的关系,而不是弱者和强者的关系。

这一周有几个端侧模型的更新,我实际跑了一下。在特定任务上,比如结构化信息抽取、短文本分类、固定格式的指令跟随,一个参数量只有大模型几十分之一的小模型,表现可以非常接近。原因很简单:这些任务的"解空间"很窄,不需要模型具备广博的世界知识,只需要它把模式记牢。

但一旦任务涉及开放域推理、多步逻辑、需要外部知识的问答,小模型立刻露怯。这不是训练技巧能弥补的,是参数量决定的信息容量上限。

3.2 端侧部署的三个现实约束

如果你打算把模型放到端侧(手机、边缘设备、浏览器),这一周的经验告诉我,有三个约束比模型效果本身更值得关注:

内存占用。模型权重只是冰山一角,运行时还要算上KV缓存、中间激活值、框架开销。一个标称2GB的模型,实际运行时峰值内存可能是3到4GB。端侧设备的内存是硬约束,超了就是直接崩,没有商量余地。

首token延迟。端侧没有服务端那种批量推理的优化空间,用户点一下就要出字。我实测下来,模型加载时间往往比推理时间还长。所以端侧方案必须考虑常驻内存还是按需加载的取舍——常驻省时间但占内存,按需省内存但每次都要等。

功耗与发热。这个最容易被忽略。端侧推理跑满CPU或NPU,手机几分钟就烫手,然后系统降频,推理速度断崖式下跌。所以端侧模型的"平均速度"没有意义,要看"持续跑十分钟后的速度"。

约束维度典型阈值超标后果缓解手段
内存占用设备可用内存的60%被系统杀掉量化、分片加载
首token延迟用户可接受约1秒体感卡顿预热、常驻
持续功耗不触发降频速度骤降限制并发、降精度

3.3 什么任务适合放端侧

基于这一周的观察,我给一个务实的判断标准:如果这个任务的数据敏感、延迟敏感、且任务模式固定,就适合端侧;只要有一条不满足,就老老实实放服务端。

数据敏感不用多解释,本地处理不上传,这是端侧最大的价值。延迟敏感指的是那些"等一次网络往返就破坏体验"的场景,比如输入法的实时联想。任务模式固定指的是前面说的"解空间窄",模型不需要临场发挥。

反过来说,如果你的任务是"用户随便问什么都要答得好",那端侧小模型现阶段还撑不起来,别硬上。

4. Agent工程化:从能跑到能维护

4.1 演示和生产的鸿沟在哪

这一周我在几个开发者社区看到大量Agent相关的讨论,有个现象很典型:demo跑通只要一下午,上线维护要三个月。鸿沟不在模型能力,在工程细节。

演示阶段,你关心的是"这个任务能不能完成"。生产阶段,你关心的是"一百个任务里有多少个能完成""失败的那些怎么发现""发现了怎么修""修完怎么保证不引入新问题"。这一整套东西,演示阶段完全不需要,生产阶段一个都不能少。

这一周有个值得注意的趋势:Agent的可观测性工具开始标准化。以前每个团队自己打日志、自己定义trace格式,现在慢慢有了共识——把Agent的一次执行拆成"思考步骤""工具调用""观察结果"三段,每段都记录输入输出和耗时。这个标准化听起来枯燥,但它意味着工具可以复用,调试经验可以迁移。

4.2 工具调用的可靠性怎么保证

Agent最容易出问题的地方是工具调用。模型决定调用哪个工具、传什么参数,这一步错了,后面全错。这一周我总结了几条实操经验:

第一,工具描述要写得像给新人看的文档。很多团队的工具描述就一句话,模型根本不知道边界在哪。好的工具描述应该包含:这个工具做什么、什么时候用、什么时候不用、参数的含义和取值范围、返回值的结构。你写得越清楚,模型调用越准。

第二,参数校验不能省。模型生成的参数经常有格式问题,比如该传数字传了字符串、该传枚举传了自由文本。在工具真正执行前加一层校验,把错误挡在外面,比让工具执行失败再让模型重试要高效得多。

第三,失败要给出可操作的反馈。工具执行失败时,返回给模型的信息不能只是"失败了",要告诉它"为什么失败、应该怎么改"。比如"参数date格式错误,应为YYYY-MM-DD",模型看到这个就能自己修正。如果只说"error",模型只能瞎猜。

4.3 一个可维护的Agent该长什么样

我把这一周看到的几个做得比较好的Agent架构抽象了一下,共同点有这么几个:

  • 状态显式化:Agent的当前状态(做到哪一步、已经有哪些信息)是显式存储的,不是藏在对话历史里。这样中断了能恢复,出错了能回放。
  • 步骤可中断:每个步骤之间是干净的边界,可以在任意步骤后暂停、检查、人工介入。
  • 失败可重试:单个步骤失败不影响整体,可以只重试失败的那一步,而不是从头再来。
  • 行为可回放:给定同样的输入和工具返回,Agent的行为应该可复现。这对调试至关重要。

注意:如果你的Agent现在还是"一个大循环里塞所有逻辑",建议尽早拆成显式的状态机。这个重构越早做越省事,等到逻辑复杂到几百行再拆,成本会高得多。

5. 这一周踩过的坑和验证过的小技巧

5.1 几个真实踩坑记录

坑一:缓存计费下的"伪优化"。有个场景我一开始以为能吃到缓存红利,结果实测成本没降。排查发现,虽然前缀看起来一样,但每次请求里有个时间戳字段在变,导致前缀实际不同,缓存全部失效。教训是:缓存命中的前提是字节级完全一致,任何动态字段都会破坏它。后来我把动态字段挪到前缀之后,命中率立刻上去了。

坑二:端侧模型的"冷启动陷阱"。测试时一切正常,上线后用户反馈"第一次用特别慢"。原因是测试时模型已经加载好了,而真实用户第一次使用时才触发加载。解决办法是在应用启动时后台预热,或者用一个极小的占位模型先顶上。

坑三:Agent的"无限循环"。模型调用工具失败,看到错误信息后重试,又失败,又重试,陷入死循环。后来加了最大重试次数和"连续失败则升级处理"的逻辑才解决。这个坑很常见,建议一开始就设好熔断。

5.2 排查问题的通用思路

遇到AI相关的问题,我习惯按这个顺序排查:

  1. 先确认输入。模型的表现高度依赖输入,输入有问题,后面全白搭。把实际发给模型的完整内容打印出来看一遍。
  2. 再确认参数。温度、top_p、最大长度这些参数,不同任务需要不同设置。用错参数导致的问题,调模型是调不好的。
  3. 然后看中间结果。如果是多步流程,每一步的中间输出都要能看到。问题往往出在中间某一步,而不是最后一步。
  4. 最后才怀疑模型。模型能力不足确实是可能的原因,但它排在最后。前面三步都排除了,再考虑换模型。

这个顺序能帮你省下大量"盲目换模型"的时间。

5.3 一个提升稳定性的小技巧

这一周验证了一个简单但有效的做法:给关键任务加"自检"步骤。具体来说,模型完成一个任务后,让它自己检查一遍结果是否符合要求,不符合就重做。这个自检不需要多复杂,就是让模型回答"这个结果满足以下条件吗"。

实测下来,这个简单的自检能把明显错误减少相当一部分。代价是多一次推理调用,但在成本已经下探的当下,这个代价完全值得。尤其是那些"错了代价很大"的任务,自检基本是标配。

6. 接下来值得盯的几个方向

基于这一周的信号,我个人会重点盯三件事。

第一是缓存机制的标准化。现在各家实现不一样,开发者迁移成本高。如果出现事实上的标准接口,整个生态的效率会提升一大截。

第二是端侧模型的工具链成熟度。模型本身进步很快,但量化、转换、部署的工具链还很碎片化。谁能把这条链路做顺,谁就能吃到端侧爆发的红利。

第三是Agent的评测方法。现在大家都在说自己的Agent好,但缺乏公认的评测标准。没有标准,就没法比较,也没法迭代。这一周已经看到一些团队在尝试建立评测集,值得关注。

最后分享一个我自己的习惯:每周花半小时,把这一周看到的"新东西"分成三类——立刻能用上的、需要观察的、纯噪音。第一类当天就试,第二类记下来定期回看,第三类直接忘掉。这个习惯帮我过滤掉了大量无效信息,也让我在真正重要的变化出现时不会错过。AI这个领域,信息过载是常态,能筛掉噪音比能记住所有东西重要得多。

RELATED READING

延伸阅读

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