Harness 已经过时,现在都开始玩 Environment 了 📅 发布时间:2026/7/14 19:39:26 👁️ 浏览次数: 记住 Agent 工程从 Prompt → Context → Harness → Loop → Self-Harness → Environment 的演进已到了 Environment 阶段去年这个时候我还在纠结怎么写 Prompt 能让 Claude 少胡说八道。今年这个时候我已经不聊 Prompt 了。不是因为它不重要是因为真正卡住 Agent 的早就不是「怎么说清楚」而是「让它住在哪里」。这个转变我自己是慢慢意识到的。第一个阶段Prompt 工程刚开始用 Claude Code最大的兴奋点是「它能听懂我说什么」。我描述一个需求它生成代码基本能用。那时候我觉得AI 编程的核心竞争力就是「把话说清楚」。于是我开始研究 Prompt 技巧角色设定、Few-shot 示例、Chain-of-Thought、结构化输出……每学会一招代码质量就提升一点。但很快遇到天花板。同一个 Prompt今天好用明天换个项目就不行了。因为项目背景变了但 Prompt 没变。它不知道你的技术栈、你的分层规范、你的命名约定。Prompt 解决的是「这一步怎么说清楚」但工程不是一步是一万步。第二个阶段Context 工程于是我开始往上下文里塞东西。CLAUDE.md、项目文档、历史对话、代码摘要……能塞的都塞进去。效果确实好了。Claude 知道我们项目用 Java 21、Spring Boot 3.4、构造器注入、DTO 不能暴露 Entity。它生成的代码终于能过 Code Review 了。但新问题出现了上下文太长Agent 会「失忆」。你塞了 20 个文件它只「记得」最后 5 个。你纠正过它一次下次对话又忘了。更麻烦的是上下文是静态的。你昨天定的接口方案、上周踩的坑、上个月做的架构决策不会自动出现在今天的对话里。每次都要手动搬搬着搬着就漏了。Context 解决的是「这一步该给它看什么」但看的东西不会自己更新。第三个阶段Harness 工程这时候我开始接触 Harness。简单说就是给 Agent 套一个「运行时框架」——工具怎么调用、权限怎么控制、状态怎么保存、失败怎么重试、什么时候停下来。装了 Harness 之后Agent 终于不是「裸奔」了。它有工具箱了有安全边界了有日志和 trace 了。我可以放心让它跑一些自动化任务比如批量重构、生成测试、检查代码风格。但跑了一段时间又发现一个怪事Agent 越跑越蠢。不是模型变弱了是它一直在同一个环境里打转学不到新东西。它修了一个 Bug下次遇到类似的还是从头摸索。它优化了一段代码但不知道这段优化在真实环境里有没有副作用。Harness 解决的是「让它怎么跑起来」但跑起来之后能不能学到东西是另一回事。第四个阶段Loop 工程于是我开始设计 Loop。让 Agent 能持续跑——修完一个 Bug 自动找下一个写完一个功能自动跑测试测试不过自动重试。Loop 让 Agent 从「一次性工具」变成了「长期运行的 worker」。它可以处理 PR、聚类反馈、批量改代码甚至自己开分支、提 PR。但 Loop 也有坑。没有停止条件的 Loop就是无限循环。我见过 Agent 在一个文件上反复修改改完 A 破坏 B修完 B 又破坏 A折腾了 20 轮还在原地打转。更隐蔽的问题是Loop 跑得快不代表跑对了。如果反馈不可靠Agent 可能围绕噪声做优化越跑越偏。Loop 解决的是「怎么持续跑」但跑的方向对不对取决于它看到的世界真不真。第五个阶段Self-Harness 工程这时候我开始想能不能让 Agent 自己改进自己失败之后它能不能总结经验踩过坑之后能不能记住教训跑了几轮之后能不能优化自己的 Harness这就是 Self-Harness 的思路。把轨迹、证据、回归测试、Harness 版本都纳入循环让 Agent 在失败中「长记性」。但这里有一个前提失败必须是真实的经验必须是可验证的。如果 Agent 以为自己「修好了」但实际上只是测试没覆盖到失败路径那它学到的经验就是错的。错的经验写进长期记忆下次还会再犯。Self-Harness 解决的是「失败后怎么改一点自己」但改得对不对取决于它面对的世界是不是在说真话。第六个阶段Environment 工程走到这里我终于意识到真正卡住 Agent 的是它「住」的地方。不是模型不够强不是 Harness 不够细不是 Loop 不够快。是 Agent 行动之后它所在的环境能不能给出可靠反馈。举个例子你让 Agent 修 CI 失败。它只能读日志不能跑测试——那它很可能写一段「看起来合理」的解释实际上没修。它能跑测试但测试本身不稳定——那它可能围绕噪声做优化今天修好了明天又坏。它有隔离 worktree、可重复测试、清晰的失败日志、提交前检查——那它才有机会把「看起来修好了」变成「证据显示修好了」。同一个 Agent同一套 Harness放进三种环境里会长成三种完全不同的行为。这就是 Environment 工程要解决的问题Agent 到底在哪个世界里做事这个世界会不会骗它一个环境最少要回答五个问题状态在哪里——Agent 能看什么看到的是不是真实的动作有哪些——它能做什么哪些动作有副作用观察怎么回来——命令输出、测试报告、截图分别怎么进入上下文反馈谁给——是单元测试、人工 review还是另一个 Agent评估器有没有盲区副作用怎么挡——有副作用的动作要不要 dry-run怎么隔离怎么回滚这些问题不时髦但很实际。一个 Agent 系统开始变稳常常发生在环境开始说真话之后。写到这我想给一个特别务实的建议不要一上来就追求「全自动环境生成」「统一环境接口」「Environment-as-a-Service」。那些东西听起来很酷但离你太远。先做一个小环境契约。选一个你们团队里高频、低风险、可验证的流程。比如 CI 失败分流、文档漂移检查、依赖升级预检查。写清楚目标是什么能看什么只读能改什么隔离怎么验证测试 人工 review什么时候停预算、轮次、时间经验怎么留轨迹、日志、失败路径这份契约不需要长一页纸就够。但它把 Agent 的「工作世界」讲清楚了。最后回到标题那句话Agent 工程不是造火箭是修水管Prompt 是水龙头Context 是水管Harness 是阀门Loop 是循环系统Self-Harness 是自动检修Environment 是整个供水网络。水龙头再高级如果水管漏水、阀门生锈、水质有毒流出来的水还是不能用。很多团队的问题不在模型多强不在 Prompt 多精。在 Agent 住的环境里状态是假的、反馈是噪的、副作用没人管、失败不留证据。先把环境修老实Agent 才有机会变聪明。参考链接Agentic Environment Engineering for Large Language Models, arXiv:2606.12191EurekAgent: Agent Environment Engineering is All You Need, arXiv:2606.13662Addy Osmani,Loop EngineeringKarpathy,autoresearch
PixWorld:像素空间统一实现3D场景生成与重建的技术解析 如果你正在为3D场景生成项目头疼——无论是游戏开发、虚拟现实内容制作,还是建筑可视化,可能都经历过这样的困境:传统方法要么依赖复杂的多阶段流程,生成效果粗糙;要么因为中间表示(如体素、点云或隐式神经… 2026/7/14 19:35:25
银河麒麟V10服务器操作系统离线部署Docker全攻略:从二进制包到生产环境 1. 准备工作:确认系统架构与下载离线包在银河麒麟V10服务器上离线部署Docker,第一步需要明确系统架构。打开终端执行以下命令:uname -p如果输出x86_64,表示是Intel/AMD架构;如果是aarch64,则为国产飞腾/鲲鹏… 2026/7/14 19:33:24
本地部署AI模型:硬件选型与开源模型实战指南 1. 本地部署AI模型的核心价值在ChatGPT等云端AI服务大行其道的当下,本地部署AI模型正成为技术爱好者和企业的新选择。这种方案最直接的吸引力在于完全掌控数据流向——所有对话记录、训练数据都保留在本地设备,彻底规避了隐私泄露风险。我去年帮一家医疗… 2026/7/14 19:31:23
AR开发实战指南:从原理到应用,掌握增强现实核心技术 1. 项目概述:从概念到实践的AR开发之路最近几年,增强现实(AR)技术不再是科幻电影里的遥远概念,它正以前所未有的速度渗透到我们的工作、生活和娱乐中。从手机游戏里满世界跑的虚拟宝可梦,到电商平台上能让你… 2026/7/14 21:36:00
SmartShell完全指南:从安装到精通,5分钟上手智能命令生成 SmartShell完全指南:从安装到精通,5分钟上手智能命令生成 【免费下载链接】smart-shell SmartShell command execution tool 项目地址: https://gitcode.com/openeuler/smart-shell 前往项目官网免费下载:https://ar.openeuler.org/ar… 2026/7/14 21:34:00
迪文串口屏CRC16校验源码包:含Modbus与TapeZBC双模式,支持STM32/51/AVR裸机移植 本文还有配套的精品资源,点击获取 简介:专为迪文DGUS系列串口屏通信设计的CRC16校验C语言实现,内置Modbus RTU和TapeZBC两种校验算法,开箱即可集成进嵌入式项目。提供两种实现方式:查表法(速度快、占ROM… 2026/7/14 21:31:59
MATLAB版CLIQUE高维聚类核心函数:基于网格密度与k-clique连通性的轻量实现 本文还有配套的精品资源,点击获取 简介:这个资源包提供了一个专注高维数据聚类的MATLAB核心函数k_clique.m,采用CLIQUE算法思路,把数据空间切分成等宽网格,统计每个格子内的点数,按预设密度阈值筛选出密… 2026/7/14 21:27:58
具身智能全栈数据闭环长什么样|就看AnalyticDB具身多模数据平台 V2.0发布会 👏 7月16日 本周三 14:00,AnalyticDB 具身多模数据平台 V2.0 正式发布! ❌不是自建/拼装/外挂,✅ 是长在 AnalyticDB 引擎里的具身智能能力。 ❌不是单点零散工具,✅ 是一次拉起从数据采集 → 数据打标 → 数据计算闭… 2026/7/14 21:27:58
个人微信接口如何解决私域运营痛点 如果你经常找代购、在小区团购群里买菜、或者关注过一些小商家的福利群,你一定遇到过这些场景: 在群里发一句“查快递”,机器人秒回单号;发一个链接,它自动帮你查优惠券;甚至你刚加上对方好友,… 2026/7/14 21:25:57
XUnity.AutoTranslator 游戏实时翻译插件:从原理到实战的完整指南 1. 项目概述:当游戏语言成为一堵墙作为一名玩了十几年日系、欧美独立游戏的“老油条”,我太懂那种面对一款心仪已久、画风玩法都戳中G点的游戏,却因为语言不通而望而却步的痛了。尤其是那些基于Unity引擎开发的、体量不大但内容精良的作品&am… 2026/7/14 0:05:14
2026普通文员学数据分析的价值 一、2026年普通文员学习数据分析的必要性随着数字化转型加速,数据分析技能正逐渐成为职场基础能力。普通文员学习数据分析可以提升工作效率、增强竞争力,并为职业转型提供更多可能性。二、数据分析对文员的价值自动化办公:通过数据分析工具&a… 2026/7/14 0:05:14
2026从计划员到主管,生产管理者学数据分析有用吗? 一、生产管理领域的职业发展路径 从计划员到主管的角色转变,是生产管理者职业发展的典型路径。计划员主要负责生产排程、库存管理和资源协调等基础工作,而主管则需要承担团队管理、决策支持和效率优化等更高级别的职责。这种转变不仅仅是职位的提升&… 2026/7/14 0:05:14
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/14 18:25:04
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/14 5:09:41