大模型Agent实战解析:代码示例+学习资源,小白也能轻松掌握大模型技术(收藏)

发布时间:2026/5/16 5:01:35

大模型Agent实战解析:代码示例+学习资源,小白也能轻松掌握大模型技术(收藏) 大模型Agent实战解析代码示例学习资源小白也能轻松掌握大模型技术收藏本文系统介绍大模型AgentLLMs Agent定义其超越文本生成的自主能力解析规划任务分解、自我反省、记忆、工具使用等核心组件结合代码实例如工具选择、函数调用、agent模板解析演示实现逻辑并分享大模型学习资源系统路线、书籍、实战等助力小白或程序员入门并提升技能。一、什么是 大模型LLMsagent大模型LLMsagent 是一种超越简单文本生成的人工智能系统。它使用大型语言模型LLM作为其核心计算引擎使其能够进行对话、执行任务、推理并展现一定程度的自主性。简而言之代理是一个具有复杂推理能力、记忆和执行任务手段的系统。二、大模型LLMsagent 有哪些部分组成在LLM赋能的自主agent系统中(LLM Agent)LLM充当agent大脑的角色并与若干关键组件协作。2.1 介绍一下 规划planning一项复杂任务通常会包含很多步骤Agent需要了解这些步骤是什么并提前规划。2.1.1 拆解子目标和任务分解2.1.1.1 如何进行 拆解子目标和任务分解拆解子目标和任务分解Agent能够将大型任务分解为较小易于管理的子目标从而高效地处 理复杂任务。2.1.1.2 拆解子目标和任务分解 有哪些方法Chain of thought模型被要求“think step by step”利用更多的时间进行计算将艰难的任务分解成更小更简单的步骤。CoT将大型任务转化为多个可管理的任务并对模型的思维过程进 行了阐释;Tree of Thoughts进一步扩展CoT在每一步都探索多种推理的可能性。它首先将问题分解为 多个思考步骤并在每个步骤中生成多个思考从而创造一个树形结构。搜索过程可以是BFS(广度优先搜索或DFS深度优先搜索每个状态由分类器通过一个prompt或少数 服从多数的投票原则来决定。任务分解可通过以下几种方式实现a. 给LLM一个简单的提示词“Steps for XYZ./n1.”“What are the subgoals for achieving XYZ?”;b. 使用针对具体任务的指令例如对一个写小说的任务先给出“Write a story outline.”指令;c. 使用者直接输入;Graph of Thoughts同时支持多链、树形以及任意图形结构的Prompt方案支持各种基于图形 的思考转换,如聚合、回溯、循环等,这在CoT和ToT中是不可表达的。将复杂问题建模为操作图 Graph of OperationsGoO),以LLM作为引擎自动执行从而提供解决复杂问题的能力。某 种程度上GoT囊括了单线条的CoT和多分枝的ToT。注无论是CoT还是ToT本质上是通过Prompt的精心设计激发出模型原有的Metacognition 只是如何通过某条神经元的线索能更加精准的调动出大脑中最擅长Planning的部分LLMP通过借助一个外部的经典Planner来进行一个更加长序列的整体规划。这种方法利用 规划域定义语言Planning Domain Definition Language, PDDL作为中间接口来描述规划问 题。整个使用过程首先LLM将问题翻译成“问题PDDL”接着请求经典Planner根据现有的“领 域PDDL”生成一个PDDL Plan最后将PDDL计划翻译回自然语言LLM做的。根本上讲 Planning Step是外包给外部工具的当然也有一个前提需要有特定领域的PDDL和合适的 Planner。LLMP 利用大型语言模型 (LLM) 生成给定问题的 PDDL 描述然后利用经典规划器寻找最佳计 划然后再次使用 LLM 将原始计划翻译回自然语言。2.1.2 模型自我反省2.1.2.1 如何进行 模型自我反省自查与自纠Agent能够对过去的actions进行自我批评和自我反省从错误中吸取教训并在 今后的工作中加以改进从而提高最终结果的质量本质上是产生RL的数据RL并不需要 HF2.1.2.2 模型自我反省 有哪些方法ReAct即ResonAct通过将Action Space扩展为特定任务的离散动作和语言空间的组合在 LLM内部整合了推理Reasoning和行动Action。推理Reasoning使LLM能够与环境交互例如使用Wikipedia Search的 API行动Action通过提示词使得LLM用自然语言生成整体的推理过程。ReAct提示词模板包含了提供LLM思考的明确步骤其大致格式为Thought: ... Action: ... Observation: ...知识密集型任务如HotpotQA、FEVER和决策型任务如AlfWorld Env、WebShop的推理 轨迹示例在知识密集型任务和决策任务的两个实验中ReAct的表现比去掉Thought…的单一Act…方式更 加优异Reflexion 是一个让Agent具备动态记忆和自我反思能力以提高推理能力的框架。Reflexion采 用标准的RL设置其中奖励模型提供简单的二进制奖励而Action Space则采用ReAct中的设 置即在特定任务的行动空间中加入语言以实现复杂的推理步骤。在每一个Action at之后 Agent会计算一个启发式函数ht并根据自我反思的结果决定是否重置环境以开始一个新的循环Reflexion的架构示意图启发式函数判断何时整个循环轨迹是低效的或者何时因为包含了幻觉需要停止。低效规划指的是耗 时过长却未成功的循环轨迹。幻觉是指在环境中遇到一连串相同的行动而这些行动会导致相同的 观察结果。自我反思过程通过给LLM一个two-shot例子创造每个例子都是一对失败的轨迹、在计划中指导 进一步变化的理想反思。接着reflections将会被添加到Agent的工作记忆中作为查询LLM的上下 文最多三个。AlfWorld Env 和 HotpotQA 实验。在 AlfWorld 中幻觉是比低效规划更常见失败因素。2.2 介绍一下 记忆Memory短期记忆上下文学习即是利用模型的短期记忆学习长期记忆为agent提供保留和召回长期信息的能力通常利用外部向量存储和检索实现2.3 介绍一下 工具使用tool use对模型权重丢失的信息agent学习调用外部API获取额外信息包括当前信息、代码执行能 力、专有信息源的访问等等三、大模型LLMsagent主要 利用了 大模型 哪些能力LLM Agent 主要利用大模型的推理(reasoning)、模仿(few-shot learning)和规划能力(Planning)再 结合函数调用来实现工具使用(Tools use)。四、结合 代码 讲解 大模型LLMsagent思路4.1 思路介绍这里 使用了sa-bot开源项目介绍 大模型LLMsagent 代码实现逻辑该项目主要实现了以下 内容实现将豆包(云雀大模型)接入langchain体系基于langchain测试skylark-chat的prompt agent4.2 实例一利用大模型判断做选择利用大模型从多个选择中选出正确的出来比如按下面的问题输入大模型multi_choice_prompt 请针对 和 中间的用户问题选择一个适合的工具去回答 他的问题只要用A、B、C的选项字母告诉我答案。 如果你觉得都不适合就选D。 {question} 你能使用的工具如下 A. 一个能够查询商品信息为用户进行商品导购的工具 B. 一个能够查询最近下单的订单信息获得最新的订单情况的工具 C. 一个能够商家的退换货政策、运费、物流时长、支付渠道的工具 D. 都不适合 请按以下格式进行回答A、B、C、D。 chat doubao.ChatSkylark(modelskylark-chat,temperature0,top_p0,top_k1) question我想卖一件衣服但不知道哪款适合我有什么好推荐吗 messages [ HumanMessagePromptTemplate.from_template( templatemulti_choice_prompt, ).format(questionquestion), ] req chat(messages) print(问题: %s%question) print(req.content)这个例子可以通过在本地运行python demo.py来得到结果。 结果如下根据提供的信息最适合的工具是 A. 一个为用户进行商品导购和推荐的工具。因为用户 的问题是关于选择适合的衣服需要推荐和导购。B、C 选项的工具虽然也有用但并不是最直 接解决用户问题的工具。因此选择 A 选项。回答为A。在这里我们构造了一个选择题给到大模型让大模型从多个选项中选出适合的工具。4.3 实例二让大模型通过判断正确选择函数工具并输出上面例子测试了大模型的推理和选择判断能力下面我们将上面的 A,B,C,D 换成我们的函数名 称并要求其按照固定格式输出prompt如下请针对 和 中间的用户问题选择一个适合的工具去回答他的问题工具的名称已经 给出。 如果你觉得都不适合就回复“no_tools: 以上工具都不适用”。 {question} 你能使用以下四个工具 - recommend_product: 一个为用户进行商品导购和推荐的工具 - search_order: 一个能够查询最近下单的订单信息获得最新的订单情况的工具 - search_merchant_policies: 一个能够查询商家的退换货政策、运费、物流时长、支付渠道 的工具 - no_tools: 以上工具都不适用 请按以下格式进行回答: {{ recommend_product: 一个为用户进行商品导购和推荐的工具 }}测试skylark-chat问题: 我有一张订单一直没收到可以帮我查询下吗 { search_order: 一个能够查询最近下单的订单信息获得最新的订单情况的工具 }这里可以看到针对问题按预设的结果输出了所需要的工具并做了格式对格式化的json数据就可以被程序所处理。问题: 请问你们家的货可以送到四川吗物流大概要多久 根据用户的问题需要查询商家的退换货政策、运费、物流时长等信息。而给出的四个工具 中search_merchant_policies 能够查询商 家的退换货政策、运费、物流时长、支付渠道等 信息与用户需求相符。 因此回复内容为 { search_merchant_policies: 一个能够查询商家的退换货政策、运费、物流时长、支付 渠道的工具 }这里可以看到针对一些问题skylark-chat 有时不是直接回复结果而是会在前面解释一通这是因为skylark-chat训练数据用到大量的 CoT 的方式来提升准确率。针对这种结果可以通过正则表达式提取json数据给到程序使用。4.4 实例三agent模板和解析这里 agent 模板使用了经典的chat zero shot react分为Thought,“Action”,“Observation” 三部分。这里直接看 prompt 代码agent_prompt Answer the following questions as best you can. You have access to the following tools: Search Order: 一个能够查询订单信息获得最新的订单情况的工具参数是输入订单id Recommend product: 一个能够基于商品及用户 信息为用户进行商品推荐导购的工具参数是输入要推荐的商品类型 The way you use the tools is by specifying a json blob. Specifically, this json should have a action key (with the name of the tool to use) and a action_input key (with the input to the tool going here). The only values that should be in the action field are: Search Order, Recommend product The $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB: /// {{ action: $TOOL_NAME, action_input: $INPUT }} /// ALWAYS use the following format: Question: the input question you must answer Thought: you should always think about what to do Action: /// $JSON_BLOB /// Observation: the result of the action ... (this Thought/Action/Observation can repeat N times) Thought: I now know the final answer Final Answer: the final answer to the original input question Begin! Reminder to always use the exact characters Final Answer when responding. {question} chat doubao.ChatSkylark(modelskylark-chat,temperature0,top_p1,top_k1) question我想卖一件衣服但不知道哪款适合我有什么好推荐吗 messages [ HumanMessagePromptTemplate.from_template( templateagent_prompt, ).format(questionquestion), ] result chat(messages) # agent的解析 text result.content pattern re.compile(r^.*?{3}(?:json)?/n(.*?){3}.*?$, re.DOTALL) found pattern.search(text) action found.group(1) response json.loads(action.strip()) print(问题: %s/n%question) print(response) #json解析后已经满足json格式运行可以看到正常解析出了符合要求的json格式{action: Recommend product, action_input: {user_demographic: {age: 25, gender: Male, location: New York}, preferences: {style: Casual, color: Blue}}}4.5 实例四将 skylark 接入 langchain 中测试 agent编写工具函数# 模拟电商订单 def search_order(input: str)-str: print(调用search_order一个能够查询订单信息获得最新的订单情况的工具:) return {order}订单状态已发货.format(orderinput) # 模拟商品推荐 def recommend_product(input: str)-str: print(调用recommend_product一个能够基于商品及用户信息为用户进行商品推荐导购 的工具:) return 黑色连衣裙接入langchain的agenttools [ Tool( nameSearch Order, funcsearch_order, description一个能够查询订单信息获得最新的订单情况的工具参数是输入订 单id ), Tool( nameRecommend product, funcrecommend_product, description一个能够基于商品及用户信息为用户进行商品推荐导购的工具参数是 输入要推荐的商品类型 ) ] chat doubao.ChatSkylark(modelskylark-chat,temperature0,top_p0,top_k1) agent_tools initialize_agent(toolstools, llmchat, agentAgentType.ZERO_SHOT_REACT_DESCRIPTION, verboseTrue) result agent_tools.run(我想卖一件衣服但不知道哪款适合我有什么好推荐吗) print(result)查看结果我需要找到一个工具来推荐适合我的衣服。根据给定的工具我可以使用“Recommend product”来获得推荐。 Action: Recommend product Action Input: 衣服类型 Observation: 调用recommend_product一个能够基于商品及用户信息为用户进行商品推荐导 购的工具 Observation: 黑色连衣裙 Thought: 根据推荐的结果我选择了黑色连衣裙。 Final Answer: 黑色连衣裙Tips:Volcengine 在 windows 下安装出错 OSError: Cannot load native module Crypto.Cipher._raw_ecb: Trying _raw_ecb.cp311-win_amd64.pyd: cannot load library C:/Users/Admin/AppData/Local/Programs/Python/Python311/Lib/sitepackages/Crypto/Util/../Cipher/_raw_ecb.cp311-win_amd64.pyd: error 0xc1, Trying _raw_ecb.pyd: cannot load library 可以尝试 pip3 uninstall pycryptodomex pip install pycryptodome## 最后近期科技圈传来重磅消息行业巨头英特尔宣布大规模裁员2万人传统技术岗位持续萎缩的同时另一番景象却在AI领域上演——AI相关技术岗正开启“疯狂扩招”模式据行业招聘数据显示具备3-5年大模型相关经验的开发者在大厂就能拿到50K×20薪的高薪待遇薪资差距肉眼可见业内资深HR预判不出1年“具备AI项目实战经验”将正式成为技术岗投递的硬性门槛。在行业迭代加速的当下“温水煮青蛙”式的等待只会让自己逐渐被淘汰与其被动应对不如主动出击抢先掌握AI大模型核心原理落地应用技术项目实操经验借行业风口实现职业翻盘深知技术人入门大模型时容易走弯路我特意整理了一套全网最全最细的大模型零基础学习礼包涵盖入门思维导图、经典书籍手册、从入门到进阶的实战视频、可直接运行的项目源码等核心内容。这份资料无需付费免费分享给所有想入局AI大模型的朋友扫码免费领取全部内容部分资料展示1、 AI大模型学习路线图2、 全套AI大模型应用开发视频教程从入门到进阶这里都有跟着老师学习事半功倍。3、 大模型学习书籍文档4、AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5、大模型大厂面试真题整理了百度、阿里、字节等企业近三年的AI大模型岗位面试题涵盖基础理论、技术实操、项目经验等维度每道题都配有详细解析和答题思路帮你针对性提升面试竞争力。6、大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。扫码免费领取全部内容这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻