AI编程铁三角03 Harness工程入门
AI 编程铁三角:03 Harness Engineering 从入门到实战
一个令人沮丧的AI编程协作场景
设想一下这个场景:你让 AI 助手协助你重构一个模块。
✓ 功能实现了✗ 代码风格与项目规范不一致(它用了 var,你用的是 const)✗ 目录结构被它擅自修改(新增了 utils/helper.js)✗ 测试文件被它删除了(「我觉得没必要保留」)✗ 留下了 10 个 TODO 注释(「后续再优化吧」)
你问 AI:为什么要这样改?
AI 回答:我觉得这样更好...
核心问题:AI 虽然有强大的能力,但缺乏明确的边界约束。
这正是 Harness Engineering 要解决的核心痛点。
什么是 Harness Engineering
一句话概括:核心理念
Agent = Model + HarnessModel(模型)= 马,提供核心能力Harness(约束)= 缰绳,提供行为边界
你无法改变马的能力(模型是给定的),但你可以精心设计缰绳——Harness 才是你真正能够掌控的部分。
反直觉的核心洞察
很多人误以为:约束会限制 AI 的发挥空间。 事实恰恰相反:精良的约束反而能激发 AI 的更高效率。 来看一个对比:无约束场景:AI 陷入猜测:这个数据结构该用 Map 还是 Object?自己决定吧这个函数要不要加缓存?先加上再说这个模块放哪个目录?随便找一个有约束场景:AI 清晰执行:CLAUDE.md 明确要求「使用 Object 而非 Map」「所有 I/O 操作都必须加缓存」「工具函数统一放在 src/utils/」→ 无需猜测,直接执行,效率大幅提升
两个场景的差异一目了然——AI 不需要做决策的地方,约束本身就是最好的决策。
三大支柱
Harness Engineering 由三大核心支柱构成:支柱一:Context Engineering(上下文工程)
核心问题:AI 无法感知的信息,对它而言就等于不存在。| AI 的上下文窗口 |
|---|
| LAUDE.md← 项目规范约定 CLAUDE.md← 项目规范约定 AGENTS.md← Agent 角色定义 代码注释← 逻辑说明 设计文档← 架构决策记录 Git 状态← 项目当前上下文 |
| 上下文类型 | 作用 | 管理方式 |
|---|---|---|
| 静态上下文 | 项目约定、编码规范 | CLAUDE.md / AGENTS.md |
| 动态上下文 | 运行状态、Git 信息 | 自动注入或 Hook 抓取 |
| 记忆上下文 | 历史决策、长期积累知识 | MEMORY.md / 日志系统 |
支柱二:Architectural Constraints(架构约束)
核心问题:如何为 AI 划定清晰的边界?| 约束项 | 目录结构 | src/api/牛r> |
|---|---|---|
| 命名规范 | 变量统一 camelCase | |
| 代码风格 | TypeScript strict 模式||
| 单个模块不超过 00 行 | ||
| 依赖规则 | api 不允许直接调用 db 层 |
支柱三:Entropy Management(熵管理)
核心问题:系统如何长期保持健康状态?| 实践项 | 定期清理 | 删除死代码与冗余逻辑 |
|---|---|---|
| 约束验证 | 检查代码仍符合 CLAUDE.md | |
| 性能监控 | 关注关键指标变化 | |
| 文档同步 | 保持代码与文档一致 |
| 评估指标 | 无 Harness | 有 Harness |
|---|---|---|
| 代码风格一致性 | 60% | 95% |
| 测试覆盖率 | 65% | 88% |
| 文档同步率 | 50% | 90% |
| 返工率 | 30% | 8% |
Level 2 Harness:动态约束与自动化
Level 2 在 Level 1 的基础上增加了 动态上下文 和 更多 Hook,让 AI 能够感知项目的实时状态。增加动态上下文
动态上下文是指那些随时间变化的项目状态信息,AI 需要了解这些实时信息才能做出更准确的决策。静态上下文(不变或很少变化):├── CLAUDE.md← 项目约定、架构设计├── 代码规范← 命名规则、代码风格└── 目录结构← 文件组织方式动态上下文(经常变化):├── Git 分支← 当前所在分支├── 修改的文件← 哪些文件被改动过├── 测试状态← 测试是否全部通过├── 依赖版本← 已安装的包版本└── 运行环境← Python/Node 版本等
创建脚本自动生成项目当前状态信息,让 AI 了解实时环境:
#!/bin/bash# scripts/generate_context.shecho "# 项目动态上下文" > CONTEXT.mdecho "" >> CONTEXT.mdecho "生成时间: $(date)" >> CONTEXT.mdecho "" >> CONTEXT.md# Git 信息echo "## Git 状态" >> CONTEXT.mdecho "- 当前分支: $(git branch --show-current)" >> CONTEXT.mdecho "- 最近提交: $(git log -1 --oneline 2>/dev/null || echo '无')" >> CONTEXT.mdecho "- 未提交的修改:" >> CONTEXT.mdgit status --short 2>/dev/null | sed 's/^/- /' >> CONTEXT.mdecho "" >> CONTEXT.md# 测试状态echo "## 测试状态" >> CONTEXT.mdif pytest tests/ -q --tb=no 2>/dev/null; thenecho "- 测试结果: ✅ 全部通过" >> CONTEXT.mdelseecho "- 测试结果: ❌ 存在失败的测试" >> CONTEXT.mdfiecho "" >> CONTEXT.md# Python 环境echo "## 环境信息" >> CONTEXT.mdecho "- Python 版本: $(python --version 2>&1)" >> CONTEXT.mdecho "- 已安装的包:" >> CONTEXT.mdpip list 2>/dev/null | head -10 | sed 's/^/- /' >> CONTEXT.md
在 CLAUDE.md 中添加以下内容:
## 动态上下文在执行任何任务之前,请先运行 `scripts/generate_context.sh` 生成最新的 CONTEXT.md,然后读取它了解项目的当前状态。
这样做的好处:AI 能够感知 Git 分支、修改文件、测试状态等动态信息,从而做出更准确的决策。
增加 Hook 种类
Pre-commit Hook 增强:添加更智能的检查逻辑#!/usr/bin/env sh# 检查是否修改了核心文件(如 hot-trends 的 fetchers 目录)CHANGED=$(git diff --cached --name-only)if echo "$CHANGED" | grep -q "src/fetchers/"; thenecho "⚠️ 检测到数据抓取器被修改,请确认:"echo "1. 是否需要同步更新对应的测试?"echo "2. 是否需要更新 API 文档?"fi# 运行测试npm test# 运行 lintnpm run lint
其他可选的 Hook:
- pre-push: 推送前运行完整的测试套件
- commit-msg: 验证提交信息的格式(如约定式提交)
- post-merge: 合并后自动安装依赖
实际效果:当你在 hot-trends 中修改 src/fetchers/zhihu.py 时,Hook 会自动提醒你检查测试和文档是否需要同步更新。
Level 3 Harness:完整工程化体系
Level 3 是企业级的 Harness 方案,适用于团队协作和大型项目。对于 hot-trends 这样的单人项目,可以根据实际需求选择性采用。1. 多层约束
企业级 Harness 层级结构| 层级 | 说明 |
|---|---|
| L1: 企业规范 | 所有项目共享的基础规范 |
| L2: 团队规范 | 团队内部统一遵守 |
| L3: 项目规范 | 项目特有的约束 |
| L4: 模块规范 | 模块级别的细粒度约束 |
2. 纵深防御
通过多层验证确保代码质量:| 层级 | 说明 |
|---|---|
| 第1层 | CLAUDE.md 静态约束定义 |
| 第2层 | 测试套件验证边界 |
| 第3层 | Pre-commit Hook 自动检查 |
| 第4层 | CI/CD 流水线自动验证 |
| 第5层 | Code Review 最终人工把关 |
3. 熵管理流程
建立定期检查机制,防止系统逐渐走向混乱:# 每周熵管理 Checklist## 代码质量- [ ] 运行 `npm run lint` 检查代码风格一致性- [ ] 运行 `npm test` 检查测试通过率- [ ] 检查是否有新增的 TODO 注释需要处理## 文档同步- [ ] 检查 CLAUDE.md 是否需要更新- [ ] 检查 README 是否已过时- [ ] 检查 CHANGELOG 是否有遗漏## 依赖管理- [ ] 运行 `npm outdated` 检查过期依赖- [ ] 运行 `npm audit` 检查安全漏洞
熵增的典型表现:
- 代码风格不一致(如有的地方用 var,有的用 const)
- 目录结构混乱(如在 src/ 根目录直接堆放文件)
- 测试覆盖率下降(新增代码缺少对应测试)
- 文档过时(README 中的使用说明与实际行为不符)
建议:对于 hot-trends 这样的个人项目,可以每月进行一次熵管理检查。
常见问题
Q1:Harness 会不会限制 AI 的创造力?
答案:完全不会。 Harness 约束的是行为边界,而不是具体方法。约束:使用 TypeScript strict 模式AI 仍然可以自由选择:算法、设计模式、实现细节约束:测试覆盖率 > 80%AI 仍然可以自由决定:测试怎么写、测什么内容约束:代码风格统一AI 仍然可以自由发挥:逻辑实现方式
Q2:CLAUDE.md 写多少内容最合适?
答案:刚好够用就好。内容太少:AI 仍然需要自己猜测内容太多:没人愿意看,变成形式主义刚好适中:覆盖所有核心决策点
建议:
- 项目概述:50-100 字
- 技术栈:列出主要技术
- 目录结构:只写核心目录即可
- 代码规范:5-10 条核心规则
- 质量要求:可量化的具体指标
Q3:和 Superpowers / OpenSpec 的关系?
OpenSpec → 定义「做什么」(需求约束)Superpowers→ 定义「怎么按流程做」(流程约束)Harness→ 定义「如何确保可控」(行为约束)
三者结合 = 完整的 AI 编程工程化体系
我们会在下一篇「铁三角导论」中详细讲解三者的协同关系。
下一步
你已经掌握了 Harness Engineering 的基本概念和实践方法,知道了如何为 AI 套上缰绳。 到此为止,你已经认识了「铁三角」的三个核心工具: 1. Superpowers → 流程约束 ✅ 2. OpenSpec → 需求约束 ✅ 3. Harness Engineering → 行为约束 ✅ 下一篇,我们将深入讲解 铁三角导论:三层架构设计,揭示三者如何协同工作,形成完整的 AI 编程工程化体系。扩展阅读
- Claude Code 官方文档 - CLAUDE.md 最佳实践指南 - Git Hooks 原理与配置 来源:https://juejin.cn/post/7636210679107698751
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
大模型API连续对话交互:上下文持久化与Token节流实践
一、引言 现在的大模型应用落地上,光靠单次独立问答已经远远不够用了。无论是办公协同的智能体、行业咨询机器人、专属业务问答系统,还是私有化部署的大模型,都得能支撑连续多轮对话、跨会话二次访问、长周期上下文关联问答这些核心能力。 在实际对话中,大家都会碰到一些共性问题:第一轮提问回复正常,第二轮就完全没
代驾系统搭建方案:订单调度与司机匹配机制
在城市夜生活日益丰富的当下,代驾早已超越“酒后找人代开”的单一场景,逐步演变为高频、即时、强时效的本地生活服务。无论是商务应酬后的返程,还是临时需要安全送车回家,用户最核心的诉求始终围绕三点:能否快速响应、司机是否靠谱、整个流程是否稳定。对于系统开发者而言,代驾平台搭建的难点恰恰也在于此——它并非简
独立开发者上云避坑:阿里云OPC节省两周配置时间
独立项目上云,说起来简单,做起来全是坑。一位拥有5年后端经验的开发者,三个月前启动了自己的“一人公司”——一个AI辅助写作SaaS,技术栈是Python Flask PostgreSQL React。本以为从本地迁移到云端就是几步操作的事,结果踩了一个又一个坑,硬生生折腾了好几周。以下是他踩坑后的复
阿里云DNS个人版19.9元/年 公网权威解析功能安全与续费说明
许多用户最近都在咨询阿里云云解析DNS个人版的价格与续费问题,这里统一整理关键信息。个人版当前新用户优惠价仅为19 9元 年,但该优惠仅限首次购买,原价实际为48元 年。因此续费时若无额外折扣,将按48元 年计费。简单来说,首年19 9元即可入手,第二年恢复原价。0 云解析DNS个人版费用阿里云云
阿里云Qwen3.7-Max深度测评:极致推理与企业级部署落地指南
Qwen3 7-Max是阿里云百炼平台最新推出的旗舰级大模型,也是Qwen3 7系列中规模最大、综合能力最强的“顶配选手”。目前开放的是纯文本模型能力,但别被这个限制误导——它面向智能体时代设计,在编程、办公生产力、长周期自主执行等场景下,表现相当能打。推理能力、多模态理解、复杂任务处理都有显著升级
热门专题
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2026-07-07 15:44
2026-07-07 15:44
2026-07-07 15:44
2026-07-07 15:44
2026-07-07 15:44
2026-07-07 15:43
2026-07-07 15:43
2026-07-07 15:43
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

