当前位置: 首页 > ai >正文

【智能体开发】怎样提升AI智能体的运行速度?

我们在开发AI智能体时,通常会先花时间让智能体(Agent)能够正常运行,但接着我们会注意力到速度和成本面临挑战,大模型的调用次数越多,程序运行越慢,用户等待时间越长,Token消耗越多。我们如何提升智能体执行速度并降低运行成本呢?

以下是实际开发中经常采取的几种做法:

  • 找出延迟的来源
  • 改变用户体验,以降低“感知到的”延迟
  • 减少 LLM 调用次数
  • 加快 LLM 调用速度
  • 并行进行 LLM 调用

1.识别延迟的来源

这是很朴素的逻辑,问题的第一步是如何识别性能瓶颈。减少延迟的方法完全取决于你具体的瓶颈是什么?延迟是来自一次耗时很长的 LLM 调用?还是来自多次较短的调用累积起来的结果?在尝试加速之前,你需要先诊断清楚这些问题。

你可以借助一些工具(如LangSmith或自建埋点监控系统)。监控能为你提供智能体每次交互的完整可视化。你可以跟踪代理每一步的延迟,方便你轻松识别哪些步骤对整体延迟的影响最大。

2.通过改变交互来减少“感知到的”延迟

有时候,减少延迟的最简单方式……其实并不是减少延迟本身。

虽然这听起来可能有点反直觉,但如果我们思考一下降低延迟为什么重要,通常是因为人们担心,如果智能体运行得太慢,用户就不愿意继续使用。这种情况下,往往可以通过更新智能体的用户体验来解决。目前主要通过以下两种方式来做到这一点:

  • 流式返回结果

    流式输出在大多数 LLM 应用中已经非常常见,这是目前主流的做法。它能够向用户传达LLM 正在工作,展示中间状态或者部分中间结果,降低用户等待的焦虑感从而降低用户离开页面的可能性。
    除了流式传输最终的响应 token,你还可以流式传输更多内容,例如:代理正在执行的计划步骤、检索到的结果、甚至推理过程中的“思考 token”。Perplexity 在他们的搜索界面中就在这方面做得非常好。他们发现,仅仅通过在 UI 中展示这些中间步骤,就能显著提升用户满意度——即使总的完成时间没有任何缩短。

  • 在后台运行代理

    让代理在后台运行。比如我的邮件助手,我根本不需要知道它处理一封邮件具体花了多少时间,因为它是由事件(收到邮件)触发的,只有在卡住时我才会收到通知。通过这种方式,我把延迟完全隐藏在用户之外,让代理在后台静默地工作。

3.减少 LLM 调用次数

在用户交互过程中,并不是所有事情都必须通过 LLM 调用来完成。如果你能用其他方式来实现,而不必调用LLM,那就更好!目前我们看到的许多智能体(Agent)都是由 LLM 调用和代码组合而成的,即“代码 + LLM 调用”的混合方式。

我们常看到的一个发展路径是:“单次 LLM 调用” → “ReAct Agent” → “多代理(Multi Agent)” 。

从简单开始,人们一开始通常从单次 LLM 调用做起,但很快会遇到一些限制,于是升级为一个智能体。这种方式一开始运作还不错,但当他们想给代理增加更多工具时,就会发现单个代理能支持的工具数量有限。接着就会尝试使用“多Agent”架构,比如通过一个主管Agent(supervisor)或集群(swarm)架构来协调多个智能体。

但问题在于,这些架构会产生大量的 LLM 调用,而且在不同代理之间的通信效率并不高。这其实是设计使然——它们是通用架构,因此不会针对你的特定场景进行优化。

没有银弹,通用的框架不能在所有业务场景下都高效运行,我们需要针对特定的业务做调整,最好的的方式允许你精确指定各个Agent之间的通信方式(或者明确什么时候只需要一次 LLM 调用)。在很多情况下,这可以显著减少 LLM 调用次数,让代理运行得更快、成本更低(而且往往更稳定可靠)。

4.加快 LLM 调用速度

提升模型的调用速度也同样重要,我们通常用两种方式来加快 LLM 调用:

  • 使用更快的模型

    有些模型本身就比其他模型更快。比如 Google 提供的 Gemini Flash 就非常快速。OpenAI 和 Anthropic 也都有更小、更快的模型。开源模型托管平台,例如 Groq 和 Fireworks,也在不断努力让最好的开源模型越来越快。
    注意:这通常是一个权衡,因为更快的模型往往更小,所以准确率也会相应下降,所以我们需在实际切换的过程中需要做能力评测,防止产品能力退化。

  • 减少上下文(context)长度

    LLM 的响应时间与输入的长度成正比。为了更快获得结果,你可以减少输入内容!这就是为什么你需要对每一次 LLM 调用中传入的内容拥有完全的控制权和可见性。如果一个框架会隐藏这些细节(或者不方便控制),那就不是一个好选择,你要对调用过程中的一切都能完全掌控。

5.并行进行 LLM 调用

虽然这并不适用于所有使用场景,但如果你的场景可以用上,那你绝对应该考虑这么做。我们请求处理中往往涉及多步操作,如:

  • 同时进行安全/质量检测(guardrail check)和内容生成
  • 并行处理多个文档的内容抽取
  • 并行调用多个模型,然后将输出结果合并

6.总结

这篇文章介绍了提升智能体运行效率的一些方式,希望对你构建智能体有所帮助。想要让你的AI Agent跑得更快,归根结底是在性能、成本和能力之间做出战略性的权衡。首先要弄清楚你具体的性能瓶颈在哪里,然后再根据你的使用场景,有选择地应用这些优化方法。而有时候,最有效的方式可能根本不是技术手段,而是重新思考用户与 Agent 交互的体验。

http://www.xdnf.cn/news/19634.html

相关文章:

  • 实验2-代理模式和观察者模式设计
  • C++全局变量未初始的和已初始化的位置放在哪里?
  • C语言————实战项目“扫雷游戏”(完整代码)
  • 【Spring Cloud微服务】9.一站式掌握 Seata:架构设计与 AT、TCC、Saga、XA 模式选型指南
  • MD5加密算法详解与实现
  • 【LeetCode_26】删除有序数组中的重复项
  • 手撕Redis底层2-网络模型深度剖析
  • 云电脑是什么?与普通电脑的区别在哪里?——天翼云电脑体验推荐
  • 全国产FT-M6678核心板
  • SQL JOIN 操作全面解析
  • 哈希表-面试题01.02.判定是否互为字符重排-力扣(LeetCode)
  • 【LeetCode数据结构】栈和队列的应用
  • 在windows平台oracle 23ai 数据库上使用bbed
  • 面阵 vs 线阵相机:怎么选不踩坑?选型公式直接套用
  • SQLShift 实现Oracle 到 OceanBase 的存储过程转换初体验
  • 【Vue2 ✨】 Vue2 入门之旅(六):指令与过滤器
  • 阿里云和华为云Rocky LINUX 9.X镜像就绪及低端可用英伟达GPU
  • Google NotebookLM最强替代品评测:AI笔记、语音生成与高效知识管理工具盘点
  • 【Linux基础知识系列:第一百一十八篇】使用perf进行性能分析
  • Day33 网络编程:OSI/TCP/IP模型、协议族与UDP编程
  • 【新启航】3D 逆向抄数的三维能力架构:数据采集工具操作 × 几何处理算法应用 × 行业场景适配技能
  • 微硕WINSOK大功率MOS管 WSF3085在汽车关键系统中的创新应用
  • 【世纪龙科技】汽车专业数字化课程资源包-虚拟仿真实训资源建设
  • 2025大学生必考互联网行业证书排名​
  • Nginx 全攻略:从部署到精通的实战指南(CentOS 环境)
  • 腾讯混元世界模型Voyager开源:单图生成3D世界的“核弹级”突破,游戏、VR、自动驾驶迎来新变量
  • Nature | 克隆拷贝数多样性影响肺癌生存
  • 大模型适配国产化服务器昇腾(300I DUO)
  • 多人语音分离模型效果展示与本地部署实践
  • spring boot启动