--- title: harness-engineering-alibaba-java-case-study source_url: https://mp.weixin.qq.com/s/rlIyIIZOXFObNIXbPI7gDg publish_date: 2026-05-07 tags: [wechat, article, openai, agent, harness, coding] review_value: 7 review_confidence: 7 review_recommendation: neutral sha256: 1739d3c4d5a03b89efff176ecad9e51e1a21214ccb84c1e5d50af39336061e22 --- ## 文章概要 阿里工程师在企业级 Java 应用(10万+行代码)上从零构建 Harness 体系,AI 代码率从 **24.86% 提升至 90.54%**。文章系统梳理三次范式跃迁(Prompt→Context→Harness)、四根支柱、四类失败模式,以及真实项目的完整实践路径。 ## 三次范式跃迁 | 阶段 | 时间 | 核心关注 | 隐喻 | |------|------|----------|------| | **Prompt Engineering** | 2022-2024 | 单次交互优化 | 写好一封邮件 | | **Context Engineering** | 2025 | 给 Agent 看什么 | 给邮件附上正确附件(Tobi Lutke) | | **Harness Engineering** | 2026 | 跨会话/跨Agent/跨阶段的完整系统架构 | 造一辆好车 | **核心引用**: - Ryan Lopopolo(OpenAI):*"Agents aren't hard; the Harness is hard."* - Mitchell Hashimoto(HashiCorp):*"Every time you discover an agent has made a mistake, you take the time to engineer a solution so that it can never make that mistake again."* ## Harness Engineering 四根支柱 ### 支柱一:上下文架构(Context Architecture) Agent 应恰好获得当前任务所需的上下文——不多不少。 **反面教训**(OpenAI 团队):AGENTS.md 写成百科全书 → "所有内容都重要 = 没有内容重要" **正确做法**:AGENTS.md ~100行,作为**索引和地图**(Index & Map),指向深层 Design Docs、Architecture Specs、Quality Criteria。 核心:上下文分层加载、按需获取。 ### 支柱二:Agent 专业化(Agent Specialization) 拥有受限工具集的专业 Agent,优于拥有全部权限的通用 Agent。 Anthropic 三角色分离: - **Planner**:负责规划 - **Generator**:负责实现 - **Evaluator**:负责验证 > "将做事的 Agent 和评判的 Agent 分开,是一个强有力的杠杆。" ### 支柱三:持久化记忆(Persistent Memory) 进度持久化在文件系统上,而非上下文窗口中。 Anthropic 标准化启动序列: ``` 检查当前工作目录 → 读取 Git Log 和进度文件(如 progress.md)→ 定位优先级最高的未完成任务 → 开始工作 ``` 使跨越数十个会话的长时间任务成为可能。 ### 支柱四:结构化执行(Structured Execution) 永远不让 Agent 在未经审查和批准书面计划之前写代码。 理想执行流:**理解 → 规划 → 执行 → 验证**(每个阶段之间有明确的质量门禁) OpenAI 团队经验:用 Custom Linter + Structure Tests + Taste Invariants 构建机械化约束。 > "Waiting is expensive, fixing is cheap" — 宁可让 Agent 多跑一轮验证,也不要在人工 Review 时才发现问题。 ## Anthropic 四类失败模式 | 失败模式 | 描述 | 解决方案 | |----------|------|----------| | **One-shot Syndrome** | 复杂需求在单个上下文窗口内完成,窗口超过 40% 填充率后质量快速衰退 | 上下文窗口 Sweet Spot < 40% | | **Premature Victory Declaration** | Agent 完成部分工作就宣布结束,核心功能未实现或验证 | 引入端到端验证(Puppeteer MCP 截图) | | **Premature Feature Completion** | Agent 认为功能已实现但未做端到端测试,部署后关键路径不通 | Browser Automation 自动化验证 | | **Cold Start Problem** | 多次会话间缺乏持久化记忆,新会话需大量 Token 重新理解项目 | progress.md + 持久化记忆体系 | **共同根源**:Agent 缺乏外部的结构化约束(Structured Constraints)和反馈机制(Feedback Mechanisms)。 **根本能力缺陷**:*"Agents are incapable of accurately evaluating their own work"* ## 企业级项目三大挑战 ### 1. 认知负担(Cognitive Load) 企业级 Java 应用特征:10万+行代码,HSF/Dubbo/gRPC、Temporal/LiteFlow、Apollo/Nacos、Tair/Redis 等。 Agent 的知识边界等于代码库的文件边界。如果某条架构约定不在代码库中以机器可读的形式存在,对 Agent 来说它就不存在。 **隐性知识问题**: - 某条链路是高频变更区(过去一年数十次 XML 改动) - 某个全局配置类在项目中有近百处引用 - 价格字段必须用 `long` 类型且单位为分 ### 2. 质量控制的系统性缺失(Systematic Quality Gap) Agent 生成代码语法正确、风格统一,但业务语义层面可能存在微妙错误。 当 Agent 产出速度远超人工审查速度时,质量瓶颈从"写代码"转移到"看代码"。 ### 3. 熵的累积(Entropy Accumulation) OpenAI 百万行代码实践中提出:Agent 写代码时会模仿代码库中已有的 Suboptimal Pattern。 **累积后果**:代码库逐渐腐化(Code Rot)。 **解法**:Golden Principles 编码化,后台 Agent 自动扫描违规并提交修复 PR → **"Entropy Garbage Collection"机制** ## 开发者角色范式转移 | 传统模式 | Agent-First 模式 | |----------|-----------------| | 写代码 | 设计 Agent 的工作环境(Working Environment Design)| | 调 Bug | 编写规范文档(Specification Authoring)| | Code Review | 管理任务拆分与验收(Task Orchestration & Acceptance)| **关键转变**:文档从"给人看的参考资料"变成"Agent 认识世界的唯一窗口"。发现 Bug 不再只是修代码,而是修 Harness。 ## 实战结果 | 指标 | 数值 | |------|------| | AI 代码率提升 | 24.86% → 90.54% | | 代码量 | 10万+ 行 Java | | 技术栈 | Java 1.8 / Spring Boot / LiteFlow / HSF / Diamond | ## 相关链接 - 参考:[[concepts/harness-engineering-framework]] - 参考:[[concepts/coding-harness-engineering]] - 参考:[[concepts/managed-agents-architecture]]