ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI Agent 核心架构与工程实践:从 ReAct 到 Harness 的完整拆解

AI Agent 核心架构与工程实践:从 ReAct 到 Harness 的完整拆解 这里写自定义目录标题欢迎使用Markdown编辑器引言为什么 Agent 是 AI 应用的下一个范式一、Agent 的认知架构从 ReAct 到更复杂的范式1.1 ReActAgent 的启蒙范式1.2 从 ReAct 到图状态机1.3 H-V-R 范式假设-验证-反思二、Harness驾驭 Agent 的工程框架2.1 什么是 Harness2.2 Harness 的核心组件2.3 为什么 Harness 决定了 Agent 的上限三、工具系统Agent 连接世界的桥梁3.1 工具的本质3.2 工具设计的工程要点3.3 MCP 协议工具标准化的方向四、记忆系统让 Agent 从一次性走向持续服务4.1 记忆的分层4.2 长期记忆的实现4.3 记忆的遗忘机制五、Agent 工程化的落地实践5.1 从 Demo 到生产的鸿沟5.2 可观测性让 Agent 行为可审计5.3 评测闭环持续改进的引擎六、我的几点实践心得新的改变功能快捷键合理的创建标题有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能丰富你的文章UML图表流程图FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好 这是你第一次使用# AI Agent 核心架构与工程实践从 ReAct 到 Harness 的完整拆解引言为什么 Agent 是 AI 应用的下一个范式最近和几个做 AI 应用落地的朋友聊天大家普遍有个感觉单纯调用大模型的 API做个问答或者文本生成已经越来越没劲了。项目初期一个简单的 Prompt 就能做出个 Demo效果惊艳。但一旦想把它做成一个能稳定运行、处理复杂任务的系统各种问题就接踵而至任务一复杂模型就开始胡言乱语需要调用外部工具时流程控制变得异常繁琐状态管理、错误处理、长期记忆……这些在传统软件开发里司空见惯的概念在基于大模型的系统里却要重新造轮子。这背后的核心矛盾在于我们是在用一个对话模型去干智能体的活儿。大语言模型LLM本质是一个强大的世界知识压缩器和文本模式匹配器它擅长的是在单次交互中生成符合上下文的文本。但现实世界的任务无论是分析一份财报、编写一个爬虫脚本还是规划一次旅行都是多步骤、有状态、需要与环境工具、API、数据库持续交互的过程。把 LLM 直接当大脑用就像让一位博闻强识的学者去指挥一场交响乐他或许知道每个乐器的原理但缺乏指挥的节奏感、协调性和对全局流程的控制力。于是Agent智能体的概念被推到了前台。它不再把 LLM 仅仅视为一个文本生成器而是将其作为核心的推理引擎或决策中心围绕它构建起一整套感知、规划、执行和反思的架构。简单说Agent LLM大脑 规划能力思维链/ReAct 工具使用Skill 记忆模块 执行环境。它的目标是让 AI 能够像人一样自主理解复杂目标拆解任务调用合适工具并在执行中根据反馈调整策略直至完成任务。本文将从认知架构、Harness 概念、工具系统、记忆系统、以及工程化落地几个维度完整拆解 Agent 开发的方方面面。一、Agent 的认知架构从 ReAct 到更复杂的范式1.1 ReActAgent 的启蒙范式ReActReasoning Acting推理 行动是 Agent 领域最经典的认知架构。它的核心思想是让模型在思考和行动之间交替Thought思考模型分析当前状态决定下一步该做什么Action行动模型选择一个工具并给出调用参数Observation观察系统执行工具调用把结果返回给模型回到第 1 步直到任务完成这个循环看似简单却解决了 Agent 最核心的问题让模型边想边做而不是一次想完再一起做。ReAct 的巧妙之处在于它把推理过程显式化让模型能够根据工具返回的真实结果调整策略而不是凭想象硬撑。1.2 从 ReAct 到图状态机ReAct 虽然经典但有一个致命缺陷它是线性的缺乏对复杂流程的控制力。当任务需要条件分支、循环、并行执行时ReAct 就力不从心了。2026 年的主流范式是图状态机。以 LangGraph 为代表的框架把 Agent 建模为一张有向图节点Node计算单元可以是模型调用、工具执行、数据处理边Edge路由逻辑决定执行完一个节点后下一步去哪状态State贯穿全图的共享内存保存中间结果和上下文这种范式的优势在于开发者可以精确控制 Agent 的执行流程把模型自由发挥限制在合理的范围内。比如你可以规定先检索再生成、“工具调用失败后重试两次”、超过 5 步强制终止等规则让 Agent 的行为可预测、可控、可审计。1.3 H-V-R 范式假设-验证-反思在 ReAct 和图状态机之上2026 年还出现了一种更高级的认知范式——H-V-RHypothesis-Verification-Reflection假设-验证-反思。它的核心思想是Agent 不再边想边做而是先提出假设再通过工具验证最后根据验证结果反思修正。这种范式特别适合需要严谨性的场景比如科研、数据分析、代码生成。它通过提出假设 → 设计验证方案 → 执行验证 → 反思修正的循环显著降低了模型的幻觉率。二、Harness驾驭 Agent 的工程框架2.1 什么是 Harness在 AI Agent 的语境下Harness 的含义接近于驾驭、“控制或治理”。你可以把它理解为一套用于驾驭LLM 能力使其能可靠、安全、高效地完成复杂任务的工程框架、方法论和最佳实践的集合。这不仅仅是写个 Prompt 那么简单它涉及到如何设计 Agent 的认知架构如 ReAct如何定义和管理可复用的能力单元Skill/SubAgent如何确保任务执行的可靠性与安全性以及如何将多个 Agent 协同起来处理更宏大的问题。2.2 Harness 的核心组件一个完整的 Harness 通常包含以下组件上下文管理器负责上下文的组装、压缩、裁剪确保模型始终看到关键信息工具注册中心负责工具的注册、描述、参数校验、调用调度记忆系统负责短期记忆和长期记忆的读写、检索、整理评测模块负责对 Agent 输出进行质量评估和反馈循环控制器负责控制 Agent 的迭代次数、超时、终止条件可观测性模块负责日志、追踪、指标采集让 Agent 行为可审计2.3 为什么 Harness 决定了 Agent 的上限很多人以为 Agent 的能力上限由模型决定其实不然。模型是思考引擎但思考能否转化为可靠的行动取决于 Harness 的质量。举个例子一个模型可能知道如何调用搜索工具但如果 Harness 没有做好工具描述模型就会乱传参数如果 Harness 没有做好错误处理工具调用失败后 Agent 就会卡死如果 Harness 没有做好上下文管理长对话后模型就会失忆。这些问题的根源都不在模型而在 Harness。三、工具系统Agent 连接世界的桥梁3.1 工具的本质工具是 Agent 连接外部世界的桥梁。一个 Agent 的能力边界很大程度上由它的工具集决定。工具可以是 API 调用、数据库查询、代码执行、文件读写、网页访问等任何可编程的能力。3.2 工具设计的工程要点设计工具系统时有几个关键的工程要点第一工具描述要面向模型。工具描述不是给人看的是给模型看的。描述要写清楚这个工具是干什么的、参数是什么含义、返回值是什么结构、什么情况下该用这个工具。描述写得越清楚模型调用就越准确。第二参数校验要严格。模型生成的参数不一定合法工具层必须做严格的参数校验和类型转换防止脏数据进入系统。第三错误处理要健壮。工具调用可能失败网络超时、接口报错、数据异常工具层要定义清晰的错误码和错误信息让 Agent 能够理解失败原因并调整策略。第四权限控制要严格。不是所有工具都该让 Agent 随意调用。涉及敏感操作删除数据、发送消息、支付的工具必须设置权限边界和审批流程。3.3 MCP 协议工具标准化的方向2026 年MCPModel Context Protocol协议正在成为工具调用的行业标准。MCP 的核心思想是把工具能力描述成标准的 JSON Schema让模型能够统一理解不同来源的工具。这解决了 Agent 生态最大的痛点——工具碎片化。有了统一协议Agent 可以像插 USB一样接入各种工具生态的丰富度将大幅提升。四、记忆系统让 Agent 从一次性走向持续服务4.1 记忆的分层记忆是 Agent 从一次性对话走向持续服务的关键。2026 年的主流做法是把记忆分为两层短期记忆当前会话的上下文保存在内存中会话结束即清空长期记忆跨会话的持久化知识保存在外部存储中可以跨会话复用4.2 长期记忆的实现长期记忆的实现通常依赖外部存储向量数据库存语义记忆支持按相似度检索关系型数据库存结构化事实支持精确查询文件系统存原始文档支持全文检索记忆的写入需要经过筛选和整理不能什么都存——存太多会污染检索结果存太少又会丢失关键信息。记忆的读取需要按需检索不能什么都塞进上下文——上下文窗口是有限的塞太多反而会干扰模型判断。4.3 记忆的遗忘机制记忆系统还有一个容易被忽视的环节遗忘。不是所有信息都值得长期保存系统需要设计遗忘机制过期的信息要清理低价值的信息要降权冲突的信息要仲裁。一个健康的记忆系统应该像人脑一样既记得住重要的也忘得掉不重要的。五、Agent 工程化的落地实践5.1 从 Demo 到生产的鸿沟很多团队在 Demo 阶段很兴奋一上生产就崩溃。原因在于Demo 只验证了模型能不能做生产环境还要验证系统能不能稳定做。从 Demo 到生产需要补齐大量工程环节错误处理、超时重试、日志追踪、成本控制、权限治理、灰度发布。5.2 可观测性让 Agent 行为可审计生产级 Agent 必须有完善的可观测性。每一步执行都要有日志模型想了什么、调用了什么工具、工具返回了什么、最终输出了什么。这些日志不仅是排障的依据也是评测和优化的数据来源。5.3 评测闭环持续改进的引擎Agent 的评测比传统软件复杂得多因为它的输出是非确定性的。同一个输入模型可能给出不同的输出。因此Agent 评测不能只看单次结果要看统计分布跑 100 次成功率是多少平均耗时多少成本多少评测集要持续扩充把线上暴露的问题不断回流进去形成发现问题 → 加入评测 → 修复 → 回归的闭环。这是 Agent 持续改进的引擎。六、我的几点实践心得最后分享几点我在 Agent 工程化实践中的心得。第一先做能跑的再做跑得好的。很多团队一上来就追求完美的架构结果项目迟迟无法启动。正确的做法是先做一个能跑通全流程的最小版本再逐步优化。架构可以在迭代中演进但业务价值必须尽早交付。第二控制权要收放有度。Agent 的自主性是一把双刃剑自主性太强行为不可控自主性太弱又失去了 Agent 的意义。好的设计是在关键节点收权在细节环节放权——让模型在细节上自由发挥但在关键决策上由规则把关。第三工具质量决定 Agent 质量。我见过太多团队花大量时间调 Prompt却忽视了工具层的建设。实际上工具描述是否清晰、参数校验是否严格、错误处理是否健壮对 Agent 最终效果的影响往往比 Prompt 更大。第四把 Agent 当产品运营。Agent 不是开发完就完事的一次性项目而是一个需要持续运营的产品。线上反馈要收集、评测集要扩充、模型要迭代、成本要治理。只有把 Agent 当作产品来运营它才能持续创造价值。Agent 开发是一场系统工程的马拉松而不是调 Prompt的百米冲刺。理解了认知架构、Harness、工具系统、记忆系统这些核心组件你就掌握了 Agent 开发的底层逻辑。剩下的就是在实践中不断打磨和迭代。Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持除了标准的Markdown编辑器功能我们增加了如下几点新功能帮助你用它写博客全新的界面设计将会带来全新的写作体验在创作中心设置你喜爱的代码高亮样式Markdown将代码片显示选择的高亮样式进行展示增加了图片拖拽功能你可以将本地的图片直接拖拽到编辑区域直接展示全新的KaTeX数学公式语法增加了支持甘特图的mermaid语法1功能增加了多屏幕编辑Markdown文章功能增加了焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置等功能功能按钮位于编辑区域与预览区域中间增加了检查列表功能。功能快捷键撤销Ctrl/CommandZ重做Ctrl/CommandY加粗Ctrl/CommandB斜体Ctrl/CommandI标题Ctrl/CommandShiftH无序列表Ctrl/CommandShiftU有序列表Ctrl/CommandShiftO检查列表Ctrl/CommandShiftC插入代码Ctrl/CommandShiftK插入链接Ctrl/CommandShiftL插入图片Ctrl/CommandShiftG查找Ctrl/CommandF替换Ctrl/CommandG合理的创建标题有助于目录的生成直接输入1次#并按下space后将生成1级标题。输入2次#并按下space后将生成2级标题。以此类推我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。如何改变文本的样式强调文本强调文本加粗文本加粗文本标记文本删除文本引用文本H2O is是液体。210运算结果是 1024.插入链接与图片链接: link.图片:带尺寸的图片:居中的图片:居中并且带尺寸的图片:当然我们为了让用户更加便捷我们增加了图片拖拽功能。如何插入一段漂亮的代码片去博客设置页面选择一款你喜欢的代码片高亮样式下面展示同样高亮的代码片.// An highlighted blockvarfoobar;生成一个适合你的列表项目项目项目项目1项目2项目3计划任务完成任务创建一个表格一个简单的表格是这么创建的项目Value电脑$1600手机$12导管$1设定内容居中、居左、居右使用:---------:居中使用:----------居左使用----------:居右第一列第二列第三列第一列文本居中第二列文本居右第三列文本居左SmartyPantsSmartyPants 是一个文本转换工具主要功能是将普通的 ASCII 标点符号自动转换为更美观的印刷体标点符号。例如原始符号转换后说明引号“引号”直引号变弯引号单引号‘单引号’直单引号变弯单引号--–两个连字符变短破折号---—三个连字符变长破折号...…三个点变省略号创建一个自定义列表MarkdownText-to-HTMLconversion toolAuthorsJohnLuke如何创建一个注脚一个具有注脚的文本。2注释也是必不可少的Markdown将文本转换为HTML。KaTeX数学公式您可以使用渲染LaTeX数学表达式 KaTeX:Gamma公式展示Γ ( n ) ( n − 1 ) ! ∀ n ∈ N \Gamma(n) (n-1)!\quad\forall n\in\mathbb NΓ(n)(n−1)!∀n∈N是通过欧拉积分Γ ( z ) ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) \int_0^\infty t^{z-1}e^{-t}dt\,.Γ(z)∫0∞​tz−1e−tdt.你可以找到更多关于的信息LaTeX数学表达式here.新的甘特图功能丰富你的文章2014-01-072014-01-092014-01-112014-01-132014-01-152014-01-172014-01-192014-01-21已完成进行中计划一计划二现有任务Adding GANTT diagram functionality to mermaid关于甘特图语法参考 这儿,UML图表可以使用UML图表进行渲染例如下面产生的一个序列图王五李四张三王五李四张三李四想了很长时间, 文字太长了不适合放在一行.你好李四, 最近怎么样?你最近怎么样王五我很好谢谢!我很好谢谢!打量着王五...很好... 王五, 你怎么样?关于UML图表语法参考 这儿,流程图链接长方形圆圆角长方形菱形关于Mermaid语法参考 这儿,FLowchart流程图我们依旧会支持flowchart.js的流程图语法Created with Raphaël 2.3.0开始我的操作确认结束yesno关于Flowchart流程图语法参考 这儿.导出与导入导出如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到文章导出生成一个.md文件或者.html文件进行本地保存。导入如果你想加载一篇你写过的.md文件在上方工具栏可以选择导入功能进行对应扩展名的文件导入继续你的创作。mermaid语法说明 ↩︎注脚的解释 ↩︎
返回列表