AI 工程周刊 · 每周十篇非显而易见的工程洞察
一次生产级 Agent 的跨模型迁移揭示了一个反直觉真相:拖慢你、烧掉预算的不是新模型,而是 harness 里为旧模型写死的假设。
当 Ploy 团队把生产 Agent 从 Claude Opus 迁到 GPT-5.6 时,第一轮跑出的大量「失败」里,约三分之一根本不是模型退步——而是评测 harness 里为 Opus 量身定制的假设:工具调用预算、批量读取策略,甚至一个隐式的 minScore=1.0 默认值,让得分 0.98 的正确结果被判为失败。
这对每一个准备换模型的团队都是警告。GPT-5.6 会给所有可选工具参数都填上编造值(100% 的调用带满 25 个字段,Opus 仅 0.1%),导致过半的文件读取返回空却仍报 success:true——靠改 prompt 修不动。表面上多出的约 50% 成本,也并非模型更贵,而是缓存配置失效:共享的静态前缀 0% 命中。
解法都在 provider 边界,而非 prompt:把工具 schema 的 optional 字段改写成 anyOf:[T,null] 再在校验前剥离 null;按 workspace 设 prompt_cache_key;reasoning 重放用 store:false 换自包含加密块。修完之后,同样的迁移带来 2.2× 提速与 27% 降本——这正印证了本期主线:模型在趋同,护城河在 harness。
"模型正在变成商品,真正决定成本、可靠性与胜负的,是你围绕模型搭建的那层 harness、上下文与评测系统。"
— 本周主题
一个 744B 的 MoE(每 token 激活约 40B)能在消费级机器上「精确」运行——不靠量化牺牲质量,而是把 VRAM/RAM/磁盘当作统一内存层级:约 17B 稠密部分以 int4 常驻内存,每 token 只从磁盘流式加载会变化的 ~11GB 路由专家。
▸ 点击展开详情
它推翻了「跑大模型=堆显卡」的直觉,更揭示一个隐蔽失败模式:int4 的 MTP 投机解码头会让接受率悄悄归零(投机永不触发),必须换 int8(接受率 39–59%)。这类「静默降级」不报错、只是悄悄变差,正是本地部署最危险的坑。
对约束输出(JSON/function-calling)用语法本身当预先接受的投机草稿(接受率≈1.0);把 KV-cache 持久化到磁盘,让对话跨重启「热」恢复、零重新预填充。参考量级:冷解码约 0.05–0.1 tok/s,6× RTX 5090 可达 6.84 tok/s。
一个嵌套 RL 系统——外层 RL 训练的 Agent,其「动作」就是编写并启动内层 RL 训练任务,奖励=内层模型在隐藏评测上的提升——竟能泛化到从未训练过的任务族,且全部可复现,成本仅约 $1.3k。
▸ 点击展开详情
它把「Agent 编排」推到极致:Agent 的输出不再是文本或代码,而是另一个完整训练流程。奖励设计直接改变决策——加入「基线分数+提升量评分」后,Agent 从偏爱易完成的弱 0.6B 翻转为选更强的 1.7B(42%→95%)。
给自主 Agent 设计奖励时,别只奖励最终结果,要显式暴露「基线」与「提升量」这类中间信号,否则 Agent 会走捷径选易完成而非高价值的选项。分阶段学习(先学流程可靠性、再学模型质量)是可观测的收敛路径——外层奖励 54 步内从 ~0 爬到 ~0.63。
与模型无关,harness 本身就强加一个可测量的「token 地板」外加缓存不稳定税:Claude Code 在你的 prompt 之前先发约 33k token 的脚手架(27 个工具/近 10 万字符 schema),并会在会话中途重写缓存前缀;OpenCode 同任务只发约 7k。
▸ 点击展开详情
大家都在争模型 token 定价,却忽略 harness 的固定开销。同一任务 Claude Code 产生 53,839 个缓存写入 token,OpenCode 仅 1,003(54× 差距);72KB 的 CLAUDE.md 每次请求多加 ~20k token;子 Agent 扇出把 121k 放大到 513k。质量相同,成本却约 3.7×。
把 harness 的 token 开销当一等指标来测(在 API 边界抓 proxy);精简 CLAUDE.md 与工具集,因为工具 schema 是最大头;警惕子 Agent 扇出的成本放大,别默认挂一堆 MCP 工具(「everything」配置冷写高达 90,817 token)。
公开基准回答不了真实部署问题(会泄漏进训练、也不匹配你的代码库);正确做法是用最近合并的 PR + 你团队自己的测试(不用 LLM 裁判)自建基准,这会暴露:每 token 单价是很差的成本代理,且 harness 的上下文管理能在同等质量下让成本波动 2 倍以上。
▸ 点击展开详情
来自 Spark 之父 Matei Zaharia 团队,在数百万行、10+ 语言的真实代码库上验证。开源模型 GLM 5.2 冲进第一梯队、质量与 Opus 4.8 统计打平却更便宜($1.28 vs $1.94/任务);Sonnet 5 每 token 更便宜,却因多用 1.9× token,每任务反而更贵。
自建评测时给每次运行封存 git 历史(否则带 shell 的 Agent 会顺着 git log「作弊」翻到答案);别用 LLM 裁判(它奖励「听起来对」),用你的测试套件;比模型时比「每任务成本」而非「每 token 单价」,并把 harness 当独立变量——精简 harness(每轮少喂约 3× 上下文)可省 2× 成本。
编码 Agent 在真实项目上的瓶颈不是「写代码」,而是「依赖导航」——冷启动 Agent 找到 11 个依赖里的 2 个(重跑甚至 0/11)就自信宣布影响面审计「完成」;给它一张结构化代码图后变成 11/11。失败模式是诚实的遗漏,不是幻觉。
▸ 点击展开详情
这是一个设计严谨、可证伪的基准(手工答案键、锁定 commit、机器校验的 path:line 引用、公开方差、可回放)。代码图的增益恰好集中在最难的「谁依赖谁」那一列,且随代码库规模放大——每个 >2500 文件的库增益都 >+0.25,<2000 文件的小库几乎无收益甚至为负。
在大型代码库上别指望 Agent 靠 grep 做全依赖审计;给它一个结构化的符号/依赖图作为上下文(尤其针对非文本可搜的隐式关系)。这对工作记忆有限的弱模型帮助最大——最弱的 Devstral 24B 增益(+0.25)几乎追平最强的 Opus(+0.26)。
Agent 的真实成本是你的等待时间而非 token,而驱动成本的是 prompt 的模糊度而非模型定价——一句没内容的「Hi」会让某些 Agent 过度思考(去审计整个仓库、陷入循环、甚至失败),比一个明确任务贵得多。
▸ 点击展开详情
210 次实测(14 模型×3 prompt×5 次)显示等待成本约是 token 成本的 20×,所谓「性价比排名」其实是延迟排名。「Hi」这种琐碎输入还有真实失败率:Haiku 和 MiniMax 各有 3/5 次「Hi」超时,而对照任务(「commit」)每个模型都 5/5 通过。Sonnet 对一句「Hi」平均调用 24 个工具、耗时 49 秒。
把「说清楚你要什么,别客套」当成硬性 prompt 纪律写进团队规范;监控 Agent 的「每次交互墙钟时间」而非仅看 token(按 $120k/年算,等待约 $0.016/秒);对开放式歧义输入加约束或直接拒绝,避免 Agent 自我发挥烧钱。
编码 Agent 的安全应建立在真实硬件边界上——带独立内核的一次性 microVM + 在 guest 之下强制执行的用户态网络白名单——而非靠 prompt 规则或一次失误就能被攻破的进程沙箱。宿主文件系统不是「被藏起来」,而是根本没挂载,所以无处可逃。
▸ 点击展开详情
随着越来越多人跑 --dangerously-skip-permissions,「容器化 Agent」从可选项变成刚需。它诚实划清边界:ssh-agent 转发让 git push 能用,但 Agent 能读到的东西就能发布到白名单主机——这是真实威胁模型,而非营销话术。
让 Agent 在每项目一台一次性 VM 里跑(代码挂载、guest 内 root、无权限弹窗),用 DNS 感知的出站白名单在用户态 L3 栈里默认拒绝一切(guest 即使 root 也改不了);用完 destroy && 重建拿到干净环境,仓库与对话持久化在宿主。空闲 30 分钟自动停、内存回收到 ~1GiB。
一个反复运行的自然语言 Agent 技能,就像还没编译的代码——一旦其工作流「结晶」稳定,就该把稳定步骤「编译」成确定性代码,只在真正需要语义判断的地方保留 LLM 调用,从而在不损失质量的前提下砍掉成本与延迟。
▸ 点击展开详情
这是可泛化的方法论转变(先流动、后编译):先用自然语言技能探索工作流,等 trace 揭示真实形态后再一次性编译,符合「分摊优化」的经济学。案例里真正需要 LLM 的只有两步(候选选择+初稿撰写),其余全变成普通 Python——节省来自「删掉不必要的模型调用」,而非换更小的模型。
对高频运行的 Agent 工作流,收集 trace 找出确定性步骤并编译成代码,只保留判断性节点调 LLM;一次性编译成本可在成百上千次运行中摊薄,实测 token −94%、延迟 −87%、质量基本不变。注意:卖 token 的厂商没有动力告诉你「你的大部分工作流根本不需要 token」。
当大多数代码是机器写的,审阅者需要语言层面来回答「这段代码能触及什么、我们有多确定」——Jacquard 把副作用、有限离散不确定性、以及规范化的程序身份直接放进语言里,让权限清单、世界切换、贝叶斯式程序修复成为普通工具,而非藏在注释或日志中。
▸ 点击展开详情
它把「审阅 AI 写的代码」从工具层推到语言层:每个函数签名都是一份权限清单(运行时拒绝未授予的副作用、无环境权限),程序身份用规范结构的哈希而非源码字节表示,所以重命名/格式化/改注释都不会让缓存的测试结果失效。这是对 AI 原生编程语言设计的一次高度原创探索。
把程序修复重构为推理——一个失败的测试就是对候选补丁的一次观测(demo 中「真正的修复」概率 0.75 vs「糊弄测试套件的补丁」0.25)。它目前是 v0.1 研究原型(OCaml/.jac,非生产就绪),但「用类型-副作用行做权限清单」「一次程序跑多个世界替代大量 mock」的思路,值得设计 AI 代码审查体系的团队借鉴。
本周十篇文章拼出同一条主线:模型正在商品化,而工程的价值——连同隐藏的成本与失败模式——正从「模型内部」迁往「模型周围的系统」。Ploy 迁移到 GPT-5.6 发现,拖后腿的不是新模型,而是 harness 里为旧模型写死的假设;Systima 实测 Claude Code 在读你的 prompt 前就先发 33k token;Databricks(Matei Zaharia 团队)证明同一模型、同等质量下,仅 harness 的上下文管理就能让成本差 2 倍,而开源的 GLM 5.2 已与 Opus 4.8 打平。当模型趋同,差异就落在你喂它多少上下文、怎么评测、怎么隔离、用什么语言约束它。可靠性问题也在「外移」:Agent 能写 Ruby 却读不懂依赖,一句模糊的「Hi」能让它烧掉 20 倍的等待成本。而应对之道高度一致——把稳定的工作流编译成代码、给 Agent 一次性沙箱、给自建评测封存 git 历史、用语言本身声明权限。这一期没有惊天的模型发布,却给出一个更实用的共识:2026 下半年,AI 工程师的护城河不在模型里,而在你围绕模型搭建的那一切。