跳到主要内容

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

查看所有标签

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

· 阅读需 12 分钟
Tian Pan
Software Engineer

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

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

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

· 阅读需 15 分钟
Tian Pan
Software Engineer

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

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

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)具有在演示中不会表现出来的尖锐边缘。

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

为什么多智能体系统会在接缝处断裂:设计可靠的交接机制

· 阅读需 10 分钟
Tian Pan
Software Engineer

当团队从单智能体系统转向多智能体 AI 系统时,一个模式会反复出现:单个智能体在独立运行时表现完美,但系统作为一个整体却表现得难以预测。问题不在于智能体本身,而在于它们之间的边界。

针对生产环境多智能体部署的研究表明,在缺乏正式编排的情况下,失败率在 41% 到 86.7% 之间。最常见的复盘结果并非“LLM 给出了错误的答案”,而是“错误的上下文在错误的时间传达给了错误的智能体”。智能体之间的接缝正是系统悄然崩塌的地方。

生产环境中的推理模型:何时获益,何时受损

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个构建支持分流系统的团队将其分类流水线从 GPT-4o 切换到了 o3。准确率提升了 2%。成本上升了 900%。延迟从 400 ms 跳升至 12 秒。他们最后切回去了。

这是目前生产环境 AI 中最常见的故事。推理模型代表了真正的能力飞跃 —— 在之前没有模型能超过 2% 的 Frontier Math 基准测试中,o3 解决了 25% 的问题。但这种能力伴随着成本和延迟的代价,使得它们在普通生产系统的多数任务中并不适用。理解其中的差异是 AI 工程师现在能掌握的最有价值的事情之一。

上下文工程:为什么你喂给 LLM 的内容比你提问的方式更重要

· 阅读需 13 分钟
Tian Pan
Software Engineer

大多数 LLM 质量问题并非提示词(Prompt)问题。它们是上下文(Context)问题。

你花了数小时打磨完美的系统提示词。你添加了 XML 标签、思维链指令和精细的人设定义。你在一些输入上进行了测试,效果看起来很棒。然后你上线了产品。两周后,你盯着一个工单发呆:智能体一本正经地告诉用户错误的账户余额 —— 因为它检索到了前一个用户的交易记录。模型完美理解了指令,它只是拿到了错误的输入。

这就是提示词工程(Prompt Engineering)与上下文工程(Context Engineering)之间的核心区别。提示词工程问的是:“我该如何措辞?”上下文工程问的是:“模型现在需要知道什么,以及我如何确保它准确获得这些信息?”前者是文案写作,后者是系统架构。

AI Agent 架构:生产环境中真正有效的方案

· 阅读需 13 分钟
Tian Pan
Software Engineer

一家公司交付了 7,949 个 AI Agent。其中只有 15% 能够正常工作。其余的要么静默失败,要么陷入死循环,或者在执行任务中途前后矛盾。这并非个别现象——企业级分析一致发现,88% 的 AI Agent 项目从未进入生产阶段,95% 的生成式 AI 试点项目以失败告终或表现严重不及预期。引人入胜的演示 (Demo) 与可靠系统之间的差距并非模型问题,而是架构问题。

那些成功交付了实际可用 Agent 的工程师们,在架构决策上达成了一系列共识,而这些决策与框架教程中的玩具示例截然不同。本文将探讨这些决策:层级如何划分、故障集中在哪里,以及为什么最难的问题从来不是提示词 (Prompt)。

生产环境中的 LLM 护栏:哪些方法真正奏效

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数团队在发布他们的第一个 LLM 功能后,会在生产环境中因糟糕的输出而受挫,然后紧急加上护栏进行损害控制。结果是一个脆弱的系统,它会阻止合法的请求,减慢响应速度,并且在关键的边缘情况下仍然失效。护栏值得做好——但天真的方法会以你意想不到的方式伤害你。

以下是实际的权衡取舍,以及如何构建一个不会悄悄破坏你产品的护栏层。

生产环境中的提示工程:真正重要的是什么

· 阅读需 9 分钟
Tian Pan
Software Engineer

大多数工程师学习提示工程都是倒着来的。他们从“发挥创意”和“一步一步思考”开始,反复迭代一个演示直到它奏效,然后在生产环境中发现模型有 15% 的时间在“幻觉”(胡编乱造),他们的 JSON 解析器每隔几小时就会抛出异常。让聊天机器人令人印象深刻的技术,往往不是让生产系统可靠的技术。

在将 LLM 功能部署到真实系统一年后,以下是真正区分有效提示和在负载下仍能保持稳定的提示的关键。

生产环境中的工具使用:真正有效的函数调用模式

· 阅读需 10 分钟
Tian Pan
Software Engineer

LLM 在生产环境中函数调用失败最令人惊讶的地方在于它们的来源。不是幻觉推理。也不是模型选错了工具。代理不稳定的首要原因在于参数构造:错误的类型、缺少必填字段、格式错误的 JSON、幻觉出的额外字段。模型本身没问题。你的 schema 才是问题所在。

这是个好消息,因为 schema 修复成本很低。