跳到主要内容

76 篇博文 含有标签「infrastructure」

查看所有标签

智能体系统中的写放大:为什么一次工具调用会命中六个数据库

· 阅读需 11 分钟
Tian Pan
Software Engineer

当智能体决定记住某件事——"用户更喜欢邮件而非Slack"——看起来只是一次写入。实际上,它是六次写入:向量存储中的一个新嵌入、关系数据库中的一行记录、会话缓存中的一个条目、事件日志中的一条记录、审计轨迹中的一个条目,以及上下文存储的一次更新。每一次写入都因为系统的某个部分对数据有合理需求而发生,每一次写入都引入了新的故障点。

这是基础设施层面的写放大,也是生产智能体部署中较为隐蔽的运营危机之一。它不会导致戏剧性的故障,而是导致部分故障:用户偏好在语义上可以被搜索到,但关系查询返回的是过时数据;审计日志显示某个动作已完成,但实际上从未完全提交;缓存是热的,但上下文存储没有更新,因此下一个会话在没有已学习模式的情况下启动。

理解这一切为何发生——以及如何应对——需要借鉴数据库内部知识,而不是智能体框架文档。

LLM 流水线的背压模式:为何指数退避还不够

· 阅读需 11 分钟
Tian Pan
Software Engineer

在峰值流量期间,部分 LLM 提供商的失败率超过 20%。当系统撞上这堵墙,并通过加倍等待时间和重试来应对时,你解决的是一个错误的问题。指数退避处理的是单次调用的韧性,对整个系统毫无作用——无法减少浪费的 token,无法解决连接池耗尽,也无法照顾到排在刚收到 429 响应那个请求后面的 50 个请求。

冲击 LLM API 的流量模式也发生了根本性变化。2023 年到 2025 年间,100 token 以下的简单查询从占流量的 80% 骤降至约 20%,而超过 500 token 的请求则成为持续的多数。Agentic 工作流在短时间内串联 10-20 个顺序调用,产生的流量模式在传统的每分钟请求数(RPM)限速下,与 DDoS 攻击别无二致。为负载可预测的 REST API 构建的基础设施,并不是 LLM 流水线所需要的基础设施。

大多数团队都会搞错的 LLM 基础设施“自研还是购买”决策

· 阅读需 12 分钟
Tian Pan
Software Engineer

一家金融科技团队基于 GPT-4o 构建了他们的 AI 聊天机器人。第一个月:1.5 万美元。第二个月:3.5 万美元。第三个月:6 万美元。预计年支出将达到 70 万美元,他们慌了,并决定转向自托管。六个月后,在耗尽了一名工程师的精力后,他们每月在基础设施、一名兼职 DevOps 工程师以及三次导致生产环境宕机的 CUDA 事故上花费 8.5 万美元。他们最终将开支降到了每月 8000 美元 —— 但并不是通过全盘自托管实现的,而是通过智能路由。

这两个决定都是错误的。真正的失败在于他们从未进行过实际的成本核算。

供应商可靠性陷阱:你的 LLM 供应商 SLA 已成为你用户的 SLA

· 阅读需 11 分钟
Tian Pan
Software Engineer

2024 年 12 月,Zendesk 发布了一份正式事故报告,称从 2025 年 6 月 10 日到 11 日,客户无法访问所有 Zendesk AI 功能,持续时间超过 33 个连续小时。工程团队的修复措施栏是空的——什么都做不了。此次故障完全由其上游 LLM 供应商宕机引起,而 Zendesk 没有任何在没有该供应商的情况下恢复服务的架构路径。

这就是供应商可靠性陷阱最清晰的体现:你发布了一个功能,让它成为用户工作流程的一部分,通过隐性或显性的 SLA 承诺保证可用性,然后发现你整个可靠性状态受限于一个你无法控制、无法修复、甚至可能在上线前从未正式评估过的依赖项。

混合 LLM 工作负载的 GPU 调度:那个没人解决好的装箱问题

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数运行 LLM 推理的 GPU 集群正在浪费 30% 到 50% 的可用算力。这并非因为工程师粗心,而是因为调度问题本身极为困难——而大多数团队首先想到的工具根本不是为此设计的。

标准做法是搭建 Kubernetes,为每个 Pod 申请完整的 GPU,然后让调度器自行处理。这对训练任务运行良好。但对于处理异构模型集合的推理场景,这种方式会悄悄摧毁利用率。一个运行三个不同 7B 模型且流量稀疏的集群,每个 GPU 的实际繁忙时间可能不足 15%,同时却处于完全"已分配"状态,拒绝调度任何新任务。

根本原因在于 Kubernetes 理解 GPU 的方式与 LLM 推理实际需求之间的错配。

质量感知模型路由:为什么仅优化成本会毁掉你的 AI 产品

· 阅读需 11 分钟
Tian Pan
Software Engineer

每个部署 LLM 路由的团队都是同样的起步方式:按价格排列模型,将简单查询发送给便宜的模型,复杂查询发送给昂贵的模型,然后庆祝成本降低了 60%。六周后,有人发现合同分析准确率从 94% 降到了 79%,编码助手开始虚构不存在的 API 端点,复杂支持工单的客户满意度直线下滑——而路由仪表盘上仍然显示"质量保持 95%"。

问题不在于路由本身。问题在于,仅优化成本的路由将所有质量下降视为等同,而实际上你降级的那些查询恰恰是质量最重要的那些。

推理成本悖论:为何模型越来越便宜,你的 AI 账单却越来越高

· 阅读需 12 分钟
Tian Pan
Software Engineer

2021 年,GPT-3 的价格是每百万 token 60 美元。到 2026 年初,同等性能的模型只需 0.06 美元。三年内降价 1000 倍。与此同时,企业 AI 支出增长了 320%——从 115 亿美元攀升至 370 亿美元。而在 AI 上花费最多的那些组织,恰恰正是从价格下降中受益最大的那批人。

这并不矛盾。这就是杰文斯悖论(Jevons Paradox),而它正在侵蚀你的 AI 预算。

将你的 LLM 提供商视为不可靠上游:AI 的分布式系统实战手册

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的监控仪表板一片绿色。响应时间看起来正常。错误率接近于零。然而你的用户却在提工单投诉垃圾回答,你的 agent 正在做出自信满满的错误决策,你的客服队列里塞满了与任何基础设施告警都不相关的投诉。

欢迎来到在生产环境中依赖 LLM API 的独特地狱。这是一个能在返回完美健康的 200 OK 的同时让你翻车的上游服务。

开源权重模型的生产实践:自托管何时真正优于 API

· 阅读需 10 分钟
Tian Pan
Software Engineer

每隔几个月,团队里就会有人转发一篇关于 Llama 或 Qwen 在某个基准测试上"媲美 GPT-4"的博客文章,然后不可避免地提出这个问题:"既然我们可以自己运行,为什么还要为 API 调用付费?"在草稿纸上算一算,这个数字看起来很有吸引力。但现实是,大多数尝试自托管的团队最终花费反而更多——不是因为模型不好,而是他们低估了模型之外的所有成本。

话虽如此,在某些特定场景下,自托管开源权重模型确实是明确正确的选择。关键在于认清你实际所处的场景,而不是你希望自己所处的场景。

智能体测试的模拟环境:构建代价为零的沙箱

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 Agent 在预发布环境中通过了每一项测试。然后它进入了生产环境,发送了 4,000 封电子邮件,向一名客户收取了两次费用,并删除了一条本不该触碰的记录。预发布测试没有错 —— 它们只是测试了错误的东西。预发布环境让 Agent 看起来很安全,因为所有它可能破坏的东西都以错误的方式被伪造了:Mock 得足以不崩溃,但也真实得足以让你误以为测试是有意义的。

这就是“模拟保真度陷阱”。这与普通的软件测试失败不同。对于确定性函数,镜像生产环境 Schema 和 API 的预发布环境通常就足够了。对于 Agent 来说,行为产生于推理、工具输出以及跨多步轨迹的累积状态之间的相互作用。如果在这些维度中的任何一个上与生产环境存在偏差,预发布环境都会产生对其实际行为过度自信的 Agent。

Serverless AI Agent 的冷启动税

· 阅读需 13 分钟
Tian Pan
Software Engineer

一个带有精简 Python 处理程序的标准 Lambda 函数冷启动大约需要 250 毫秒。而你的 AI 智能体,在调用相同的运行时并添加了一些 SDK 导入后,冷启动需要 8-12 秒。如果再加上本地模型推理,时间将达到 40-120 秒。第一个触发已缩容部署的用户,在智能体响应之前需要等待一条电视广告的时间。这种差距——不是单次推理 Token 的延迟,也不是吞吐量,而是初始启动成本——正是大多数 Serverless AI 部署在用户体验上悄然失败的原因。

这个问题并非 Serverless 所特有,但 Serverless 让它变得显而易见。当你在常驻(always-on)基础设施上运行智能体时,你是在为闲置容量付费,且冷启动永远不会发生。当你为了降低成本而采用缩减至零(scale-to-zero)的策略时,每一个低流量时期都成为了等待下一个请求的陷阱。

实时智能体 UI 背后的流式传输基础设施

· 阅读需 15 分钟
Tian Pan
Software Engineer

大多数智能体流式实现都会在以下四个方面出错:代理静默地吞掉了流、用户关闭标签页而智能体却在后台运行导致持续消耗 token、页面刷新导致任务丢失,或者工具调用在流的中途失败而智能体陷入静默空闲。这些都不是模型问题。它们是基础设施问题,是团队在本地测试良好,但在生产环境中才会发现的问题。

这篇文章讨论的就是这种差距 —— 服务器端架构的决策决定了一个实时智能体 UI 是否真正可靠,而不仅仅是在演示环境中看起来令人惊叹。