当前位置: 首页 > news >正文

大模型Agent应用开发教程(非常详细),手把手教你从零构建智能体!

Agent的前身Function Calling,让大模型具备了调用外部工具的能力,可这显然还不能构成一个能帮助我们干活的智能体。作为一个智能系统,应该要具备自主感知、决策与行动能力,通过观察环境并利用可用工具采取行动,以实现特定目标。一个智能体的核心架构包括三部分:

  • 模型:作为“大脑”,承担推理、规划和决策功能。
  • 工具:作为“手脚”,扩展智能体的行动能力。
  • 编排:作为“神经系统”,管理任务流程与状态切换。通过循环执行“感知→思考→行动→观察”实现动态决策。

编排是什么

模型和工具自然不必多说,接下来重点介绍下编排,它借助快速发展的prompt engineering及相关框架引导推理与规划,使智能体能更高效地与环境交互并完成任务,目前也有很多相关技术:

  • ReAct:为语言模型提供“推理并行动”的思维策略,支持在有/无上下文示例的情况下处理用户问题。
  • CoT:通过中间步骤实现推理能力的提示工程框架。其子技术包括self-consistency、active-prompt和multimodal CoT,各自针对特定应用场景有不同优劣。
  • ToT:适用于探索性或战略前瞻任务的提示工程框架。它扩展了思维链提示技术,允许模型探索多种思维链作为中间步骤,从而通过语言模型实现通用问题求解。

环境动态变化且需实时交互的场景(如智能家居控制、机器人导航)中,可选择ReAct;当任务高度结构化、逻辑明确(如数学题、法律条文分析),且无需外部数据时,可选择CoT;需全局优化或创意发散的任务(如产品设计、战略规划),可容忍较高计算成本时,可选择ToT。

ReAct

ReAct 包含了 Reason 思考与 Act行动 两个部分,它会让大模型把大问题拆分成小问题,一步步地解决,每一步都会尝试调用外部工具来解决问题,并且还会根据工具的反馈结果,思考工具调用是否出了问题。如果判断出问题了,大模型会尝试重新调用工具。这样经过一系列的工具调用后,最终完成目标。

实际上要想赋予大模型ReAct能力,就需要向其提供ReAct Prompt,来引导它一步步地思考如何解决问题。我们可以在LangChain官方提供的ReAct Prompt基础上做一些修改:

{instructions} TOOLS: ------ You have access to the following tools: {tools} To use a tool, please use the following format: \``` Thought: Do I need to use a tool? Yes Action: the action to take, should be one of [{tool_names}] Action Input: the input to the action Observation: the result of the action \``` When you have a response to say to the Human, or if you do not need to use a tool, you MUST use the format: \``` Thought: Do I need to use a tool? No Final Answer: [your response here] \``` Begin! New input: {input}

这段Prompt首先告诉大模型,你可以使用某个工具,然后在回答用户的问题之前,执行N次思考-行动-输入提取-观察工具结果一系列步骤,直到得到最终的答案,再将其返回给用户。

下面我们就来一步一步实现一个简单的Agent吧,首先将前面的Prompt赋值给变量REACT_PROMPT,然后我们还是借用之前定义过的查询天气的工具:

tools = [ { "type": "function", "function": { "name": "get_weather", "description": "Get weather of an location, the user shoud supply a location first", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA", } }, "required": ["location"] }, } }, ] def get_weather(location): # 内置city代码 cities = { "北京": "101010100", "上海": "101020100", "成都": "101270101" } # api地址 url = 'http://t.weather.sojson.com/api/weather/city/' # 通过城市的中文获取城市代码 city_code = cities.get(location) # 网络请求,传入请求api+城市代码 response = requests.get(url + city_code) # 将数据以json形式返回,这个d就是返回的json数据 d = response.json() res = str(d) return res

最后我们可以将Agent的思考过程和工具调用结合到一起,值得注意的是工具的调用仍然需要人为介入,而且要通过正则表达式从大模型的回复中提取函数名及输入参数。

client = OpenAI( api_key=API_KEY, base_url="https://api.deepseek.com", ) def send_messages(messages): response = client.chat.completions.create( model="deepseek-chat", messages=messages, tools=tools ) return response.choices[0].message instructions = "你是一个天气查询助手,可以查询天气" query = "成都今日的温度是多少?" prompt = REACT_PROMPT.format(instructions=instructions, tools=tools, tool_names="get_weather", input=query) messages = [{"role": "user", "content": prompt}] while True: response = send_messages(messages) response_text = response.choices[0].message.content print("大模型的回复:") print(response_text) final_answer_match = re.search(r'Final Answer:\s*(.*)', response_text) if final_answer_match: final_answer = final_answer_match.group(1) print("最终答案:", final_answer) break messages.append(response.choices[0].message) action_match = re.search(r'Action:\s*(\w+)', response_text) action_input_match = re.search(r'Action Input:\s*({.*?}|".*?")', response_text, re.DOTALL) if action_match and action_input_match: tool_name = action_match.group(1) params = json.loads(action_input_match.group(1)) if tool_name == "get_weather": observation = get_weather(params['location']) print("人类的回复:Observation:", observation) messages.append({"role": "user", "content": f"Observation: {observation}"})

从下面的输出中, 我们可以看到模型经历了两轮思考,第一轮面对用户的问题,使用了天气查询工具,获取了天气信息,在第二轮由于已经有了答案,因此就直接返回结果了。

总结

通过上面的例子,我们实现了一个基于ReAct的简易Agent,不过现在的市面上已经有很多可视化的Agent平台了,我们完全可以借助它们来快速搭建自己的应用,之后会逐步介绍目前比较流行的平台。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

http://www.jsqmd.com/news/343121/

相关文章:

  • 从 synchronized 到 ConcurrentHashMap:一个小小的并发控制策略升级优化,证明我还是初级程序员
  • Claude Code生成UI的3个技巧
  • 【无人水面艇】USV路径跟踪LOS控制算法仿真附Matlab代码
  • Java面试早就不问八股文了!都是面试场景题,没做过根本回答不上来!
  • SQL性能优化秘籍:速度与简洁兼得
  • 汉中装修风格怎么选?汉府人家装饰本地业主实测好看风格盘点 - 一个呆呆
  • 大数据毕设项目推荐-基于Python+Echart的学生心理健康数据可视化系统设计与实现【附源码+文档,调试定制服务】
  • CSSCI期刊官宣:同一个作者一年内只能在核心期刊上发表一篇论文,你怎么看?
  • 大数据毕设选题推荐:Python大数据基于ECharts的数据分析可视化大屏基于Python+Echart的学生心理健康数据可视化系统设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 【无线传感器网络路由协议LEACH的研究与改进】LEACH、LEACH-C、TS-I-LEACH比较研究附Matlab代码
  • UOJ Round #33 部分题目题解
  • 中科院分区表发布在即!人工智能领域7本期刊升1区TOP,2025中科院分区升降对比!
  • 分布式锁的特性是什么?如何实现分布式锁?
  • 千兆宽带在英国城乡地区加速普及
  • 计算机大数据毕设实战-基于Python+Echart的学生心理健康数据可视化系统设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Java 企业级 Agent 实战:完整工程模板 · 多 Agent + Graph 工作流落地指南
  • 老年人评估项目开发记录8
  • 5步搞定|宠物AI识别与智能剪辑开发实践
  • webvnc用法 —— 使用noVNC实现浏览器网页访问vnc(基于web的远程桌面)
  • 【毕业设计】基于Python+Echart的学生心理健康数据可视化系统设计与实现(源码+文档+远程调试,全bao定制等)
  • 408真题解析-2010-32-操作系统-中断处理过程
  • 2026年诚信的超高压水刀,五轴水刀厂家行业优选榜单 - 品牌鉴赏师
  • 道路直播:以安全为基,藏温暖于行
  • nodejs基于vue的行政职业能力测试系统的设计与实现-vue
  • DeepSeek大模型微调实战:从入门到精通的完整指南
  • 深入解析:挑战概率直觉:蒙提霍尔问题的解密与应用
  • 萤石开放平台 音视频 | 标准流直播协议
  • 【计算机毕业设计案例】基于Python+Echart的学生心理健康数据可视化系统设计与实现(程序+文档+讲解+定制)
  • nodejs基于web的动漫插画分享网站
  • 互联网人必藏:大模型技术落地实战指南,从小白到高手的进阶之路_互联网行业AI大模型开发解决方案