版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LangChainAgent与Coze工作流集成课程回顾上节课我们构建了prompt|model|parser的静态执行链,以及基于RunnableWithMessageHistory的多轮对话记忆【课程目标】1、掌握Tools(工具)模块的定义,让大模型能“采取行动”。2、理解Agent(智能体)的核心逻辑(思考-行动-观察)。3、学会在Agent中集成Coze工作流,实现“AI指挥AI”的嵌套调用。【课程重难点】重点:Tool装饰器的使用、AgentExecutor的构建。难点:理解Agent的“思考循环”、CozeSDK的鉴权与调用。课程目标与重难点从Chain到Agent:为什么需要智能体"静态链(Chain)适用于确定性流程,但面对需要实时信息查询、多步骤决策的开放任务时,必须引入Agent架构。Agent通过'推理-行动'循环赋予模型动态规划能力,实现从'文本生成器'到'任务执行者'的质变。"场景对比静态场景(Chain可解决):输入固定,逻辑确定,无需外部信息,直接走prompt|model|parser
流水线即可交付结果动态场景(必须Agent):涉及外部API调用、条件判断、多步骤推理,需要动态决策流程本质差异Chain(链):数据单向流动的固定流水线,组件按预设顺序执行,适用于标准化、确定性的任务处理Agent(智能体):基于环境反馈的循环决策系统,模型主动选择工具并观察结果,适用于开放性、需要实时信息的复杂任务从Chain到Agent:为什么需要智能体维度ChainAgent执行流程固定线性动态决策组件交互数据单向流动模型主动选择工具适用场景确定性任务需要推理、工具调用的开放任务与Chain的本质区别:什么是LangChainAgent?
定义:具备"思考-行动-观察"循环能力的自主执行单元Agent本质是"推理引擎+工具调度器",通过ReAct(ReasoningandActing)框架实现动态决策:LLM不仅生成内容,更生成对当前局势的分析(Thought)和行动计划(Action),形成"思考-行动-观察"的闭环,突破固定流程的限制。ReAct循环机制1Thought(思考)LLM分析用户意图和当前上下文,评估是直接回答还是调用工具,若需工具则确定调用哪个Tool及参数2Action(行动)执行具体的工具调用,向外部系统发起请求(如查询天气API),获取实时数据系统组成架构3Observation(观察)接收工具返回的执行结果,将外部数据整合到上下文中,作为下一轮思考的依据4FinalAnswer(回答)基于观察结果生成最终回复,确保回答建立在实时、准确的数据基础之上ThoughtActionObservationFinalAnswerTools模块:赋予AI行动能力Tool是LangChain中对"可执行功能"的标准化抽象,通过统一的接口规范使LLM能够理解工具的能力边界并在适当时机触发调用。Tool定义连接大模型与外部世界的标准化接口,封装具体业务逻辑(如API调用、数据库查询、文件操作),使LLM能够突破训练数据的时空限制。核心特性通过@tool装饰器自动生成功能描述,LLM根据描述理解工具用途;严格的参数类型提示(TypeHints)确保LLM能正确提取调用参数。架构定位Tool位于Chain执行层,作为可被Agent动态调用的组件,与Prompt、Model、Memory共同构成完整的Agent系统。典型场景实时信息查询(天气、股价)、精确计算(数学公式、数据统计)、外部系统操作(发送邮件、创建日程、查询业务数据库)。Tool定义与封装01@tool装饰器规范函数名需采用动词短语(如get_weather、query_order),必须声明参数类型注解,LangChain会自动生成JSONSchema供模型理解参数结构。在LangChain框架中,JSONSchema并非手动编写,而是由@tool装饰器根据函数签名和类型注解自动生成的。其核心作用是为大语言模型提供结构化参数定义,使模型能准确理解工具调用的输入格式与语义,从而提升调用准确率。02Docstring三段式写法第一部分说明工具功能;第二部分明确触发条件;第三部分详细描述Args和Returns的类型与含义。其中触发条件描述直接决定了工具调用的准确率。03模型决策逻辑模型通过匹配用户意图与Docstring中的触发条件描述决定是否调用该工具。描述越精准,误触发率越低;描述模糊则会导致"该调用时不调用"或"不该调用时乱调用"。Tool定义与封装示例@tool装饰器规范:@tool:使用了LangChain的装饰器。query_order_status:函数名采用了动词+名词的结构(Query+OrderStatus),语义清晰。order_id:str和user_phone:Optional[str]:严格声明了Python类型注解。Docstring三段式写法:第一段(功能):"查询特定订单的当前物流状态及预计送达时间。"——一句话概括工具是做什么的。第二段(触发条件):"当用户询问“我的快递到哪了”...时触发此工具。"——列举了具体的用户提问方式(Intent)。第三段(Args&Returns):Args:详细解释了order_id是必填项,user_phone是选填项及其格式。Returns:定义了返回字典的具体字段含义。实战演示--专业电商客服助手(调用工具)环境:python=3.12.0;langchain=0.3.7;langchain-core=0.3.21;langchain-openai=0.2.8;安装指令:pipinstalllangchain==0.3.7langchain-core==0.3.21langchain-openai==0.2.8-i/simple为客服助手设计工具集(1)Agent组装:创建ReAct智能体(2)
ChatPromptTemplate(带工具描述)agent_scratchpad:ReAct的核心机制,存储模型每一步的Thought/Action/ObservationAgent组装:创建ReAct智能体(3)
ChatModel模块Agent组装:创建ReAct智能体(3)
AgentChain模块参数名参数值/类型详细解释Agentcreate_tool_calling_agent函数LangChain提供的工厂函数,用于创建支持“工具调用”模式的智能体,利用LLM原生JSON输出能力,比ReAct模式更稳定。AgentllmLanguageModel(实例)大语言模型实例(如ChatOpenAI),作为Agent的“大脑”,负责理解意图并决定调用哪个工具。AgenttoolsList[BaseTool]可用工具列表(如[query_order_status,...]),Agent根据工具的定义(名称、描述、参数)决定调用时机。AgentpromptChatPromptTemplate提示词模板,定义Agent角色及上下文处理方式。ToolCalling模式下通常无需手动包含{agent_scratchpad}。ExecutoragentAgent对象上一步创建的Agent实例,负责核心的逻辑推理和决策。ExecutortoolsList[BaseTool]再次传入工具列表,供Executor在执行层查找并运行具体的Python函数代码。ExecutorverboseTrue(Boolean)调试开关。开启后在控制台打印Agent的思考过程、工具调用及返回结果,便于排查问题。Executormax_iterations5(Integer)最大循环次数。防止Agent陷入死循环,超过指定次数未完成任务将强制停止,保护资源。Executorhandle_parsing_errorsTrue(Boolean)容错机制。当LLM输出格式错误导致调用失败时,自动捕获错误并反馈给LLM重试,避免程序崩溃。AgentExecutor构建与执行流程AgentExecutor是Agent的运行时容器,负责管理ReAct循环的执行,通过verbose参数可视化呈现整个决策过程。构建流程初始化LLM(大脑)→定义Tools列表(工具箱)→使用create_react_agent创建Agent→用AgentExecutor包装执行器动态决策与固定流程的Chain不同,Agent根据用户输入动态选择执行路径,可处理"先查天气再推荐穿搭"的多步骤复杂需求调试技巧开启verbose=True观察中间步骤(Thought/Action/Observation),可清晰看到AI的"心路历程",便于理解Agent决策逻辑和排查错误执行控制max_iterations参数限制最大循环次数,防止Agent陷入无限循环;handle_parsing_errors处理LLM输出格式异常ReAct循环执行流程Agent组装:创建ReAct智能体(3)
Memory模块(4)
测试对话Agent组装:创建ReAct智能体(5)
结果展示课堂练习(10分钟)运行上述代码,观察verbose=True时的Thought/Action/Observation循环尝试提问:"帮我查一下订单12345,另外算一下2kg的东西寄到北京多少钱?"思考问题:模型是同时调用两个工具,还是分两次调用?为什么?进阶:LangChain+Coze融合架构Coze的低代码可视化编排与LangChain的代码级灵活控制形成互补。通过将Coze工作流封装为LangChainTool,实现了"配置层"与"控制层"的解耦——业务人员可在Coze调整文案风格,而开发人员通过LangChain控制调用逻辑与上下文管理。能力对比与分工•Coze优势:可视化工作流编排(拖拽式节点)、丰富的官方插件生态(网页搜索、图像生成、知识库RAG)、零代码快速上线,适合标准化、高频变更的业务流程•LangChain优势:代码级精细控制、复杂条件判断与异常处理、私有化部署能力、与现有软件系统的深度集成,适合作为企业级应用的"控制中枢"融合价值•分层架构:LangChainAgent作为"指挥官",负责对话管理、上下文保持、复杂决策;Coze作为"执行单元",负责特定的生成任务(如朋友圈文案、图片生成),通过API调用实现远程协作•运维效率:业务人员可在Coze端独立调整Prompt模板或更换插件,无需改动LangChain代码,实现"热更新",大幅降低迭代成本专业客服电商助手(添加Coze工作流)1.在coze中添加工作流:点击资源库,点击右上角资源,再点击工作流,输入工作流名称和描述点击确定Coze工作流设置整体工作流及节点信息,试运行之后需要发布Coze工作流API配置Coze工作流参数配置(1)点击授权(2)点击添加Coze工作流参数配置(3)页面配置,点击确定(3)复制令牌,注意:再关闭页面之前必须复制。代码修改在原来代码基础上新增加一个tools,将CozeAPIKey和WORKFLOW_ID替换为自己的,确保文件开头导入了requests库:
importrequestsCOZE_API_KEYWORKFLOW_ID代码修改工具列表需要添加coze_smart_assistant运行测试与回复结果课堂练习(10分钟)在coze中添加工作流根据PPT内容完善相关代码测试Coze流是否成功调用课程总结本节课实现了AI应用开发范式的三重跃迁:从静态Chain到动态Agent的执行模式转变,从文本生成到工具调用的能力边界扩展,从纯代码开发到低代码配置的工程效率提升。01范式演进:从Chain到AgentChain是数据单向流动的固定流水线,适用于确定性任务;Agent是基于环境反馈的循环决策系统,通过"推理-行动"循环实现动态规划ReAct框架让LLM不仅生成内容,更生成对当前局势的分析(Thought)和行动计划(Action),形成完整的认知闭环02核心机制:Tools与ReAct循环Tools是连接大模型与外部世界的标准化接口,通过@tool装饰器自动生成功能描述和JSONSchema,使LLM能够理解工具的能力
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 趣味爱情测试题及答案
- 记者团笔试真题及参考答案
- 药学概率考试真题及详细答案解析
- 汽车销售实习报告总结
- 荆棘主题考试题和答案
- 美发培训试题及答案
- 数学职高试题及答案
- 2026年社工职业资格考试宪法要点试题
- 气瓶安全问答题目及详细答案
- 2026年计算机组成原理与接口技术题库
- GB/T 4111-2026混凝土砌块和砖试验方法
- 2026年高三上学期数学秋季开学摸底考(江苏专用)
- GB/T 6904-2026工业循环冷却水及锅炉用水中pH的测定
- 2026-2030中国电子束装备行业市场发展分析及前景趋势与投资战略研究报告
- 石家庄城市经济职业学院教师招聘考试笔试试题及答案
- 2025年中邮资产管理公司招聘笔试备考题库(带答案详解)
- 肩周炎的中医推拿治疗课件
- 《慢性阻塞性肺疾病急性加重(AECOPD)诊治中国专家共识(2023年修订版)》解读
- 家庭教育讲师班培训
- 铁路电务段运用PDCA循环减少合福高铁CNTT道岔缺口视频监测误报警QC成果汇报书
- 超滤反渗透操作维护手册
评论
0/150
提交评论