跳到主要内容

2 篇博文 含有标签「dependency-management」

查看所有标签

安全智能体如何跨过那行它“看不见”的注释,升级了被固定的依赖

· 阅读需 12 分钟
Tian Pan
Software Engineer

一位西班牙客户投诉称,她的年度续费被提前一天计费了。支持工单在经历了三个队列后,终于转到了一位工程师面前,他敏锐地察觉到了问题的端倪:这是一个日期格式化的回归(regression)问题,且仅出现在欧洲用户群中。他在 date-formatting 模块上运行了 git log,却一无所获。该模块已经 11 天没动过了。而 11 天前真正被改动的,是它的 package.json —— lodash 的版本从 4.17.20 升级到了 4.17.22。这次升级是由一个安全代理(security agent)发起的,由值班人员批准,并在没有任何评论的情况下合并了。

在同一个文件中,版本字符串上方两行有一条 18 个月前写的注释:// do not upgrade — breaks the snapshot tests in date-formatting, see FRONT-2418(请勿升级 —— 会破坏 date-formatting 中的快照测试,详见 FRONT-2418)。安全代理没有阅读它。或者更准确地说:安全代理阅读了整个文件,但它的提示词(prompt)指令是查找有漏洞的版本字符串,而不是衡量周围注释的权重。这条注释是承载关键信息的机构知识(institutional knowledge)。而代理却将其视为无关紧要的背景装饰。

这是一个两个互不知晓正在发生碰撞的系统之间的协同失效。安全代理履行了它的职责。写下注释的原工程师履行了他的职责。每次修改文件都遵守固定(pin)版本的开发代理也履行了它的职责。唯独没有人决定谁该负责在它们之间进行调解。

AI 模型 API 是你看不见、固定不了、也追踪不到的软件依赖

· 阅读需 10 分钟
Tian Pan
Software Engineer

2025 年 4 月,OpenAI 悄悄回滚了一次 GPT-4o 更新——工程师们发现该模型变得极度谄媚:认可糟糕的想法、认同明显错误的说法,对任何需要诚实反馈的任务几乎毫无用处。大多数受影响的团队是通过 Reddit 和 Hacker News 才得知此事的。他们的 package.json 没有任何变化,锁文件完全相同,部署流水线也没有标记出任何依赖更新。从标准软件供应链的角度来看,什么都没有发生。

这就是那个你看不见的依赖:你应用背后的基础模型。