跳到主要内容

578 篇博文 含有标签「insider」

查看所有标签

智能体权限提示存在习惯化曲线,而你的安全叙事就建立在其斜率之上

· 阅读需 11 分钟
Tian Pan
Software Engineer

每个智能体产品的安全仪表盘上都应该有一个数字,但几乎没人追踪它:随时间推移的人均批准率。发布一个“我可以发送这封邮件吗”或“我可以针对生产环境运行此查询吗”的权限提示,其曲线每次都如出一辙。第一天,用户会犹豫、阅读,有时会点击“不”。到了第二周,这已经是本小时内的第五次提示,拒绝的代价是必须由你亲自完成工作,于是点击率会收敛到 95% 以上。团队的安全叙事仍然声称用户批准了每一项操作。但在任何实质性的认知层面上,用户并没有。

这不是一个可以通过更好的文案来修复的 UX 问题。这是使 Cookie 横幅、浏览器 SSL 警告和 Windows UAC 对话框失效的同一种习惯化现象,只是应用在了一个运行速度比以往快几个数量级的底座上。许可门槛是一种具有半衰期的安全控制。如果在发布时不衡量它的衰减速度,你发布的只是一个用户到第二周就会习惯性忽略的复选框 —— 以及一个依赖于不再具有任何意义的点击的合规叙事。

Agent 追踪采样:当 “记录所有内容” 耗费 8 万美元却依然漏掉性能退化时

· 阅读需 11 分钟
Tian Pan
Software Engineer

账单在 3 月份寄达。仅追踪(traces)一项就花费了 8.1 万美元,而 11 月时这一数字仅为 1.2 万美元。团队在 10 月份启用了全量 Agent 追踪,理由是可见性越高越好。到了第一季度,可观测性成本的增速已经超过了推理成本——而当生产环境真正出现性能回归(regression)时,包含故障的追踪记录却被淹没在两千万个无人问津的成功 span 中。

错误并不在于决定进行埋点。错误在于将请求追踪(request-tracing)的心智模型引入了一个行为完全不像传统请求的工作负载中。

一个典型的 Web 请求会生成一个包含少量子节点的 span 树:处理器、数据库调用、缓存查找、下游服务。而一个 Agent 请求生成的树包含 5 个 LLM 调用、3 个工具调用、2 个向量查找、中间草稿(scratchpads),以及一个重新审视其中 3 个步骤的规划器。同样适用于 API 网关的采样策略——头部采样(head-sample)1%,保持其余部分的代表性——在 Agent 场景下会产生一个追踪存储库,其中中位数追踪是拥有 200 个 span 的怪物,长尾效应才是唯一关键的部分,而你发现故障的频率与你花钱的频率完全无关。

Demo 只是一个随机种子:为什么你的 AI 发布面临的是方差问题,而非润色问题

· 阅读需 13 分钟
Tian Pan
Software Engineer

高管演示进行得非常完美。模型回答了精选的问题,智能体(agent)完成了工作流,屏幕录像已保存到公司网盘,发布日期也已排入日程。六周后,上线部署遭遇惨败,复盘报告不言自明:模型需要更多打磨,提示词(prompt)需要更多迭代,团队低估了从原型到生产环境之间的工作量。

这种叙事是错误的,而且代价昂贵,因为它让团队回去重复那些已经失败的工作。演示并不是生产环境的“欠打磨”版本。它只是团队从未测量过的分布中的一个“单一采样”(single sample)。那个惊艳瞬间只是模型针对相同输入可能产生的数千个结果中的一次实现,而团队却把最好的那次当作典型表现发布了。演示与生产环境之间的差距不是质量下滑,而是团队尚未察觉的“方差”(variance)。

这种思维转变至关重要,因为方差问题的解决方法与打磨问题的解决方法完全不同。“打磨”导向会说:“迭代提示词,微调模型,雇个更好的产品经理。”而“方差”导向则会说:“在输入分布中进行 n 次采样之前,你根本不知道自己手里拿的是什么。”这两种诊断会产生不同的路线图、不同的预算以及不同的事故模式。那些在 2026 年能够可靠交付的团队,都清楚自己面临的是哪种问题。

AI 影子 IT:当产品团队构建自己的 LLM 代理时

· 阅读需 12 分钟
Tian Pan
Software Engineer

你所在的平台团队计划在第三季度调查的影子 IT 事件,其实早在 1 月份就已经发生了。情况大致是这样的:某个产品团队的一名高级工程师本月要发布产品。而平台团队的“官方” LLM 网关还在“下季度”的路线图中。于是,这位工程师用公司信用卡开通了 OpenAI 账号,将 API 密钥丢进 .env 文件,发布了功能,并赶上了公开的截止日期。发布非常成功。六个月后,FinOps 团队发现了三个无人认领的供应商账号,安全团队发现包含客户数据的 Prompt 被路由到了不受数据处理协议(DPA)保护的地区,而平台团队发现他们花了两个季度构建的网关只有 14% 的采用率,因为每个需要 AI 的团队都在没有它的情况下完成了发布。

这不是安全方面的失败,也不是纪律方面的失败。这是平台与产品交付速度之间的不匹配,如果将其视为其他任何问题,那么你发布的下一个网关注定会遇到同样的采用率问题。

“换个更大的模型试试”这种直觉反应是一种重构异味

· 阅读需 12 分钟
Tian Pan
Software Engineer

晨会上出现了一个回归问题:支持代理昨晚回答错了三个客户问题。有人说:“我们试试在这个路径上用 Opus,看看能不能解决。”四十分钟后,评估通过率回升了,团队关闭了工单,而该路径上的推理账单悄然翻了三倍。六周后,同样形式的回归出现在另一个路径上,并采用了同样的修复方法。你的团队刚刚训练出了一种巴甫洛夫反射:质量回归 → 增加算力。更大的模型是你的技术栈中最昂贵的调试工具,而你现在却首先想到它。

问题不在于更大的模型没有帮助。它们确实有——有时甚至很大。问题在于,更大的模型是一种绝对占优的“掩盖”策略。当提示词指令冲突、检索返回了过时的块、工具描述被误读,或者评估集没有覆盖失效的分布时,更强大的模型会绕过这些故障而不修复其中的任何一个。下一次回归仍具有相同的根本原因,账单已经复加,而底层系统变得更加脆弱,而非更加稳健,因为升级带来的缓冲空间让所有人都不再去探究底层逻辑。

置信度描述而非评分:为什么 0.87 的徽章无法打动任何人

· 阅读需 12 分钟
Tian Pan
Software Engineer

产品团队在每个 AI 建议旁边都附带了一个置信度徽章。≥85% 为绿色,60–84% 为黄色,低于此数值为红色。六周后,他们运行了一次 A/B 测试,发现在任何阈值下用户行为都没有变化。置信度为 0.92 的误报被接受的比例与置信度为 0.61 的误报完全相同。团队的直觉是调整校准——拟合一个温度缩放层(temperature scaling layer),重新生成徽章,再次运行 A/B 测试。数据变了,但行为没变。

问题不在于模型没有校准好,尽管它几乎肯定没校准好。问题在于校准后的概率是错误的输出。用户可以据此行动的信号不是模型“有多确定”,而是“模型具体没检查什么”。一个 0.87 的徽章无法告诉用户任何可以验证的信息。“我对地址相当有信心,但我还没有核对单元号”则准确地告诉了他们该看哪里。

跨团队 Agent SLA 无法简单叠加:你的组织遗漏预算的 99% 数学陷阱

· 阅读需 13 分钟
Tian Pan
Software Engineer

A 团队的智能体宣传其成功率为 99%。B 团队的智能体也宣传 99%。调用这两者的全新联合工作流在状况良好时成功率为 98%,而在状况不佳时仅为 96% —— 负责该联合工作流的团队现在成了两个他们不拥有、无法在本地复现、且未编写评估集的系统的事实上的 SRE。每个上游团队都达到了其 SLO(服务水平目标)。但复合产品却未达标。边界正确一侧的报警器却始终保持沉默。

这是独立失败率的数学问题,自从组织开始允许智能体相互调用以来,它就一直潜伏在显而易见的地方。五个可靠性为 99% 的组件会给你带来 95% 的端到端可靠性。十个组件则会降至 90%。一个每步成功率为 95% 的 20 步流程,其最终成功率仅为 36% —— 超过一半的操作在完成前就会失败。当一个工作流链接了 50 个组件时 —— 一旦企业级智能体开始调用子智能体,再由子智能体调用工具智能体,这种情况并不罕见 —— 一个每个环节都“99% 可靠”的系统,在大约十次请求中就会失败四次。

研究人员在分析了超过 150 个任务中的五个流行多智能体框架后,发现失败率在 41% 到 87% 之间,其中排名前三的失败原因是:步骤重复、推理与行动不匹配,以及对终止条件的忽视 —— 观察发现,与单智能体基准相比,非结构化的多智能体网络会将错误放大高达 17 倍。这其中的数学逻辑并不深奥。问题在于,组织的 SLO 表、仪表板、轮值安排和 PRD 仍然是以单个智能体为单位进行定义的。

你的 Gold 评估集已经发生偏移,而它的通过率正是你无法察觉的原因

· 阅读需 13 分钟
Tian Pan
Software Engineer

黄金评估集的通过率为 94%。模型在本季度已经升级了两次,提示词修改了 11 次,工具库增加了 4 个,仪表盘依然是一片绿色。然而,一名销售工程师转发了一份对话记录,显示智能体(Agent)自信地将客户引导至一个两个月前就已停用的工作流;与此同时,支持团队负责人悄悄开启了一个讨论组,询问为什么在评估流水线显示没有回归的情况下,满意度评分已经连续下滑了六周。黄金集并没有撒谎。它只是在用上个季度的产品标准来衡量这个季度的流量,而除此之外没人要求它做别的事。

这是评估系统最难察觉的一种失效模式,因为本该检测质量回归的工具本身就是误报的源头。通过率是针对集合中的项目计算的;集合中的项目是根据某个时间点的使用快照精心筛选的;用户的使用方式已经演进,但通过率依然保持“干净”。团队信任绿色的仪表盘,发布了另一个模型升级,几个月后才发现生产环境的分布与评估集所衡量的东西已经南辕北辙,而这种状态持续的时间超出了所有人的想象。

解决方法并不是提高黄金集的更新频率。更新频率是一个错误的调节旋钮;正确的旋钮是拥有第二个针对不同时间窗口校准的工具,以便在用户发现问题之前,通过两者之间的分歧来暴露漂移。这第二个工具就是影子评估(Shadow Eval)—— 一个从当前生产流量中持续重建的并行评估集,它与黄金集并行运行,其明确的任务就是与黄金集唱反调。

LLM SDK 升级税:为什么补丁版本更新实际上是一次伪装的模型发布

· 阅读需 11 分钟
Tian Pan
Software Engineer

我上个季度合作的一个团队在周二凌晨 2:14 向生产环境推送了一个回归错误。值班警报触发了,因为其摘要代理(summarization agent)下游的 JSON 解析器以“尾随逗号错误”拒绝了二十分之一的响应。模型没变。提示词(prompt)没变。评估套件在前一天晚上的通过率为 96.4%,稳稳高于 95% 的准入门槛。改变的只是 package.json 中的一行:模型提供商的 SDK 从 4.6.2 升级到了 4.6.3。补丁更新(Patch bump)。由依赖机器人自动合并。发布说明里写着“内部清理”。

所谓的“内部清理”是一个收紧的 JSON 模式解析器,它删除了一个宽容的后备路径,而这个路径此前一直在默默修复模型工具调用输出中反复出现的尾随逗号怪癖。模型的行为没有改变。但 SDK 对该行为的解释改变了。团队的评估套件从未发现这个回归,因为评估套件运行的 SDK 版本与依赖机器人刚刚推送的版本不同。

这就是 LLM SDK 升级税,它是当今生产环境 AI 中最隐蔽、代价最昂贵的故障模式之一。SDK 不是被动的传输工具。它是你提示词行为的积极参与者,而那些在没有评估的情况下升级 SDK 的团队,实际上是在进行一场伪装的模型发布。

你的 APM 正在悄悄丢弃 LLM 遥测数据,而 Bug 就隐藏在这些缝隙中

· 阅读需 12 分钟
Tian Pan
Software Engineer

目前你的系统中有一个损坏的 prompt 影响了约 3% 的流量,但你的仪表盘根本察觉不到它的存在。p99 延迟图表是绿色的。错误率保持平稳。模型调用成功率指标高达四个九。唯一的故障迹象出现在一张平台团队无法复现的客户支持工单中,而等这张工单进入调试环节时,相关的 trace 已经因为采样而被丢弃了。

这不是监控缺失,而是一个分类错误。你正在运行的 APM 是为维度受限(如 endpointstatus_coderegionservice)的世界设计的,在这种情况下,增加一个标签的成本最多只是增加几个新的时间序列。LLM 工作负载完全不符合这种模式。真正有趣的维度是用户的 prompt、检索到的 context ID、工具调用序列、模型版本、prompt 模板版本、租户(tenant)、语言区域(locale),以及请求所属的 eval bucket。每一个维度都是高基数(high-cardinality)的,只要你用其中任何一个子集来标记 span,指标存储瞬间就会爆炸。

LLM 模型路由是伪装成成本优化的市场细分

· 阅读需 11 分钟
Tian Pan
Software Engineer

成本仪表盘本身就很有说服力。60% 的流量是“简单”的,快速评估显示较小模型在全局准确率指标上仅落后几个百分点,路由层在同一周内通过特性开关(feature flag)上线。成本曲线开始下行。财务部皆大欢喜。团队继续推进后续工作。

没有人注意到的是,周二下午走廉价路径、周三上午走昂贵路径的客户,现在实际上在使用两种不同的产品。这两个模型的失败方式不同。格式化方式不同。拒绝的内容不同。它们以不同的默认逻辑处理歧义、追问和部分输入。从客户的角度来看,助手一夜之间失忆了,而且没人能告诉他们原因——因为在公司内部,这次变更被归档为一次 FinOps 的胜利,而不是一次产品发布。

多语言评估成本放大效应:为什么七个语种的成本不只是 7 倍

· 阅读需 16 分钟
Tian Pan
Software Engineer

在国际化发布的财务规划电子表格中,有一个清晰的项目:“将评估覆盖范围扩展到七个新语言区域 —— 假设为当前评估成本的 7 倍。”英语评估套件耗时两周,花费 4 万美元构建,因此七个语言区域将花费 28 万美元和一个季度的工程时间。CFO 签字了。产品 VP 签字了。发布启动了。

六个月后,实际的评估账单已经突破 31 万美元,团队仍在搭建最后两个语言区域。标注供应商在葡萄牙语(巴西)人员库中已经换了三批人,因为前两批产生的人员间一致性(inter-rater agreement)分数,任何诚实的审查都会称其为随机。德语裁判模型(judge model)在相同内容上的评分比英语模型低 6% —— 团队最初将其解读为德语模型的退化(regression),直到人工审核发现裁判模型本身才是退化的根源。评估负责人每周要花 40% 的时间处理一个没人预算过的问题:我们如何知道语言区域 A 的通过率确实比语言区域 B 差,而不是因为跨语言区域的测量比差距本身的噪声更大?