跳到主要内容

861 篇博文 含有标签「insider」

查看所有标签

Agent 的写操作侧:在行动层设计可逆性

· 阅读需 12 分钟
Tian Pan
Software Engineer

一个 Cursor AI 编程助手 Agent 在操作生产数据库时遭遇了凭据不匹配的问题。它的解决方案是:删除所有它无法访问的内容——生产数据库、备份,以及所有关联记录。整个操作耗时九秒。用户丢失了预约记录,公司花了数天时间从支付处理商的邮件中重建数据。

没有人告诉这个 Agent 要保留数据,也没有人告诉它不能删除数据。没有写日志,没有暂存步骤,没有针对破坏性操作的确认门控,API 令牌的权限范围也没有与完整的数据库访问权限分离。Agent 找到了满足其即时目标的最直接路径,并执行了它。

撒谎的 AI A/B 测试:LLM 实验中的新奇效应、结转偏差与锚定偏差

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的 AI 功能在信心满满中上线了。A/B 测试显示用户参与度有了 12% 的统计学显著提升。置信区间没有重叠。样本量大小合适。p 值远低于 0.05。六周后,指标回落到了基准线。三个月后,它实际上已经低于基准线。实验告诉你该功能有效,但实验撒了谎。

这并不是你统计工具的 bug。这是标准 A/B 测试所测量的指标,与人类随着时间的推移与概率性 AI 系统互动之间存在的根本性错配。三种特定的偏差——新奇效应膨胀、锚定偏差和结转偏差——共同导致了每个 AI 功能实验的虚高,而增加留置组(holdout group)的常规补救措施并不能解决其中的任何一个问题。

AI 代码审查倒置:当作者是机器时应关注什么

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的代码评审正在优化错误的目标。当 AI 智能体(agent)贡献了你大部分的代码提交(commits)时,评审局部正确性——这个函数的功能是否如其所述?——就像是通过检查笔迹来给数学考试评分一样。机器已经通过了你的代码检查工具(linter),运行了你的测试套件,并按照规范格式化了输出。它所引入的 Bug 并不是行内(line-by-line)评审所能捕捉到的那种 Bug。

一项针对 GitHub Pull Request 的大规模研究发现,AI 协同编写的 PR 包含的缺陷是纯人工 PR 的 1.7 倍——其中包含多出 75% 的逻辑和正确性问题、2.74 倍的安全漏洞以及 3 倍的可读性问题。这并不是因为代码看起来有问题,而是因为它在错误的地方做了错误的事情,且对系统的其他部分持有错误的假设。这些恰恰是为捕捉拼写错误和风格违规而优化的传统代码评审所无法发现的故障模式。

AI 副驾驶 vs. AI 飞行员:基于证据的产品决策框架

· 阅读需 10 分钟
Tian Pan
Software Engineer

每个构建 AI 产品的团队都面临同一个路口:AI 应该为人类提供建议,还是自主行动?这个问题听起来很有哲学意味,但答案实际上是可以量化的——而且弄错代价高昂,往往在上线六个月后才会显现,那时你的覆盖率指标看起来很好,但用户信任分数已经在悄悄崩溃。

Klarna 在 2024 年初用一套自主 AI 系统替换了 700 名客服人员。到 2025 年,CEO 承认他们"走得太远了",并悄悄开始为复杂案例重新招聘人工客服。该 AI 在一个月内处理了 230 万次对话,将问题解决时间从 11 分钟缩短到不到 2 分钟。数字看起来很漂亮。但根本问题——金融产品的客户服务需要同理心和判断力,而不仅仅是解决速度——在所有偏离常规路径的场景中,以下降的满意度形式滞后显现。

为什么 AI 质量监控会将模型漂移、数据漂移和提示词漂移混为一谈 —— 以及针对每种情况的对策

· 阅读需 12 分钟
Tian Pan
Software Engineer

一个欺诈检测模型的准确率在三周内悄无声息地下降了一半。延迟正常,错误率为零,所有基础设施仪表盘都显示绿色。工程师们在第一周审计数据管道,第二周比较模型权重,第三周重新审视工单,直到有人发现欺诈者只是改变了他们的语言模式。修复工作——用最近的样本重新训练——只花了两天。而误诊却花了三周。

这种模式在生产环境中的 AI 团队里不断重复:性能下降触发了笼统的“模型问题”警报,团队开始基于直觉而不是根本原因来调整参数。原因并不是缺乏监控纪律,而是大多数可观测性技术栈将三个结构上截然不同的问题混为一谈。模型漂移(Model drift)、数据漂移(Data drift)和提示词漂移(Prompt drift)具有不同的检测特征、不同的警报拓扑结构和不同的修复路径。将它们混淆,就会在错误的修复方案上浪费数周时间。

故事点在与 LLM 的第一次接触中就会失效

· 阅读需 9 分钟
Tian Pan
Software Engineer

在每一家拥有成熟敏捷实践并决定增加 LLM 功能的公司,都悄然发生着这样一种失败模式:团队用故事点评估工作,将其分配到为期两周的冲刺(sprint)中,然后连续三个冲刺都报告“完成了 70%”,而工程经理则盯着那张拒绝下降的燃尽图发愁。没人撒谎。功能确实很难完成 —— 因为让故事点成为有用规划工具的条件,在 AI 功能中并不存在,而大家直到投入其中才察觉到这一点。

问题不在于工程师不擅长估算。问题在于故事点编码了关于软件工作本质的假设 —— 而 LLM 功能在结构上(而非偶然地)违反了这些假设。

没人愿意写的 AI 事故复盘:四层诊断框架

· 阅读需 12 分钟
Tian Pan
Software Engineer

上季度,某推荐引擎推送了冒犯性内容,随后召开的事故复盘会议以一种我们再熟悉不过的方式收场:两小时的会议里,ML 工程师把矛头指向检索语料库,数据工程师把矛头指向提示词,产品工程师把矛头指向监控,基础设施团队把矛头指向没人记得何时升级的模型版本。最终产出了三条行动项,却没有一条落实到具体负责人。事故就此关闭。六周后,同样的故障模式再次上线。

这不是某一个团队的故事,而是大多数组织处理 AI 事故时的默认结局。AI 功能在生产环境中造成的后果,由足够多的参与方共同承担,导致标准的事故复盘根本无法锁定因果关系。那套在排查数据库超时时行之有效的"5 Why"分析法,面对"模型给出了错误答案"时便彻底失灵——因为下一步该追问什么,从来都不显而易见。

AI 输出波动性是你可能定价不足的业务风险

· 阅读需 11 分钟
Tian Pan
Software Engineer

当公司谈论 AI 风险时,对话通常集中在那些显而易见的失败上:幻觉事实、偏见输出、以及生成内容带来的法律责任。而较少受到关注的是一个更隐蔽的结构性问题:你已经在其输出本质上是概率性的系统之上,做出了商业承诺——定价层级、SLA(服务等级协议)、面向客户的准确性声明。每次模型生成响应时,它都是在从分布中采样。而合同中从未提及“分布”。

这是一个大多数团队发现较晚的业务风险,通常是在客户抱怨同一个文档审查工作流在周一和周五给出了完全不同的结果时,或者当监管机构要求提供系统在架构上无法提供的可复现性保证时。

AI 功能的沉默退出者:如何检测用户的无声不信任

· 阅读需 11 分钟
Tian Pan
Software Engineer

麦当劳得来速 AI 的失败,并非因为用户抱怨。它失败,是因为用户停止使用得来速。三年来,这套系统一直记录着"健康"的接受率,而病毒式传播的视频却显示顾客在苦苦哀求它从订单中删除 260 块鸡块。当合作关系终止时,官方给出的理由是技术"尚未成熟"。真正的信号其实一直隐藏在客流量数据里——无人阅读,无人量化,无人汇报。

这就是大多数 AI 功能在生产环境中失败的样子。用户不会关闭你的功能。他们不会提交工单。他们不会留下一星评价。他们悄悄地绕开它,而你的仪表板依然一片绿色。

在不触发法律红线的前提下,用生产数据训练你的 AI

· 阅读需 13 分钟
Tian Pan
Software Engineer

你的 AI 功能上线了。用户正在使用它。每一次会话回放、每一次点踩、每一个返回错误答案的请求,都清晰地暴露出它现在的表现与它应有水平之间的差距。信号就在眼前。问题是:你是否可以合法地利用这些信号。

这就是团队撞上合规高墙的地方。这不是一堵理论上的墙——而是实实在在的。仅在 2024 年,欧洲监管机构就开出了逾 12 亿欧元的 GDPR 罚款,OpenAI、Meta 和 LinkedIn 均在被点名之列。大多数执法行动背后有一条共同主线:以原先收集目的之外的方式使用行为数据,或收集了超出运营功能所必要的数据。监管机构并不会因为你的意图是改进模型而非投放广告就网开一面——尽管工程师们往往这样以为。

API 文档即可靠性基础设施:文档如何决定智能体的成功率

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数工程团队将 API 文档视为开发者体验关注点——一种为了减少支持工单和入职时间而进行的改进。当你的主要消费者是在浏览器中阅读文档的人类时,这种思维方式是有道理的。但现在,这已经不再足够。

当 AI 智能体通过工具调用访问你的 API 时,你的文档就不再仅仅是指南,而是变成了运行时行为。模糊的参数描述不再是 UX 上的不便,而是对模型产生幻觉值的直接指令。缺失的错误代码不再是参考文档中的空白,而是一个模糊信号,可能导致智能体陷入没有退出条件的重试循环。你三年前为人类读者编写的文档,现在正被一个无状态的语言模型解析,无论它是否理解正确,都会自信地执行。

代码专用 RAG:为什么通用检索在代码库中会失败

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数构建 AI 编程助手的团队都会采用与文档检索相同的现成 RAG 流水线:根据 token 数量对源文件进行分块(chunking),对块进行嵌入(embedding),将其存储在向量数据库中,并通过语义相似性进行查询。这种流水线在处理散文(prose)时表现良好。但在处理代码时,它会悄无声息地失败——而且这些失败很难在聚合指标中显现,因为检索到的代码块看起来似乎合情合理,直到模型生成了错误返回类型的代码、调用了签名错误的函数,或者遗漏了调用图中三层之后才存在的依赖项。

问题不在于嵌入模型或向量数据库,而在于分块策略。代码不是散文。它具有结构属性——依赖图、调用链、类型签名、作用域层级——而基于 token 的分块在检索器看到它们之前就破坏了这些属性。修复这个问题需要重新思考在进入嵌入步骤之前如何分解代码。