Est. 2026 Synapse Weekly 第 39 期
中文 · English

AI Engineering Weekly

AI 工程周刊 · 每周十篇非显而易见的工程洞察

2026年9月24日 · 星期四 本期精选 10 篇 点击文章展开详情
本期主题插画:模型与业务之间的 harness 层,事件与工具调用在其中流动
40%
异步 harness 省下的 agent 成本
23.5%
水印下拒答翻转率(带注入)
86.6%
ZCode 上传包里 .git 的占比
129 亿
25 人一个月自托管的 token
头条 · Article I

Harness 拆成三个部件单独测,收益曲线各不相同

176 组配对实验把 coding harness 拆开测,推翻了几条常见做法。

研究者固定 agent 的执行循环,只替换规划、动作空间、上下文管理三个部件。四个模型,176 组配对设置,五种上下文管理策略,四档上下文预算,在 SWE-Bench Verified 和 Terminal-Bench 2.1 上跑完。上下文管理的收益几乎全部来自一件事:避免 context overflow 导致的失败。预算越紧,它越值钱。

另外三条结论直接推翻了常见做法。把省略掉的内容做成「可恢复」,模型几乎不去恢复,准确率一分不涨,机制白写。规划对弱模型是准确率支架,对强模型只省成本,准确率基本不动。预定义工具只帮到 bash 不熟的模型,bash 熟练的模型给一个 bash 接口就够,成本低得多,命令行任务上差距最大。

轨迹层面的分析解释了原因。上下文管理拉长了执行轨迹,但没怎么改变 agent 的行为方式。规划改变的是轨迹在哪里停下。动作空间改变的是写代码的粒度。按这个框架,harness 选型该跟着模型和预算走,不该抄一套通用配置。下一步值得看的是,同样的部件拆解能不能迁到非编码 agent 上。

阅读原文 · arxiv.org →

"成本、安全和正确性,最后都在模型和工作之间的那层 harness 上决定。"

— 本周主题

深度报道
Article II

给模型加水印,会改掉 agent 的工具调用参数

SynthID-Text 靠改变 token 采样来嵌入水印信号。agent 的工具名、路径、收件人、金额,采的是同一批 token。Lasso Security 把这个偏移叫 sampling drift,并且测出它真的存在。

▸ 点击展开详情

为什么重要

净准确率看不出问题。研究改用配对分歧率度量。21 个模型与温度组合,平均 6.5% 的工具调用判定翻转。phi-4 在 T=1.0 下翻转 16.8%,净准确率只掉 2.87 分。拒答的情况更糟,gemma-3-27b 在提示注入下的翻转率从 6.0% 升到 23.5%,净合规变化从 −1.0 变成 +12.5 分。换一个水印 key,效果的大小和方向都会变。

实践要点

把水印当部署期的安全配置项,不是合规勾选项。开关水印或换 key 之后重跑 agent eval,用同一批输入做配对比较,并且带上 prompt injection 用例。厂商说「文本质量不变」,那是另一回事。

阅读原文 · lasso.security →
Article III

一份 AI 生成的情报报告,差点让美军登上一艘中国货轮

今年春天,一份情报称某艘中国货船在中东运送核武器部件。武装人员准备登船,飞机已经起飞。行动前官员才查出来,报告是分析员用聊天机器人生成的,货物认错了。一位知情人对 CNN 说,这份报告「完全是假的」,但它「差点引发一场战争」。

▸ 点击展开详情

为什么重要

出问题的不是模型能力,是流程。分析员先让机器人融合开源情报和涉密信号情报,得出结论。再用 AI 把结论打包成标准格式的情报报告。格式本身就是可信度信号,包装这一步把一次聊天查询变成了机构判断。一位前高官对 CNN 说,军方内部工具「多数只是商用产品涂了口红」。

实践要点

把两件事分开看:模型生成内容是一件事,内容进入可信通道是另一件事。任何把模型输出写进他人默认信任的模板(报告、工单、告警、审计记录)的动作,都要留下去不掉的来源标记。

阅读原文 · cnn.com →
Agent 架构
Article IV

工具调用改成异步,通过率不变,成本省掉 40%

Unreal Labs 发现 agent 大量 token 花在等工具、轮询、心跳上。他们的 harness 一发出工具调用,立刻写一条「进行中」的事件记录,模型继续往下走。工具真正返回时再追加结果,重新调用模型。

▸ 点击展开详情

为什么重要

Terminal-Bench 4.0 上两边通过率同为 57.9%,Codex 花 2350 美元,Unreal Agent 花 1428 美元。SWE-Atlas 代码库问答是 65.8% 对 63.3%,成本 936 对 1303。省下来的是轮次和输入 token:DeepSWE 1.1 上单次试验输入 1.60M 对 Codex 的 2.19M。另一个副作用是用户随时可以插话,不用等工具跑完。

实践要点

数一数你的 agent 循环里有多少轮只是在等一个长任务。把工具调用改成事件日志加异步回填,模型一轮就能同时发起装环境、读代码、搜网三件事。代价是要保证 prompt cache 不被打断,Unreal Labs 说这一步本身就是个工程难题。

阅读原文 · unreallabs.ai →
Article V

Git 看得见文字冲突,看不见意图冲突

两个 agent 各在独立 worktree 里干活,改的文件不重叠,Git 干净合并。一个把所有调用点迁到 StripePaymentService,另一个给旧的 PaymentService 加 PayPal 支持,后者的活儿落在了没人调用的类上。Foremerge 让 agent 动手前先声明要碰哪个符号。

▸ 点击展开详情

为什么重要

并行跑多个 coding agent 的团队,先撞上的是这种失败模式,不是文件冲突。Git 比较文本,比不了意图。两个方案各自合理,合起来把扩展点删掉了。

实践要点

给并行 agent 加一张共享声明表,记「我要改 sendEmail 这个函数」这种目标,不记代码。Foremerge 把表放在 .git 目录下的 SQLite,检测是确定性的,不调模型判断,同样输入永远同样结果。它只提示不加锁,一个 agent 崩了不会卡住整队。注意 0.5.0 还是 pre-1.0,作者自己说没有公开 benchmark 结果。

阅读原文 · github.com →
工程方法论
Article VI

闭源 harness 打包上传整个 .git,只有服务端握着钥匙

开发者 ferstar 逆向了 Z.ai 的 ZCode 桌面端。登录状态下它把整个工作区打包加密后传到阿里云 OSS。一次抓取是 345MB 工作区、42,411 个文件、313MB 加密档案,.git 占 86.6%。对称密钥用服务端下发的 RSA 公钥包起来,私钥只在 Z.ai 云上,用户自己解不开硬盘上的那份密文。

▸ 点击展开详情

为什么重要

上传管线不是 agent 的工具。抓到的 31 个工具里,没有任何快照、上传或遥测工具。采集器是宿主层的 sidecar,启动时无条件实例化,跑在工具循环外面。所以没有一项权限设置能拦住它,agent 自己也看不见它。两个界面开关只管训练授权和服务端索引,本地打包和上传照跑。

实践要点

审 agent 的工具清单不等于审这个产品。判断一个闭源 harness 能不能进内网,看进程的出站连接和落盘的打包清单,别看它的工具文档。还有一点:.git 是仓库的完整血缘,后来删掉的 API key、没推送的分支名、内部主机名都在里面。

阅读原文 · tokenstead.ai →
Article VII

Claude Code 读不读 AGENTS.md,取决于你有没有关遥测

Claude Code 2.1.277 加了 AGENTS.md 支持,但加载器挂在一个远程 feature flag 上。关掉遥测或非必要流量,本地的 AGENTS.md 就被静默跳过,一句提示都没有。

▸ 点击展开详情

为什么重要

读一个工作目录下的 markdown 文件根本不需要网络,这里却要等服务端开关。受影响的恰好是最在意 AGENTS.md 的那批人。用一份指令文件喂多个 agent 的人,通常也管着出站流量。走 Bedrock、Vertex 或网关的团队,按政策关掉非必要流量。他们只会以为模型不听指令,回头去改 prompt。

实践要点

把 DISABLE_TELEMETRY 或 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 设成 0 没用,任何值都算开启。项目 .claude/settings.json 里的 env 块也无效。可用的办法是写一行 CLAUDE.md:echo '@AGENTS.md' > CLAUDE.md,@path 导入不走这个 flag。想验证就塞一个暗号词进去,用 claude -p 问它,新配置的第一次会话只取 flag,第二次才生效。

阅读原文 · blog.szypowi.cz →
落地实践
Article VIII

Agent 把 CI 变成了瓶颈,Linear 把等待压回 5 分钟

Linear 的 CTO 给工程师开了个 issue,标题是「CI 成本太高」。今年测试套件规模涨到近四倍。PR 等 CI 的时间反而从 6 分多降到 5 分出头,每个测试消耗的 runner 时间砍掉约一半。

▸ 点击展开详情

为什么重要

agent 让写代码快了一个量级,验证没跟上。每个 PR 还是要过 CI,人和 agent 一起排队,基础设施账单也跟着涨。

实践要点

收益集中在四类动作。换掉 GitHub Actions 用第三方 runner,同一条流水线平均快 34%,tsc 快 52%。换 tsgo 原生编译器,tsc 检查的周中位数再降 73%。把依赖类型信息的自定义 lint 规则改写成纯 AST 静态分析,ESLint 不用再加载 TypeScript,API lint 降 68%,全仓 lint 降 55%。最后盯住那些挡着别人的小 job:变更检测原来要完整 checkout,限制 fetch 深度后从 94 秒降到 20 秒。

阅读原文 · linear.app →
Article IX

25 个工程师一个月烧掉 129 亿 token,GPU 成本 1200 美元

Parity 用 20% 时间做自托管推理实验。DeepSeek V4 Flash 本来只打算跑一下午,结果跑了一个月。8 个回答问卷的工程师里 7 个说它可以当主力模型,多数人补一句「刚刚够用」。

▸ 点击展开详情

为什么重要

这组使用数据比模型评分有用。99% 的请求上下文不到 50 万。55% 的时间 GPU 是闲的,26% 在服务单个请求。首 token 平均 3.34 秒,p99 是 70 秒。生成 token 的中位数只有 349 个,KV cache 峰值占用 9.4%。工程师根本没在挤当前模型的上下文窗口,真正的约束是并发和吞吐。

实践要点

架构简单到可以照抄:LiteLLM 做统一接口,vLLM 出服务,GPU 从 RunPod 租。换模型不用换开发工具,模型就变成栈里一个可替换的部件。前三天 32 亿 token 花了约 300 美元 GPU,每百万 token 约 0.1 美元。Parity 自己提醒,工程师时间才是大头。

阅读原文 · parity.io →
应用提效
Article X

让 agent 自己压榨 benchmark,Rust 代码跑赢成熟库

Max Woolf 让 agent 从零写 Rust 实现,再让它自己迭代优化,拿到 2 到 20 倍的加速,超过了迭代十年以上的 C 实现。起作用的不是模型,是把「尽可能快」换成一个能判定通过与否的目标。

▸ 点击展开详情

为什么重要

agentic RLHF 训的是通过/失败类编码题,优化不在里面。所以「让代码更快」这种指令,模型会用加功能糊弄过去。Woolf 2025 年第一次试的时候就吃过这个亏。criterion 跨轮次追踪结果,能判断一次改动是真提升还是噪声,循环因此有了可信的终止条件。

实践要点

照抄这段结构:先在不改代码的前提下跑一遍基准,定下 True Performance Baseline;再要求所有基准比基线快至少 1.2 倍;明确禁止改基准本身,只准改库代码;最后让它一直迭代到收敛为止。Woolf 全程禁用 unsafe,并且把提示词写成 Markdown 文件再喂给 agent。

阅读原文 · minimaxir.com →

本期十篇里有七篇在说同一件事:出问题的地方不在模型,在 harness。一份 176 组配对实验的研究说,上下文管理的收益几乎全来自躲开 overflow,而「可恢复的省略」是白写的机制。Unreal Labs 把工具调用改成异步事件,通过率不变,成本降 40%。Lasso Security 测出模型层水印会改掉工具调用的参数,提示注入下 gemma-3-27b 的拒答翻转率冲到 23.5%。ZCode 的采集器跑在工具循环外面,所以没有一项权限设置能拦住它。Claude Code 的 AGENTS.md 加载器挂在遥测开关上,关了遥测就静默跳过。这些事故和收益都落在同一层:模型之外、业务之内,那层你以为只是管道的代码。多数团队仍然按模型选型、按 prompt 调优,却很少有人画得出自己 harness 的事件流和出站连接。另一半是组织层面的。Linear 发现 agent 把 CI 变成了瓶颈,Parity 用 25 个人一个月烧掉 129 亿 token,才知道自己根本没在挤上下文窗口。写代码快了一个量级之后,排队的地方就换了位置。这周最该做的一件事,是把你自己 harness 的那张图画出来。