Skip to content

Harness 工程宣言

🕒 Published at:

Harness 工程宣言 ​

什么是 Harness,为什么这个项目是 Harness 2026-06-12 · 最终确认


一、这是 Harness 吗? ​

是的,这个项目是 Harness。

Harness 的定义 ​

Harness(马具)在软件工程中是一种骨架型基础设施——它不产生业务价值,而是协调多个独立组件协同工作。

判断标准 ​

特征本项目说明
不写业务代码✅不实现 JWT、不写 CRUD、不做 UI
只搭协作框架✅STATUS.md 协议 + n8n 路由 + SKILL.md
协调多个进程✅Hermes → CC → Codex 三 Agent
各层可独立替换✅路由层/会话层/协议层解耦
体积小、模块化✅整套在 project-archive 项目内,不侵入业务项目
定义通信协议✅STATUS.md 读写规范 + commit 消息约定

二、跟传统框架的本质区别 ​

维度框架(Framework)Harness(马具)
立场"你的代码按我的方式写""你的代码继续你的方式,我只管通信"
侵入性需要 import / 继承零侵入(文件协议)
升级框架大版本可能有 breaking change不改协议就不受影响
心智负担高(学 API / 注解 / 生命周期)低(一个文件 + 几条规则)
调试黑箱,框架内部不可见全透明,STATUS.md 就是日志
可替换性切框架等于重写换路由层不改协议

三、Agent 的商品化 ​

这个 Harness 的设计前提:

Agent 是商品,Harness 是差异化的。

  • Claude Code 会变,Codex 会变,模型会变
  • 但 CC 写代码 → Codex 审查 → 循环直到通过 这个模式不会变
  • Harness 就是把这个模式固定下来,让底层 Agent 可替换

现在用的是 CC + Codex,明天换了 OpenCode + Claude Code 3?Harness 不变,改 SKILL.md 里的触发命令就行。


四、三层架构的可替换性 ​

┌──────────────┐
│   路由层     │  n8n → Dify → LangGraph → 自建脚本
├──────────────┤  都行,只要做好一件事:收到事件 → 决策 → 注入
│   会话层     │  Windows终端 → WSL tmux → Docker exec
├──────────────┤  都行,只要 Agent 能收到命令
│   协议层     │  STATUS.md → JSON → 数据库
└──────────────┘  都行,只要 Agent 能读能写

每一层都是一个协议接口。不改协议就能换实现。


五、跟 LangGraph 的对比 ​

LangGraph 是多 Agent 图编排框架,跟本 Harness 是两回事:

维度LangGraph本 Harness
通信Python 函数调用文件系统(STATUS.md)
Agent 运行子进程/线程持久终端窗口
状态内存 graph_state磁盘文件
可调试断点 + print直接看文件 + git log
耦合代码级耦合协议级耦合
上手成本学 LangGraph API知道 STATUS.md 怎么写就行

LangGraph 适合: 纯代码内编排、函数级的 Agent 调用 本 Harness 适合: 独立 CLI Agent 窗口、文件系统协议、事件驱动


六、为什么不做成框架 ​

用户说过一句话:

"不灵活你知道吗,我如果修改节点又做不到了,只能靠跟你吵架。我不能手动修改。"

Harness 的设计目标就是不让用户吵架。 所有文件都是:

  • 打开的(TXT/MD,不是二进制)
  • 可读的(中文说明 + 表格)
  • 可改的(记事本就能改)

不依赖我,不依赖任何 Agent,一个人一把记事本就能看懂全部。


七、最终架构图 ​

                用户需求
                    │
               ┌────┴────┐
               │ Hermes  │  规划 + 终审
               └────┬────┘
                    │ STATUS.md
                    ▼
┌──────────────────────────────────────────┐
│               n8n 路由层                  │
│  git commit → webhook → 决策 → inject    │
└────┬──────────────────────────────┬──────┘
     │ tmux send-keys               │ tmux send-keys
     ▼                              ▼
┌────────────┐              ┌────────────┐
│   CC       │              │  Codex     │
│ 发散·实现  │◄────STATUS.md──► 收敛·审查  │
└─────┬──────┘  文件协议     └─────┬──────┘
      │ git commit                │ git commit
      │ curl POST n8n             │ curl POST n8n
      └──────────────┬────────────┘
                     │ 循环
                     ▼
              REVIEW-PASS
                    │
               ┌────┴────┐
               │ Hermes  │  归档
               └─────────┘

这是 Harness,不是框架。