跳到正文
LangChain:Blog·· 2025-03-16精选AI 评分60

LangChain 官方教程:AI Agent 提速的实用方法

AI Agent Latency 101: How do I speed up my AI agent?

AI 导读

LangChain 博客介绍开发者加速 AI Agent 的常见做法:先用 LangSmith 诊断延迟来源,再通过流式输出和后台运行降低用户感知延迟。其他要点包括减少 LLM 调用次数(如用 LangGraph 精确控制智能体通信)、换更快模型、削减输入上下文以及并行执行 LLM 调用。

推荐理由

原文把 Agent 提速拆成诊断瓶颈、减少与并行 LLM 调用、优化感知延迟等具体路径,方法可直接迁移到自己的项目。

正文 · AI 翻译

我经常被问到这个问题。开发者通常先花时间让智能体跑起来,之后才会把注意力转向速度和成本。我们看到开发者常做这几件事:

  • 定位延迟来自哪里
  • 改变用户体验以降低“感知”延迟
  • 减少 LLM 调用次数
  • 加快 LLM 调用速度
  • 并行发起 LLM 调用

定位延迟来自哪里

这听起来可能很基础,但你降低延迟的方法完全取决于你具体的瓶颈所在。延迟是来自一次大的 LLM 调用,还是来自多次小调用累积而成?在尝试提速之前,你需要先诊断清楚。

LangSmith 在这方面是非常有用的工具,能让你完整地看到智能体的交互过程。你可以追踪智能体每一步的延迟,我们最近还推出了“瀑布”视图,方便你轻松找出哪些步骤对整体延迟的贡献最大。

改变用户体验以降低“感知”延迟

有时候,降低延迟最简单的方法……就是不去降低延迟。

这乍一听可能有些反直觉,但如果我们想想延迟为什么重要——它往往重要是因为人们担心如果智能体运行太久,用户就不爱用了。这个问题通常可以通过更新智能体的用户体验来解决。我们看到主要有两种做法。

  • 流式返回结果。 流式输出对大多数 LLM 应用来说已经相当普遍,但如果你还没做,那绝对应该做。它能让用户知道 LLM 正在工作,他们就更不容易离开页面。除了流式输出响应 token,你还可以流式输出最终响应之外的内容。例如,你可以流式输出智能体正在执行的计划步骤、检索结果或思考 token。Perplexity 在这方面做得非常出色,他们的搜索界面就是如此。他们发现,通过改变 UI 来展示这些中间步骤,用户满意度提升了——尽管总完成时间并没有变化。
  • 在后台运行智能体。让智能体在后台运行。对于我的邮件助手,我根本看不到邮件智能体花了多长时间。因为它是由事件(一封邮件)触发的,只有卡住时我才会收到通知。我把所有延迟都对用户隐藏了,智能体只是在后台运行。

减少 LLM 调用次数

并非所有事情都需要调用 LLM。如果你能用调用 LLM 之外的方式完成事情——那太好了!我们看到的正在构建的智能体,是 LLM 调用与代码的结合。这种将代码与 LLM 调用相结合的混合方式,是 LangGraph 的指导原则之一,也是Replit、Uber、LinkedIn 和 Klarna 等公司采用它的核心原因。

我们常见的一条路径是“单次 LLM 调用” → “ReAct 智能体” → “多智能体” → “LangGraph”。

人们从单次 LLM 调用开始。遇到一些不足后,就升级到智能体。这样还行,但接着他们想给它更多工具,然后意识到单个智能体只能支持有限数量的工具。于是他们转向“多智能体”架构,使用监督者或蜂群架构。

问题在于,这些架构会使用大量的 LLM 调用。它们在不同智能体之间的通信方式上效率并不高。这是有意为之——它们是通用架构,所以并没有针对你的用例做优化。

这时我们会看到人们转向 LangGraph。LangGraph 是低层级的,允许你精确指定这些 agent 之间应如何通信(或者何时只是一次 LLM 调用)。这通常会显著减少 LLM 调用次数,使 agent 更快、更便宜(而且往往更可靠)。

加速 LLM 调用

我们通常看到开发者通过两种方式加速 LLM 调用。

更快的模型。有些模型比其他模型更快。Google 提供的 Gemini Flash 非常快。OpenAI 和 Anthropic 也有更小、更快的模型。像 Groq 和 Fireworks 这样的开源模型托管平台一直在努力让最好的开源模型越来越快。注意:这通常伴随着使用更差模型的代价,因为这些更快的模型通常更小,因此准确性更低。

更少的上下文。 LLM 响应所需的时间与输入长度成正比。为了获得更快的结果,你可以传入更少的输入!这就是为什么你需要对每次 LLM 调用中究竟放入了什么拥有完全的控制权和可见性。那些对此进行遮蔽(或不易于控制)的框架都不好——这就是为什么 LangGraph 不带有隐藏提示词——你拥有完全的控制权。如果你正在寻找一种更好地洞察 LLM 调用中输入内容的方法——不妨看看 LangSmith。

并行进行 LLM 调用

并非适用于所有用例,但如果适用于你的用例,你就应该这样做。LangGraph 开箱即支持并行。你可以考虑这样做的示例:

  • 并行进行护栏检查和生成
  • 并行从多个文档中提取信息
  • 并行调用多个模型,然后合并输出

结论

加速你的 AI agent 归根结底是在性能、成本和能力之间做出战略性的权衡。首先要理解你具体的性能瓶颈,然后根据你的用例有选择地应用这些技术。有时最有效的方法根本不是技术性的——而是重新思考用户如何体验与你的 agent 的交互。

当你尝试新策略时,我们很想听到你的声音——哪些技术对加速你的 agent 最有效?在 X 或 LinkedIn 上给我们留言。

来源:LangChain:Blog · langchain.com