AI Agent 性能优化实战:延迟、吞吐量与成本的工程平衡(2026 版)
AI Agent 不是调通就行,生产环境要跑得稳、跑得快、跑得便宜。本文拆解 Agent 性能的三个核心维度:延迟(首字延迟 TTFT、端到端延迟)、吞吐量(并发处理能力)、成本(Token 消耗与工具调用开销)。提供从提示词优化、工具调用并行化、缓存策略到生产监控的完整优化手册,附可复用的性能指标看板和真实项目优化案例。【查看 Agent 性能优化检查清单】
引言:Agent 不是调通就行,要跑得稳、跑得快、跑得便宜
过去两年我们交付的 AI Agent 项目里,从”Demo 流畅”到”生产卡顿”的落差,80% 出在性能问题上。客户常说的话是:“演示的时候很快啊,怎么上线就这么慢?”
原因很一致——大家把 Agent 当成”把 Prompt 写聪明一点”,实际上一个能稳定跑的生产级 Agent 是延迟、吞吐量、成本三个维度的工程平衡。本文不聊”Agent 能做什么”(这类文章已经够多了),只拆生产落地:性能瓶颈在哪里、怎么优化、上线后看什么指标。
一、Agent 性能的三个核心维度
1.1 延迟:用户体验的生命线
Agent 延迟有两个关键指标:
- 首字延迟(TTFT, Time to First Token):从用户输入到 Agent 输出第一个字的时间。这是用户感知最敏感的指标——超过 2 秒,用户就开始焦虑。
- 端到端延迟:从用户输入到 Agent 完整响应的时间。简单任务(问答)目标 < 5 秒,复杂任务(多工具调用)目标 < 30 秒。
延迟构成分析:
总延迟 = LLM 推理延迟 + 工具调用延迟 + 网络延迟 + 队列等待延迟
实测数据(某客服 Agent 项目):
- LLM 推理(TTFT):0.8-1.2 秒
- 工具调用(数据库查询 + 外部 API):1.5-3 秒
- 网络延迟:0.1-0.3 秒
- 队列等待:0-2 秒(高峰期)
关键发现:工具调用延迟往往比 LLM 推理延迟更大,但优化时却最容易被忽略。
1.2 吞吐量:系统容量的天花板
吞吐量指系统单位时间能处理的请求数,受限于:
- LLM API 速率限制:大多数 LLM 提供商有 RPM(每分钟请求数)和 TPM(每分钟 Token 数)限制
- 工具调用并发数:外部 API 的并发限制、数据库连接池大小
- 系统资源:CPU、内存、网络带宽
容量规划公式:
最大并发用户数 = (LLM RPM × 平均对话轮次) / 60 × 平均对话时长(秒)
例如:LLM RPM = 600,平均对话 3 轮,平均对话时长 30 秒 → 最大并发用户数 = (600 × 3) / 60 × 30 = 900 用户/分钟。
1.3 成本:运营效率的底线
Agent 成本包括:
- Token 成本:输入 Token(系统提示 + 对话历史 + 工具描述)+ 输出 Token(Agent 响应)
- 工具调用成本:外部 API 调用费用(如搜索引擎、数据库查询)
- 基础设施成本:服务器、缓存、监控
成本优化优先级:
- 减少 Token 消耗(提示词优化、上下文管理)
- 减少工具调用次数(缓存、并行化)
- 选择合适的模型(简单任务用小模型)
二、延迟优化实战
2.1 提示词优化:精简而不简单
优化原则:系统提示控制在 500 Token 以内,单次对话上下文控制在 4K Token 以内(除非必须)。
具体策略:
-
移除冗余指令:
# 优化前(120 Token) 你是一个专业的客服助手,需要友好、耐心、专业地回答用户问题。如果用户问到产品功能,你需要详细解释;如果用户遇到问题,你需要提供解决方案;如果用户投诉,你需要道歉并给出补偿方案。 # 优化后(40 Token) 专业客服助手。回答产品问题、解决技术问题、处理投诉。友好、专业、高效。 -
结构化提示词:使用 Markdown 标题和列表,让 LLM 更快理解指令结构。
-
动态上下文管理:只保留最近 3-5 轮对话历史,早期对话摘要化存储。
2.2 流式输出:感知延迟降低 50%
实现方式:使用 LLM 的流式 API(streaming),逐字返回输出。
效果对比:
- 非流式:用户等待 3 秒看到完整响应
- 流式:用户 0.5 秒后开始看到输出,感知延迟降低 80%
注意事项:
- 流式输出需要前端配合,逐字渲染
- 工具调用结果需要等待完整返回,不能流式
- 错误处理需要在流式结束后统一处理
2.3 工具调用并行化:从串行到并行
问题:Agent 串行调用工具,总延迟 = 所有工具调用延迟之和。
优化方案:独立工具调用并行执行。
// 优化前:串行调用(总延迟 3 秒)
const user = await getUser(userId); // 1 秒
const orders = await getOrders(userId); // 1 秒
const recommendations = await getRecommendations(userId); // 1 秒
// 优化后:并行调用(总延迟 1 秒)
const [user, orders, recommendations] = await Promise.all([
getUser(userId),
getOrders(userId),
getRecommendations(userId)
]);
关键判断:只有工具调用之间没有依赖关系时才能并行。例如,获取用户信息后才能获取该用户的订单,这就是依赖关系,必须串行。
2.4 预计算与缓存:用空间换时间
缓存策略:
- 高频问题缓存:对常见问题预生成答案,缓存 TTL 24 小时。
- 工具调用结果缓存:
- 实时数据(股票价格):TTL 1 分钟
- 准实时数据(用户信息):TTL 5 分钟
- 静态数据(产品信息):TTL 30 分钟
- LLM 响应缓存:相同输入 + 相同参数的 LLM 调用结果缓存 1 小时(适用于确定性任务)。
缓存键设计:工具名 + 参数哈希 + 时间窗口。例如:getUser:abc123:2026090314(每小时变化)。
三、吞吐量优化实战
3.1 并发控制:防止系统过载
策略:
- 令牌桶限流:限制每秒请求数(RPS),超过阈值排队等待。
- 优先级队列:VIP 用户请求优先处理,普通用户排队。
- 优雅降级:系统过载时返回缓存结果或简化响应。
实现示例:
const limiter = new RateLimiter({
maxConcurrent: 10, // 最大并发数
maxPerSecond: 5, // 每秒最大请求数
queueMaxLength: 100 // 队列最大长度
});
3.2 异步处理:非阻塞执行
适用场景:
- 长时间任务:文档分析、数据报告生成等耗时任务,返回任务 ID,用户轮询结果。
- 批量处理:多个用户请求合并为一个批量请求,减少 LLM API 调用次数。
- 后台预计算:用户可能问到的问题提前生成答案缓存。
3.3 模型路由:按需分配资源
策略:
- 简单任务用小模型:FAQ、格式转换等用 7B 模型,成本降低 10 倍。
- 复杂任务用大模型:推理、创作等用 70B+ 模型。
- 动态路由:根据任务复杂度自动选择模型。
实现方式:
function selectModel(task) {
if (task.complexity === 'low') return 'qwen3-8b';
if (task.complexity === 'medium') return 'qwen3-32b';
return 'qwen3-72b';
}
四、成本优化实战
4.1 Token 消耗优化
策略:
- 上下文压缩:早期对话摘要化,只保留关键信息。
- 工具描述精简:工具描述控制在 100 Token 以内,避免冗余参数说明。
- 响应长度控制:在提示词中指定响应长度(如”用 100 字以内回答”)。
效果:某客服 Agent 项目,通过上下文压缩,Token 消耗降低 40%。
4.2 工具调用优化
策略:
- 批量调用:多个查询合并为一个批量请求。
- 结果缓存:相同参数的调用结果缓存,避免重复调用。
- 降级策略:工具调用失败时返回缓存结果或跳过,而不是重试。
4.3 模型选择优化
策略:
- 任务分级:将任务分为简单、中等、复杂三级,分别使用不同模型。
- A/B 测试:对比不同模型的效果和成本,选择最优方案。
- 动态切换:根据实时成本和效果动态调整模型。
五、生产监控与指标
5.1 必须监控的五个核心指标
| 指标 | 目标值 | 警报阈值 | 监控工具 |
|---|---|---|---|
| 首字延迟(TTFT) | < 1 秒 | > 2 秒 | Prometheus + Grafana |
| 端到端延迟 | < 5 秒(简单)< 30 秒(复杂) | > 10 秒(简单)> 60 秒(复杂) | Datadog |
| 工具调用成功率 | > 99% | < 95% | 自定义指标 |
| Token 消耗/对话 | < 4K Token | > 8K Token | LLM 提供商监控 |
| 并发用户数 | < 80% 容量 | > 90% 容量 | 系统监控 |
5.2 监控看板设计
推荐看板布局:
- 实时概览:当前 TTFT、端到端延迟、并发用户数
- 趋势图:过去 24 小时延迟趋势、Token 消耗趋势
- 告警列表:当前活跃告警、历史告警统计
- 工具调用详情:各工具调用次数、成功率、平均延迟
5.3 告警策略
分级告警:
- P0(紧急):TTFT > 5 秒、工具调用成功率 < 90%、系统不可用
- P1(严重):TTFT > 2 秒、工具调用成功率 < 95%、Token 消耗异常
- P2(警告):TTFT > 1 秒、并发用户数 > 80% 容量
六、真实项目优化案例
6.1 案例:客服 Agent 延迟优化
背景:某电商客服 Agent,平均端到端延迟 8 秒,用户投诉”太慢”。
优化措施:
- 提示词精简:系统提示从 800 Token 压缩到 300 Token,TTFT 降低 0.5 秒。
- 工具调用并行化:用户信息、订单信息、推荐信息并行获取,延迟从 3 秒降到 1 秒。
- 缓存策略:用户信息缓存 5 分钟,产品信息缓存 30 分钟,缓存命中率 60%。
- 流式输出:感知延迟从 8 秒降到 2 秒。
结果:端到端延迟从 8 秒降到 3 秒,用户满意度提升 40%。
6.2 案例:数据分析 Agent 吞吐量优化
背景:某数据分析 Agent,高峰期响应慢,用户排队等待。
优化措施:
- 异步处理:长时间分析任务返回任务 ID,用户轮询结果。
- 模型路由:简单查询用 8B 模型,复杂分析用 72B 模型,成本降低 60%。
- 批量处理:多个用户查询合并为批量请求,减少 API 调用次数。
结果:吞吐量提升 3 倍,成本降低 50%。
七、Agent 性能优化检查清单
7.1 延迟优化检查
- 系统提示 < 500 Token
- 单次对话上下文 < 4K Token(除非必须)
- 使用流式输出
- 独立工具调用并行执行
- 工具调用结果缓存(差异化 TTL)
- 高频问题预计算缓存
7.2 吞吐量优化检查
- 实现令牌桶限流
- 长时间任务异步处理
- 简单任务用小模型
- 批量请求合并
7.3 成本优化检查
- 上下文压缩(早期对话摘要化)
- 工具描述精简(< 100 Token)
- 响应长度控制
- 工具调用结果缓存
- 任务分级使用不同模型
7.4 监控检查
- 监控 TTFT、端到端延迟、工具调用成功率
- 监控 Token 消耗和并发用户数
- 设置分级告警(P0/P1/P2)
- 建立专用监控看板
结论:性能优化是持续过程
Agent 性能优化不是一次性的工作,而是持续的过程。随着用户量增长、功能增加、模型更新,性能瓶颈会不断变化。关键是要建立完善的监控体系,及时发现和解决问题。
三个核心原则:
- 先保延迟,再提吞吐量,最后压成本——用户体验优先
- 数据驱动优化——基于监控数据,而不是猜测
- 持续迭代——性能优化是持续的过程,不是一次性的工作
记住:一个响应快但偶尔出错的 Agent,比一个准确但慢如蜗牛的 Agent 更受欢迎。性能优化的目标是在准确性、延迟、成本之间找到最佳平衡点。
常见问题
AI Agent 的性能瓶颈通常在哪里?
三个核心瓶颈:① 延迟——LLM 推理的首字延迟(TTFT)和端到端延迟,特别是多轮对话和工具调用链;② 吞吐量——并发用户数和请求处理能力,受限于 LLM API 速率限制和工具调用延迟;③ 成本——Token 消耗(特别是长上下文和重复工具调用)和工具调用费用(如外部 API 调用)。优化顺序建议:先保延迟(用户体验),再提吞吐量(系统容量),最后压成本(运营效率)。
如何优化 Agent 的首字延迟(TTFT)?
四个关键策略:① 提示词精简——移除冗余指令和示例,保持系统提示在 500 Token 以内,单次对话上下文控制在 4K Token 以内(除非必须);② 流式输出——使用流式 API 返回,让用户尽早看到输出,感知延迟降低 50% 以上;③ 预计算与缓存——对高频问题预生成答案缓存,对工具调用结果建立缓存层(TTL 5-30 分钟);④ 并行工具调用——多个独立工具调用并行执行,而不是串行等待。实测可将 TTFT 从 3-5 秒降至 1 秒以内。
Agent 工具调用如何优化?
三个层面:① 工具粒度——工具职责单一,避免一个工具做多件事导致 Agent 反复调用;② 并行化——独立工具调用并行执行(使用 Promise.all 或类似机制),相关依赖的工具调用才串行;③ 结果缓存——相同参数的工具调用结果缓存 5-30 分钟(根据数据更新频率调整),减少重复调用。特别注意:工具调用超时要设置合理(建议 5-10 秒),超时后要有降级策略(返回缓存结果或跳过)。
如何监控 Agent 生产环境性能?
必须监控的五个指标:① TTFT(首字延迟)——目标 < 1 秒,警报阈值 > 2 秒;② 端到端延迟——从用户输入到完整输出,目标 < 5 秒(简单任务)、< 30 秒(复杂任务);③ 工具调用成功率——目标 > 99%,失败时要有重试和降级;④ Token 消耗——监控每次对话的 Token 使用量,异常增长可能提示提示词泄漏或循环调用;⑤ 并发用户数——监控系统容量,接近阈值时自动扩容或限流。推荐使用 Prometheus + Grafana 或 Datadog 建立专用看板。
Agent 性能优化有哪些常见误区?
三个高频误区:① 过度优化提示词——花大量时间压缩提示词,却忽略了工具调用和并行化这些更大收益的优化点;② 忽视工具调用延迟——只关注 LLM 推理延迟,却不知道工具调用(特别是外部 API)可能占端到端延迟的 80%;③ 缓存策略过于简单——对所有工具调用结果都缓存相同 TTL,导致数据不一致或缓存命中率低。正确做法:根据数据更新频率设置差异化 TTL(实时数据 1 分钟,准实时 5 分钟,静态数据 30 分钟)。