2026/2/20 21:35:28
网站建设
项目流程
苏宁网站开发人员,wordpress本地手机无法访问,wordpress 收费会员,岳阳做网站的公司今年的 AI 领域#xff0c;Agent 已经成为了绝对的主角#xff0c;大家言必谈智能体#xff0c;行必做工作流。我最近花了亿点时间#xff0c;把自己学习、使用过的 Agent 开发框架整理为这篇笔记#xff0c;大体上分为「代码开发框架」和「低代码工作流平台」两大类。并详…今年的 AI 领域Agent 已经成为了绝对的主角大家言必谈智能体行必做工作流。我最近花了亿点时间把自己学习、使用过的 Agent 开发框架整理为这篇笔记大体上分为「代码开发框架」和「低代码工作流平台」两大类。并详细记述了我的一个实战案例综合使用 RAG、text2SQL 实现了对影视飓风创作内容、数据的问答希望能给大家提供参考带来帮助。吴恩达老师最近有个观点说开发 AI 应用就像搭积木一样生成式 AI 应用工程师手中掌握的技术栈越丰富就好比拥有了不同形状各异、功能独特的积木块。只有手里的积木足够多才能组合、搭建出更精巧的设计。AI Agent 开发可以说是生成式 AI 应用开发的终极目标其技术工具箱几乎涵盖了所有方面比如模型训练、微调、部署、调用比如综合运用 Prompt/Context 工程、RAG 技术实现规划、知识库、记忆机制以及 Function call、MCP、Computer use 等工具使用。作为开发者我们当然想要掌控所有这些「积木块」但说实话想要既懂理论know-why又懂实践know-how太难了一方面每个领域都有艰深的技术细节另一方面学习的速度赶不上技术迭代。在实际工作中一个好用的开发者框架就像一套「乐高套装」将复杂的底层逻辑封装成简洁易用的模块通过标准化的流程和接口简化开发工作降低学习成本让我们能够专注于业务而非具体的工程细节。接下来记录一下我了解过的 Agent 开发框架和低代码平台然后从零到一实操一个完整的案例。主流 Agent 框架/平台综述现在主流的 Agent 开发工具大体分为两类一类是面向程序员的开源开发框架为专业开发者提供丰富的 AI 工具箱对底层细节有更多控制可以开发复杂 AI 应用另一类则是低代码/无代码平台通过可视化界面、拖拉拽组件的方式赋予业务人员快速搭建工作流能力。这些框架大都是 2023 年 ChatGPT 火起来之后出现的现在仍然有源源不断的新框架、新平台在出现在此列举一些比较主流的选择。开源开发框架这类框架秉持代码优先原则面向追求高度定制化和灵活性的专业开发者通过编写代码来定义和构建 Agent 的核心逻辑。LangChain / LangGraphLangChain 以其「链」的概念将 LLM 应用的各个组件模型、提示词、数据模块化地串联起来降低了早期开发的门槛。LangChain 可以说是 Agent 领域的「瑞士军刀」功能全面生态成熟拥有庞大的社区和丰富的集成。但是LangChain 也存在功能臃肿和过度抽象的问题在生产环境中进行深度定制和调试十分复杂。而且其线性、无状态链式结构在处理需要循环、条件判断和多智能体协作的复杂任务时显得力不从心。因此 LangChain 团队之后推出了 LangGraph转向了更灵活的状态图模型将应用工作流构建为有状态的图来解决链式结构的局限性。LlamaIndexLlamaIndex 和 Langchain 的功能重叠度比较高早期的 LlamaIndex 相对专注于数据在数据摄取、索引、复杂文档解析和检索策略方面表现优秀所以也有人选择把 LlamaIndex 和其他框架组合使用。AutoGen由微软研究院推出主打 Multi-Agent 协作。通过让智能体之间灵活的对话来协同解决问题。AutoGen 在动态交互和强大的代码执行能力上具有优势更适合解决方案路径未知、需要通过探索和涌现来找到答案偏向于研究型或复杂问题场景。CrewAI专注于多 Agent 协作核心理念是将智能体组织成一个有明确角色、目标和工具的「团队」Crew通过结构化的角色扮演模式自动化已知或流程相对可控的业务任务。Pydantic AIPydantic 是一个常用的数据验证库Pydantic AI 则将 Pydantic 强大的数据验证和类型安全能力引入 AI Agnet 开发强制LLM的输入输出遵循可靠的结构化格式并支持将验证错误反馈给 LLM 进行自我修正提升AI 应用的稳定性和可维护性。LazyLLM上面提到的框架都是国外的我也一直在找国内有没有好用的框架偶然发现了这么一款非常好用的应用开发框架。LazyLLM 是商汤开源的 AI 开发框架主打「懒人友好」以数据流为核心目标是让 Agent 搭建更加便捷、灵活一站式实现生产级开发。LazyLLM 整合了已有开发框架的功能和优势同时解决了嵌套过深、过度臃肿的问题让开发者从繁杂的工程细节中解脱出来专注于算法和数据本身。低代码工作流平台低代码工作流编排平台以效率优先通过可视化的图形界面、拖放式的操作和预构建的模块加速应用搭建主要服务于业务人员或者快速验证产品想法。类似的平台有很多这里主要介绍两组。Dify vs CozeDify 和 Coze 都是 AI 原生的核心架构和设计理念都围绕大模型展开。• Dify 是一个开源的、一体化的 LLMOps 平台。以 LLM 为核心将可视化的提示词编排、RAG 引擎、智能体框架和后续的可观测性工具进行集成。• Coze扣子是闭源的商业化产品对于没有代码能力的运营人员来说扣子可以以中低复杂度搭建并部署出可用的 AI 产品。n8n vs make最近 n8n 很火但实际上n8n 和 make 早在大模型浪潮前就已经广泛使用它们并不是 AI 原生应用而是在工作流自动化平台的基础上加入了 AI 节点和能力侧重于将 AI 嵌入到广泛、复杂的业务流程中。• Make 是企业级无代码平台核心优势在于积累了大量应用连接器能够实现跨 SaaS 应用的复杂自动化。• n8n 是开源平台将可视化的节点式界面与执行自定义代码的能力相结合提供拖拽搭建和代码执行的混合模式。顺便一提我偶然发现上面介绍的 LazyLLM 也有配套的低代码平台继承底层框架的设计思想对 RAG 流程的可视化搭建十分友好。可惜平台还没有开源。于是我尝试联系 LazyLLM 的作者简单试用了一下它相比于 dify最大的改进在于它的知识库可以灵活配置离线解析和在线召回的策略。我将会在文章尾部简单介绍一下。实战案例从零构建一个综合问答 Agent这一部分我将用演示如何构建「影视飓风百晓生 Agent」通过提供影视飓风视频的视频信息及文字稿回答关于视频的内容同时支持复杂数据的查询并生成统计图表。互联网的文本数据已经被使用得差不多了但视频和播客中依然蕴藏着大量的高价值信息现在虽然有一些能够和单个视频 Chat 的工具但缺少对某个 UP 主所有视频内容综合对话的 Agent已有的低代码工具想要实现类似功能也比较繁琐。这其中既涉及到结构化的数据查询text2SQL也涉及到非结构化的内容理解RAG。基于我的需求我选择了 LazyLLM主要原因有三Pipeline 逻辑设计直观清晰LazyLLM 以「数据流」为核心范式开发者能够像绘制流程图一样用代码清晰地描述整个复杂流程查询 - 意图识别 - [RAG分支 / SQL分支] - 生成。每个模块都是一个可插拔的组件调试、替换和扩展都极为方便。与其他框架基于Runnable的链式调用相比LazyLLM 逻辑更直观更符合人的思维习惯。开箱即用且高度统一的组件针对大模型调用、RAGembedding、向量数据库、召回、重排、Agent 工具调用等环节LazyLLM 提供了丰富且接口高度一致的组件。切换模型或数据库往往只需要修改一两个参数而无需重写大量代码便于快速实验、迭代开发。对开发者友好学习成本低相比一些高度抽象的框架LazyLLM 的代码更易于理解和掌控。它的设计哲学是「简单和灵活」不强迫开发者继承复杂的基类任意一个Python函数都可以被无缝地接入其数据流。感兴趣的可以到 LazyLLM 开源项目中了解更多技术细节https://github.com/LazyAGI/LazyLLM本次项目的整体框架如图我把代码和部分数据开源到 Github 上供大家参考https://github.com/loveQt/chatBilibiliUp接下来一起看一下具体的实现过程和核心代码。前置工作数据准备这一步主要是通过爬虫抓取 B 站频道下所有视频的链接、标题、数据以及文本内容。B 站爬虫的具体代码略请参照 bilibili-API-collect 项目选择需要的 API唯一的难点是需要逆向接口中的sign参数可以参照Wbi签名实测可以直接使用。这一步完成后将数据保存为一个 sqlite 数据库至于文本内容有两个思路一是抓取视频字幕并处理二是下载音频后批量转文字。抓取字幕文件的前提是该视频有后台自动生成或用户上传的字幕且实测接口失败率较高。再加上直接使用字幕文件还有个问题就是无法区分发言人在访谈或多人对话场景下容易混淆。所以我选择了第二种方法。实现起来也不复杂安装yt-dlp库使用命令yt-dlp -x --audio-format mp3 https://www.bilibili.com/video/BV1yjg6zFEFa/即可下载到 mp3 格式的音频文件使用subprocess循环下载然后调用 STT 接口或使用其他语音转文字软件得到转换后的文本内容。大体上就是这样因为这篇毕竟是写 Agent 的所以数据这块就不展开写太多细节了。大家可以根据自己的情况准备论文数据库或者业务知识库用于之后的 Agent 搭建。第二步构建知识问答 RAG 系统RAG 系统是实现知识问答的核心一个典型的 RAG 系统通过构建向量数据库 - 召回 - 重排 - 生成构建起流水线如下图所示LazyLLM 通过 Document 类来统一管理所有数据源我将处理完成的转录文件都保存为 txt 格式所以并不需要额外的 Reader() 处理其他格式文件。这次我选择使用 milvus 作为向量数据库只需要少量代码就能完成构建documents lazyllm.Document( dataset_path./rag_data/video_content/stt, # 视频转录文本目录 embedOnlineEmbeddingModule( sourceqwen, embed_model_nametext-embedding-v3, # 自定义embedding模型 api_keyos.environ.get(LAZYLLM_QWEN_API_KEY), ), managerFalse, store_confmilvus_store_conf, # 使用Milvus向量数据库)有了向量数据库后就可以开始配置召回、重排、生成的 pipelinewith lazyllm.pipeline() as rag_ppl:# 检索 rag_ppl.retriever lazyllm.Retriever( documents, group_nameCoarseChunk, topk10 )# 重排序 rag_ppl.reranker lazyllm.Reranker( nameModuleReranker, modelOnlineEmbeddingModule(typererank, sourceqwen, api_keyos.environ.get(LAZYLLM_QWEN_API_KEY), ), topk5, output_formatcontent, joinTrue ) | bind(queryrag_ppl.input)# 格式化 rag_ppl.formatter (lambda nodes, query: dict(context_strnodes, queryquery) ) | bind(queryrag_ppl.input)# LLM rag_ppl.llm lazyllm.OnlineChatModule().prompt( lazzyllm.ChatPrompter(instructionprompt, extra_keys[context_str]) )return rag_ppl这里的 pipeline 代码就像一张流程图数据从rag_ppl.input用户问题开始流经retriever召回、ranker重排最终汇入formatter拼接为 Prompt交由大模型生成最终答案。这种声明式的、以数据流为核心的写法让复杂的逻辑一目了然。看一下生成的效果而且在这个工作流中每一个组件Retriever、Ranker、LLM都是独立的模块。如果需要优化某个模块只需修改少量代码而无需改动整个流程的结构。第三步构建数据查询分析工作流数据查询分析工作流比上面的 RAG 工作流要复杂一些原因有二大模型可以完成从自然语言到 SQL 语句的文本转换也可以完成从数据到图表代码的编写但想要实现与数据库的查询交互以及图表的绘制保存需要实现run_sql_query和run_code两个工具。不同于 RAG 问答的固定流程数据分析工作流需要具备自主规划、迭代执行能力。不过 LazyLLM 中内置了React、PlanAndSolve、ReWOO等常用的 Agent 范式我们只需要根据需求选择合适的 Agent 即可。在 LazyLLM 中只需要极少代码就可以实现 text2SQL 功能from lazyllm.tools import SqlManager, SqlCalltable_info {tables: [{name: vlist,comment: 视频列表数据,columns: [ {name: id,data_type: Int,comment: 该条记录自增id,is_primary_key: True, }, {name: title,data_type: String,comment: 视频标题,is_primary_key: False, }, {name: play,data_type: Integer,comment: 播放量,is_primary_key: False, }, {name: sect,data_type: Text,comment: 视频归属分区,is_primary_key: False, }, ], }]}sql_manager SqlManager(sqlite, None, None, None, None, db_namemediastorm1.db, tables_info_dicttable_info)sql_llm lazyllm.OnlineChatModule()sql_call SqlCall(sql_llm, sql_manager, use_llm_for_sql_resultFalse)result sql_call(统计不同分区的视频数量)print(result)得到结果如下这里的核心组件是SqlManager和SqlCall前者用于统一管理各类数据库连接在实例sql_manager时需要传入表结构后者用于实现自然语言到 SQL 语句的转换执行 SQL 查询并返回结果。run_code工具主要是通过threading实现代码执行这里的关键在于通过fc_register(tool)装饰器将 Python 函数注册为 Agent 可用的工具并提供该工具实现的功能和参数描述fc_register(tool)defrun_code(code: str): Run the given code in a separate thread and return the result. Args: code (str): code to run. Returns: dict: { text: str, error: str or None, } # 略详见开源代码准备好所需工具之后构建 ReACT 工具即可BI_PROMPT 你是一位资深数据科学家需要基于给定的问题进行必要的统计分析和绘图来回答用户提出的统计问题。你的工作流程如下1. 理解问题并进行数据查询 - 你需要先拆解用户问题中需要查询数据库的步骤调用对应工具得到数据。2. 判断根据数据是否可直接得出统计问题的答案 - 如果数据可以直接回答统计问题则直接输出结果必要时补充绘制图表。 - 如果不足以回答则先进行必要的数据分析再根据需要绘制图表。3. 实现数据分析和绘图的方式是编写完整可执行的 Python 代码并调用相关工具执行并获取结果 - 包含所有必要的 import、数据加载、分析逻辑、绘图代码、结果输出。 - 使用常见数据科学工具包如 pandas、numpy、scikit-learn 等进行数据分析。 - 使用可视化工具如 matplotlib、seaborn进行图表绘制。 - 对所有需要查看的结果如统计分析结果、图片路径等需显式使用 print 函数输出。4. 图像保存 - 所有生成的图像必须保存到以下路径 {image_path} - 保存成功后使用以下格式将图片展示在最终回答中Answer部分image_name为保存的文件名image_path为完整路径 5. 错误处理 - 如果代码执行失败请根据报错信息自动修改代码并重新执行直到成功。问题{query}defbuild_statistical_agent():with pipeline() as sql_ppl: LOG.info(初始化统计分析pipeline) sql_ppl.formarter lambda query: BI_PROMPT.format(queryquery, image_path./images) sql_ppl.agent ReactAgent( llmlazzyllm.OnlineChatModule(), tools[run_code, run_sql_query], return_traceTrue, max_retries3) sql_ppl.clean lazyllm.ifs(lambda x: Answer:in x, lambda x: x.split(Answer:)[-1], lambda x: x)测试一下在左下角的日志中也可以看到工具执行过程中的参数成功完成了查库、绘图和展示。第四步构建主 Agent使用意图识别组合多个工作流上面已经分别实现了知识问答和数据分析两个工作流但是对于前端用户来说最终的交互入口应该是统一的。解决办法也很简单就是增加一个主 Agent让智能体自主进行意图识别然后根据用户需求导向不同的工作流即可。LazyLLM 中也封装了意图分类器只需要调用主工作流的classifier方法然后将子工作流switch-case到不同的分支上即可from statistical_agent import build_statistical_agentfrom rag_agent import build_rag_agentstatistical_ppl build_statistical_agent()sql_ppl build_statistical_agent()llm OnlineChatModule()intent_list [统计分析, # 对应数据库查询和统计图表生成咨询内容, # 对应RAG知识库问答]with pipeline() as main_ppl:# 意图分类器 main_ppl.classifier IntentClassifier(llm, intent_listintent_list)with lazyllm.switch(judge_on_full_inputFalse).bind(_0, main_ppl.input) as main_ppl.sw: main_ppl.sw.case[intent_list[0], statistical_ppl] # 统计分析 main_ppl.sw.case[intent_list[1], rag_ppl] # 咨询内容最终呈现的效果如下这样我们就初步实现了一个「影视飓风百晓生」它可以在同一个对话中查询数据库并生成图表并跨多个视频检索文案给出更可靠的知识问答。我统计了一下在 LazyLLM 的帮助下除去设计 Prompt、提供表结构这些需要定义的变量只考虑最核心的业务代码我用大约 30 行代码就实现了RAG10 行代码实现了text2SQL工具10 行代码实现了React Agent的统计分析再也 10 行代码实现了意图分类。可以说真正的核心代码也就 100 多行。可以看出只要在 AI 的帮助下花时间学习 LazyLLM 并实践一下代码其开发效率是极高的而且能控制很多实现细节。LazyLLM 平台体验LazyLLM 的应用编排平台相比于 Dify 最大的优势就是可以灵活配置自己的知识库我很喜欢这种让准确率把控在自己手中的感觉。如图所示我可以自己搭建一个两路召回的知识库来提升召回的准确率。相比于 Dify 等框架一成不变的固定知识库策略至少我能尽我所能的提高我自己知识库的准确率。接下来我们看一下知识库有哪些配置可以玩。如下图所示在离线解析阶段我可以定义使用哪些节点组节点组的概念也是我从 LazyLLM 的课程中学到的表征所有文档在某个特定的切分方式下获得的节点的合集比如我通过段落、句子检索、关键词、摘要检索。LazyLLM 的编排平台内置了一些节点组我可以通过打钩去激活他激活后可以选择是否做向量化选了向量模型就可以做向量化了。除了预置的节点组我还可以自定义节点组。如下图所示我可以定义节点的切分或者转换方式包括文本信息提取和文本切分分别如下图左右所示我都可以为每个节点组配置向量模型如果不配置就表示不使用向量。回到在线检索阶段我们也可以配置被检索的节点组这里我选择了摘要我通过摘要进行检索。进一步的我认为把摘要给到大模型可能生成效果不是很好于是我利用了 LazyLLM 课程第6讲中提到的「小块检索大块生成」思想把目标节点组设置为「粗粒度」这样就相当于我用摘要进行检索然后把找到的摘要通过倒排索引找到对应的「粗粒度」的原文再把原文做重排给到大模型。我们不难发现LazyLLM 的每个模块都有一个绿色的对号这个是参数检查如果连线错了或者参数类型不对就能给我报错出来。如下图左边重排器输出内容并且连成一个字符串给到大模型而右边输出节点这个时候系统会报错告诉我们大模型的输入参数不正确。有了这个机制想出错都难。小结这次实战开发体验下来最大的感受是 LazyLLM 做到了对开发者心智的解放让我能更专注于「实现什么功能」而非「如何实现」。特别是数据流的设计能够有效管理数据在工作流各模块之间的传递便于调试管理。这与其他一些框架层层封装、让人感觉像在操作黑盒的体验形成了鲜明对比。好的开发框架就是需要在功能性和便利性上进行权衡取舍在降低开发者的学习和开发难度的同时又能让开发者在需要掌控细节时深入底层。想入门 AI 大模型却找不到清晰方向备考大厂 AI 岗还在四处搜集零散资料别再浪费时间啦2025 年AI 大模型全套学习资料已整理完毕从学习路线到面试真题从工具教程到行业报告一站式覆盖你的所有需求现在全部免费分享扫码免费领取全部内容一、学习必备100本大模型电子书26 份行业报告 600 套技术PPT帮你看透 AI 趋势想了解大模型的行业动态、商业落地案例大模型电子书这份资料帮你站在 “行业高度” 学 AI1. 100本大模型方向电子书2. 26 份行业研究报告覆盖多领域实践与趋势报告包含阿里、DeepSeek 等权威机构发布的核心内容涵盖职业趋势《AI 职业趋势报告》《中国 AI 人才粮仓模型解析》商业落地《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》领域细分《AGI 在金融领域的应用报告》《AI GC 实践案例集》行业监测《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。3. 600套技术大会 PPT听行业大咖讲实战PPT 整理自 2024-2025 年热门技术大会包含百度、腾讯、字节等企业的一线实践安全方向《端侧大模型的安全建设》《大模型驱动安全升级腾讯代码安全实践》产品与创新《大模型产品如何创新与创收》《AI 时代的新范式构建 AI 产品》多模态与 Agent《Step-Video 开源模型视频生成进展》《Agentic RAG 的现在与未来》工程落地《从原型到生产AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。二、求职必看大厂 AI 岗面试 “弹药库”300 真题 107 道面经直接抱走想冲字节、腾讯、阿里、蔚来等大厂 AI 岗这份面试资料帮你提前 “押题”拒绝临场慌1. 107 道大厂面经覆盖 Prompt、RAG、大模型应用工程师等热门岗位面经整理自 2021-2025 年真实面试场景包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题每道题都附带思路解析2. 102 道 AI 大模型真题直击大模型核心考点针对大模型专属考题从概念到实践全面覆盖帮你理清底层逻辑3. 97 道 LLMs 真题聚焦大型语言模型高频问题专门拆解 LLMs 的核心痛点与解决方案比如让很多人头疼的 “复读机问题”三、路线必明 AI 大模型学习路线图1 张图理清核心内容刚接触 AI 大模型不知道该从哪学起这份「AI大模型 学习路线图」直接帮你划重点不用再盲目摸索路线图涵盖 5 大核心板块从基础到进阶层层递进一步步带你从入门到进阶从理论到实战。L1阶段:启航篇丨极速破界AI新时代L1阶段了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理、关键技术以及大模型应用场景。L2阶段攻坚篇丨RAG开发实战工坊L2阶段AI大模型RAG应用开发工程主要学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3阶段跃迁篇丨Agent智能体架构设计L3阶段大模型Agent应用架构进阶实现主要学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造Agent智能体。L4阶段精进篇丨模型微调与私有化部署L4阶段大模型的微调和私有化部署更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。L5阶段专题集丨特训篇 【录播课】四、资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容2025 年想抓住 AI 大模型的风口别犹豫这份免费资料就是你的 “起跑线”