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

第 2 篇:Agent 的三种工作模式,选错了事倍功半

系列简介从零搭建一个多 Agent AI 助手覆盖原理、实现、部署全链路。不讲空话每篇都有可运行的代码。项目地址https://github.com/CodeMomentYY/LangGraph-Agent本篇目标理解 Agent 的三种工作模式知道什么场景用哪种。前言大家好我是一名前端工程师。都说前端“已死”那与其担心被 AI 替代不如打入敌人内部于是我开始折腾 Agent 开发。折腾下来发现Agent 的核心不是算法而是“工程能力”怎么设计架构、怎么串联服务、怎么把 LLM 的能力落地成产品。这些恰好是我们擅长的事。这个系列记录我从零搭建多 Agent 系统的完整过程。只聊技术知识和设计思路代码交给 AI 写。如果你也想从应用层切入 AI希望这个系列对你有帮助。读完本篇你将学到Agent 的三种经典工作模式范式每种范式的核心思想和适用场景三种范式的代码实现对比什么时候该用哪种什么时候组合使用背景与动机上一篇我们搞清楚了 Agent 的本质LLM 工具 循环。但“循环”具体怎么循环其实有不同的策略。打个比方你接到一个任务“帮我规划一次北京三日游”。方式 A边想边做。先查天气看到晴天那就安排户外景点再查景点发现故宫周一闭馆那换一个…一步步推进。方式 B先规划再执行。先列出三天的大纲Day1 历史、Day2 自然、Day3 美食然后逐个填充细节。方式 C做完检查一遍。先生成一版计划然后自己审视“有没有遗漏时间安排合理吗”不满意就修改。这三种方式对应 Agent 的三大范式ReAct、Plan-and-Solve、Reflection。核心概念我们对比一下这三种范式的流程用一张表来总结一下ReActPlan-and-SolveReflection核心思想边想边做先规划后执行做完自检循环方式思考→行动→观察→思考…规划→执行步骤1→执行步骤2…生成→反思→修改→再反思…优势灵活能应对意外有条理不遗漏质量高能自我修正劣势可能跑偏规划错了全盘皆输慢多次 LLM 调用适合场景简单查询、工具调用复杂多步任务写作、代码生成类比即兴发挥写提纲再写文章写完改稿动手实现ReAct 范式边想边做ReAct 是最常用的范式上一篇我们其实已经实现了。核心就是Thought → Action → Observation的循环 ReAct 范式边想边做 适合需要调用工具获取信息的场景 REACT_PROMPT你是一个助手请按以下格式思考和行动 Thought: 我需要做什么 Action: 工具名(参数) Observation: 工具返回的结果 ... (重复直到有足够信息) Thought: 我现在可以回答了 Answer: 最终回答 defreact_agent(user_input):messages[{role:system,content:REACT_PROMPT}]messages.append({role:user,content:user_input})for_inrange(5):# 最多 5 轮responsecall_llm(messages)ifAction:inresponse:# 解析并执行工具tool_resultexecute_tool(response)messages.append({role:assistant,content:response})messages.append({role:user,content:fObservation:{tool_result}})elifAnswer:inresponse:returnresponse.split(Answer:)[-1].strip()return处理超时特点每一步都能看到中间过程灵活应对意外情况。但如果任务复杂比如需要 10 个步骤可能会跑偏。Plan-and-Solve 范式先规划后执行先让 LLM 列出计划再逐步执行。适合复杂的多步任务 Plan-and-Solve 范式先规划后执行 适合复杂多步任务旅行规划、研究报告 PLAN_PROMPT请先制定计划再逐步执行。 格式 Plan: 1. 第一步做什么 2. 第二步做什么 3. 第三步做什么 然后逐步执行每一步。 defplan_and_solve_agent(user_input):# 阶段 1生成计划plan_responsecall_llm([{role:system,content:PLAN_PROMPT},{role:user,content:user_input}])stepsparse_plan(plan_response)# 提取步骤列表# 阶段 2逐步执行results[]forstepinsteps:resultcall_llm([{role:system,content:请执行以下任务步骤},{role:user,content:f任务{step}\n已有信息{results}}])results.append(result)# 阶段 3整合结果finalcall_llm([{role:system,content:请整合以下信息生成最终回答},{role:user,content:str(results)}])returnfinal特点有条理适合帮我写一份报告这种需要结构化输出的任务。但如果第一步规划错了后面全跟着错。Reflection 范式做完自检生成回答后让 LLM 自我检查不满意就修改。适合对质量要求高的场景 Reflection 范式生成 自我反思 适合写作、代码生成等需要高质量输出的场景 defreflection_agent(user_input,max_rounds3):# 第一次生成draftcall_llm([{role:system,content:你是一个写作助手},{role:user,content:user_input}])forroundinrange(max_rounds):# 反思检查质量critiquecall_llm([{role:system,content:请严格评审以下内容指出问题。如果质量够好回复PASS},{role:user,content:f原始需求{user_input}\n\n当前内容\n{draft}}])ifPASSincritique:returndraft# 质量够了# 根据反馈修改draftcall_llm([{role:system,content:请根据反馈修改内容},{role:user,content:f当前内容\n{draft}\n\n反馈\n{critique}}])returndraft# 达到最大轮次特点输出质量高但每多一轮反思就多两次 LLM 调用一次评审 一次修改速度慢、成本高。效果对比问同一个问题“帮我写一段产品介绍”三种范式的表现范式LLM 调用次数耗时输出质量ReAct1 次~3 秒一般Plan-and-Solve3-4 次~10 秒较好Reflection5-7 次~20 秒最好组合使用Plan ReAct Reflect实际项目中三种范式经常组合。比如“帮我规划北京三日游并写成攻略”看一下代码实现 三范式组合Plan 拆任务 → ReAct 执行每步 → Reflect 检查质量 defcombined_agent(user_input):# 阶段 1Plan拆解任务plancall_llm([{role:system,content:请将任务拆解为 3-5 个步骤},{role:user,content:user_input}])stepsparse_plan(plan)# 阶段 2ReAct逐步执行每步可调工具results[]forstepinsteps:resultreact_agent(step)# 复用上面的 ReAct 逻辑results.append(result)# 阶段 3Reflect整合并自检draftcall_llm([{role:system,content:请整合以下信息生成完整攻略},{role:user,content:str(results)}])# 自检一轮critiquecall_llm([{role:system,content:检查攻略是否完整有无遗漏},{role:user,content:draft}])ifPASSnotincritique:draftcall_llm([{role:system,content:根据反馈修改},{role:user,content:f{draft}\n\n反馈{critique}}])returndraft这就是我们后面搭建多 Agent 时用的思路——dispatcher 做 Plan判断走哪些 Agent各 Agent 内部用 ReAct调工具写作类任务可以加 Reflect。刨根问底序号问题1️⃣Q实际项目中只用一种范式吗A不是。实际项目经常组合使用。比如天气查询用 ReAct简单调一次工具就够了深度研究用 Plan-and-Solve先规划子任务再逐个执行写文案可以加 Reflection生成后自检修改。2️⃣Q怎么决定用哪种范式A看任务复杂度。一两步就能完成 → ReAct需要多步骤、有明确结构 → Plan-and-Solve对输出质量要求高、允许慢一点 → Reflection。3️⃣QReflection 会不会无限循环A会所以必须加 max_rounds 限制。而且有时候 LLM 的“评审员”和“写作者”是同一个模型可能会陷入“改来改去越改越差”的情况。所以实际使用中 2-3 轮就够了。本篇小结Agent 有三种经典工作模式ReAct边想边做、Plan-and-Solve先规划后执行、Reflection做完自检没有最好的范式只有最适合的——根据任务复杂度和质量要求选择实际项目中经常组合使用多种范式核心差异在于循环的策略不同底层都是 LLM 工具写在最后三种范式看起来是三种“技术方案”但本质是三种“思维方式”。ReAct 像是敏捷开发快速迭代、随时调整、Plan-and-Solve 像是瀑布模型先设计后实现Reflection 像是 Code Review写完回头审视。选范式和选开发流程一样没有万能解只有取舍。下一篇有了范式的认知接下来我们用 LangGraph 框架搭建一个真正的多 Agent 系统——多个 Agent 各司其职dispatcher 动态路由支持串行和并行执行。

相关文章:

第 2 篇:Agent 的三种工作模式,选错了事倍功半

系列简介:从零搭建一个多 Agent AI 助手,覆盖原理、实现、部署全链路。不讲空话,每篇都有可运行的代码。 项目地址:https://github.com/CodeMomentYY/LangGraph-Agent 本篇目标:理解 Agent 的三种工作模式,…...

为什么92%的Midjourney水效渲染失败?——解析v6.1+版本流体折射权重、noise scale与--s值的黄金三角关系

更多请点击: https://codechina.net 第一章:为什么92%的Midjourney水效渲染失败?——问题现象与根本归因 大量用户在使用 Midjourney v6 生成「水效渲染」(Water Efficiency Rendering)类提示词时遭遇高频失败——表现…...

Shutter Encoder:构建高效媒体工作流的FFmpeg图形化解决方案

Shutter Encoder:构建高效媒体工作流的FFmpeg图形化解决方案 【免费下载链接】shutter-encoder A professional video compression tool accessible to all, mostly based on FFmpeg. 项目地址: https://gitcode.com/gh_mirrors/sh/shutter-encoder 在数字媒…...

AI正在重构工程师岗位:被替代的不是“人”,而是低维度能力

过去很多人认为,AI更适合写文案、做客服、生成图片,而真正复杂的工程领域——尤其是工业、制造、自动化系统——依然离不开工程师。 但最近一个劳动仲裁案例,让越来越多工程技术人员开始重新思考这个问题: 一位从事测绘工作15年的工程师,因为企业全面导入AI自动化测绘系…...

嵌入式C语言开发中的三大致命陷阱

很多人刚开始学习C语言时,会觉得: 会指针 会结构体 会寄存器操作 能驱动外设 似乎就已经掌握了嵌入式开发。 但真正进入项目后才会发现: 嵌入式开发最难的,从来不是语法,而是“代码与硬件现实世界之间的耦合”。 同样一句代码: 在PC上可能只是运行错误; 在单片机里却可…...

Midjourney V6调色板设置失效的5大隐性原因:从--sref误用到色域压缩陷阱,一文终结色彩失真

更多请点击: https://codechina.net 第一章:Midjourney V6调色板设置失效的全局认知 Midjourney V6 引入了更严格的色彩语义解析机制,导致此前在 V5.x 中广泛使用的 --palette 参数(如 --palette vibrant 或 --palette muted&…...

SQL 数据库从免费到付费选型实战:支撑真实规模产品的能力分析与选择指南

引言:为什么 SQL 数据库选型如此重要? 在当今数据驱动的时代,数据库是任何数字产品的核心基础设施。无论是初创公司的 MVP(最小可行产品),还是日活百万的成熟应用,数据库的选择直接影响着产品的性能、成本、可扩展性和开发效率。 对于技术决策者而言,面对琳琅满目的 …...

【小白快速上手】Windows 系统 OpenClaw v2.7.5 一键部署完整教程(包含安装包)

OpenClaw 一键安装完整教程(2026 最新) 适配系统:Windows10/11 64 位当前版本:v2.7.5(虾壳云版)文件大小:约 58.7MB下载地址:https://xiake.yun/api/download/package/16?promoCod…...

SQL 能包打天下吗?多少比例的产品只需 SQL,何时需要引入其他存储?

引言 在数据驱动的时代,SQL(结构化查询语言)作为关系型数据库的标准查询语言,其地位无可撼动。它以其强大的数据操作能力、清晰的声明式语法和广泛的生态支持,成为绝大多数应用开发者的首选。然而,随着业务场景的日益复杂和数据形态的多样化,一个灵魂拷问随之而来:SQL…...

498元!某国产12代i7云终端小钢炮,仅1.7L迷你主机,可上i7-12700处理器,最大支持双M2+SATA三盘位,可惜还是准系统传家宝!

要说小主机品牌种类规格方面,最为丰富的不是个人家用消费级市场,而是云终端,痩客户机类型产品。奈何如今大环境不景气,再叠加如今处理器性能进步明显,以英特尔12代平台为例,如今依旧还是主流,所…...

实际开发中 SQL 与产品的耦合与互动实践

引言 在产品开发初期,数据库 Schema(表结构)的设计是一个绕不开的核心问题。很多开发者,尤其是新手,常常会陷入一个两难境地:“Schema 需要一开始就完全确定好吗?如果后期要改动怎么办?到底要设计多少个表(Schema 数量)才算合适?” 这些问题背后,反映的是对软件工…...

MDK Middleware网络组件的嵌入式安全防护解析

1. MDK Middleware网络组件的安全特性解析在嵌入式系统开发中,网络安全往往是最容易被忽视却又至关重要的环节。作为Keil MDK开发环境的核心组件,Middleware Network为Cortex-M系列微控制器提供了轻量级TCP/IP协议栈实现。不同于桌面级操作系统自带的网络…...

量子计算中的SWAP门原理与应用解析

1. 量子计算中的SWAP门基础原理量子计算区别于经典计算的核心在于量子比特(qubit)的叠加态和纠缠态特性。在量子线路设计中,SWAP门作为基础量子逻辑门之一,扮演着量子信息交换的关键角色。与经典计算中的位交换不同,量…...

HarmonyOS 鸿蒙PC平台三方库移植:使用 vcpkg 移植 libzen(ZenLib)

网罗开发(小红书、快手、视频号同名)大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方…...

Agent大战,赢家暗自在哪下功夫?

(一)日子都不好过OpenAI和Anthropic在release note节奏上,证明了一件事:他们有实力两周抬一次模型能力线。其威力,足以消灭掉一批创业公司。这事不展开,共识。在这一波里,别说小公司&#xff0c…...

Keil C166嵌入式开发中的宽字符实现与优化

1. 宽字符支持问题解析在嵌入式C语言开发中,Unicode支持是一个常见需求。最近我在使用Keil C166开发工具时遇到了一个关于宽字符(wchar_t)定义的有趣问题。打开标准库头文件stdlib.h时,发现其中对wchar_t的定义如下:#ifndef _WCHAR_T_DEFINED…...

原来训大模型,就像开一家小餐馆!

你是不是一直觉得,训练大语言模型是 OpenAI、百度这种大厂才能干的事?要几万张显卡,要花几个亿,普通人想都不敢想? 错了!我用自己开发机上的 8 张 H20 显卡,花了点时间,从零开始训了…...

Windows电脑自带软件全部无法使用?亲测有效的解决办法!

Windows电脑自带软件全部无法使用?亲测有效的解决办法! 最近在使用电脑的时候,我突然遇到了一个非常离谱的问题: Windows 系统自带的软件几乎全部无法正常打开! 包括但不限于: 计算器相机录音机截屏工具画图…...

Meta裁了8000人,员工拖着行李箱抢可乐

昨天凌晨4点,Meta很多员工的邮箱同时响了。是裁员邮件。这一次,Meta裁掉了全球约10%的员工,规模大约8000人。分手大礼包:16周基础薪资 每满1年工龄额外2周薪资 18个月全家医保。真正让硅谷炸锅的,反而是裁员前几天&a…...

Python、BMA-Stacking融合LightGBM、GBDT、KNN多模型电商交易欺诈风险预警研究|附代码数据

全文链接:https://tecdat.cn/?p45916原文出处:拓端数据部落公众号封面:关于分析师在此对 Haoyang Ke 对本文所作的贡献表示诚挚感谢。他在浙江财经大学完成了数理统计专业的学习,专注机器学习、数据采集领域。他擅长 Python、R 语…...

AI赋能 绿色未来 —— 华硕重磅亮相第二十八届海峡两岸经贸交易会

当AI浪潮席卷全球,绿色低碳成为时代共识,一场汇聚两岸智慧、共探产业新机的盛会如约而至。5月21日第二十八届海峡两岸经贸交易会于福州海峡会展中心盛大启幕。这场由国务院台办、福建省人民政府联合主办的国家级盛会,深耕两岸经贸交流多年&am…...

WxJava 微信开发包 - 新手入门指南

WxJava 微信开发包 - 新手入门指南项目概览项目名称Binary Wang/WxJavaStarsGVP ⭐⭐⭐⭐⭐组织Binary Wang语言Java标签GVP, Java, 微信开发, 微信公众号, 微信支付项目简介WxJava 是一个基于 Java 的微信开发工具包,支持微信公众号、微信支付、小程序、企业微信等…...

鸿蒙今日穿搭页面构建:单品清单、一周搭配日历与穿搭提示模块详解

鸿蒙今日穿搭页面构建:单品清单、一周搭配日历与穿搭提示模块详解 前言 在 HarmonyOS 6.0 应用开发中,穿搭类页面的单品管理、周计划安排和温馨提醒是完善用户体验的重要补充模块。本文将以“今日穿搭”应用中的“单品清单”网格模块、“一周搭配日历”周…...

鸿蒙今日穿搭页面构建:衣橱库存、今日配色与场景建议模块详解

鸿蒙今日穿搭页面构建:衣橱库存、今日配色与场景建议模块详解 前言 在 HarmonyOS 6.0 应用开发中,穿搭类页面的衣橱管理、配色方案和场景化建议是提升用户实用性的关键功能模块。本文将以“今日穿搭”应用中的“衣橱库存”进度条模块、“今日配色”色彩盘…...

关于自指系统与算术障碍的跨领域猜想:一项探索性研究(世毫九实验室学术完善报告)

关于自指系统与算术障碍的跨领域猜想:一项探索性研究(世毫九实验室学术完善报告) 作者:方见华 单位:世毫九实验室 核心摘要 本报告针对世毫九实验室原创的探索性跨领域论文《关于自指系统与算术障碍的跨领域猜想&#…...

鸿蒙今日穿搭页面构建:搭配推荐与风格筛选模块详解

鸿蒙今日穿搭页面构建:搭配推荐与风格筛选模块详解 前言 在 HarmonyOS 6.0 应用开发中,穿搭类页面的核心挑战在于如何展示搭配灵感、风格筛选和衣橱管理。本文将以“今日穿搭”应用的主页面为例,深入解析如何在鸿蒙平台上构建时尚穿搭类应用的…...

【咨询业AI Agent应用成熟度评估模型】:基于217家机构实测数据的4级能力图谱与升级路线图

更多请点击: https://codechina.net 第一章:【咨询业AI Agent应用成熟度评估模型】:基于217家机构实测数据的4级能力图谱与升级路线图 本模型基于对全球217家管理咨询、战略咨询与数字化转型服务商的实地调研与系统性能力测评,覆…...

观察Taotoken按Token计费模式如何帮助项目控制预算

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察Taotoken按Token计费模式如何帮助项目控制预算 对于依赖大模型API进行开发的团队和个人而言,成本控制是一个贯穿项…...

C++虚函数与多态机制

C虚函数与多态机制虚函数是C实现运行时多态的核心机制。通过虚函数表和虚函数指针,C能够在运行时根据对象的实际类型调用相应的函数实现。虚函数的基本语法使用virtual关键字声明,派生类可以重写基类的虚函数。#include #include #includeclass Animal {…...

【AI入门知识点】Harness 是什么?为什么 DeepSeek 要组建 Harness 团队?

最近,DeepSeek 招聘信息中出现了一个越来越高频的关键词——Harness 团队。 很多人第一反应是: Harness 是什么?一种新模型?还是某个框架?为什么 DeepSeek 专门成立团队来做这个?如果你第一次听到这个词&am…...