Harness
目前的ai进度。
Harness
最小工程公式
Agent = LLM+上下文+工具
Harness = 上下文管理 + 工具接口 + 约束 + 验证 + 纠正
Agent ↔ Environment
精确地说 Harness 并不是包括了除模型之外所有的一切, 而是指Agent边界内和模型之外的运行与治理层。这一点 在之前的 《关于ai的三次重心转移》 中说法略有出入。
关于环境 他只负责协调 并不包括环境本身。工具定义、调用适配器、沙箱的权限与重置机制则属于Harness;至于沙箱内部随行动变化的文件和进程、外部数据库、网页、用户及物理世界属于environment。物理部署位置也不能决定概念归属 即使仿真环境与Agent运行在同一进程中,它仍然是environment。Harness其核心是上下文管理与工具接口。
Context | 上下文管理
系统提示词、知识库、Agent状态栏、sidercar旁路查询
Sidercar | 边车模式
其特征在容器环境中 通常表现为
- 一个pod中运行多个容器
- 主容器负责业务逻辑
- sidercar容器负责通用能力
通用能力则包括 日志收集、服务间通信、安全认证(mTLS)、监控与追踪。
mtls | 安全认证
mTLS是TLS协议的扩展,通过 双向证书验证 实现客户端与服务器的相互信任。
其核心机制如下:
- 非对称加密:通过RSA、ECC等算法生成公私钥对,用于密钥交换和签名验证。
- 证书链验证:双方通过CA(证书颁发机构)签发的数字证书证明身份,证书链包含根证书、中间证书和实体证书。
边车模式解决了倘若每个服务都自己实通用功能,则会有代码重复、技术栈耦合、难以统一治理的痛处。其核心价值在于 将通用能力从业务代码中剥离,实现解耦与复用。
Tools | 工具接口
MCP工具、代码解释器、搜索工具
Constrain | 约束
Claude中每个工具默认都需要用户授权才能执行
Verify | 验证
Linter检查、类型系统、工具调用结果校验
Linter检查
这是一种静态代码分析工具,它可以在不运行代码的情况下 通过静态分析源代码的语法、结构、风格,来发现潜在的错误、不符合编码规范的地方(代码风格问题)和一些安全隐患不良的编程习惯 。
一些Linter可以检测出可能存在的安全隐患 如sql注入、跨站脚本攻击。
常见的Python Linter 工具
- Pylint:功能强大,能够进行全面的代码分析,包括代码风格、错误检测、复杂度分析等。
- Flake8:结合了PyFlakes、pycodestyle和mccabe,提供了快速的代码检查功能。
- Black:专注于代码格式化,能够自动将代码格式化为符合PEP 8规范的样式。
Correct | 纠正
静默重试、接续生成、接连失败时回退到人工判断(熔断机制)
发现问题时自动修正或回退;在确认无法恢复之前不暴露中间态,例如工具调用失败时先静默重试,不把半成品结果展示给用户。
小结
这五个功能构成一个闭环
上下文与工具让Agent “能做事” (理解任务并采取行动) ⇒ 约束预防错误 ⇒ 验证发现偏差 ⇒ 纠正使闭环得以形成。 约束、验证、纠正三者共同让Agent“不做错事” ,确保上下文和工具在生产环境中可靠运转的工程实践。
演变
早期的Agent框架重点关注 上下文与工具
- 给模型工具
- 给模型上下文
- 让它能做事
生产级的Agent系统重心转向约束、验证、纠正
- 确保工具调用是安全的
- 上下文是经过管理的
- 错误是可恢复的
以 Claude Code 为例,它的Harness中绝大部分代码都是约束、验证与纠正。上下文与工具 只是一小部分 (文件读写、命令执行、搜索),大部分都是围绕这些工具构建的保障机制。
- 流程状态管理:追踪Agent当前执行到哪一步
- 多层上下文压缩:当信息太多时自动精简
- 权限分类:控制哪些操作需要用户确认
- 熔断器:当错误连续发生时,自动“断电”停止重试—就像家里电路断路时保险丝会自动跳闸,防止整个系统崩溃。
- 错误恢复机制:捕获异常、回归到上一稳定状态、重试或交还给人类
从提示词工程到Loop工程
提示词工程 | Prompt Engineering
上下文工程 | Context Engineering
Harness Engineering
将视野从“模型能看到什么”进一步拓展到“Agent如何组织模型运行并于环境交互”
Loop Engineering
把视野从单次运行扩展到跨轮次持续自主运转,即谁来发现下一件该做的事、何时验证、何时才算真正完成。
Graph Engineering
2026年七月,业界开始用Graph工程 把Agent循环、确定性程序和人工审批组织成显式的执行图。
其中节点承担具体能力,边规定路由与依赖,结构化状态沿边传递并在关键边界处持久化。
Josh C. Simmons 将其概括为节点、类型化边和可检查点状态