质量门控SOP执行系统

一个MCP服务器和Claude Code插件,用于在多步骤工作流程中强制执行质量门控,通过独立评估器对每个步骤提交的内容进行六维评分。

  • by p-vbordei
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 p-vbordei/harness

使用说明

线束-质量门控SOP执行

A. MCP服务器+克劳德代码插件 它对任何多步骤工作流强制执行质量门。每一步提交都由 独立评估员 --不是自我评估——使用带有校准锚和AI斜率检测的6维评分量规。

为什么存在

Anthropic的 自己的研究 这证明了当LLM评估自己的工作时,他们“自信地赞美自己平庸的工作”。一个为怀疑而调整的独立评估者比让生成器自我批评要容易得多。

该工具实现了这一洞察力: 做这项工作的实体从不评判自己的产出。

运作原理

┌─────────────────────────────────────────────────────────────┐
│  1. Define SOP (YAML)                                       │
│     phases → steps → acceptance_criteria                    │
│                                                             │
│  2. Start Session                                           │
│     harness_start("feature-dev") → session_id + step 1     │
│                                                             │
│  3. For each step:                                          │
│     a. Agent does the work                                  │
│     b. Agent submits via harness_submit_step                │
│     c. Separate evaluator scores on 6 dimensions            │
│     d. PASS → next step | FAIL → retry with feedback        │
│     e. 3 fails → escalate to human                          │
│                                                             │
│  4. All steps pass → session complete                       │
└─────────────────────────────────────────────────────────────┘

特性

评估员制度

  • 3个后端:子代理(默认,无API密钥)、Anthropic API(Haiku)、OpenAI兼容(vLLM/Ollama)
  • 6个评分维度:完整性(25%)、特异性(20%)、正确性(20%”)、连贯性(10%)、可操作性(15%)、格式合规性(10%”)
  • 3个配置文件: default (阈值3.5), strict (4.0), lenient (3.0)
  • AI坡度检测:15+标记图案;3+个标志自动惩罚特异性得分
  • 校准锚:评分示例可防止评估者漂移
  • 快速注射防御:用户内容包装在结构分隔符中

工作流引擎

  • YAML SOP定义 具有阶段、步骤、依赖关系(拓扑排序)
  • 每步评估者配置文件 以及可选超时
  • 会话管理:恢复被阻止的会话,跳过步骤,列出所有会话
  • 事件源:从损坏的状态文件中自动恢复
  • 原子写入:碰撞安全状态持久性

MCP工具(9)

工具 目的
harness_start 以SOP开始会话
harness_submit_step 提交当前步骤的输出
harness_report_evaluation 报告子代理评估结果
harness_get_status 获取会话状态
harness_get_feedback 获取评估反馈历史记录
harness_list_sops 发现可用的SOP
harness_resume 恢复暂停/阻止的会话
harness_skip_step 跳过当前步骤
harness_list_sessions 列出所有会话

内置SOP模板

模板 阶段 步骤 用例
feature-dev 4 12 功能开发生命周期
investigation 3 7 安全/研究调查
code-review 3 7 多角度代码审查
_TEMPLATE - - 新SOP的注释模板

安装

作为独立的MCP服务器

git clone https://github.com/p-vbordei/harness.git
cd harness
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

作为Claude Code插件

复制 harness/ 指向您的Claude Code插件位置的目录,或将其符号链接:

ln -s /path/to/harness ~/.claude/plugins/harness

这 .mcp.json 在插件根目录下自动注册MCP服务器。

配置

评估器后端

后端 环境变量 成本 注释
subagent (默认) 无 免费 使用Claude Code审阅者代理
anthropic HARNESS_EVAL_BACKEND=anthropic, ANTHROPIC_API_KEY ~$0.001-eval 默认情况下为Haiku
openai HARNESS_EVAL_BACKEND=openai, HARNESS_EVAL_BASE_URL, HARNESS_EVAL_MODEL 不同 vLLM、Ollama等。

评估员简介

配置文件控制每一步的评分阈值。在SOP YAML中设置:

steps:
  - id: security-check
    evaluator_profile: strict    # threshold 4.0, correctness weighted 25%
  - id: draft-outline
    evaluator_profile: lenient   # threshold 3.0, no slop penalty

用法

来自Claude Code CLI

/harness feature-dev

这将启动一个12步功能开发工作流程。对于每一步:

  1. 您将收到指示和验收标准
  2. 你做这项工作
  3. 您通过提交 harness_submit_step
  4. 审核代理独立评估
  5. 你打 harness_report_evaluation 结果
  6. PASS → 下一步,失败→ 处理反馈并重试

程序化(Python)

from server.orchestrator import Orchestrator
from server.evaluator import create_evaluator
from server.session_manager import SessionManager
from server.sop_registry import SOPRegistry

registry = SOPRegistry()
manager = SessionManager()
evaluator = create_evaluator()  # subagent mode

orch = Orchestrator(registry, manager, evaluator)

# Start
resp = orch.start_session("feature-dev")
session_id = resp.session_id

# Submit step output
resp = await orch.submit_step(session_id, {
    "artifacts": [{"type": "text", "content": "My requirements analysis..."}],
    "self_assessment": "All criteria addressed with specific details."
})

# In subagent mode, dispatch evaluation, then report:
resp = orch.report_evaluation(session_id, evaluation_json)

创建自定义SOP

  1. 复制 sops/_TEMPLATE.yaml 到 sops/my-workflow.yaml
  2. 编辑阶段、步骤和验收标准
  3. 该工具自动在以下位置发现YAML文件 sops/ 和 ~/.harness/sops/

每个步骤的关键字段:

- id: my-step
  title: "Human-readable title"
  instruction: "What the agent should do"
  acceptance_criteria:
    - "Specific, testable criterion 1"
    - "Specific, testable criterion 2"
  evaluator_profile: default  # or strict, lenient
  timeout: 600                # optional, seconds
  on_fail: retry              # retry, skip, or abort
  depends_on: [other-step]    # within same phase

质量门评分

每份提交的材料在6个维度上评分:

尺寸 重量 测量内容
完整性 25% 满足所有验收标准
特异性 20% 引用此项目,而非样板
正确性 20% 声称准确,代码可编译,逻辑成立
连贯性 10% 无内部矛盾
可操作性 15% 下游步骤可以在不猜测的情况下采取行动
格式合规性 10% 符合所需结构

通行条件:加权平均值>=阈值,且没有一个维度低于最小值。

斜坡罚款:检测到3+个AI填充短语→ 特异性评分自动降低1分。

会话保持

会话存储在 ~/.harness/sessions/{session_id}/:

state.json              # Current position (atomic writes)
sop_snapshot.yaml       # Frozen copy of SOP
steps/                  # Per-step attempt history
  phase.step/
    attempt_1.json
    attempt_2.json
events.jsonl            # Append-only audit trail
usage.json              # Usage statistics

如果 state.json 如果已损坏,系统将通过重放自动恢复 events.jsonl.

测试

# Run all 78 tests
pytest tests/ -v

# Run specific test modules
pytest tests/test_evaluator.py -v      # Evaluator backends, parsing, profiles
pytest tests/test_orchestrator.py -v   # Workflow loop, submit/evaluate/advance
pytest tests/test_p2_features.py -v    # Profiles, resume/skip, slop penalty
pytest tests/test_session_manager.py -v # State persistence, atomic writes
pytest tests/test_sop_registry.py -v   # YAML loading, dependency sorting
pytest tests/test_validation.py -v     # Input validation, schema checks

建筑

该系统是通过多智能体研究管道设计的:

  • 16名研究人员分析了现有的线束模式(Anthropic博客、claude代码线束、爪代码、WaveSpeed分析)
  • 10名A-Team特工从不同角度检查了设计
  • 审查并强化了12个改进代理的实施
  • 所有这些都通过网络研究和辩论环节进行了验证

关键设计决策记录在 实施计划.

许可证

Apache许可证2.0-请参阅 许可证.