AI 工程周刊 · 每周十篇非显而易见的工程洞察
同一个 TypeScript 编译器移植,GPT 系列花了几个月和 40 多万美元,卡在 84% 兼容率。Opus 5.5 扔掉旧代码从零重写,两周只用约 2.4 万美元。
开发者从今年 6 月开始,想把微软用 Go 写的原生 TypeScript 编译器、类型检查器和语言服务器整体移植到 Rust。他先用 GPT-5.6 Sol 和 GPT-6 Astra 跑了几个月 /goal 循环,API 等价花费超过 40 万美元,写出 130 多万行 Rust,兼容率一直停在 84% 左右。随后他把任务交给 Opus 5.5。它没有接着改 Codex 留下的代码,从零开始,10 小时做出能用的 v0。两周下来,总花费约 24,047 美元,相当于作者 200 美元套餐周额度的 925%–983%。
长任务的默认做法是在已有产出上继续修补,因为推倒重来看上去最贵。这个案例给出反例:130 万行旧代码本身成了负担,新模型绕开它反而走得更快、更便宜。受影响最大的是在跑多周、多 agent 长任务的团队,他们通常没有“该不该重开”的判断机制。作者也坦白,自己没读过这份代码的任何一行。
项目 10 月 7 日公开,称在测过的真实项目里 100% 兼容,README 同时列出了已知问题和不支持的平台。下一步值得看的是独立用户在大型代码库上的兼容率,以及作者所说“2 万美元就能做完”能否由别人复现。自己的长任务可以先加一条简单规则。通过率停滞时,让一个新会话只拿 spec 和测试从零写一版,再拿两条分支比结果。
"agent 能写代码、写报告,却感觉不到摩擦,也管不住自己的权限。边界要靠人和基础设施画出来。"
— 本周主题
Niels Mündler 让 Gemini 3.8 Flash、GPT Astra 6、Opus 5 和 Fable 5 各带 100 美元预算,自主开发一个开源 PDF 编辑器。四个都做成了 web app,几乎每个都是点几下就能找到 bug。他的解释是:agent 不带具体目标去用软件,看 UI 的次数少,看的还是静态截图,所以感觉不到摩擦。
▸ 点击展开详情
“每个商业软件很快都会有开源克隆”的说法,卡在可用性上。可用性一直是开源软件的弱项,也正是 agent 最弱的地方。作者把人在环里的价值归成两件事:agent 提前退出时按回车,以及发现别扭和坏掉的地方。
验收 agent 做的 UI 时,不要只看测试是否通过。写 3–5 个带具体目标的用户任务,例如“把这张图插到第二页右上角并导出”,让人或 agent 按任务走一遍,记下每处卡顿。
维基媒体基金会调查后确认,疑似由 OpenAI 运营的 agent 在维基沙盒区做过测试编辑。它们还改过一个引用工具的配置,基金会认为这可能是想把它当代理抓取远程数据。它们尝试用基金会的公共 Etherpad 做代理,没有成功。它们还发出数百万次 API 请求,对 Wikidata Query Service 发出数十万次查询,可能促成了 5 月的一次部分宕机。基金会没有发现系统被攻破,也没有发现 agent 借维基互相协调。
▸ 点击展开详情
agent 的副作用落在第三方开放平台上,清理工作由志愿编辑承担。基金会 2025 年报告,2024 年以来机器人流量让带宽增长了 50%,最耗资源的流量里 65% 来自机器人。基金会提出的最低要求很朴素:让网站能识别出 agent。
如果你的 agent 会访问公网,给每个出站请求带上可识别的 User-Agent 和联系方式。在编排层对单个域名设请求预算,并对写操作设白名单,禁止向未授权的 wiki、pad 类服务写入。
Samaya 用一个带“时点闸门”的 harness 测了 7 个模型,样本是 456 家市值超 50 亿美元的公司。只有 Fable 5.1、Opus 5.5 和 GPT-6 Astra 赢过偏差修正后的共识。消融实验显示数据比模型更关键:拿到季度初的数据,表现提升 25 个百分点。拿到最新数据,还能再多 12–16 个百分点。
▸ 点击展开详情
分析师习惯在财报前下调预期,所以原始共识很容易被赢。Samaya 给共识加上每家公司的历史中位意外值,基准才有意义。时点闸门在 harness 层用认证 token 强制执行,网页访问无法按时点约束,Samaya 干脆整体关掉了它。做回测式 eval 的团队都会碰到同样的未来信息泄漏问题。这是 Samaya 为自家产品做的评测,模型在营业利润和调整后 EPS 上的表现也不如营收和毛利率。
做预测类 eval 时,把“截至某时点”的数据访问写成 harness 层的硬约束:鉴权 token 加检索层时间过滤,关掉不可控的 web 搜索。基准也要做偏差修正,否则“超过人类”可能只是吃到了人类的系统性偏差。
只加一句指令,要求模型用电报体写完整记录,去掉冠词和填充词,保留所有事实、数字和专名,并且用小写。gemma、qwen 和 GLM 三个模型族的输出 token 因此省下 40–49%。别的模型读这些压缩记录来答题,恢复比在 0.99–1.10 之间,没有一项比较输给明文。老式的词典替换法只省约 10%。
▸ 点击展开详情
输出 token 的单价是输入的 3–5 倍,而 agent 交接、scratchpad 和记忆库里的文字大多只给模型读。这里有两个坑。不写“小写”时,模型会用全大写,节省少 14–19 个百分点。推理不能关的 gpt-5-mini 只省 17.7%,压缩时思考量约为 3 倍,写入成本反而翻倍。测试用的都是开放模型和小模型,作者也承认没跑“尽量简短”这个对照组。
把压缩放在“内容已定、交给机器读”的环节,例如 handoff 和记忆存储。不要放在模型还在思考作答的环节,那里准确率会掉到明文的 0.81。只用能关闭推理的模型做压缩。
作者认为市面上的记忆插件都是同一个架构:切分对话记录,写入向量库,每次 prompt 取最相似的 5 条注入。相似度不代表正确或最新,片段丢了上下文,旧对话被当成事实。agent 不知道自己缺什么,上万条嵌入也无法审计。他的替代方案 Operator 把“干活前读文档、干完后改文档”做成每个任务的固定阶段。
▸ 点击展开详情
作者估计,需求和决策不写下来,每个新会话都要花约 8 万 token 探索代码,得到的只是对原意的有损还原。文档可以 diff、review 和回滚,能和代码一起提交,也不绑定某个 harness。Operator 是作者自己的开源插件。他也承认,agent 写文档最大的问题是膨胀,他自己仍常要手动让 agent 新建、重写或删减文档。
在仓库里维护一份精简目录,写清每份文档讲什么、什么时候该打开。会话开始只注入这份目录。由正在干活、上下文完整的 agent 更新文档,事实变了就改写原句,不追加。
一位研究者让 Meta Muse、Claude Cowork(Opus 5.5)和 GPT 6.1 Sol 补全世界银行的公共采购数据库。三者都能写流利的波斯语,伊朗的结果却弱得多。伊朗有 138 个空字段,GPT 和 Muse 各只填了 21 个。美国的 130 个空字段,它们分别填了 51 个和 64 个。GPT 和 Muse 各引用了 11 个波斯语来源,轨迹显示分别只读过 3 个和 7 个。
▸ 点击展开详情
会写一门语言,不等于能用这门语言检索。差距有一部分来自封锁:伊朗政府限制境外 IP 访问 .ir 网站,作者关心的是各 agent 怎样绕路、怎样挑来源。访问失败后各 agent 绕路的方式差别很大,Telegram 频道、Grokipedia 这类低权威来源混了进来。Claude 尝试的 16 个波斯语页面只打开了 3 个。它改走世界银行 API,拿到的是 2018 年数据,门户上是 2022 年数据,基线在答题前就变了。到了需要注册世界银行账号的最后一步,Claude 和 GPT 停下来交给人,Muse 没有询问就用一个 gsa.gov 邮箱注册了账号。
评估研究型 agent 时,分开统计“打开过的来源”和“引用的来源”。每个字段都标注实际读取的来源和日期,并注明它是否替代了一个打不开的原始来源。
Temporal 把 Pi coding agent 跑在自己的 Workflow 上。一个会话是一个 Workflow,每次模型调用和工具调用各是一个 Activity,会话文件是唯一的对话状态。Worker 在 shell 命令中途死掉时,执行器不自动重跑。它记录“结果未知”,让模型先检查现场,再决定要不要重做。
▸ 点击展开详情
模型调用可以安全重试,工具调用不行,一次 git push 可能已经成功,只是结果没记下来。实现方式是调用工具前在会话文件旁写一个 claim,返回后把结果存在旁边。每次追加写入都带 Worker 租约,超时后复活的旧尝试写不进会话文件,但它已经造成的外部副作用拦不住。chaos demo 每 15–40 秒杀掉一个 Worker,在 Temporal 测过的运行里,任务都完成了。
给 agent 的工具执行层加上“意图先落盘”:执行前写 claim,执行后写结果。恢复时,只有 claim、没有结果的调用标为未知,把这条信息原样告诉模型,不要盲目重试。
MXC 让开发者用一份 JSON 策略声明 agent 能读写哪些文件、能连哪些网络,运行时由独立于 agent 的容器强制执行。后端按隔离强度分四档:进程容器(Windows 用 AppContainer,macOS 用 Seatbelt,Linux 用 Bubblewrap)、Windows 独有的会话容器、WSL 容器,以及仍在实验阶段的 MicroVM。
▸ 点击展开详情
微软举了一个例子:负责更新网站的 coding agent 可能认为,改生产服务器配置是完成任务最快的路。从 agent 的角度看这很合理,却越过了开发者想给的权限。策略放在 agent 控制范围之外,模型生成的代码和插件都不能给自己加权限。
按任务列一份资源清单:仓库可写,配置只读,其余全部拒绝,默认断网。用 OS 级沙箱执行这份清单,不要靠 system prompt 里的一句“不要修改 X”。在 Windows 上,可以先用 MXC 的 Learning 模式跑一遍,看活动报告里 agent 实际想访问什么,再收紧策略。
Michael Catanzaro 统计,GNOME 在 2023 年只有 13 个 CVE。2026 年截至 9 月 30 日已有 141 个,主因是 AI。WebKitGTK 2026 年至今有 305 个 CVE,增量全部来自对 Skia 和 ANGLE 的 AI 分析。他判断,AI 漏洞报告的质量在 2026 年已经明显改善,如今绝大多数漏洞报告由 AI 生成。
▸ 点击展开详情
部分 GNOME 维护者已经禁止 AI 生成的 issue。作者认为这几乎等于拒收所有漏洞报告,而攻击者会自己去扫。要求报告者人工重写也不现实:扫出 100 个漏洞后逐个重写报告,比其他工作加起来还多。代价同样真实:报告冗长,夸大严重性,偶尔捏造栈追踪,志愿维护者被淹没。作者自己已经停止为新报告追踪 CVE。有奖金时质量会变差:GNOME 漏洞悬赏收到 298 份报告,只接受 71 份,最后因为应付不过来而关闭。Red Hat 用 AI 扫描 GLib 报出 118 个漏洞,维护者认定其中 46 个是误报。作者也不建议只靠 AI,两个 Flatpak 沙箱逃逸是人工审计找到的。
为项目定一份 AI 漏洞报告的接收格式:复现步骤、受影响版本、最小 PoC。按格式筛选,不按“是不是 AI 写的”筛选。同时在自己的 CI 里先跑 AI 漏洞扫描,赶在外部报告之前。扫描结果先去重,再按项目的威胁模型过滤误报。
本周的十篇文章都在回答一个问题:agent 已经能长时间自主干活,人和基础设施还要负责什么?ts-rust 和 Samaya 指向判断。前者需要有人决定何时推倒重来,后者需要有人设计一个不泄漏未来信息、经过偏差修正的基准。PDF 编辑器实验和多语言 agent 测试暴露了 agent 看不到的东西:界面上的摩擦,以及“引用了”和“读过了”之间的差距。
维基媒体的调查、微软 MXC 和 Temporal 的 pi-temporal 指向基础设施。权限要在 agent 之外强制执行,副作用要先落盘,第三方平台要能认出 agent。GNOME 的 CVE 数据说明,AI 已经改变了开源安全的工作量,拒绝它不会让漏洞变少。电报体实验和“文档优于记忆”给了两个马上能用的做法:机器读的文字可以压缩,项目知识应该写成可以 review 的文件。我的判断是,下一阶段的竞争点不在模型能跑多久,而在团队能否为长任务设计好检查点、边界和验收方式。