这道题其实面试官想问的不是你会背几个框架名,而是你在实际落地时,面对不同场景怎么选型。我先给个核心判断:没有万能框架,真正上线往往是几个框架混着用。
先说 LlamaIndex。它的设计哲学是"数据索引优先",[[Agent]]能力是索引的自然延伸。你可以这么理解,它先把你的文档、数据库、API都变成索引,然后你通过query_engine或者chat_engine去跟它交互,Agent只是帮你串联检索和推理。所以它特别适合知识密集型任务,比如企业文档问答。举个例子,一个客服系统要处理退款政策,用户问"我买的东西降价了能不能退差价",LlamaIndex可以先把几十页的售后政策文档切碎建索引,然后Agent根据问题去检索相关条款,再结合上下文回答。这里有个坑:前提是你的数据源必须结构清晰,如果文档质量差、信息混乱,索引建出来也是垃圾,召回率会很低。我上线前会特别关注[[Chunk]]策略和[[Hybrid Search]]的调参,不然容易漏关键信息。
再来说AutoGPT和BabyAGI。它们更偏向探索LLM自主规划的上限,核心是一个循环:目标分解、任务队列、执行、记忆反思。但说实话,它们不太适合生产。为什么?Token消耗爆炸,而且[[Hallucination]]会累积,你让它跑三步可能还行,跑十步就开始胡编。另外控制性很差,你很难约束它不要访问某些API。所以我就把它看成研究原型,社区热度也降了,理念被吸收到别的框架里了。
然后是Microsoft Semantic Kernel。这个是企业级多语言套件,支持C#、Python、Java。它的核心是Plugins、Planners和Memory。Planners可以自动编排任务,比如用[[Function Calling]]调用Azure服务。如果你公司用的是.NET技术栈或者深度绑定Microsoft 365生态,比如要做一个自动回复邮件的Copilot,那Semantic Kernel很合适,因为它跟Azure OpenAI集成好,合规性强。但如果你用的是开源模型或者AWS,那就不太匹配了。
其他框架像CrewAI,它擅长多Agent角色协作,模拟一个团队工作流,比如一个Agent做市场分析,另一个写报告,第三个审核。还有Dify、Flowise这种低代码平台,适合快速验证原型,比如产品经理想看看AI能不能处理订单异常,搭个界面试一下。
说到选型,我其实更关注一个趋势:框架正在从独立工具向协议化演进。比如最近[[MCP]]协议,它试图统一Agent调用外部工具的方式,让不同框架的Agent能共享工具。如果这个协议成熟了,选型的重心可能会从"选哪个框架"变成"选哪个协议实现"。
所以回到面试官的问题,我的总结是:没有银弹。复杂[[RAG]]加轻量Agent,我会首选LlamaIndex;多步骤可控工作流,LangGraph更合适;微软生态就Semantic Kernel;快速验证用Dify。但真正落地时,我常常把LlamaIndex和LangGraph混用,让LlamaIndex管数据,LangGraph管流程编排。