6 篇文章带有标签 “software-engineering”

Harness Engineering(驾驭工程):2026 AI 软件工程新范式

Harness Engineering 是 AI 时代的全新软件工程学科 —— 设计和实现系统来约束、引导、验证和修正 AI 智能体的行为,让强大但不可预测的 AI 模型能够可靠地完成复杂任务。

📚 目录

核心概念

什么是 Harness Engineering?

Harness Engineering 是设计和实现系统的学科,这些系统能够:

  1. 约束:定义 AI 智能体可以做什么(架构边界、依赖规则)
  2. 告知:告诉智能体应该做什么(上下文工程、文档体系)
  3. 验证:检查智能体是否正确完成任务(测试、 linting、CI 验证)
  4. 修正:当智能体出错时引导其自我修复(反馈循环、自我修正机制)

类比:AI 模型是一匹强大但无方向的骏马,Harness 是缰绳、马鞍和全套马具,人类工程师是骑手。没有 Harness 的 AI 是开阔场地里的纯种马——速度快、令人印象深刻,但完全无法用来完成任何实际工作。

为什么 Harness Engineering 至关重要?

模型是商品,Harness 是护城河

AI 行业正在达成一个共识:底层模型的重要性远低于围绕它的系统。LangChain 的实验最能证明这一点:他们的编码智能体在 Terminal Bench 2.0 上的得分从 52.8% 提升到 66.

Harness Engineering|软件工程师的角色革命,从写代码到设计环境

Harness Engineering 是 2026 年软件工程领域涌现的一门新学科,其核心理念是:在生成式 AI 时代,由于模型能力已趋于同质化(Commodity),构建可靠、可扩展的 AI 智能体系统的关键不再是模型本身,而是在模型周围设计的“Harness”(支架/编排系统)

通过分析提供的资料,可以从以下几个维度深入理解 Harness Engineering:

1. 核心定义与马车隐喻

“Harness”一词源于马具(如缰绳、马鞍、嚼子),这个隐喻生动地解释了三者的关系:

  • 马(Horse):指代 AI 模型。它拥有强大的动力和速度,但本身并不知道要去哪里,也不具备自我约束力。
  • Harness(马具/支架):指代基础设施。包括约束机制、护栏和反馈回路,用于将模型的原始能力转化为生产力。
  • 骑手(Rider):指代人类工程师。负责提供方向和意图,而不是亲自奔跑(写代码)。

正式定义上,Harness engineering 是设计和实现一个能够约束、告知、验证并纠正 AI 智能体行为的系统学科。

2. Harness Engineering 的三大支柱

根据 OpenAI 和 NxCode 的实践,一个成熟的 Harness 系统包含三大核心组件:

  • 上下文工程(Context Engineering):确保智能体在正确的时间获得正确的信息。这要求将代码库视为唯一的真理来源,不仅包含代码,还包括架构决策、API 契约和动态的观测数据(如日志、指标)。
  • 架构约束(Architectural Constraints):通过机械化的手段强制执行“好代码”的标准。例如使用确定性的 Linter、结构化测试(如 ArchUnit)和严格的依赖层级校验,防止 AI 智能体在生成代码时由于灵活性过高而导致架构腐化。
  • 熵管理/垃圾回收(Entropy Management / Garbage Collection):AI 生成的代码库容易积累“AI 废料(AI Slop)”,文档也容易过时。Harness 系统需要定期运行专门的智能体来清理不一致的文档、修复违反架构约束的代码以及优化冗余逻辑。

一文读懂 Harness Engineering:AI 时代软件工程的全新范式

本文综合 Anthropic、OpenAI、Martin Fowler、LangChain、Mitchell Hashimoto、NxCode、MiniMax 等前沿文章的分析报告。

一、什么是 Harness Engineering?

1.1 词源与隐喻

"Harness" 直译为"马具"——缰绳、鞍座、嚼子,是用来驾驭一匹强大但不可预测的动物的工具。这个隐喻极其精准:

隐喻 对应实体
马匹 AI 模型——强大、快速,但自身不知道该去哪里
马具(Harness) 基础设施——约束、护栏、反馈循环,引导模型的力量
骑手 人类工程师——提供方向,而不是亲自奔跑

没有 Harness 的 AI Agent 就像旷野中的野马——速度快、令人印象深刻,但对完成任何目标完全无用。

1.2 正式定义

Harness Engineering 是设计和实现以下系统的学科:

  1. 约束(Constrain)——限制 AI Agent 能做什么(架构边界、依赖规则)
  2. 告知(Inform)——告诉 Agent 它该做什么(上下文工程、文档)
  3. 验证(Verify)——检查 Agent 是否正确完成了任务(测试、Linter、CI)
  4. 纠正(Correct)——当 Agent 出错时进行修复(反馈循环、自我修复机制)

1.3 与相关概念的区别

Harness Engineering:AI时代的软件工程新范式

Harness Engineering,是在AI大模型时代,以确定性系统外壳约束概率性AI行为,通过上下文工程、架构约束、熵管理三位一体,构建可长期稳定运行的AI Agent系统,推动软件工程从代码实现转向系统设计,成为下一代AI工程化的核心范式。

引言

在人工智能,特别是大型语言模型(LLM)能力迅速发展的时代,软件开发领域正经历一场深刻的范式转移。传统以代码为中心的工程方法正在被一种以语言为中心的新范式所取代。这一新范式将工程设计的核心原则,如控制、可靠性和可扩展性,应用到了人与AI的交互界面上。本报告将深入探讨这一新兴领域,提出“Harness Engineering”(驾驭工程)这一术语,用以描述其背后的系统性原则、核心实践、行业案例及未来挑战。报告旨在为软件工程师、技术领导者及行业观察家提供一个全面的框架,以理解并应用这一即将定义未来技术格局的关键技术。

一、超越提示词与上下文

在深入探讨Harness Engineering之前,必须首先理解它所处的演化脉络。它并非一个凭空出现的概念,而是对已有AI工程实践的一次系统性整合与升华。它标志着行业的焦点从与AI模型的“单次对话”转向了构建一个让AI能够“持续可靠工作”的完整系统。

1.1 定义Harness Engineering

Harness Engineering(驾驭工程)被定义为一个新兴的工程学科,其核心目标是设计和实现一套围

氛围编程 vs 智能体工程

Andrej Karpathy:氛围编程(vibe coding)

我称之为“氛围编程”(vibe coding)——这是一种全新的编程方式:你完全沉浸在感觉中,拥抱指数级的效率提升,甚至忘掉代码本身的存在。

这之所以成为可能,是因为大语言模型(比如配合 Sonnet 使用的 Cursor Composer)正变得过于强大。而且,我直接通过 SuperWhisper 和 Composer 语音对话,几乎连键盘都不碰。我会提一些极度偷懒的要求,比如“把侧边栏的间距缩减一半”,因为我根本懒得去代码里找位置。我永远点“全部接受”(Accept All),再也不看代码比对(diffs)了。遇到报错信息,我直接原样粘贴回去,一句话都不解释,通常这样就能修好。

代码库的增长速度超出了我以往的理解能力,如果真要搞懂,我得花好长一段时间去通读。有时大模型修不好某个 Bug,我就绕过去,或者要求进行随机改动,直到 Bug 消失。对于那些周末折腾的练手项目来说,这种方式还算凑合,但也确实挺离谱的。

我正在开发一个项目或 Web 应用,但这感觉并不像在编程——我只是观察、动嘴、运行、粘贴,然后它居然大部分时间都能跑通。

Andrej Karpathy:智能体工程(agentic engineering)

很多人转发这条推文,以此纪念“氛围编程”(vibe coding)诞生一周年。简单回顾一下:

Continue - It’s time to collect data on how you build software

是时候收集关于你们如何构建软件的数据了。

Development data engine (开发数据引擎)

  • LLM more helpful with coding (LLM在编码方面更有帮助)
  • Developers use LLM while coding more (开发者在编码时更多地使用LLM)
  • Better data collected on how software is built (收集到更好的关于软件构建方式的数据)
  • Better LLM is trained or fine-tuned (训练或微调更好的LLM)

下一代开发者使用大型语言模型(LLMs)而不是谷歌搜索+ Stack Overflow。

随着时间的推移,开发者的偏好和使用的工具也在不断演进。当前一代的开发者正在用大型语言模型(LLMs)取代之前的Google和Stack Overflow,就像之前的一代人用Google和Stack Overflow取代了传统的参考手册一样。 在这个过渡期中,能够保留和吸引开发者的组织将会:

首先,理解他们的开发者如何使用LLMs,并通过收集开发数据——即他们组织构建软件的方式——来展示使用LLMs的投资回报率(ROI)。