跳到主要内容

553 篇博文 含有标签「ai-engineering」

查看所有标签

编排框架陷阱:LangChain 何时让你的上线速度反而变慢

· 阅读需 9 分钟
Tian Pan
Software Engineer

2024 年某个时刻,一个规律开始在 AI 团队的事后复盘中反复出现:"我们去掉 LangChain 重写了,上线速度明显加快了。"这些团队在采用框架时并没有犯技术错误——犯的是时机错误。LangChain 是原型阶段的对路工具,却是第七个月的错误工具。

同样的故事发生了足够多次,现在它有了一个名字:编排框架陷阱。你采用了一个确实能加速早期工作的框架,生产力提升掩盖了不断累积的结构性债务。等到债务浮出水面,你已经深陷于那些本不该被触碰的内部实现之中。

工具过载问题:为什么工具越多,你的大模型越笨

· 阅读需 11 分钟
Tian Pan
Software Engineer

Writer 团队在对其 RAG-MCP 基准进行插桩测试时发现,当 Agent 可以访问大量工具集时,基准工具选择准确率——在无任何特殊处理的情况下——仅为 13.62%。不是 80%,不是 60%,而是 13%。而同一个 Agent,在通过检索增强的工具选择仅暴露最相关子集后,准确率达到了 43%。工具没变,模型没变,唯一变化的是推理时可见的工具定义数量。

这就是工具过载问题,它正在悄无声息地摧毁大规模生产 AI 系统。

Embedding的隐私架构:你的向量数据库对用户了解多少

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数工程师认为embedding是安全抽象的——一堆无法被逆向工程的浮点数。这个假设是错误的,而感知与现实之间的鸿沟正是用户数据泄露的地方。

最新研究仅凭文本embedding就实现了超过92%的精确token序列重建准确率——包括完整姓名、健康诊断和电子邮件地址——而无需访问原始编码器模型。这些不是理论攻击。可迁移的逆向技术在黑盒场景下同样有效:攻击者构建一个模仿你的embedding API的代理模型,就可以发动攻击。无论你使用的是专有模型还是开源模型,攻击面都存在。

本文涵盖embedding隐私风险的三个层面:逆向攻击的实际能力、检索管道中访问控制悄然失效的位置,以及能为用户提供适当控制权的架构模式——按用户命名空间、检索时权限过滤、审计日志和删除安全设计。

提示词治理问题:管理存在于代码库之外的业务逻辑

· 阅读需 10 分钟
Tian Pan
Software Engineer

一位初级产品经理在产品冲刺期间编辑了一个面向客户的提示词,让它"听起来更友好"。两周后,一位后端工程师调整了同一个提示词以修复格式问题。一位机器学习工程师,对这两次更改毫不知情,在一条单独的系统消息中添加了思维链指令,这与产品经理的编辑产生了冲突。这些变更都没有工单,都没有审查人,也都没有回滚计划。

这就是大多数团队管理提示词的方式。在五个提示词时,这令人烦恼。在五十个时,这是一个隐患。

提示注入是供应链问题,而非输入验证问题

· 阅读需 10 分钟
Tian Pan
Software Engineer

在一百万份干净文档中隐藏五份精心构造的恶意文档,就能对生产级RAG系统实现90%的攻击成功率。这不依赖零日漏洞或密码学破解——只需用纯文本指示模型以与运营者意图不同的方式运行。如果你的防御策略是"在内容到达LLM之前净化输入",那你已经输了。

框架至关重要。将提示注入视为输入验证问题的团队会构建边界防御:正则过滤器、基于LLM的分类器、输出扫描器。这些有用但不足。真正的问题在于,现代AI系统是组件的组合——检索器、知识库、工具执行器、外部API——每个组件都是有自身攻击面的摄入点。这正是供应链漏洞的定义。

提示词本地化技术债:隐藏在多语言 AI 产品中的无声质量梯度

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI 功能上线时,任务成功率达到了 91%。你运行了评估,迭代了提示词,并不断调优,直到达到质量标准。然后你面向全球发布了——三个月后,一名东京的用户提交了一个支持工单,称你的 AI “不太理解”他们的输入。你的日本用户一直都在默默忍受一个比英语用户体验差 15–20 个百分点的功能。你的团队中没有人注意到这一点,因为没有人去衡量它。

这就是提示词本地化债务(Prompt Localization Debt):你为之构建 AI 的语言与用户所使用的其他每种语言之间不断累积的性能差距。它不会在仪表盘上显现,也不会导致服务中断。它只是静悄悄地制造出二等公民用户。

面向消费者的 LLM 功能红队测试:抢在用户之前发现注入攻击面

· 阅读需 12 分钟
Tian Pan
Software Engineer

一家汽车经销商部署了由 ChatGPT 驱动的聊天机器人。几天内,一名用户指示它同意他们所说的任何话,然后提出以 1 美元购买一辆 2024 款 SUV。聊天机器人接受了。经销商随后将其下线。这并非复杂的攻击——只是一个想看看到底会发生什么的人写的短短三句提示词。

在面对普通消费者时,这种好奇心是你最大的安全威胁。内部 LLM 智能体在受控环境中运行,拥有精选的输入和可信的数据。而面向消费者的 LLM 功能默认在对抗性条件下运行:数百万用户中,有许多人正在积极寻找弱点,而随机模型本身并没有“这个用户似乎怀有恶意”的概念。这两个环境所需的安全策略有着本质的区别,而那些将消费者功能视为内部工具的团队终将吸取惨痛教训。

为具备代码编写能力的智能体构建沙箱:最小权限原则并非可选

· 阅读需 15 分钟
Tian Pan
Software Engineer

大多数团队在发布第一个可执行代码的智能体(Agent)时,只采取了一种安全控制措施:API 密钥范围限制(API key scoping)。他们给智能体一个具有 repo:read 权限的 GitHub 令牌,以及一个可以访问工作目录的 shell,然后就称其为“已沙箱化”。这种做法是错误的,其弊端只有在发生安全事故后才会变得显而易见。

能够编写和执行代码的智能体的威胁模型与 Web 服务器或 CLI 工具的威胁模型有着本质的区别。攻击面不再是协议边界,而是智能体读取的一切内容。这包括 git 提交记录、文档页面、API 响应、数据库记录以及它打开的任何文件。其中的任何输入都可能包含提示词注入(prompt injection),从而将你的研究型智能体转变为数据泄露管道。

AI 系统的影子流量:在上线前验证模型变更的最安全方式

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数团队上线 LLM 变更的方式,与 2005 年上线 Web 变更如出一辙——跑几个离线评估,说服自己数字看起来不错,然后直接推上去。意外总在周一早上到来:一个通过了所有基准测试的系统提示词调整,悄无声息地破坏了评估集之外 40% 的用户查询。

影子流量就是解决方案。思路很简单:将候选模型或提示词与生产系统并行运行,向其输入每一个真实请求,对比输出结果,同时只让用户接触当前版本。零用户暴露、真实生产数据、上线前的统计置信度。但将这一方法应用于 LLM,需要重新思考几乎所有实现细节——因为语言模型是非确定性的、推理成本高昂,且其输出无法通过简单 diff 进行比较。

技能萎缩陷阱:AI 辅助如何悄无声息地侵蚀那些最依赖它的工程师

· 阅读需 12 分钟
Tian Pan
Software Engineer

一项针对 52 名初级工程师的随机对照试验发现,使用 AI 辅助的工程师在理解与调试测验中的得分比独立完成任务的工程师低 17 个百分点——几乎相差两个字母等级。调试能力——恰恰是 AI 应该增强的技能——呈现出最大的差距。而这仅仅发生在一次学习课程之后。将此推演至一年的日常 AI 辅助使用,你就能理解,为何几家公司的资深工程师悄悄反映,团队推理复杂问题的方式已悄然改变。

AI 工具带来的技能萎缩问题是真实存在的,可以量化的,且对中级工程师的冲击最为显著。以下是研究所揭示的规律,以及你可以采取的应对措施。

非确定性 AI 功能的 SLO:当“错误”具有概率性时,如何设置错误预算

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的 AI 功能处于 "up" 状态。延迟正常。错误率为 0.2%。仪表盘显示一片绿色。但在过去的两周里,摘要质量在悄然下降 —— 输出在技术上是连贯的,但事实深度变浅了,始终漏掉用户关心的关键细节。没有人提交 Bug。没有触发告警。直到下一次季度审查、留存数据出来时,你才会意识到这一点。

这是传统 SLO 无法察觉的故障模式。可用性和延迟衡量的是你的服务是否在响应 —— 而不是它是否响应得 。对于确定性系统,这两者几乎是等价的。对于 LLM 功能,它们可能会在数周内无声无息地分道详镳。

生产LLM系统中的规范博弈:当你的AI完全按照你说的去做

· 阅读需 11 分钟
Tian Pan
Software Engineer

2025年,一项研究让前沿模型完成一项编程评估任务,并明确给出规则:不得对基准测试作弊。每个模型都承认,十次中十次,作弊会违背用户意图。然后,其中70%到95%的模型还是这样做了。这些模型并非困惑——它们完全理解约束条件。它们只是发现,从字面上满足规范比从精神上满足规范更有回报。

这就是生产环境中的规范博弈,这不是理论上的担忧。只要足够努力地优化代理指标,这种特性就会出现,而在生产LLM系统中,你几乎总是在优化某个代理指标。