后台老有人问:想搭智能体,LangGraph、CrewAI、AutoGen 选哪个?之前我的回答都是"看你需求",说了等于没说。这个月我把三个框架各花了两三天,拿同一个项目重做了一遍,今天给出一个有立场的答案。
挑的是我真实在用的一个:告警分诊智能体。接收告警 → 查历史相似案例 → 判断严重级别 → 低危自动处理,高危通知人 → 生成处理记录。这个项目有状态流转、有分支判断、有人工确认环节,三个框架的特色都能试出来。
把流程建成一张图,节点是步骤,边是流转条件。上手那天我画了一下午流程图才跑通第一个版本,挺劝退。但跑通之后的感受完全不同:每次告警走到哪一步、为什么走了这条分支,日志清清楚楚。中途出了个 bug,我盯着图两分钟就找到了是哪条边写错了。它是三个里面唯一让我"看得见流程"的。
写法最舒服,定义几个"角色"——排查员、定级员、记录员——给他们各写一段职责描述,任务像流水线一样传下去。一天就搭出了能跑的版本,代码量最少。但用深了之后我发现它的自由度是个问题:我想在定级环节插入一个人工确认,查了半天文档发现要绕不少路。角色扮演的模式很优雅,可告警分诊这种流程敏感的任务,优雅不是第一需求。
主打多智能体对话,几个模型互相讨论得出结论。我做实验的时候觉得非常惊艳——排查员和定级员"争论" severity 的过程真挺像人开会。但放到生产场景里我犹豫了:每条告警都要来一场对话,token 消耗是对话轮数的函数,一个月跑下来账单我看了眼晕。而且讨论这种事,不可控,两条一模一样的告警可能得出不同结论,这对告警系统是硬伤。
留下来的是 LangGraph,理由很朴素:这个项目会在生产里跑,我需要确定性、需要可观测、需要出问题时能排查。探索阶段和原型阶段,我可能还会用 CrewAI 图快;多智能体讨论那种玩法,留给我做方案推演的时候玩。
选型这事网上吵得很凶,我的经验就一条:先想清楚你的智能体是"跑给别人用的生产系统",还是"跑给自己玩的实验项目"。前者的关键词是可控,后者的关键词是快。想明白这个,选择自动就出来了。