智能体 Harness Engineering (驾驭工程) 架构设计剖析
大家好我是玄姐。PSOpenClaw 之后Harness Engineering 到底是什么在企业如何落地有哪些使用场景具体的实践经验是什么今晚开场直播详细讲解欢迎点击预约直播见。摘要智能体 模型 驾驭层Harness。驾驭层工程Harness Engineering是我们围绕模型构建系统、将其转变为工作引擎的过程。模型包含智能而驾驭层让这份智能变得可用。本文定义了什么是驾驭层并推导了当今和未来智能体所需的核心架构组件。一、谁能给驾驭层Harness下个定义智能体 模型 驾驭层如果你不是模型你就是驾驭层。驾驭层是除模型本身之外的所有代码、配置和执行逻辑。一个原始模型不是智能体。但当驾驭层赋予它状态、工具执行、反馈循环和可强制执行的限制时它就成为了智能体。具体而言驾驭层包括系统提示词System Prompts工具、Skills、MCP 及其描述配套基础设施文件系统、沙盒、浏览器编排逻辑子智能体生成、交接、模型路由用于确定性执行的钩子/中间件压缩、续接、代码检查在模型和驾驭层之间划分智能体系统的边界有许多混乱的方式。但在我看来这是最清晰的定义因为它迫使我们思考如何围绕模型智能来设计系统。本文的其余部分将介绍驾驭层的核心架构组件并从模型的最基本原语出发推导为什么需要每个架构组件。二、为什么我们需要驾驭层……从模型的视角来看有些事情我们希望智能体去做但模型开箱即用是做不到的。这就是驾驭层发挥作用的地方。模型主要接收文本、图像、音频、视频等数据然后输出文本。仅此而已。开箱即用它们无法在多次交互之间维持持久状态执行代码访问实时知识设置环境并安装软件包以完成工作这些都是驾驭层级别的功能。LLM 的结构要求必须有某种机制将其包裹起来才能完成有用的工作。例如要实现聊天这样的产品体验我们需要将模型包裹在一个 while 循环中以跟踪先前的消息并追加新的用户消息。阅读本文的每个人都用过这种驾驭层。核心思想是我们将期望的智能体行为转化为驾驭层中的实际功能。三、从期望的智能体行为逆向推导驾驭层工程驾驭层工程帮助人类注入有用的先验知识来引导智能体行为。随着模型能力越来越强驾驭层被用来精确地扩展和纠正模型以完成以前不可能完成的任务。我们不会列出驾驭层功能的详尽清单。目标是从帮助模型完成有用工作的起点出发推导出一套功能。我们将遵循这样的模式我们想要的或想要修复的行为 → 帮助模型实现这一目标的驾驭层设计3.1 文件系统持久化存储与上下文管理我们期望的行为智能体拥有持久化存储以便与真实数据交互、卸载无法放入上下文的信息并跨会话保持工作成果。模型只能直接在其上下文窗口内操作知识。在文件系统出现之前用户必须直接复制/粘贴内容给模型这种用户体验很笨拙而且对自主智能体行不通。世界早已在使用文件系统完成工作因此模型自然在数十亿 tokens 的训练数据中学习到了如何使用它们。自然的解决方案变成了驾驭层配备文件系统抽象和文件操作工具。文件系统可以说是最基础的驾驭层原语因为它解锁了以下能力工作空间智能体可以读取数据、代码和文档。增量工作工作可以逐步添加和卸载而不是全部保存在上下文中。智能体可以存储中间输出并维持超出单次会话的状态。协作表面文件系统是自然的协作界面。多个智能体和人类可以通过共享文件进行协调。像智能体团队Agent Teams这样的架构依赖于此。版本控制Git 为文件系统增加了版本管理使智能体能够跟踪工作、回滚错误和分支实验。我们将在下文再次提到文件系统因为它实际上是其他所需功能的关键驾驭层原语。3.2 Bash 代码通用工具我们期望的行为智能体能够自主解决问题无需人类预先设计每一个工具。今天的主流的智能体执行模式是 ReAct 循环模型推理、通过工具调用采取行动、观察结果、重复循环。但驾驭层只能执行它们拥有逻辑的工具。与其强迫用户为每一个可能的动作都构建工具不如给智能体一个通用工具如 Bash。驾驭层配备 Bash 工具让模型通过编写和执行代码自主解决问题。Bash 代码执行是向模型提供一台计算机并让它自主解决其余问题的重要一步。模型可以通过代码即时设计自己的工具而不是受限于固定的预配置工具集。驾驭层仍然配备其他工具但代码执行已成为自主问题解决的默认通用策略。3.3 沙盒与工具执行与验证工作我们期望的行为智能体需要具备正确默认配置的环境以便安全地行动、观察结果并取得进展。我们已经赋予模型存储能力和执行代码的能力但所有这些都需要在某个地方发生。在本地运行智能体生成的代码是危险的而且单一的本地环境无法扩展到大规模智能体工作负载。沙盒Sandboxes为智能体提供了安全的操作环境。驾驭层不再在本地执行而是可以连接到沙盒来运行代码、检查文件、安装依赖并完成任务。这创造了代码的安全、隔离执行。为了更高的安全性驾驭层可以设置命令白名单并强制网络隔离。沙盒还解锁了规模化能力因为环境可以按需创建、分散到众多任务中并在工作完成后销毁。良好的环境配备良好的默认工具。驾驭层负责配置工具使智能体能够完成有用的工作。这包括预装语言运行时和软件包、Git 和测试用的 CLI、用于网页交互和验证的浏览器。浏览器、日志、截图和测试运行器等工具赋予智能体观察和评估其工作的方式。这帮助它们创建自我验证循环编写应用代码、运行测试、检查日志、修复错误。模型开箱即用不会配置自己的执行环境。决定智能体在哪里运行、有哪些工具可用、能访问什么、如何验证其工作这些都是驾驭层级别的设计决策。3.4 记忆与搜索持续学习我们期望的行为智能体应该记住它们见过的东西并能访问在它们训练时还不存在的信息。模型除了权重和当前上下文中的内容外没有额外的知识。在不修改模型权重的情况下增加知识的唯一方式是通过上下文注入。对于记忆文件系统再次成为核心原语。驾驭层支持 AGENTS.md 等记忆文件标准这些文件在智能体启动时被注入上下文。随着智能体添加和编辑此文件驾驭层将更新后的文件加载到上下文中。这是一种持续学习的形式智能体在一个会话中持久存储知识并在未来会话中注入这些知识。知识截止日期意味着模型无法直接访问新数据比如更新的库版本除非用户直接提供。为了获取最新知识网页搜索和 Context7 等 MCP 工具帮助模型访问超出知识截止日期的信息比如新的库版本或训练停止后才出现的当前数据。网页搜索和用于查询最新上下文的工具是驾驭层中值得内置的有用原语。3.5 对抗上下文退化Context Rot我们期望的行为智能体性能不应随着工作进展而下降。上下文退化Context Rot描述了模型随着上下文窗口填满在推理和完成任务方面变得更差的现象。上下文是宝贵且稀缺的资源因此驾驭层需要策略来管理它。今天的驾驭层很大程度上是优秀上下文工程的交付机制。压缩Compaction解决了当上下文窗口接近填满时该怎么办的问题。没有压缩时当对话超出上下文窗口会发生什么一种选择是 API 报错这不太好。驾驭层必须对这种情况使用某种策略。因此压缩智能地卸载和总结现有上下文窗口让智能体能够继续工作。工具调用卸载Tool call offloading有助于减少大型工具输出的影响这些输出可能会嘈杂地混乱上下文窗口却不提供有用信息。驾驭层保留超过阈值 tokens 数的工具输出的头部和尾部并将完整输出卸载到文件系统以便模型在需要时可以访问。技能Skills解决了在智能体启动时将过多工具或 MCP 服务器加载到上下文中导致性能下降的问题在智能体开始工作前就退化性能。技能是一种驾驭层级别的原语通过渐进式披露progressive disclosure解决这个问题。模型并没有选择在启动时将技能前言加载到上下文中但驾驭层可以支持这一点以保护模型免受上下文退化的影响。3.6 长时程自主执行我们期望的行为我们希望智能体能够在长时程内自主、正确地完成复杂工作。自主软件创建是编程智能体的圣杯。但今天的模型存在提前停止early stopping、复杂问题分解困难以及跨多个上下文窗口工作时的不连贯性等问题。优秀的驾驭层必须围绕所有这些进行设计。这就是前面的驾驭层原语开始产生复合效应的地方。长时程工作需要持久状态、规划、观察和验证以便在多个上下文窗口中持续工作。文件系统和 Git用于跨会话跟踪工作。智能体在长任务中产生数百万 tokens因此文件系统持久地捕获工作以便随时间跟踪进度。添加 Git 允许新智能体快速了解项目的最新工作和历史。对于多个智能体一起工作文件系统也充当工作的共享账本智能体可以在此协作。Ralph 循环Ralph Loops用于继续工作。Ralph 循环是一种驾驭层模式它通过钩子拦截模型的退出尝试并在干净的上下文窗口中重新注入原始提示强制智能体针对完成目标继续其工作。文件系统使这成为可能因为每次迭代都以全新的上下文开始但会读取前一次迭代的状态。规划与自我验证用于保持正轨。规划是模型将目标分解为一系列步骤的过程。驾驭层通过优秀的提示工程和在文件系统中注入如何使用计划文件的提醒来支持这一点。在完成每一步后智能体通过自我验证来检查其工作的正确性从而受益。驾驭层中的钩子可以运行预定义的测试套件并在失败时带着错误消息循环回到模型或者可以提示模型独立评估其代码。验证将解决方案建立在测试中并创建自我改进的反馈信号。四、驾驭层的未来4.1 模型训练与驾驭层设计的耦合现在的 AI 编程助手比如 Claude Code 和 OpenAI 的 Codex它们的训练方式跟以前不一样了。以前的训练就像让学生只看教科书学开车看遍所有驾驶手册但从来没摸过方向盘。它们记住了知识但不知道怎么实际操作。现在的训练后训练则是直接给学员一辆真车有方向盘、有刹车、有导航系统。模型就在这个真实的驾驭层环境里学习怎么打方向、怎么变道、怎么用 GPS。它们一边学理论一边在真实工具上练习。这带来一个有趣的现象模型和它使用的工具在互相磨合中成长。工具越用越顺手是因为专门练过想象一下这个循环开发者发现给模型配一个文件阅读器工具特别好用。于是把这个工具加入驾驭层然后用这套配置去训练新版本的模型。新模型在大量练习中变得越来越擅长使用这个文件阅读器知道什么时候该读文件、怎么快速找到关键内容。模型变强了开发者又发现代码编辑器工具也很实用再加入驾驭层再拿去训练下一代模型。结果就是模型不是学会了通用的工具使用能力而是变成了这套特定工具的熟练工。就像一个人常年用某款特定的炒菜锅手法越来越熟练但换口锅可能就不适应了。坏习惯太依赖顺手的那口锅这种深度磨合有个副作用模型被惯坏了。举个例子Codex-5.3 被训练使用一种特定的apply_patch打补丁方式来修改代码文件。这种特定的方法可能是按 A 格式读取旧代码再按 B 格式生成新代码。按理说一个真正聪明的程序员不管你给他什么编辑工具是直接覆盖文件、用 diff 对比、还是用补丁方式他都应该能完成修改任务。但实际上如果你把apply_patch的实现方式稍微改一改比如从读取生成改成直接覆盖Codex-5.3 的表现就会明显下降。因为它已经形成肌肉记忆了不是学会了怎么编辑文件这个通用技能而是习惯了用特定格式打补丁这个具体操作。这就是过拟合模型对特定工具的实现细节形成了依赖失去了灵活应变的能力。好消息你可以给它换口更顺手的锅但这也带来一个机会即使模型是在某个特定驾驭层里训练出来的你也可以通过优化驾驭层让它表现得更好。Terminal Bench 2.0一个编程能力排行榜证明了这一点。同样是 Opus 4.6 这个模型在 Claude Code 自带的驾驭层里它排名靠后。但 LangChain 团队只是调整了驾驭层的配置换了更合适的工具组合、优化了提示词方式、调整了执行流程同样的模型就从前30名冲进了前5名。这说明什么就像给同一个程序员换了一套更顺手的开发环境、更清晰的文档、更合理的快捷键他的产出效率就能大幅提升。所以别认为官方默认配置就是最好的。即使模型是在特定环境中训练出来的针对你的具体任务继续优化驾驭层往往能获得远超预期的收益。还有很多潜力可以挖掘。4.2 驾驭层工程的发展方向随着模型能力越来越强今天存在于驾驭层中的一些功能将被吸收到模型中。模型将在规划、自我验证和长时程连贯性方面天生变得更好因此例如需要更少的上下文注入。这表明驾驭层的重要性会随时间降低。但就像提示工程prompt engineering今天仍然有价值一样驾驭层工程harness engineering很可能在构建优秀智能体方面继续有用。确实今天的驾驭层弥补了模型的不足但它们也围绕模型智能工程化系统使其更加有效。配置良好的环境、正确的工具、持久状态和验证循环能让任何模型更高效无论其基础智能如何。驾驭层工程是一个非常活跃的研究领域在 LangChain 用它来改进驾驭层构建库 deepagents。PSOpenClaw 之后Harness Engineering 到底是什么在企业如何落地有哪些使用场景具体的实践经验是什么今晚开场直播详细讲解欢迎点击预约直播见。好了这就是我今天想分享的内容。如果你对构建企业级 AI 原生应用新架构设计和落地实践感兴趣别忘了点赞、关注噢~—1—加我微信扫码加我有很多不方便公开发公众号的我会直接分享在朋友圈欢迎你扫码加我个人微信来看加星标★不错过每一次更新⬇戳”阅读原文“立即预约
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2442495.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!