【AI技术】从 Vibe Coding 到 Harness:以 DeepSeek Harness 为例看 AI 项目的工程化维护

在上一篇【AI技术】Vibe Coding 实践指南:从项目规划到高效开发-CSDN博客中,介绍了如何利用 AI 编程工具进行项目规划、任务拆分和代码开发。

但当 AI 开始参与更复杂的项目时,仅仅让它能够编写代码还不够。如何管理 AI 的运行过程?如何让它遵守项目规范?当项目持续迭代、开发会话不断切换时,又该如何保留已有的技术经验?

这些问题涉及一个值得进一步了解的概念:Harness。本文将先简要介绍 Harness 的作用,再结合 DeepSeek Harness(以下简称 DSH)的相关实践,探讨 AI 编程项目如何通过规则、文档和决策笔记实现更好的长期维护。

一、从 Vibe Coding 到 Harness

随着 AI 编程工具的发展,开发者已经可以通过自然语言描述需求,让 AI 分析代码、生成实现方案,甚至执行测试和调用外部工具。

但模型能够生成代码,不代表它就能独立、稳定地完成整个开发任务。

例如,当 AI 修改一个现有项目时,它需要了解项目结构、遵守开发规范、决定何时调用工具,并在修改后检查结果。

如果缺少必要的约束和执行机制,即使模型本身具有较强的编程能力,也可能出现重复实现、遗漏测试或误改其他模块等问题。

因此,AI 编程不仅涉及模型能力,还涉及如何组织和管理模型的运行过程。

1. 什么是 Harness?

Harness 可以理解为围绕 AI 模型构建的一套运行与控制机制。

它可以根据具体产品的设计,负责组织指令和上下文、提供工具调用能力、管理执行流程,并通过权限控制、结果检查等机制约束 AI 的行为。

可以简单理解为:

  • **模型(Model)**负责理解输入并生成输出。

  • Agent负责围绕目标进行规划、调用工具和推进多步骤任务。

  • Harness为这些行为提供运行环境、执行机制和必要的约束。

这是一种便于理解的功能划分,并不是严格统一的技术标准。实际产品中,Agent 与 Harness 的职责往往存在交叉,具体能力也取决于产品实现。

例如,AI 编程工具除了调用模型,还可能需要读取项目文件、执行终端命令、管理上下文,以及根据执行结果决定下一步操作。这些环节共同构成了一个更完整的 AI 编程环境。

因此,Harness 并不只是一个模型 API 的封装。它更值得关注的地方,是如何把模型能力组织成可执行、可控制的工作流程。

2. 为什么要研究 Harness?

如果说 AI IDE 主要帮助开发者完成代码编辑、理解代码和项目开发,那么进一步研究 Harness,就可以关注 AI 在这些工具背后是如何运行的。

例如:

  • AI 如何获取当前任务需要的上下文?

  • 工具调用如何被组织和执行?

  • 如何限制 AI 的操作范围?

  • 如何让 AI 遵循项目约定?

  • 当任务执行失败时,如何继续处理或验证结果?

这些问题不仅与编程工具有关,也与 AI 在企业办公自动化、数据处理和业务流程中的应用有关。

当 AI 从简单的问答逐渐走向多步骤任务执行时,运行机制与工程约束的重要性也会随之提高。

接下来,我们以 DeepSeek Harness 为例,看看一个 AI 编程项目可以如何管理自己的开发知识。

二、DeepSeek Harness:从运行机制到项目维护

DeepSeek Harness(DSH)是本文讨论的具体案例。

一方面,Harness 关注 AI 如何在一定的运行机制下执行任务;另一方面,项目维护机制关注 AI 执行任务时,应该依据哪些规则、了解哪些系统事实,以及如何利用过去积累的经验。

两者相互配合,但并不是同一回事。

Harness 本身并不能自动保证项目结构合理,也不能保证文档永远准确。要让 AI 更好地参与长期开发,还需要开发者主动组织和维护项目知识。

在 DSH 的相关实践中,有三个值得重点关注的方向:

  1. 使用 AGENTS.md 等规则文件约束开发行为。

  2. 使用 docs/ 等文档组织项目知识。

  3. 使用 .agents/notes/ 等笔记机制记录重要决策和历史经验。

它们分别对应规则、事实与决策。

三、规则、事实与决策:为什么需要分开管理?

在 AI 编程项目中,规则文件、技术文档和开发笔记很容易混在一起。

例如,一份项目说明可能同时包含代码规范、接口定义、架构设计、历史 Bug 和技术选型原因。项目规模较小时,这种方式似乎没有问题;随着内容增加,查找和维护就会越来越困难。

更合理的做法,是根据不同信息的用途进行分类。

信息类型 核心问题 典型内容
规则 AI 应该怎么做? 编码规范、修改约束、测试要求
事实 当前系统是什么样? 架构、接口、数据结构、运行方式
决策 为什么采用当前方案? 技术取舍、替代方案、历史经验

这种分类的意义,在于让不同信息各自承担明确的职责。

当项目架构发生变化时,应该更新描述当前系统的文档;当技术选型发生变化时,可以记录新的决策及其原因;当开发规范需要调整时,则应修改相应的规则。

如果所有内容都堆积在一个文件里,后续维护就容易出现重复记录、信息过时和规则相互冲突等问题。

四、AGENTS.md:让项目规则更加明确

AGENTS.md 是一种供 AI 编程工具读取的项目指令文件,可以用来描述项目中的开发约定。

例如,一个项目可以在规则文件中要求 AI:

  • 优先遵循现有架构,避免无必要的重构。

  • 修改代码前,先检查是否存在可复用的模块。

  • 避免重复实现已有功能。

  • 修改接口或数据结构时,检查相关文档是否需要更新。

  • 根据修改范围执行适当的测试,并说明尚未验证的内容。

这些规则能够帮助 AI 在执行任务时遵循统一的开发约定,而不是每次都根据当前需求临时决定实现方式。

规则文件应该写多长?

规则并不是越多越好。

如果把所有接口说明、代码细节、操作手册和历史问题都放进 AGENTS.md,文件就会逐渐变成一份难以维护的项目百科。

更合理的方式是:

  • 主规则文件负责通用约束和必要的文档索引。

  • 特定模块的约束放在对应的规则文件中。

  • 详细技术信息放在项目文档中。

  • 历史决策和经验教训放在专门的笔记中。

这样既可以保持主规则文件简洁,也可以让 AI 根据当前任务读取需要的信息。

需要注意的是,AGENTS.md 并不是所有 AI 编程产品都统一强制使用的配置文件。不同工具对规则文件的命名、加载范围和执行方式可能有所不同,应以具体工具的实现为准。

五、docs:让 AI 理解项目当前的状态

规则文件告诉 AI 应该遵守什么约定,但它不能代替对项目本身的描述。

假设一个项目使用 Python 处理业务数据,AI 需要知道输入文件包含哪些字段、数据经过哪些处理步骤、不同模块如何协作,以及最终结果应该是什么格式。

如果这些信息没有被清晰记录,AI 就只能在每次任务中重新分析代码,或者依赖开发者补充说明。

项目文档可以帮助解决这个问题。

常见的文档分类包括:

文档类型 主要作用
架构文档 介绍整体结构、模块职责和依赖关系
子系统文档 描述特定模块的逻辑、接口和约束
操作手册 记录启动、调试、测试和部署方法
问题复盘 记录重要故障的原因和改进措施

例如,当 AI 需要修改数据导出功能时,可以先读取该模块的输入输出约定,而不必重新分析整个项目。

当任务涉及部署环境时,则可以重点查看部署说明。

这里值得注意的是,文档的目的不是复制代码,而是帮助开发者和 AI 更快地理解代码。

如果文档中包含大量重复的接口列表、过时的实现细节或已经失效的操作步骤,不仅增加维护成本,也可能误导 AI。

因此,项目文档需要尽量保持准确,并在重要代码变更后及时同步更新。

六、Agent Notes:为什么还要记录技术决策?

如果说规则解决了行为约束问题,文档解决了当前系统的描述问题,那么还有一个容易被忽略的问题:

为什么项目最终采用了当前方案,而不是其他方案?

这正是决策笔记的价值所在。

在 DSH 的相关讨论中,.agents/notes/ 是值得关注的笔记组织方式之一。它可以用于保存重要的技术取舍、问题解决经验和历史决策。

这里的关键不是目录名称,而是为这些具有长期参考价值的信息提供明确的位置。

1. 只记录结果还不够

假设一个项目需要处理大量 Excel 数据。

开发者最初考虑使用低代码工作流,但测试后发现,复杂的数据清洗和批量处理逻辑更适合使用 Python 脚本实现。

如果只保留最终代码,未来的 AI 可能不知道为什么选择 Python,也不知道此前评估过哪些替代方案。

一份决策笔记可以记录:

  • 背景:当时需要解决什么问题。

  • 决策:最终采用了什么方案。

  • 原因:选择该方案的依据。

  • 替代方案:评估过哪些其他方案,以及没有采用的原因。

  • 影响:这一决定对后续开发有哪些约束。

这样,未来的 AI 不仅能看到当前的实现,还能理解当初的技术取舍。

2. 为什么失败的方案也值得记录?

开发过程中,被放弃的方案往往比最终实现更容易被遗忘。

例如,某种方案可能存在性能不足、维护成本过高、依赖特定平台或难以适配现有架构等问题。

如果这些原因没有被记录,未来的 AI 就可能再次尝试同样的方案,重复之前已经付出的时间和成本。

决策笔记可以将这些经验转化为可复用的信息,帮助后续开发者减少重复试错。

不过,记录失败方案并不意味着永远禁止重新尝试。随着业务需求、技术能力和依赖版本发生变化,过去不合适的方案也可能重新变得可行。

因此,笔记应该记录当时的背景和判断依据,而不是简单地把某个方案标记为永久不可用。

3. 什么时候需要写 Notes?

不是每一次代码修改都值得记录。

调整按钮样式、修复简单的变量错误,通常没有必要单独编写决策笔记。

更适合记录的情况包括:

  • 重要的技术选型。

  • 涉及多个模块的架构调整。

  • 复杂问题的排查与解决。

  • 容易重复出现的问题及其解决经验。

  • 会影响后续开发方式的重要技术约束。

判断标准很简单:如果未来的开发者或 AI 可能因为不了解这次决策的原因而重复犯错,那么这项信息就值得保留。

七、当项目持续演进,如何避免文档过时?

规则、文档和决策笔记并不是建立完成后就可以永久不管的东西。

随着代码不断迭代,旧文档可能与当前实现不一致,过去的技术决策也可能不再适用。

因此,项目维护不仅需要积累知识,还需要持续更新知识。

1. 当前事实与历史决策分开

架构文档应该主要描述当前系统。

如果项目已经从方案 A 迁移到方案 B,当前架构文档就应该反映方案 B。

至于为什么进行迁移、为什么放弃方案 A,则可以保留在决策笔记中。

这样既能让读者快速理解当前系统,也不会丢失重要的历史原因。

2. 重要变更后同步更新文档

当代码修改涉及架构、接口、数据结构或关键处理流程时,应检查相关文档是否需要更新。

不必要求每一次小型修改都产生新的文档,但应避免重要变更已经完成,文档却仍然停留在旧版本。

3. 新决策说明与旧决策的关系

当项目需要推翻原有方案时,可以新增一条决策记录,说明新的背景、变化原因以及对旧方案的替代关系。

旧记录可以保留为历史信息,但应明确标记其状态,避免未来的 AI 将过时的决策误认为当前约定。

4. 通过测试验证实际结果

文档描述的是系统事实、开发约定或预期行为,最终实现仍然需要通过代码检查、自动化测试和必要的人工审查进行验证。

不能因为规则写得完整,就认为 AI 一定会遵守所有约束;也不能因为文档看起来准确,就认定实际代码没有问题。

规则、文档、决策笔记与测试需要相互配合,才能共同支撑长期维护。

八、普通开发者可以借鉴什么?

研究 DSH 的意义,并不是照搬它的所有目录结构,而是理解这些工程实践背后的目的。

对于个人开发者和中小型项目,可以从三个方面开始。

第一步:建立清晰的项目规则

完善 AGENTS.md 或当前 AI 编程工具支持的项目规则文件,明确基本架构约束、依赖管理原则、测试要求和文档更新约定。

保持主规则简洁,避免把所有技术细节都塞进去。

第二步:维护一份可靠的架构文档

先记录项目用途、核心模块、主要数据流和关键依赖。

随着项目复杂度增加,再逐步补充接口、数据库、部署和子系统文档。

第三步:只为重要决策建立笔记

在进行重要技术选型、解决复杂问题或调整架构时,记录背景、最终决策、选择原因以及被放弃的方案。

普通的小型修改则不必强行增加文档。

对于规模较大的项目,还可以逐步引入自动化测试、文档检查和持续集成,降低文档过时与实现偏离的风险。

需要强调的是,这些做法会带来额外的维护工作。项目越小,越应该控制规则和文档的复杂度;只有当项目开始出现明显的重复试错、知识丢失或维护困难时,才有必要进一步完善这套机制。

总结

从 Vibe Coding 到 Harness,我们关注的问题逐渐从如何使用 AI 提高开发效率,扩展到如何组织 AI 的运行过程,以及如何让 AI 长期参与同一个项目。

Harness 提供了组织和约束 AI 执行过程的机制,而 DSH 的相关实践则进一步展示了项目规则、技术文档和历史决策在长期维护中的价值。

AGENTS.md负责约束开发行为,docs/负责描述当前系统,Agent Notes 负责保存重要的技术取舍和历史经验。再结合测试与代码审查,这些机制能够帮助开发者减少重复实现、重复试错和文档失效带来的维护成本。

对于个人开发者而言,不必一开始就建立复杂的工程体系。把规则写清楚、把关键架构记录下来、把重要决策沉淀下来,再根据项目规模逐步完善,就已经是一个值得尝试的起点。

AI 编程的价值不仅在于更快地生成代码,还在于让项目能够持续演进,让开发经验能够被继承。

相关推荐
张彦峰ZYF8 小时前
越过边界之前:Reward Seeker 实验如何改写智能体安全的时间逻辑
人工智能·ai agent·anthropic·智能体安全·reward seeker·“控制评价过程”泛化跨领域策略·envbom
拓恒技术9 小时前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
罗西的思考11 小时前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习
字节跳动视频云技术团队11 小时前
720P 直升 8K,解密 2026 抖音美好奇妙夜巨幕超分黑科技
人工智能·音视频开发
打工仔折腾 AI12 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
特别关注外国供应商12 小时前
Qualys TotalAI:AI 安全治理的四大支柱
ai·大模型安全·ai数据安全·qualys·ai安全治理·ai saas 治理·ai代码安全
逐米时代12 小时前
从试点验证到协同深化:制造业AI转型三年路线图设计方法
人工智能
GlobalInfo12 小时前
全球及中国风电叶片检测机器人行业研究报告(2026版):市场现状、行业前景与占有率分析
运维·网络·人工智能·机器人
stormzhangV13 小时前
AI 越强,失业越严重
人工智能·aigc