
标签:#AI Agent #LangGraph #大模型落地 #ReAct #企业级应用 #后端架构【导语】做了3年大模型落地,我发现一个残酷的事实:90%的Agent项目死在了从Demo到生产的路上。之前做企业内部智能助手项目时,初期工具粒度过细,Agent规划失败率一度飙到35%,业务方天天吐槽"这玩意儿还不如原来的表单系统"。花了3个月重构架构,最终把失败率压到8%,服务数百家企业用户,日均调用量10万+。今天把我踩过的坑、做过的5个核心架构决策全盘托出,全是生产级干货,建议收藏。目录框架选型:为什么弃用AutoGen选LangGraph?工具设计:从20个细粒度工具到5大类聚合工具模型选型:Qwen3-Max vs DeepSeek vs GPT-4o 的Trade-off流式输出:SSE + 自定义标签协议解决"等待焦虑"生产保障:限流、降级、重试,企业级Agent的生存法则决策一:框架选型——为什么弃用AutoGen选LangGraph?背景项目初期为了快速出Demo,我用AutoGen搭了一个原型,2天就跑通了多Agent对话流程。但一到生产环境就暴露问题:没有内置的状态持久化,用户刷新页面对话状态全丢不支持人机协同(Human-in-the-Loop),涉及审批确认的场景必须人工介入才能执行循环控制弱,Agent容易陷入无限调用工具的死循环决策切换到LangGraph,核心原因是它的3个生产级特性:StateGraph 显式状态机:把Agent的规划、工具调用、反思、输出全流程建模为状态图,每个节点的输入输出可追踪、可中断、可恢复Checkpointer 状态持久化:用Redis做checkpointer,用户断线重连后能恢复完整对话上下文人机协同原生支持:通过interrupt()节点实现审批流,工具执行前暂停等待人工确认核心代码示例from langgraph.graph import StateGraph, START, END from langgraph.checkpoint.redis import RedisSaver from typing import TypedDict, List # 定义Agent状态 class AgentState(TypedDict): messages: List[dict] tool_calls: List[dict] need_human_approval: bool iteration_count: int # 构建状态图 builder = StateGraph(AgentState) # 添加节点 builder.add_node("planner", planner_node) # 规划节点 builder.add_node("tool_executor", tool_node) # 工具执行节点 builder.add_node("human_review", human_node) # 人工审批节点 builder.add_node("reflect", reflect_node) # 反思节点 # 定义边:规划→工具执行→反思→人工审批/结束 builder.add_edge(START, "planner") builder.add_conditional_edges( "planner", should_continue, { "continue": "tool_executor", "approve": "human_review", "reflect": "reflect", "end": END } ) # 防止无限循环:设置最大迭代次数 builder.add_conditional_edges( "reflect", lambda state: state["iteration_count"] 10, {True: END, False: "planner"} ) # Redis持久化 with RedisSaver.from_conn_string("redis://localhost:6379") as saver: graph = builder.compile(checkpointer=saver)结果状态丢失问题彻底解决,人机协同审批流上线后,高风险操作的合规率提升到100%。最关键是可调试性大幅提升——每个节点的输入输出都被记录下来,出了问题可以直接回溯定位。决策二:工具设计——从30个细粒度工具到5大类聚合工具踩坑现场初期我按照"单一职责原则"设计了20+细粒度工具:query_entity