第五章 课程中期综合实践:智能体应用设计与实现 前言 经过前四章的学习,我们已经掌握了LangChain的核心组件和基础工作流设计方法。 本章作为中期综合实践,不引入任何新的框架知识,核心目标是帮助大家完成一次关键的能力跃迁——从“单独使用组件”过渡到“整合组件构建应用级系统”,通过完整的项目实践,实现前四章知识的融会贯通与落地验证。 本章的核心产出是一个“可运行、有实际用途”的LangChain智能体项目。 通过项目实践,你需要验证自己是否具备以下能力: 清晰拆解实际问题并转化为LangChain可实现的任务流程; 合理选择LangChain组件并实现协同工作; 解决组件整合过程中的工程化问题; 规范输出项目成果并完成自我验证。 那我们开始吧 5.1 中期综合实践项目说明 5.1.
经过前四章的学习,我们已经掌握了LangChain的核心组件和基础工作流设计方法。
本章作为中期综合实践,不引入任何新的框架知识,核心目标是帮助大家完成一次关键的能力跃迁——从“单独使用组件”过渡到“整合组件构建应用级系统”,通过完整的项目实践,实现前四章知识的融会贯通与落地验证。
本章的核心产出是一个“可运行、有实际用途”的LangChain智能体项目。
通过项目实践,你需要验证自己是否具备以下能力:
那我们开始吧~
项目必须是“可直接运行”的完整应用,而非零散的代码片段。
这里的“智能体”核心特征是:具备“接收需求→处理需求→输出结果”的完整链路,能利用LangChain组件实现“上下文感知”或“外部交互”,而非简单的单轮文本生成。
项目需贴合实际使用场景,避免“无意义的功能堆砌”。
例如:“帮助学生快速查询课程资料的问答机器人”“自动整理Excel数据并生成分析报告的助手”“简化版的客服问答系统”等。
要求你能清晰说明:项目解决了哪类用户的什么问题、核心使用场景是什么。
本节明确项目的“最低完成标准”,所有要求均基于前四章知识。
请大家以此为基础构建项目,确保核心能力达标;在此之上,可根据自身能力添加优化功能(非必需)。
模型与提示是智能体的“核心输入层”,要求实现“提示标准化”和“灵活适配需求”:
建议使用提示词模板标准化管理
建议至少实现一次参数化提示或少样本提示:参数化提示需支持动态传入用户输入、上下文等变量(如将“用户问题”“历史对话”作为参数传入模板);少样本提示可用于优化模型输出(如在模板中加入“示例输入-示例输出”引导模型)。
提示:根据项目场景选择合适的提示模板类型。例如,多轮对话场景适合用ChatPromptTemplate,固定格式输出场景适合用参数化的PromptTemplate。
链式工作流是实现“多步骤处理”的核心,最好能体现“流程化思维”:
建议使用Runnable / | 运算符组织流程:不建议用“线性脚本堆砌”的方式实现多步骤(如先写一段代码处理提示,再写一段代码调用模型),需通过LangChain的Runnable或|运算符构建结构化的链式流程;
建议至少包含两个以上步骤的链式调用:例如“提示模板生成提示 → 模型调用生成结果”“文档加载 → 文本分割 → 检索 → 提示生成 → 模型调用”等,体现步骤间的流转逻辑。
这是智能体区别于“单轮文本生成”的关键,要求实现“上下文感知”或“外部交互”:
二选一要求:要么使用至少一种Memory(窗口记忆、摘要记忆、全量记忆均可),实现多轮对话的上下文保存与复用;要么使用至少一个Tool(内置Tool或自定义Tool均可),实现与外部系统的交互(如查询文件、调用API、处理数据等);
核心原则:Memory/Tool需真正为功能服务,避免“形式化使用”(如添加了Memory但未在后续步骤中复用上下文,或添加了Tool但从未调用)。
要求智能体的输出“结构化、可复用”,避免纯自由文本输出:
建议使用OutputParser或结构化输出:可选择使用LangChain内置的OutputParser(如JsonOutputParser、CommaSeparatedListOutputParser),或通过提示模板约束模型输出固定格式(如“输出JSON格式,包含result和explanation两个字段”);
核心目标:输出结果需便于后续使用或展示,例如JSON格式可直接被程序解析,列表格式可清晰呈现多条结果。
对于不知道做什么的同学,这里列举了一些方向供大家参考实践:
核心场景:帮助用户快速查询指定文档中的信息(如课程资料、企业制度、技术手册等)。
核心流程参考:用户上传文档→文档加载(Document Loading)→文本分割(Text Splitting)→向量存储(VectorStore)→用户输入查询→检索相关文本→PromptTemplate生成提示(整合查询和检索结果)→模型调用→OutputParser解析输出→反馈答案。
组件适配:可使用PromptTemplate(整合查询与检索结果)、Runnable构建链式流程、RAG相关组件(Loader、Splitter、VectorStore、Retriever)、JsonOutputParser(结构化输出答案和来源)。
核心场景:模拟客服或咨询场景,支持用户多轮追问,智能体可记住历史对话并精准回应。
核心流程参考:用户输入问题→Memory加载历史对话→ChatPromptTemplate生成提示(整合历史对话和当前问题)→模型调用→OutputParser解析输出→反馈结果→更新Memory。
组件适配:可使用ChatPromptTemplate、ConversationBufferWindowMemory(窗口记忆,避免上下文过长)、Runnable构建流程、结构化输出(如分点呈现回答)。
核心场景:帮助用户处理文本(如生成论文摘要、改写文案、对文本进行分类标签等)。
核心流程参考:用户输入文本和处理需求(如“总结”“改写为正式语气”)→PromptTemplate生成参数化提示(传入文本和需求)→模型调用→OutputParser解析输出(如分类结果用JSON格式,摘要用结构化段落)→反馈处理结果。
组件适配:可使用PromptTemplate(参数化传入文本和需求)、少样本提示(加入优秀的总结/改写示例)、Runnable构建流程、OutputParser(结构化输出)。若需处理文件中的文本,可添加“读取文件”Tool。
核心场景:帮助用户自动化处理文件或数据(如批量整理Excel表格数据、生成数据报告、批量重命名文件等)。
核心流程参考:用户输入需求(如“统计Excel中各部门的人数”)→自定义Tool读取Excel文件→Tool处理数据(如统计、筛选)→PromptTemplate生成提示(传入处理后的数据,要求生成报告)→模型调用→OutputParser解析输出(如结构化报告)→反馈结果(可生成新文件保存报告)。
组件适配:可使用自定义Tool(文件读取、数据处理)、PromptTemplate、Runnable构建流程、Memory(保存用户的历史操作需求)。
适合有一定逻辑设计能力的同学
核心场景:模拟企业客服,能识别用户意图(如“查询订单”“投诉问题”“咨询售后”),并根据不同意图提供对应回应。
核心流程参考:用户输入问题→PromptTemplate生成提示(引导模型识别意图)→模型调用→OutputParser解析意图→基于意图选择不同的处理Chain(如“查询订单”Chain、“咨询售后”Chain)→各Chain执行对应逻辑→反馈结果。
组件适配:可使用ChatPromptTemplate、JsonOutputParser(解析意图)、RouterChain(条件分支,根据意图分发任务)、Memory(保存用户的订单号等关键信息)。
核心场景:识别用户的具体需求类型,并调用不同的处理逻辑(如用户输入“写一篇散文”和“计算1+1”对应不同的处理链路)。
核心流程参考:用户输入需求→意图识别Chain(PromptTemplate+模型+OutputParser)→RouterChain根据意图分发到对应处理Chain(如文本生成Chain、计算工具Chain)→处理Chain执行→反馈结果。
组件适配:可使用RouterChain(条件分支)、多个子Chain(对应不同意图)、PromptTemplate(分场景设计提示)、Tool(如计算工具、文本生成工具)。
符合技术边界即可
若以上方向不符合你的兴趣,可自拟选题,只需满足以下条件:① 基于LangChain;② 符合“3-6个核心步骤”的规模;③ 满足5.2节的功能与技术要求。例如:“面试问题生成助手”“论文参考文献整理工具”“外语学习单词记忆助手”等。
本节将提供“需求拆解→流程设计→组件选择→代码实现”的全流程指导,帮助大家规避常见误区,高效完成项目٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ
需求拆解是项目成功的核心,避免“边写代码边想需求”。
正确的拆解步骤:
关键提醒:拆解后的子任务需“逻辑连贯”,每个步骤的输出需能作为下一个步骤的输入(如“检索结果”需能传入“提示生成”步骤)。
规范的成果交付是“工程化能力”的重要体现,也是企业非常看重的点,如果有希望后续把项目写到简历上的同学,建议参考以下规范要求:
README是项目的“说明书”,需清晰、全面,让他人能快速了解并使用你的项目。建议包含以下内容:
项目完成后,建议对照以下清单进行自我检查,确保项目符合要求且质量达标:
本章作为中期综合实践,核心是一次“能力整合练习”——不追求新知识点,而是聚焦前四章LangChain核心知识的融会贯通与落地验证。通过本次项目,你需要完成从“组件使用者”到“应用设计者”的过渡,掌握“需求拆解→流程设计→组件整合→工程落地”的完整思路。
坚持到这里,相信你应该是完成了自己独有的智能体项目,项目完成后,你应具备“独立构建LangChain应用的能力”,能针对简单的实际场景,设计并实现对应的智能体系统,这也是很多企业AI开发工程师需要掌握的技能。
同时,本次项目中遇到的“复杂流程设计”“多步骤状态管理”等痛点,也将为后续学习LangGraph与复杂智能体系统做好认知铺垫——LangGraph的核心价值就是解决LangChain在复杂分支、状态持久化等场景下的不足,让我们带着本次实践的思考,进入后续进阶内容的学习。