我的全自动 Harness 架构
基于 Harness Engineering 学习 + Codex 讨论 + 五层审计结果,设计的个人 Harness 方案。
审计基线(2026-04-03)
| 组件 | 评分 | 核心问题 |
|---|---|---|
| Context | 3.5/5 | memory 全量加载,凭证明文 |
| Tools | 2/5 | 170+ 工具膨胀,大量重复 |
| Constraints | 1.5/5 | 零硬性约束 |
| Feedback | 2/5 | 仅 2 条 feedback,无自动验证 |
| State | 3.2/5 | 无 Git 版本控制 |
| 综合 | 2.4/5 |
四个项目的自动化级别
| 项目 | 级别 | 人类介入点 |
|---|---|---|
| 站群 SEO | L4 全自动 | 仅异常通知(build 失败、流量骤降) |
| 宏观投资 | L3 半自动 | 雪球发布前人工确认,信号生成全自动 |
| DeFi 清算 | L2 受控自动 | 单笔 > $50 需确认,参数变更需确认 |
| DEX 做市 | L2 受控自动 | 策略变更需确认,总亏损 > $60 暂停 |
五层防御架构
L5 人类兜底 — 只在 L1-L4 全部失败时才介入
L4 Agent 自评 — Evaluator Agent 独立审查
L3 自动测试 — CI/lint/type-check 作为硬门禁
L2 Hook 拦截 — 危险操作在执行前被阻断
L1 Context 约束 — CLAUDE.md 中的行为规则失败处理决策树
失败事件
├── 可重试类(网络超时、API 限流、临时 build 错误)
│ ├── 重试 ≤ 3 次,指数退避(1s, 4s, 16s)
│ ├── 3 次后仍失败 → 通知人类
│ └── 站群特例:build 失败自动 git revert HEAD~1
│
├── 资金相关(交易失败、余额异常、滑点超限)
│ ├── 不重试
│ ├── 立即暂停该操作路径
│ └── 紧急通知(飞书 + TG)
│
└── 逻辑错误(Agent 产出不符合预期、eval 失败)
├── 不重试
├── 记录到 lessons.md
├── 触发 auto-constraint-updater
└── 通知人类 review工具-项目映射
| 工具类别 | 站群 | 清算 | 做市 | 宏观投资 |
|---|---|---|---|---|
| filesystem | rw | ro+logs | ro+logs | rw |
| git | yes | local only | local only | yes |
| bash | astro,wrangler | node,cast | node,curl | node,python |
| 飞书 | no | alert only | alert+report | yes |
| Figma | no | no | no | no |
| 链上工具 | no | yes(受限) | yes(受限) | no |
可观测性方案
- Layer 1: 结构化日志(
~/.claude/logs/YYYY-MM-DD.log) - Layer 2: 每日摘要推送飞书(cron 22:00)
- Layer 3: 资产快照(仅链上项目,每小时,偏差 > 5% 告警)
实施路线图
Week 1(本周末)
- [ ] 创建 4 个项目的 CLAUDE.md
- [ ] 部署 project-tool-gate.sh hook
- [ ] 部署 notify.sh + 飞书 webhook
- [ ] 创建 constraints.jsonl 初始规则
Week 2
- [ ] 写 4 个项目的 evaluator 脚本
- [ ] 部署 auto-constraint-updater.sh hook
- [ ] 设置日志 + daily-summary cron
Week 3
- [ ] 资产快照 cron(链上项目)
- [ ] 端到端测试:模拟失败场景
- [ ] 清理剩余冗余工具(目标:每项目 < 20)
设计原则
- 约束机械化 — linter 规则 > 文档描述 > prompt 指令
- 失败预算 — 最多重试 N 次,超过就停下通知人类
- 爆炸半径限制 — 隔离环境,Agent 不碰生产数据库
- 全量日志 — 每步都记录,事后能回放
- 渐进放权 — 新任务先 HITL,稳定后升级为全自动
- 文档即循环 — Agent 犯错 → 更新规则 → 永不再犯
- 为删除而构建 — 模块化,模型升级后简化 harness