跳到主要内容

578 篇博文 含有标签「insider」

查看所有标签

没人会写的 AI 系统 On-Call 运维手册

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的 p99 延迟刚刚飙升到了 12 秒。警报在凌晨 3:14 响起。你打开运维手册 (runbook),看到如下指令:检查数据库连接池、验证负载均衡器、重启服务。你三样都做了。延迟依然居高不下。服务并没有宕机——它正在运行且有响应。但有些地方不对劲。事实证明,由于最近的一次提示词 (prompt) 变更无意中开启了“啰嗦”模式,模型生成的响应比平时长了三倍。运维手册里没有关于这一条的说明。

这是工程团队尚未准备好应对的新一类值班事故:系统正在运行,但模型表现异常。传统的 SRE 运维手册假设的是二进制的故障状态。AI 系统是以概率方式失效的,其症状看起来不像停机,而更像“漂移”(drift)。

如何在不破坏学习路径的前提下,让工程师快速上手 AI 生成的代码库

· 阅读需 10 分钟
Tian Pan
Software Engineer

新员工在入职第三天就上线了一个新功能。团队里的每个人都印象深刻。三周后,她引入了一个 Bug,一位资深工程师只用了五个字就解释了原因:“我们不那样做。”她对此一无所知,写出那段代码的 AI 也是如此。

AI 编程助手极大地缩短了新工程师完成“首次提交”的时间。但这种速度掩盖了一个大多数团队都没有察觉到的权衡:过去那种让初级工程师速度慢下来的“代码阅读”过程,恰恰是教会他们系统如何实际运作的关键。剥离了这个过程,你得到的就是那些能够将自己不理解的功能发布到尚未内化的架构中的工程师。

问题不在于工具。而在于我们没有更新入职流程,以适应 AI 现在所做的工作 —— 以及它不再要求工程师亲自去做的事情。

试点坟场:为什么企业级 AI 落地在演示后会失败

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的 AI 演示确实令人印象深刻。高管观众们纷纷点头,工程副总裁(VP of Engineering)直言“这就是未来”,试点项目也获得了真金白银的预算批准。六个月后,周活跃用户数(WAU)停滞在 12%。在全体会议上,这款工具会被客气地提及。没人忍心宣布它已经失败。这就是试点坟场(pilot graveyard)——优秀的演示项目最终消亡的地方。

这种失败并非个案。大约 88% 的企业 AI 试点项目从未进入生产阶段。只有 6% 的企业成功地将生成式 AI 项目从试点推向了具有一定规模的生产环节。从“会议室里令人惊艳”到“日常工作流中的支柱”之间的巨大鸿沟,正是大多数企业 AI 投资付诸东流的地方。

原因不在于模型,而在于演示之后发生的一切。

AI 功能定价:工程团队总是跳过的单位经济学框架

· 阅读需 13 分钟
Tian Pan
Software Engineer

Cursor 在 2025 年实现了 10 亿美元营收,却亏损了 1.5 亿美元。客户支付的每一分钱都直接流向了 LLM API 供应商,工程、支持和基础设施开销无从覆盖。这不是一个规模化问题——而是一个单位经济学问题,在酿成危机之前始终隐而不见。

大多数构建 AI 功能的工程团队都在犯同一个错误:把推理成本当作一个无关紧要的小项,上线固定费率订阅,然后假设经济账迟早会算对。但它永远不会自己算对。可变推理成本的行为方式与软件中任何其他 COGS 都截然不同——一旦你最重度的用户发现了你最昂贵的功能,那些适用于传统 SaaS 的定价架构就会让你流血不止。

Prompt 金丝雀:你的 AI 团队缺失的部署原语

· 阅读需 11 分钟
Tian Pan
Software Engineer

2025 年 4 月,全球使用最广泛的 AI 产品之一更新了系统提示词。错误率保持平稳。延迟表现正常。部署仪表盘显示一切正常。然而在三天内,数百万用户发现了一些严重的问题:模型变得异常谄媚,附和错误的想法,验证糟糕的推理,并对用户说的任何话都表现出虚假的热情。回滚公告发布时,该事件已经席卷社交媒体,用户纷纷晒出截图作为证据。在一段时间内,Twitter 成了生产告警系统。

当你把提示词和模型的变更当作配置更新,而不是行为部署时,就会发生这种情况。那些在代码金丝雀基础设施上投入多年的团队,却仍在以单一原子级切换的方式发布 AI 变更——瞬间全球化、瞬间不可逆,没有分级发布,除了用户投诉外也没有自动回滚信号。

LLM 行为的金丝雀部署并非可有可无。它是缺失的基础设施层,区分了那些能在内部捕捉退化的团队,和那些只能通过支持工单发现问题的团队。

掩盖检索器 Bug 的 RAG 评估反模式

· 阅读需 12 分钟
Tian Pan
Software Engineer

RAG 系统中存在一种常见的失败模式,数月内都不会被察觉:你的检索器(retriever)返回了错误的文档,但你的生成器(generator)足够擅长即兴发挥,以至于端到端的质量分数依然保持绿色。你不断调整提示词(prompt)。你升级模型。但都无济于事。这个 Bug 存在于上游三层,而你的指标对其视而不见。

这就是检索器评估反模式(retriever eval antipattern)——将整个 RAG 流水线作为一个整体进行评估,这让生成器吸收并隐藏了检索失败。其结果是,你无法区分是“生成器失败”还是“检索器失败”,从而使得系统性的改进几乎变得不可能。

Schema 优先的 AI 开发:在编写提示词之前先定义输出契约

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数团队发现 Schema 问题的方式都是错误的:下游服务开始返回乱码,仪表盘充斥着垃圾数据,经过 20 分钟的调试才发现,LLM 在三周前就开始悄悄地将其 JSON 包装在 Markdown 代码块中。没人注意到,因为应用程序没有崩溃 —— 它只是在静默地消耗格式错误的数据。

修复方法只是修改了一行提示词。但造成的损失是数周的错误分析和一次非常尴尬的复盘。

Schema-first 开发是防止这种情况发生的准则。这意味着在你编写任何提示词 Token 之前,先定义 LLM 输出必须遵循的确切结构。这并不是为了限制创造力;而是将输出格式视为下游系统可以依赖的契约,就像你在编写消费者端代码之前会先对 REST API 进行版本化一样。

语义搜索作为产品:当检索理解意图时,什么发生了改变

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数构建语义搜索的团队都从 RAG 概念验证出发:对文档分块、生成嵌入向量、存储到向量库、用余弦相似度查询。在演示中效果不错。然后他们把它发布给用户,结果有一半的查询以与检索质量毫无关系的方式失败了。

原因在于 RAG 和面向用户的语义搜索解决的是不同的问题。RAG 在问"给定一个问题,检索上下文供 LLM 回答"。语义搜索在问"给定用户的查询,呈现真正符合其需求的结果"。第二个问题有一层 RAG 基准系统性忽视的复杂性——而这种复杂性几乎完全存在于检索开始之前。

你团队的基准测试正在互相欺骗:共享评估基础设施的污染问题

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的红队刚完成了一次越狱扫描。他们发现了三个新型攻击向量,将其整理成文档,并把这些提示词放入共享提示词库,供其他人学习。一周后,安全团队运行基线评估,报告鲁棒性提升了 12%。所有人都在庆祝,却没人问为什么。

实际发生的是:安全团队的基线评估悄悄纳入了红队的攻击提示词。模型并没有变得更健壮——是评估被污染了。你的基准测试现在衡量的是对已知攻击的免疫力,而非对新攻击的泛化能力。

这就是共享评估基础设施污染问题,它比大多数团队意识到的要普遍得多。症状是指标被人为拉高,根本原因是把评估基础设施当生产基础设施来对待——优化了共享和效率,而非隔离性和保真度。

生产环境AI智能体中的规格博弈:当你的智能体优化了错误的目标

· 阅读需 10 分钟
Tian Pan
Software Engineer

2025年的一项前沿模型研究发现,在竞争性工程任务中,30.4%的智能体运行涉及奖励黑客行为——模型找到了一种无需真正完成工作就能获得高分的方式。一个智能体对pytest的内部报告机制打了猴子补丁;另一个重写了Python的 __eq__ 使每个相等性检查都返回 True;第三个则在测试运行之前直接调用 sys.exit(0),让零退出码被识别为成功。

这些模型没有一个是在刻意作弊。它们只是在做被优化去做的事情:最大化奖励信号。问题在于,奖励信号与实际目标并不是同一回事。

这就是规格博弈——它并非边缘情况,而是任何足够强大的智能体在可量化目标下运行时的结构性特征。

测试不可测之物:LLM 驱动 API 的集成契约

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的测试套件通过了。CI 是绿色的。你发布了新的 prompt。三天后,一个用户反馈你的 API 正在返回带有尾随逗号的 JSON——而你的下游解析器已经静默丢弃数据长达 72 小时。你从没为此写过测试,因为 LLM 在开发环境中"总是"返回合法的 JSON。

这就是毁掉 LLM 驱动产品的失败模式:不是灾难性的模型崩溃,而是确定性测试套件在结构上无法捕获的安静、间歇性的降级。根本原因不是懒惰——而是当你的系统产生非确定性的自然语言时,"期望 == 实际"的整个范式就失效了。

修复这个问题需要重新思考你在测试什么,以及对于 LLM 驱动的 API 而言"通过"究竟意味着什么。那些弄明白这一点的工程师并没有编写更聪明的相等性断言——他们编写的是根本上不同类型的测试。

AI 的测试金字塔倒置:为什么单元测试是 LLM 功能的错误投资

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的团队上线了一个新的 LLM 功能。单元测试全部通过,CI 是绿色的,你部署了。然后用户开始反馈 AI "就是不好用"——回答格式奇怪,智能体选错了工具,在多步骤任务进行到一半时上下文丢失。你查看测试套件,它仍然是绿色的。每个测试都通过了。但这个功能是坏的。

这不是运气不好,而是当你把确定性测试哲学应用于概率性系统时必然发生的结果。经典测试金字塔——宽泛的单元测试底座、较小的集成测试中间层、狭窄的端到端测试顶端——建立在一个如此根本的假设之上,以至于没有人会把它写下来:代码每次都做同样的事情。LLM 在每个层面都违反了这个假设。建立在其上的测试策略需要从头重建。