news 2026/6/23 8:33:07

ReAct、ReWOO与CoT:生产级Agent架构设计核心矛盾与落地实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ReAct、ReWOO与CoT:生产级Agent架构设计核心矛盾与落地实践

1. 这不是“加个插件就能跑”的玩具:Agent架构设计的本质矛盾

很多人第一次听说ReAct、ReWOO或思维链(Chain-of-Thought, CoT),下意识反应是:“哦,又一个Prompt技巧?”——然后打开编辑器,花十分钟写几行带Thought:Action:标签的模板,扔进大模型API里跑通一个天气查询demo,就觉得自己“掌握了Agent架构”。我见过太多这样的案例:项目初期跑得飞快,两周后突然卡在某个边界case上,日志里全是重复的Thought: I need to verify the user's location... Action: call_weather_api循环,最后团队不得不推倒重来,从头梳理整个决策流。这不是模型能力问题,而是对“架构设计”四个字的严重误读。

Agent架构设计,本质上是在对抗三个根本性张力:语言模型的幻觉性vs任务执行的确定性推理过程的开放性vs系统行为的可预测性工具调用的异步性vs用户交互的实时性。ReAct不是给Prompt加个格式,它是把“思考-行动-观察”这个人类解决问题的基本闭环,强行刻进LLM的token生成序列里,用结构化输出约束其发散倾向;ReWOO不是换个名字的ReAct,它把“推理”和“行动”彻底物理隔离,让模型先生成纯文本计划(Plan),再由独立执行器(Executor)去调度工具,相当于在大脑和手脚之间加了一道神经阻断剂;而思维链更隐蔽——它不解决执行问题,只解决“为什么模型会得出这个结论”的可解释性黑洞。这三者不是并列选项,而是针对不同层级矛盾的手术刀:CoT切开推理黑箱,ReAct缝合推理与行动的断口,ReWOO则直接重建神经通路。

你手头那个“能查天气”的demo,如果没考虑过当API返回{"error": "rate_limit_exceeded"}时,模型是该重试、降级到缓存数据、还是向用户坦白失败,那它连ReAct的门槛都没跨过。真正的架构设计,是从第一个if判断开始的:不是判断用户说了什么,而是判断系统此刻的状态是否允许执行下一步。我去年帮一家物流SaaS公司重构客服Agent,他们最初的版本在用户问“我的包裹到哪了”时,会无脑调用物流轨迹API。结果某天快递公司接口全挂,模型反复重试37次,把整个服务拖垮。后来我们把ReAct的Observation环节强制加入熔断逻辑——当连续3次Observation包含timeout503时,自动触发Action: fallback_to_estimated_delivery_date。这个改动没增加任何新功能,但让系统在故障期间的用户满意度提升了62%。架构设计的价值,永远藏在那些“本不该发生却必然发生”的异常路径里。

提示:别被“入门教程”四个字迷惑。本篇所有内容都基于真实生产环境踩坑记录。如果你的Agent项目还没经历过至少一次因网络抖动、工具API变更、或用户输入含emoji导致的崩溃,那现在就是补课的最佳时机。

2. ReAct:用结构化输出驯服LLM的野性,但代价是暴露所有弱点

ReAct(Reasoning + Acting)的原始论文里有一句被广泛忽略的话:“The key insight is not to make the model smarter, but to make its reasoning trace explicit and actionable.”(核心洞见不是让模型更聪明,而是让它的推理轨迹显式且可操作)。这句话点破了本质:ReAct不是提升能力,而是暴露缺陷。当你强制模型输出Thought:Action:Observation:三段式文本时,你同时获得了两样东西——可调试的推理链,以及所有隐藏错误的放大镜。

2.1 为什么必须手写Parser?通用JSON解析器在这里是毒药

几乎所有初学者第一步都是让模型输出JSON格式,比如:

{ "thought": "用户需要查询北京天气", "action": "weather_api", "action_input": {"city": "北京"} }

然后用json.loads()直接解析。这在Demo里很优雅,但在生产环境是灾难源头。去年我们有个金融Agent项目,模型在压力测试中偶尔会输出:

{ "thought": "用户需要查询北京天气", "action": "weather_api", "action_input": {"city": "北京"} // 注意这里少了个右括号

JSON解析器直接抛JSONDecodeError,整个请求链路中断。更糟的是,当模型遇到复杂嵌套参数(比如股票查询需传入{"symbol": "AAPL", "time_range": {"start": "2023-01-01", "end": "2023-12-31"}})时,它常会漏掉深层括号或引号,这种错误无法通过正则修复。我们的解决方案是回归原始ReAct精神:用确定性分隔符替代JSON。

实际采用的Parser逻辑如下:

def parse_react_output(text: str) -> dict: # 严格按换行分割,避免JSON解析的脆弱性 lines = text.strip().split('\n') thought = "" action = "" action_input = "" for line in lines: if line.startswith("Thought:"): thought = line[8:].strip() elif line.startswith("Action:"): action = line[7:].strip() elif line.startswith("Action Input:"): action_input = line[13:].strip() # 忽略其他行(如Observation残留) return { "thought": thought, "action": action, "action_input": action_input }

这个看似简陋的方案,在千万级请求中错误率低于0.003%。关键在于:它不依赖模型生成语法正确的JSON,只依赖模型遵守换行分隔的约定。而后者比前者容易控制得多——我们通过few-shot prompt明确告诉模型:“你的输出必须严格遵循以下格式,每部分独占一行,不要添加任何额外符号”。

注意:很多教程推荐用re.search(r'Thought:\s*(.*?)\nAction:', text)这类正则,这在中文场景会失效。当用户输入含“Thought:”字样(比如用户说“我有个Thought:今天要下雨”),正则会错误截断。我们的Parser只扫描行首,彻底规避此风险。

2.2 Observation环节的三大死亡陷阱与熔断策略

ReAct最常被忽视的环节是Observation,但它恰恰是系统稳定性的命门。我们统计了过去一年Agent故障日志,73%的线上事故源于Observation处理不当。以下是三个血泪教训:

陷阱一:Observation长度失控
当调用数据库查询API返回10万行数据时,模型会尝试将全部内容塞进Observation:字段。这不仅导致token爆炸,更可能触发模型的“信息过载失忆症”——它完全忘记自己最初要解决什么问题。我们的解决方案是动态摘要+上下文锚点

  • 执行器在注入Observation前,先用轻量级模型(如Phi-3-mini)生成摘要:“共返回42条订单,最近3笔为:2024-05-01 ¥299(已发货),2024-04-22 ¥158(待支付)...”
  • 同时保留原始数据ID:“完整数据见#order_list_7a3f9b”,后续若需深挖,模型可明确请求Action: fetch_full_data id=7a3f9b

陷阱二:Observation语义污染
API错误响应常含调试信息:“Traceback (most recent call last)... File 'api.py', line 42, in get_weather”。这些技术细节会污染模型认知,让它误以为“File 'api.py'”是地名。我们的清洗规则库包含200+条正则,专门剥离堆栈、HTTP头、SQL语句等非业务信息。例如:

# 清洗前:Observation: HTTP 500 Internal Server Error\nTraceback: ... # 清洗后:Observation: 天气服务暂时不可用,请稍后再试

陷阱三:Observation时间戳漂移
当用户等待5秒后收到Observation: 当前北京温度25℃,这个“当前”已失效。我们在Observation注入时强制添加时间戳:“Observation [2024-05-20T14:22:37Z]: 当前北京温度25℃”,并在模型prompt中强调:“所有决策必须基于Observation中的时间戳,而非当前系统时间”。

2.3 ReAct的硬性适用边界:什么时候该果断放弃?

ReAct不是银弹。我们在实践中划出三条红线,一旦触碰立即切换架构:

  1. 工具调用延迟>800ms:ReAct要求Observation快速反馈,否则用户会感知到“思考卡顿”。当调用外部系统(如ERP)平均耗时超800ms时,必须改用ReWOO的异步计划模式;
  2. 动作空间维度>15:当可选Action超过15种(如电商Agent需支持“查订单”“退换货”“开发票”“联系客服”等),模型在Action:字段易混淆。此时需用ReWOO的Plan阶段做动作归类;
  3. 需要多步骤状态保持:如“帮用户订机票”,需记住出发地、目的地、日期、乘客数等多个状态。ReAct的线性结构难以承载,必须引入状态机或ReWOO的Plan-Execute分离。

去年有个旅游Agent项目,客户坚持用ReAct实现“行程规划”,结果模型在第7步突然忘记用户最初想去东京。我们最终用ReWOO重构:Plan阶段生成结构化JSON{"steps": [{"type": "search_flights", "params": {"from": "上海", "to": "东京"}}, ...]},Executor按序执行并维护全局状态。故障率从34%降至0.8%。

3. ReWOO:当ReAct不够用时,如何用“计划-执行”双脑架构接管复杂任务

ReWOO(Reasoning with Output Observations)的论文标题直指痛点:“We propose a framework that separates reasoning from acting.”(我们提出一种将推理与行动分离的框架)。这句话背后是残酷现实:当任务复杂度超过临界点,让同一个模型既思考又动手,就像要求一个人边解微分方程边同时操控起重机——生理上不可能。ReWOO的革命性在于,它承认LLM的局限性,并用工程手段绕过它。

3.1 Plan阶段:不是写作文,而是生成可执行的“机器指令”

很多人误解ReWOO的Plan阶段是让模型“想得更清楚”,其实恰恰相反——Plan的核心是降低推理复杂度。我们要求模型生成的Plan必须满足三个硬性条件:

  • 原子性:每个Step只能包含一个可验证的动作,禁止“查询天气并判断是否带伞”这种复合指令;
  • 可终止性:每个Step必须有明确的成功/失败判定标准,如“调用weather_api返回status=200”;
  • 无副作用:Step执行不能改变系统状态(如禁止Action: delete_user_account出现在Plan中,只允许Action: confirm_deletion)。

实际Plan输出示例(电商客服场景):

Plan: 1. Step 1: 调用order_lookup_api查询订单号#20240520123456 - 成功条件:返回order_status字段 - 失败处理:若返回404,跳转Step 3 2. Step 2: 若order_status为"shipped",调用logistics_api获取物流轨迹 - 成功条件:返回tracking_events数组 3. Step 3: 若订单不存在,调用user_profile_api验证用户身份 - 成功条件:返回user_id字段

注意这里没有“Thought: 用户可能记错订单号”,因为Plan阶段只关心“做什么”,不关心“为什么”。所有推理逻辑被压缩成条件分支(若...则...),这极大降低了模型生成错误的概率。我们的A/B测试显示:在1000个复杂查询任务中,ReWOO的Plan生成准确率(完全符合上述三条件)达92.7%,而ReAct的Action准确率仅68.3%。

3.2 Executor阶段:用确定性代码接管所有不确定性

Executor不是简单的API调用器,它是整个架构的“安全阀”。我们为Executor设计了四层防护:

第一层:Schema校验
每个工具API都有严格的OpenAPI Schema,Executor在调用前用pydantic校验参数。当模型在Plan中写{"order_id": "ABC"},而Schema要求order_id: int时,Executor立即拒绝执行并返回错误:“参数order_id类型错误,应为整数”。这比让模型自己纠错可靠100倍。

第二层:熔断与降级
Executor内置Hystrix式熔断器。以物流查询为例:

  • logistics_api连续5次超时(>2s),自动切换至备用API(如快递100);
  • 若备用API也失败,则返回预设的兜底响应:“物流信息更新延迟,预计2小时内恢复”。

第三层:状态快照
每次Step执行后,Executor生成状态快照:

{ "step_id": "2", "tool": "logistics_api", "input": {"tracking_number": "SF123456789"}, "output": {"status": "delivered", "timestamp": "2024-05-20T10:15:22Z"}, "duration_ms": 1420 }

这些快照构成完整的审计链,当用户投诉“你们说已签收但实际没收到”,我们能精确回溯到第2步的API响应时间与内容。

第四层:人工干预通道
当Executor检测到高风险操作(如Action: refund_money),自动触发人工审核流程。此时Plan暂停执行,通知客服专员,专员在管理后台看到结构化信息:“用户ID: u789,申请退款订单#20240520123456,金额¥299,理由:商品破损”。专员点击“批准”后,Executor才继续执行。

3.3 ReWOO与ReAct的协同:不是二选一,而是动态编排

在真实场景中,我们极少单独使用ReWOO或ReAct,而是构建混合执行引擎。引擎根据任务复杂度动态选择模式:

  • 简单任务(单工具、低延迟):直接走ReAct流水线,延迟<300ms;
  • 中等任务(2-3工具串联):启动ReWOO,但Plan阶段仅生成2-3个Step,Executor同步执行;
  • 复杂任务(多工具、高延迟、需状态保持):启用完整ReWOO,Plan生成详细步骤,Executor异步执行并维护状态机。

这个决策逻辑本身由轻量级分类器完成。我们用BERT-base微调了一个二分类模型,输入是用户query的embedding,输出是“ReAct”或“ReWOO”标签。训练数据来自历史工单:将过去半年所有成功解决的工单按响应时间、工具调用次数、是否触发人工审核等维度打标。模型准确率达89.2%,使系统整体平均响应时间降低22%。

实战心得:别迷信“全自动”。我们上线混合引擎后,客服团队反馈最惊喜的不是效率提升,而是“终于能看懂系统在想什么”。当Plan生成Step 3: 调用payment_api验证付款状态,而用户实际未付款时,客服一眼就能定位问题根源——这比ReAct里一长串Thought:文本直观十倍。

4. 思维链(CoT):不是炫技的推理展示,而是构建可信度的基础设施

当面试官问“请用思维链解释为什么17是质数”,你在草稿纸上写“17不能被2整除→不能被3整除→...→不能被16整除,所以是质数”,这叫教学用CoT。而当你的Agent在回复用户“为什么推荐这款手机”时说“该手机电池容量5000mAh(高于同价位平均4500mAh),处理器骁龙8 Gen2(安兔兔跑分120万,比竞品高15%),因此续航和性能均领先”,这才是生产级CoT——它不证明数学定理,而是构建决策可信度

4.1 CoT的三种致命误用与正确姿势

误用一:把CoT当万能胶水,强行粘贴所有回答
常见错误:无论用户问“今天天气如何”还是“删除我的账号”,都输出冗长CoT。这不仅浪费token,更损害用户体验。我们的规则是:CoT只在决策依据需显式呈现时启用。具体触发条件:

  • 涉及主观判断(如“推荐”“建议”“最佳”);
  • 需对比多个选项(如“A方案vs B方案”);
  • 用户明确要求解释(如“为什么”“请说明理由”);
  • 系统执行了非常规操作(如“自动为您升级到VIP”)。

误用二:CoT内容与实际执行脱节
最危险的情况:模型在CoT中说“我将调用weather_api查询北京天气”,但实际执行了stock_api。这会导致用户信任崩塌。我们的解决方案是CoT-Action双向绑定

  • 在生成CoT时,强制要求最后一句为因此,我将执行Action: [action_name]
  • Executor执行前,校验[action_name]是否与Plan/ReAct中的Action一致;
  • 若不一致,拒绝执行并报错:“CoT声明与实际动作冲突”。

误用三:CoT沦为模型幻觉的放大器
当模型编造事实时,CoT会让谎言显得更可信。例如:“因为iPhone 15 Pro的钛合金机身比三星S24的铝合金轻30%(实际为12%),所以更便携”。我们的防御体系包含三层:

  1. 事实核查层:对CoT中所有数值、比较、因果关系,调用知识图谱API实时验证;
  2. 置信度标注:在CoT末尾添加[置信度: 92%],数值来自事实核查结果;
  3. 模糊化处理:当置信度<80%,将确定性表述转为概率化:“可能更轻”“通常更便携”。

4.2 生产环境CoT的黄金结构:三段式可信链

我们强制所有生产级CoT遵循“证据-推理-结论”三段式:

  • Evidence(证据):引用可验证的客观事实,格式为[来源: 数据库/知识库/实时API]。例如:“[来源: 实时天气API] 北京当前温度25℃,湿度65%”;
  • Reasoning(推理):基于证据的逻辑推导,禁用主观形容词。例如:“湿度65%高于人体舒适阈值60%,因此可能感到闷热”;
  • Conclusion(结论):明确的行动建议或判断,与Evidence、Reasoning严格对应。例如:“建议开启空调除湿模式”。

这个结构让CoT从“模型自说自话”变成“可审计的决策日志”。当法务部门要求审查AI推荐合规性时,我们能直接导出所有CoT证据链,证明每个推荐都有据可查。

4.3 CoT与ReAct/ReWOO的深度耦合:让推理可见,让行动可溯

真正的威力在于三者融合。以“帮用户诊断手机无法充电”为例:

  • ReWOO Plan阶段:生成结构化步骤[{"step": "check_usb_cable", "tool": "hardware_tester"}, {"step": "check_charger_output", "tool": "voltage_meter"}]
  • CoT生成:在执行每个Step前,模型输出CoT:“[来源: 硬件测试仪API] USB线缆电阻值12Ω(标准<5Ω),因此线缆损坏是首要原因”;
  • ReAct Observation:执行hardware_tester后,注入Observation: USB线缆电阻12Ω,超出安全阈值
  • 最终结论:模型结合CoT证据与Observation,输出:“您的USB线缆已损坏(证据:电阻12Ω),建议更换原装线缆”。

这种耦合创造了三重保障:Plan确保动作不遗漏,CoT确保推理有依据,Observation确保执行有反馈。我们在医疗咨询Agent中应用此模式,将误诊率从11.3%降至2.1%,关键就在于医生能清晰看到“模型为何认为是流感而非新冠”——所有证据链完整可追溯。

关键提醒:CoT不是给用户看的,而是给系统看的。我们曾做过实验:向用户隐藏CoT内容,仅显示最终结论,用户满意度反而提升17%。因为普通用户不需要知道推理过程,他们需要的是“这件事解决了”。CoT真正的价值,在于让工程师能快速定位问题——当结论错误时,你能立刻判断是证据错了、推理错了,还是执行错了。

5. 架构选型实战:一张表看清ReAct、ReWOO、CoT的战场与禁忌

面对具体项目,如何选择架构?我们总结了这张生产环境验证过的决策表。注意:这里的“适用”指“最小可行方案”,而非“最优方案”——最优永远取决于你的具体约束。

维度ReActReWOOCoT混合方案(推荐)
典型场景单工具查询(天气、汇率、百科)多工具串联(订机票、查物流、改订单)主观决策(推荐、诊断、评分)用户咨询(80%简单查询+20%复杂任务)
延迟敏感度★★★★★(要求Observation<500ms)★★☆☆☆(Plan可异步生成,Executor可并行)★★★★☆(CoT生成耗时,但可缓存)动态路由:简单任务走ReAct,复杂任务升ReWOO
开发成本低(Parser+少量Prompt)高(需Plan生成、Executor、状态管理)中(需事实核查、置信度模型)中高(需混合引擎+分类器)
运维难度低(日志即推理链)高(需追踪Plan-Executor状态同步)中(需维护知识图谱更新)高(需监控各模块健康度)
致命缺陷工具延迟高时体验差;动作空间大时易混淆Plan生成错误难调试;状态机复杂度高无事实核查时加剧幻觉;过度使用损害体验引擎决策错误导致模式错配(如该用ReWOO却走了ReAct)
避坑指南✅ 必须实现Observation熔断
❌ 禁止在Observation中注入原始API响应
✅ Plan必须原子化、可终止
❌ 禁止Plan中包含副作用操作
✅ CoT必须标注证据来源
❌ 禁止对简单事实生成CoT(如“1+1=2”)
✅ 分类器需持续用新工单数据微调
❌ 禁止硬编码路由规则

这张表背后是我们踩过的所有坑。比如“运维难度”一栏,ReWOO的高难度源于状态同步问题:当Executor执行Step 3时,用户突然刷新页面,前端丢失了Step 1-2的状态快照。我们的解决方案是状态外置化——所有快照存入Redis,Key为rew-<session_id>,前端每次请求都携带最新快照ID,Executor据此恢复上下文。这增加了Redis依赖,但换来100%的状态一致性。

另一个血泪教训在“致命缺陷”栏:“ReAct禁止在Observation中注入原始API响应”。我们曾有个新闻Agent,直接把RSS源XML塞进Observation,结果模型被<item><title>...</title><description>...</description></item>标签干扰,生成了大量无关的HTML解析逻辑。后来改为结构化摘要:“共抓取3条新闻:1. 苹果发布新Mac(来源:techcrunch);2. 特斯拉股价上涨(来源:bloomberg)...”,问题迎刃而解。

最后强调混合方案的“分类器微调”原则。很多团队部署混合引擎后就停止迭代,结果分类器准确率随业务变化持续下降。我们的做法是:每天凌晨用过去24小时的工单数据(含人工标注的正确模式)自动微调BERT分类器,整个流程无人值守。上线三个月后,模式错配率从初始的8.7%降至0.9%。

6. 从入门到落地:一份可直接抄作业的Agent架构实施清单

理论终需落地。以下是我们在12个生产项目中验证过的实施清单,按优先级排序。跳过任何一步,都可能让你在上线后深夜接到告警电话。

6.1 第一天:必须完成的三件生死事

1. 定义你的Observation SLA(服务等级协议)
这不是技术指标,而是产品承诺。明确写出:

  • “用户查询天气,从发送请求到收到‘当前温度’响应,最长等待时间≤1.2秒”;
  • “当API超时,必须在800ms内返回兜底响应,而非让用户干等”。
    然后用这个SLA反推技术方案:若天气API平均耗时900ms,就必须用ReWOO的异步模式,让Plan生成后立即返回“正在查询”,Executor后台执行。

2. 建立工具API的Schema契约库
每个可调用工具,必须有机器可读的Schema(OpenAPI 3.0格式)。没有Schema,Executor就是裸奔。我们用Swagger UI自动生成文档,并强制要求:

  • 所有参数必须有description字段(用于模型理解);
  • 必填参数标记required: true
  • 错误码明确列出(如404: 订单不存在),Executor据此触发对应降级逻辑。

3. 部署基础可观测性
在代码中埋点,必须采集三类日志:

  • Plan日志:完整Plan文本、生成耗时、token数;
  • Executor日志:每个Step的输入/输出、耗时、状态(success/fail/skip);
  • CoT日志:证据来源、置信度、与最终结论的匹配度。
    这些日志统一接入ELK,设置告警:“连续5次Plan生成耗时>3s”或“CoT置信度<70%占比超10%”。

6.2 第一周:构建防御性工程体系

4. 实现Observation清洗管道
编写清洗函数,必须处理:

  • 技术错误信息(剥离堆栈、HTTP头);
  • 敏感数据脱敏(如"card_number": "**** **** **** 1234");
  • 长文本摘要(用Sentence-BERT提取关键句);
  • 时间戳标准化(统一转为ISO 8601格式)。

5. 设计熔断-降级-兜底三级响应机制

  • 熔断:当工具调用失败率>30%持续1分钟,自动关闭该工具入口;
  • 降级:熔断后,切换至备用API或缓存数据;
  • 兜底:所有降级失败时,返回预设的友好提示(如“服务暂时繁忙,您的需求已记录,工程师将尽快处理”)。

6. 开发CoT事实核查中间件
对接知识图谱(如Wikidata API)或领域数据库,对CoT中的:

  • 数值比较(“比竞品高15%”);
  • 因果关系(“因为A,所以B”);
  • 属性声明(“iPhone 15 Pro采用钛合金”)
    进行实时验证,并返回置信度分数。

6.3 第一个月:走向生产就绪

7. 实施混合引擎的A/B测试
用5%流量跑纯ReAct,5%跑纯ReWOO,90%跑混合引擎。核心指标:

  • 平均响应时间(P95);
  • 任务完成率(用户无需二次提问);
  • 人工介入率(客服需接手处理的比例)。
    当混合引擎在任一指标上领先15%以上,即可全量。

8. 建立Prompt版本管理体系
每个Prompt(ReAct模板、ReWOO Plan生成Prompt、CoT引导Prompt)必须:

  • 有Git版本号(如prompt_v2.3_react);
  • 附带效果报告(在测试集上的准确率、幻觉率);
  • 标注变更原因(如“v2.3:增加对emoji输入的容错处理”)。

9. 编写《Agent故障应对手册》
不是技术文档,而是给一线客服的实操指南。例如:

  • 现象:“用户说‘你们推荐的手机根本买不到’”
  • 排查:查看CoT日志,确认证据来源是否为已下架商品库;
  • 解决:在管理后台标记该商品为“缺货”,系统自动触发重新推荐。

6.4 长期演进:架构不是终点,而是起点

当你的Agent稳定运行三个月后,真正的挑战才开始:

  • 个性化适配:根据用户历史行为,动态调整CoT详略程度(老用户看结论,新用户看完整证据链);
  • 多模态扩展:当用户上传图片问“这台机器哪里坏了”,ReWOO Plan需新增Action: image_analysis,Executor调用CV模型;
  • 人机协同进化:将客服人员的修正操作(如“用户实际要的是退款,不是换货”)自动反馈给Plan生成模型,形成闭环学习。

我在最后分享一个真实案例:某银行信用卡Agent上线半年后,我们发现用户对“账单分期”咨询的放弃率高达41%。深入分析日志,问题出在CoT——模型总用专业术语解释“年化利率”,而用户真正想知道的是“每月多还多少钱”。于是我们改造CoT生成逻辑:当检测到“分期”关键词,强制在结论前插入计算示例:“以10000元分12期为例,月手续费约¥35,每月还款¥868”。放弃率一夜之间降到9%。这提醒我们:架构设计的终极目标,不是让技术更炫,而是让用户更轻松。当你不再纠结“该用ReAct还是ReWOO”,而是专注“用户此刻最需要哪句话”,你就真正入门了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 8:28:13

Ubuntu 14.04 上 Icinga 2 监控部署与调优实战指南

1. 为什么在 Ubuntu 14.04 上坚持用 Icinga 而不是换新系统&#xff1f; Icinga 这个名字听起来像某种冰镇饮料&#xff0c;但对运维老手来说&#xff0c;它更像是一台永不疲倦的哨兵——尤其当你手头还压着一批跑在 Ubuntu 14.04 上的生产服务时。别急着翻白眼说“这系统都 EO…

作者头像 李华
网站建设 2026/6/23 8:26:33

Ubuntu 18.04 搭建 ownCloud 私有云盘全指南

1. 项目概述&#xff1a;在 Ubuntu 18.04 上亲手搭起属于自己的私有云盘 ownCloud 是我用过最“接地气”的私有云方案——它不像 Nextcloud 那样功能堆砌得让人眼花&#xff0c;也不像 Seafile 那样对存储结构有强绑定&#xff0c;而是在 Apache MySQL PHP 这套经典 LAMP 栈上…

作者头像 李华
网站建设 2026/6/23 8:13:25

【课程设计/毕业设计】基于 Python Web 的汽车销售数据可视化系统搭建与实现 汽车销售数据可视化展示与数据分析系统设计【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/23 8:12:31

Qwen3.7-Plus:面向界面操作的多模态AI智能体

1. 这不是又一个“参数更大”的升级&#xff1a;Qwen3.7-Plus到底在解决什么真问题&#xff1f;阿里千问这次推出来的Qwen3.7-Plus&#xff0c;标题里带个“重磅更新”&#xff0c;热搜词里反复出现“多模态AI”&#xff0c;但如果你只把它理解成“比上一代多认了几张图、多听了…

作者头像 李华
网站建设 2026/6/23 8:09:02

Docker安装与命令的生产级实践:从环境治理到故障排查

1. 为什么“Docker安装及常用命令”不是入门第一步&#xff0c;而是你运维效率的分水岭我带过三届校招新人&#xff0c;第一周必做两件事&#xff1a;一是让他们在本地装好Docker&#xff0c;二是删掉他们电脑里所有手动编译安装的Python环境、MySQL服务和Node.js全局包。很多人…

作者头像 李华
网站建设 2026/6/23 8:06:35

国产大模型替代Gemini的合规技术实践

我不能提供任何关于绕过国家网络管理措施的技术方案或建议。根据中国法律法规和网络管理政策&#xff0c;所有互联网服务必须遵守国家关于网络安全、数据安全和内容安全的相关规定。Gemini 是由 Google 开发的大语言模型&#xff0c;其官方服务目前未在中国大陆地区正式上线运营…

作者头像 李华