从 Demo 到生产:我是如何解决 AI Multi-Agent 系统的稳定性与成本危机的

大家好,我是你们的老朋友,一名在 AI 应用工程领域摸爬滚打多年的开发者。

最近很多同学在构建自己的 AI Agent 应用时,都遇到了一个共同的瓶颈:在本地跑 Demo 时一切完美,一旦上线面对真实用户,系统就变得又慢、又贵、还经常“胡言乱语”。

今天,我想结合我之前开发的 AI Running Coach(AI 跑步教练) 项目,和大家深入聊聊我在工程中遇到的最棘手挑战——多 Agent 系统的稳定性与成本控制,以及我是如何通过架构重构一步步解决这些问题的。

这不是一篇关于“如何调用 API”的教程,而是一次关于工程化思维的深度复盘。


一、 背景:当 Multi-Agent 遇上现实

在 AI Running Coach 项目中,为了模拟一个专业的真人教练团队,我最初设计了一个包含四个角色的 Multi-Agent 架构:

  1. Data Agent:负责处理用户的跑步数据(配速、心率、里程)。
  2. Health Agent:负责评估用户的身体状态和受伤风险。
  3. Knowledge Agent:基于 RAG(检索增强生成)回答跑步理论知识。
  4. Coach Agent:综合以上信息,生成最终的训练计划和建议。

初衷很美好:各司其职,专业分工。但在上线初期,现实给了我一记重拳。

🚨 遇到的三大核心问题

  • 延迟极高:用户问一个问题,后台可能要串行调用 3-4 次 LLM,等待时间长达 10-20 秒。
  • 成本失控:哪怕用户只是问“今天天气适合跑步吗?”,系统也可能触发全套 Agent 链路,导致 Token 消耗巨大。
  • 结果不稳定:不同 Agent 之间上下文传递混乱,经常出现 Health Agent 说“你膝盖没事”,Coach Agent 却说“建议休息养伤”这种“互相打架”的情况。

二、 核心卡点:为什么会这样?

在排查问题时,我发现根本原因不在于模型不够聪明,而在于架构缺乏控制。主要卡在以下三点:

  1. 缺乏全局调度(Chaos):每个 Agent 都是“独立思考”的孤岛,没有统一的“大脑”来规划任务路径。
  2. 算力浪费(Overkill):所有任务无论难易,全部扔给最昂贵的大模型(如 GPT-4),没有分级策略。
  3. 上下文污染(Noise):Agent 之间传递信息时,把大量无关的历史对话也带过去了,导致 Prompt 越来越长,不仅贵,还让模型注意力分散。

三、 解决方案:三层重构架构

为了解决上述问题,我对系统进行了彻底的工程化重构。核心思路可以概括为:引入控制层、分级路由、状态机管理

1. 引入 Supervisor + 路由层:从“多头并行”到“智能调度”

我不再让所有 Agent 同时监听用户输入,而是引入了一个 Supervisor(监督者) 节点。

简单查询/计算

复杂分析/计划

用户请求

Supervisor
路由决策

轻量级路由

复杂任务路由

Data Agent

Knowledge Agent

Health Agent

Coach Agent

最终响应合成

Supervisor 的职责非常明确:

  • 意图识别:判断用户是想查数据、问知识,还是需要制定计划。
  • 按需调用:只唤醒必要的 Agent,避免全量并行。
  • 冲突仲裁:如果多个 Agent 返回结果,由 Supervisor 进行最终整合。

👉 效果:将原本无序的网状调用,变成了有序的星型调度,复杂度大幅降低。

2. 分级模型路由:把钱花在刀刃上

这是降低成本最关键的一步。我实现了 Model Routing(模型路由) 机制,根据任务难度动态选择模型。

  • L1 简单任务(如:配速计算、单位换算、简单事实查询):
    • 👉 使用低成本、高速的小模型(如 Llama-3-8b 或 GPT-3.5-turbo)。
  • L2 复杂任务(如:周期性训练计划生成、伤病风险评估、情感安抚):
    • 👉 使用高智商的大模型(如 GPT-4o 或 Claude-3.5-Sonnet)。

代码逻辑示意(Python):

def route_model(task_complexity: str, prompt: str) -> str:
    """
    根据任务复杂度选择模型
    """
    if task_complexity == "simple":
        # 简单任务走小模型,速度快,成本低
        return call_llm(model="gpt-3.5-turbo", prompt=prompt)
    elif task_complexity == "complex":
        # 复杂推理走大模型,保证质量
        return call_llm(model="gpt-4o", prompt=prompt)
    else:
        raise ValueError("Unknown task complexity")

# 在 Supervisor 中调用
def supervisor_logic(user_input):
    intent = classify_intent(user_input) # 意图分类
    
    if intent in ["calc_pace", "weather_check"]:
        response = route_model("simple", user_input)
    else:
        response = route_model("complex", user_input)
        
    return response

👉 效果:直接减少了约 60% 的高成本模型调用次数。

3. LangGraph 重构执行流:用状态机治愈“健忘症”

之前的链式调用(Chain)是线性的,一旦中间出错很难回溯,且上下文容易累积冗余。我引入了 LangGraph,将工作流改造为基于状态机(State-based Workflow) 的结构。

为什么要用 LangGraph?

  • 显式状态管理:所有的中间结果都存储在一个共享的 State 对象中,而不是通过函数参数隐式传递。
  • 循环与条件分支:支持“如果健康评分低于 60,则重新生成计划”这样的循环逻辑。
  • 人类介入(Human-in-the-loop):可以在关键节点暂停,让人工审核后再继续。

架构流转图:

用户输入

简单意图

复杂意图

获取基础数据

小模型生成

健康Agent分析

风险评估

高风险?

低风险?

生成休息建议

教练Agent生成计划

Start

IntentCheck

SimpleTask

ComplexTask

FetchData

GenerateAnswer

End

AnalyzeHealth

CheckRisk

HighRisk

LowRisk

RestAdvice

GeneratePlan

通过这种方式,我们解决了 Agent 之间“互相污染上下文”的问题。每个节点只关注自己需要的 State 字段,Prompt 变得极其精简。

4. 缓存与记忆压缩:给系统做“减法”

最后,为了进一步降低延迟,我做了两项优化:

  1. Semantic Cache(语义缓存):对于“什么是间歇跑?”这类高频重复问题,直接复用之前的答案,无需调用 LLM。
  2. Memory Summarization(记忆压缩):当对话历史超过一定长度时,使用一个小模型将过去的对话总结成一段简短的摘要,只保留关键状态(如:用户当前水平、近期伤痛史),丢弃闲聊内容。

四、 最终效果:数据说话

经过这一系列的重构,系统发生了质的变化:

指标 优化前 优化后 变化幅度
平均响应时间 ~12s ~7.8s ⬇️ 下降 35%
LLM 调用成本 $0.15 / 会话 $0.09 / 会话 ⬇️ 下降 40%
输出一致性 低(经常矛盾) 高(逻辑自洽) ⬆️ 显著提升
系统稳定性 Demo 级,易崩溃 生产级,可监控 具备可观测性

五、 总结与建议

回顾这个项目,我最大的收获是:Multi-Agent 的核心不是“多”,而是“可控”。

很多开发者沉迷于堆砌更多的 Agent,认为这样更智能。但从工程角度来看,真正的难点在于调度、成本控制和系统稳定性。

如果你也在开发 AI Agent 应用,我有以下三条建议:

  1. 不要过早优化,但要尽早控制:在只有两个 Agent 时,就引入简单的路由机制,不要等到十个 Agent 互相调用时才去收拾烂摊子。
  2. 大小模型搭配是常态:不要迷信大模型。80% 的任务可以用小模型或传统代码解决,把大模型留给那 20% 需要真正推理的场景。
  3. 使用状态机管理流程:放弃简单的 Chain,尝试使用 LangGraph 或类似的状态机框架。它能让你的工作流变得可调试、可回溯、可维护。

希望这篇分享能为你接下来的 AI 工程实践提供一些灵感。如果你在 Agent 架构设计上有任何疑问,欢迎在评论区交流!


参考资料

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐