跳到主要内容

83 篇博文 含有标签「llm」

查看所有标签

为什么你的智能体应该编写代码,而不是 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 产品做出的最高杠杆的工程决策之一。

生产环境中的结构化输出:让 LLM 返回可靠的 JSON

· 阅读需 10 分钟
Tian Pan
Software Engineer

在生产环境中的某个阶段,每个由 LLM 驱动的应用都需要停止将模型输出视为散文,而开始将其视为数据。当你尝试从语言模型中可靠地提取 JSON 对象——并将其输入到下游的数据库、API 调用或 UI 中时——你会发现这有多少种出错的方式。模型会将 JSON 包裹在 Markdown 栅栏中。它会生成一个有效的对象,但遗漏了必填字段。它在多次调用中格式化日期的格式不一致。它会幻觉出枚举值。这些失败中的任何一个都会静默地破坏下游状态。

结构化输出已经从一个事后才考虑的问题演变成生产级 LLM 系统的一等公民。这篇文章介绍了强制执行结构化输出的三种主要机制、各自失效的场景,以及如何在约束下设计高质模式(Schema)。

Prompt Engineering 深度解析:从基础到高级技术

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数工程师将提示词(prompts)视为咒语——稍微修改一下措辞,寄希望于它能奏效,然后就此作罢。这在演示阶段(demos)没问题。但在生产环境中,这会导致系统表现不稳定:没人知道为什么模型在周二的表现与周一不同,一次常规的模型更新可能会悄无声息地破坏掉三个功能。正确的提示工程是一门学科,而不是一种仪式。本文涵盖了全栈内容:何时使用每种技术、基准测试(benchmarks)实际显示了什么,以及陷阱在哪里。

AI 基准测试究竟衡量了什么(以及为什么你不该迷信排行榜)

· 阅读需 12 分钟
Tian Pan
Software Engineer

当 GPT-4o、Claude 3.5 Sonnet 和 Llama 3.1 405B 在 MMLU 上的得分都在 88–93% 之间时,这个数字究竟能告诉你该部署哪种模型?令人不安的答案是:几乎什么也说明不了。曾经能区分优秀模型与平庸模型的基准测试已经饱和。每个前沿模型都能在测试中取得优异成绩,但它们在生产环境中的表现却大相径庭。基准测试表现与实际效用之间的差距从未如此之大,理解其中的原因对于任何基于 LLM 构建的工程师来说都至关重要。

基准测试之所以显得严谨,是因为它们产生了数字。数字看起来像测量,而测量看起来像真理。但基准测试分数的合法性完全取决于它所测量内容的有效性——而这种有效性往往会以排行榜上鲜有提及的方式崩溃。

生产环境中的工具调用:循环、陷阱与实战方案

· 阅读需 10 分钟
Tian Pan
Software Engineer

当你的智能体在放弃之前,第三次默默地重试同一个损坏的工具调用时,你就会意识到,“仅仅添加工具”并不是一种生产环境的策略。工具调用解锁了真正的能力——外部数据、副作用、保证格式的输出——但使其工作的智能体循环(agentic loop)具有在演示中不会表现出来的尖锐边缘。

这篇文章将探讨这些边缘:循环实际上是如何运行的,悄悄破坏并行执行的格式规则,如何编写能让模型做出正确选择的工具描述,以及如何处理错误以让模型恢复而不是陷入死循环。