AI CodingHarness EngineeringSDD规范驱动开发阿里高德团队研发AI Agent

告别"氛围编程":阿里高德团队的Harness治理与SDD规范驱动开发实践

RSS智能摘要··原文链接
收录于 2026/5/15 18:11:09

🎯 核心发现:80%出码率 ≠ 提效

阿里高德大模型应用平台负责人王树新分享了一个令人困惑的事实:

"我们团队的AI出码率可以达到80%-90%以上,但查看PMO数据指标时,发现提效并不明显。"

现象

  • 出码率提升了近一倍(从53%到80%+)
  • 项目交付周期没有明显缩短
  • 开发者工作量并没有减少

这迫使团队重新思考:AI编程的真正提效瓶颈在哪里?


🚨 AI Coding的三大核心问题

问题1:自由发挥

AI生成的代码常常"天马行空":

  • 业务理解不足
  • 规范缺失
  • 一个功能可能生成三种不同实现,每种都"能跑",但都与现有架构格格不入

问题2:效率降低

听起来矛盾,但实际存在:

  • 指令不够清晰时,在多轮对话中反复拉扯
  • "改一下"→改了→"不对,是这样"→又改
  • 来回几次,还不如自己写

问题3:关键信息丢失

  • 多轮对话中,AI会"忘记"之前的重要约束
  • 任务粒度过大时,开头的架构要求到后面就消失了

🔍 为什么高出码率没有带来提效?

原因1:研发是全链路过程,不只是写代码

需求从提出到上线的完整链路:

产品提需 → 产研评审 → 方案设计 → 开发 → 代码评审 → 测试 → 联调 → 上线

每个环节都有:

  • 沟通成本
  • 等待时间
  • 出错可能

《人月神话》的启示

"没有银弹。软件开发不仅仅是编码,它涉及到沟通、协作、决策。"

计算:编码环节优化50%,但编码只占整个链路的30% → 整体提效只有15%

更何况,AI生成的代码可能带来更多:

  • Code Review时间
  • 调试时间
  • 返工时间

结论:真正的提效,必须打通全链路,而不仅仅是优化单个环节。

原因2:存量应用进行Vibe Coding风险极高

Vibe Coding(氛围编程):随口给AI几句提示词,让它几秒钟生成几千行代码。

存量应用的特点

  • 有历史包袱
  • 有隐式依赖
  • 有业务知识沉淀在代码里

风险案例

AI生成的代码修改了一个核心接口的参数顺序,单元测试全过了,但上线后导致三个下游服务报错,排查了整整一天。

结论:在存量应用中,AI编程必须从"氛围"走向"规范",必须有明确的验收标准。

原因3:大型项目超出单次AI对话的能力边界

涉及前后端十几个模块的重构任务:

  • AI的上下文窗口有限
  • 注意力会分散
  • 任务太大就会顾此失彼

✅ 解法:SDD + Harness

SDD(Specification-Driven Development,规范驱动开发)

颠覆性思想

"规范不再是写给人类看的散文,而是结构化的、可被AI Agent精确理解和执行的'意图代码'。"

传统开发的痛点

  • PRD或设计文档只是"指导书"
  • 代码是唯一的"真理之源"
  • 文档很快过期、与代码脱节

SDD的结构反转

  • 规范成为唯一的真实来源
  • 需求变更时,首先修改"规范"
  • 由AI工具根据规范重新生成、验证并更新底层代码

SDD四阶段工作流

阶段名称核心动作输出物
1Specify(定义规范)开发者与AI探讨,输出结构化规范用户故事、验收标准、系统约束
2Plan(制定计划)AI像编译器一样,将规范"编译"成技术方案详细技术方案、任务拆解列表
3Implement(执行落地)AI Agent逐个执行任务自动生成的高质量代码
4Validate(验证闭环)根据规范自动生成测试用例并执行代码与规范完全契合的验证

Harness Engineering(驾驭工程)

核心隐喻

"想象一匹野马——AI大模型拥有无穷的力量,但没有马具,你根本骑不上去,甚至可能被它甩下来。Harness Engineering的核心,不是去改变马的基因(模型本身),而是为这匹野马设计一套精密的控制系统。"

Harness四支柱

1️⃣ 上下文工程

不再是简单的RAG,而是结构化的信息投喂

  • 维护"单一事实来源"(Single Source of Truth)
  • 让Agent知道项目目录结构、当前执行计划、最新文档
  • 按需加载,避免上下文过载

2️⃣ 架构约束

最硬核的部分——通过物理手段强制AI遵守规则

  • 规定UI层代码绝对禁止直接访问数据库层
  • 如果AI试图违反架构分层,代码甚至无法通过语法检查
  • 在提交前就被拦截

3️⃣ 反馈回路与熵管理

AI一定会犯错,关键在于如何发现并修正:

Agent写完代码 → 自动运行测试 → 失败 → 读取错误日志 → 自我修正并重试

更重要的是,将人类修复错误的经验固化为新的规则,确保AI永远不会犯同样的错误两次。

4️⃣ 人类监督

人类角色转变:

  • 从"写代码的人"→"审核员"和"环境设计师"
  • 职责:定义复杂的业务边界
  • 处理那5% AI无法判断的模糊逻辑
  • 优化Harness本身的规则

🛠️ 全流程自动化实践

知识库三层架构

层级内容说明
项目层项目概述、目录结构、架构设计、技术选型AI理解项目上下文的基础
技术层通用技术知识、编码规范、中间件、三方库、最佳实践可跨项目复用,团队技术沉淀
资产层可复用代码片段、组件、模板、历史需求PRD、测试Case多年积累的"砖块",AI直接复用

Memory体系

解决AI的"上下文焦虑"问题:

  • 在长周期项目开发中存储关键信息
  • 记住之前的决策、当前进度、待办事项
  • 结构化方式存储和管理信息
  • 让AI在正确上下文中做正确决策,而不是每次都从零开始

Quest Spec模式

生成规范化的design.md文档,需要HITL(Human-In-The-Loop)

为什么需要HITL? 需求文档中有很多"隐性知识"——产品经理认为理所当然、但实际上需要澄清的信息。

示例:"用户登录"功能背后的问题:

  • 支持哪些登录方式?
  • 是否需要记住登录状态?
  • 密码强度有什么要求?
  • 登录失败怎么处理?

AI主动提问 → 引导开发者澄清 → 逐步补齐完整Spec

Spec核心要素

要素说明
数据模型涉及哪些数据表、字段定义、关系
接口规范API输入输出、错误码、幂等性要求
验收标准(最重要)可测试、无歧义的具体标准

验收标准示例

  • ❌ 模糊:"用户登录成功后跳转到首页"
  • ✅ 清晰:"用户登录成功后,3秒内跳转到首页,并在首页显示用户昵称"

专家团模式(Experts Mode)

核心思想:不同任务由不同角色的Agent完成,就像真实开发团队:

前端工程师 ←→ 后端工程师 ←→ 测试工程师 ←→ 架构师
     ↓              ↓              ↓              ↓
  UI实现      API开发      测试用例生成   架构评审

系统内置五类专家,每类有独立工具集,支持自定义专家类型。

用户角色转变

  • 用户不再是单纯的代码编写者
  • 成为协调链路的一部分
  • 可以随时介入、调整任务方向或取消任务
  • 更像"带一个有经验的研发小组"

📊 关键实践原则

范式转移的演进路径

提示词工程 → 上下文工程 → Harness Engineering
     ↓            ↓               ↓
"怎么跟AI说话" → "AI应该看到什么" → "AI如何在受控环境中运行"

从个人技能到团队级工程能力

维度"氛围编程"规范驱动工程
出码率高但不可控高且可控
质量保障依赖个人经验基于验收标准自动验证
团队协作单兵作战专家团协作、人机协同
知识复用随机、不确定结构化的知识库支持
适用场景新项目、小脚本存量应用、大型项目

开发者的角色进化

:被动的代码编写者 :主动的需求定义者、规范审核者、结果验证者

AI的定位:不再是不可控的黑盒,而是在Harness约束下的可靠工具


🔮 未来展望

  1. 更智能的Spec生成

    • 当前还需较多人工干预
    • 希望通过更智能的对话式需求澄清,降低人工成本
  2. 更强大的Agent Teams

    • 当前协作模式较简单
    • 探索更复杂的协作:多轮迭代、动态角色分配
  3. 更完善的知识管理

    • 知识库是整个体系的基础
    • 探索智能的知识提取、更新、复用机制