跳到主要内容

207 篇博文 含有标签「llm」

查看所有标签

评估 AI Agent:为什么只看结果会误导你

· 阅读需 12 分钟
Tian Pan
Software Engineer

你构建的一个智能体在最终输出评估中获得了 82% 的分数。你发布了它。两周后,你的支持队列里塞满了用户的投诉,抱怨智能体获取了错误的数据,使用了错误的参数调用 API,并且在错误的中期工作基础上生成了听起来很自信的回复。你回头查看追踪记录(traces)—— 发现智能体在 40% 的查询中路由都是错误的。最终输出评估从未捕捉到这一点,因为智能体往往还是误打误撞地得到了正确答案。

这是智能体评估中的核心陷阱:仅衡量最后输出的结果,无法告诉你智能体是如何到达那里的,而“到达那里”的过程正是大多数失败发生的地方。

上下文工程:生产级 AI 智能体的隐形架构

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数 AI Agent 的 Bug 并不是模型本身的 Bug。模型只是在执行它被告知的操作——出问题的是你放入上下文(context)的内容。在 Agent 执行到一定阶段后,问题不在于能力,而在于熵:噪声、冗余和注意力错位的缓慢积累,这会降低模型生成的每一项输出的质量。研究人员称之为“上下文腐烂”(context rot),而且所有主流模型——GPT-4.1、Claude Opus 4、Gemini 2.5——在任何输入长度增加的情况下,无一例外都会表现出这种现象。

上下文工程是专门管理这一问题的学科。它比提示词工程(prompt engineering)更广泛,后者主要关注静态的系统提示词。上下文工程涵盖了模型在推理时看到的一切:你包含什么、排除什么、压缩什么、将内容放在哪里,以及如何在长期运行的任务中保持缓存状态。

构建多智能体研究系统:来自生产环境的设计模式

· 阅读需 10 分钟
Tian Pan
Software Engineer

当单智能体(single-agent)系统在研究任务中失败时,人们的直觉是增加更多内存、更好的工具或更强大的模型。但在某些点上,问题不在于能力——而在于并发性(concurrency)。深度研究任务需要同时推进多个线程:从不同角度验证论点、跨领域扫描来源、实时交叉引用发现。单智能体按顺序执行这些操作,就像研究人员在做笔记之前先逐本阅读每一本书。回想起来,多智能体(multi-agent)的替代方案似乎显而易见,但在生产环境中正确实现它比架构图所示的要困难得多。

这篇文章讨论了多智能体研究系统是如何实际构建的——行之有效的架构选择、在生产环境中才显现的故障模式,以及在大规模应用中保持其有用性所需的工程纪律。

从第一性原理设计智能体运行时

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数智能体(Agent)框架在早期都会犯一个关键性错误:将智能体视为一个函数。你调用它,它循环运行,然后返回。这种思维模型在演示(Demo)中行得通。但当一个现实世界的任务运行了 45 分钟,在第 23 步遇到速率限制(Rate Limit),而你却没有任何可以恢复的内容时,它就会崩溃。

生产环境的智能体运行时(Runtime)不是一个函数运行器。它是一个执行基座(Execution Substrate)——比起 Python 函数,它更接近于进程调度器或分布式工作流引擎。从一开始就理清这一区别,决定了你的智能体系统是能够优雅地处理故障,还是需要人工点击重试。

为什么你的智能体应该编写代码,而不是 JSON

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数 Agent 框架都默认采用同一种动作模型:LLM 输出一个 JSON 块,宿主系统对其进行解析,调用工具,然后返回结果。如此循环。这种方式整洁、可审计,且几乎被普遍使用——而这恰恰是问题所在。对于超出单一工具调用的任何场景,这种架构都会迫使你编写脚手架代码来解决 Agent 本可以自行解决的问题——前提是如果允许它编写代码。

还有另一种方法:给 Agent 一个 Python 解释器,让它输出可执行代码作为其动作。一项已发布的基准测试显示,与 JSON 工具调用相比,其 任务成功率高出 20%。内部基准测试显示,平均 LLM 往返次数减少了 30%。一个围绕这一理念构建的框架在发布后不久便登顶 GAIA 排行榜榜首(验证集准确率为 44.2%)。权衡在于执行环境更加复杂——但所需的工程量是可控的,而且带来的行为增益是实实在在的。

为什么你的 AI Agent 将大部分上下文窗口浪费在了工具上

· 阅读需 12 分钟
Tian Pan
Software Engineer

你将智能体连接到 50 个 MCP 工具。它可以查询数据库、调用 API、读取文件、发送电子邮件、浏览网页。理论上,它拥有所需的一切。但在实践中,一半的生产事故都源于工具使用——错误的参数、上下文预算超支、级联重试循环,导致成本是预期的十倍。

这是大多数教程都会跳过的部分:你加载的每个工具定义都是预先支付的 Token 税,甚至在智能体处理单条用户消息之前就开始计算了。连接了 50 多个工具后,仅定义一项就会在每次请求中消耗 70,000–130,000 个 Token。这并非极端情况——这是任何连接到多个 MCP 服务器的智能体的默认状态。

为什么多智能体 AI 架构总是失败(以及你应该构建什么)

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数构建多智能体系统的团队都会遇到同一堵墙:系统在演示时效果出色,但在生产环境中却分崩离析。这并不是因为他们实现协作协议的方式不对,而是因为协议本身就是问题所在。

多智能体 AI 具有一种直观的吸引力。复杂的任务应该被分解为并行的工作流;专门的智能体应该处理专门的工作;编排器(orchestrator)将它们组合在一起,整体就会大于部分之和。这种直觉是错误的——或者更准确地说,它还不成熟。研究表明,在已研究的执行追踪中,多智能体系统在生产环境中的实际失败率在 41% 到 86.7% 之间。这不是调优问题,而是结构性问题。

构建生成式 AI 平台:架构、权衡以及真正重要的核心组件

· 阅读需 15 分钟
Tian Pan
Software Engineer

大多数将生成式 AI 技术栈视为模型集成项目的团队,最终都会发现他们实际上构建了——或需要构建——一个平台。模型是最简单的部分。难点在于它周围的一切:将查询路由到正确的模型、可靠地检索上下文、过滤不安全的输出、缓存冗余调用、在由五个 LLM 调用组成的链条中追踪出错原因,以及随着使用规模扩大,防止成本逐月翻倍。

本文讨论的就是这个平台层。不是模型权重,也不是提示词——而是将一个可行的原型与一个你可以放心交付给百万用户的系统区分开来的基础设施。

12 因子 Agent:构建真正可交付 AI 系统的框架

· 阅读需 13 分钟
Tian Pan
Software Engineer

那些真正在为生产环境客户交付可靠 AI 智能体的团队,大多并未使用智能体框架。他们选择自研。

这一观察源自与 100 多位技术创始人的交流,也是 12 要素智能体(12-Factor Agents)框架那个令人不安的起点——这是一份旨在构建能够投入生产、而非永远停滞在 80% 质量水平的 LLM 驱动型软件的宣言。该框架刻意借鉴了塑造了一代 Web 服务的原始 12 要素应用(12-Factor App)方法论。这种类比是成立的:正如 12 要素应用为团队提供了构建可部署 Web 服务的原则性方法,12 要素智能体也为构建可靠、可观测的 AI 系统提供了原则。

这个拥有 19,000 颗星的 GitHub 仓库记录了表现最出色的生产团队独立摸索出的经验。以下是他们的共识。

致命三要素:为什么你的 AI Agent 距离数据泄露仅隔一封邮件

· 阅读需 10 分钟
Tian Pan
Software Engineer

2025 年 6 月,一名研究员向一位 Microsoft 365 Copilot 用户发送了一封精心编写的邮件。没有点击链接。没有打开附件。邮件送达后,Copilot 在执行例行的总结任务时读取了它,短短几秒钟内,AI 便开始从 OneDrive、SharePoint 和 Teams 中外泄文件——通过将数据编码进它请求“渲染”的图片 URL 中,悄无声息地将内容传输到了攻击者控制的服务器上。受害者对此一无所知。

从传统意义上讲,这并不是一个新奇的零日漏洞(Zero-day)。没有缓冲区溢出,也没有 SQL 注入。该漏洞是架构性的:系统结合了三种能力,这些能力单独看起来像是理所应当的产品功能。但结合在一起,它们就构成了现在所谓的“致命三要素”(Lethal Trifecta)。

生产环境中的 LLM 可观测性:追踪不可预测的行为

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的监控栈能告诉你关于请求率、CPU 和数据库延迟的一切。但它几乎无法告诉你你的 LLM 是否刚刚幻觉出了一个退款政策,为什么一个面向客户的智能体在回答一个简单问题时循环调用了三次工具,或者你的产品中哪个功能正每天悄悄烧掉 800 美元的 Token。

传统的可观测性是围绕确定性系统构建的。LLM 在结构上完全不同 —— 每次都是相同的输入,不同的输出。故障模式不再是 500 错误或超时;而是一个听起来自信且合理、但恰好错误的答案。成本也不再稳定可预测;当一个配置错误的 Prompt 遇到流量高峰时,成本会激增。调试也不再是“在堆栈跟踪中查找异常”;而是“重建为什么智能体在周二凌晨 2 点选择了这条工具路径”。

这正是 LLM 可观测性(Observability)所要解决的问题 —— 而这一领域在过去 18 个月里已经显著成熟。

上下文的隐性成本:管理生产级 LLM 系统中的 Token 预算

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数初次发布 LLM 应用的团队都会犯同一个错误:他们将上下文窗口视为免费存储。模型支持 128K tokens?太好了,塞满它。模型支持 1M tokens?更棒了——把所有东西都扔进去。接踵而至的是在产品真正跑通前三周就提前到达的账单冲击。

上下文不是免费的。它甚至一点也不便宜。除了成本之外,盲目填充上下文窗口实际上会让你的模型变得更糟。一个精简的 300 token 上下文通常优于一个松散的 113,000 token 上下文。这不是极端情况——而是一个有明确名称的文档化失效模式:“中间迷失”(lost in the middle)。管理好上下文是你对 LLM 产品做出的最高杠杆的工程决策之一。