OOpenClaw.NET中文文档

共享 Harness 状态

源文件 docs/zh-CN/SHARED_HARNESS_STATE.md

共享 Harness 状态是用于委派和多 Agent 工作的结构化状态。它记录谁在参与、每个参与者读取或更改了什么、他们做了哪些假设、什么证据支持他们的工作,以及冲突出现在哪里。

默认情况下它是被动的。它不会启动多 Agent 调度器、改变正常的聊天行为或阻止工具执行。运维人员和未来的治理工作流可以显式创建和检查共享状态。

它帮助回答什么#

  • 哪些 Agent 或运维人员参与了?
  • 每个参与者做了什么?
  • 他们读取或写入了哪些资源?
  • 他们依赖了哪些假设?
  • 他们假定了哪些版本依赖?
  • 还有哪些验证义务?
  • 是否有任何工作流冲突?
  • 什么证据支持最终状态?

与其他 Harness 原语的关系#

  • Harness 合约描述计划的工作。
  • 证据包记录发生了什么。
  • 治理账本记录人类决策。
  • 共享 Harness 状态通过相同的活动工作协调多个参与者。
  • 计划-执行-验证模式可以为多参与者运行使用共享状态。
  • 分形记忆存储持久的项目记忆,而共享 Harness 状态跟踪活动的事务性工作。

管理 API#

读取端点需要运维人员认证:

GET /admin/harness/shared-state
GET /admin/harness/shared-state/{id}
GET /admin/sessions/{sessionId}/harness-state

变更端点需要运维人员认证和针对浏览器会话的 CSRF 保护:

POST /admin/harness/shared-state
POST /admin/harness/shared-state/{id}/participants
POST /admin/harness/shared-state/{id}/actions
POST /admin/harness/shared-state/{id}/detect-conflicts

CLI 检查是网关支持的:

openclaw harness state list
openclaw harness state show shs_example
openclaw harness state session session-123
openclaw harness state conflicts shs_example
openclaw harness state list --session session-123 --json

JSON 示例#

{
  "id": "shs_release_docs",
  "sessionId": "session-release",
  "parentSessionId": "session-manager",
  "harnessContractId": "hctr_release",
  "status": "active",
  "goal": "Prepare release notes with independent review",
  "participants": [
    {
      "id": "manager",
      "role": "manager",
      "sessionId": "session-manager",
      "displayName": "Release manager"
    },
    {
      "id": "docs",
      "role": "docs_writer",
      "sessionId": "session-docs"
    }
  ],
  "actions": [
    {
      "id": "draft-release-notes",
      "participantId": "docs",
      "title": "Draft release notes",
      "status": "active",
      "toolName": "file_write",
      "readSet": [
        { "kind": "file", "path": "CHANGELOG.md", "version": "main@abc123" }
      ],
      "writeSet": [
        { "kind": "file", "path": "docs/RELEASES.md" }
      ],
      "versionDependencies": [
        {
          "id": "changelog-version",
          "resource": { "kind": "file", "path": "CHANGELOG.md" },
          "version": "main@abc123"
        }
      ],
      "verifierObligations": [
        {
          "id": "review-docs",
          "title": "Review release notes",
          "verifier": "reviewer",
          "required": true
        }
      ]
    }
  ],
  "evidenceBundleIds": ["evb_release_docs"],
  "tags": ["release", "docs"]
}

冲突检测#

初始检测器记录冲突和建议。它不会阻止执行。

它检测:

  • 当两个操作写入相同资源的写/写冲突
  • 当版本依赖的读取与另一个操作的写入重叠时的读/写冲突
  • 当相同假设键具有不同值时的假设冲突
  • 高风险写入操作缺少验证器义务

冲突策略默认值是保守的:

  • 中或更低风险的冲突使用 warn
  • 高或关键风险冲突使用 escalate

目前不做的事情#

  • 不是完整的语义冲突解决。
  • 不是强制的多 Agent 编排。
  • 不会自动合并或修复冲突的工作。
  • 默认不会阻止执行。
  • 不是人类审查的替代品。
  • 尚未自动捕获每个委派的工具调用;使用 API 或未来的 PEV/委派集成进行显式捕获。
本页由 docs/zh-CN/SHARED_HARNESS_STATE.md 静态生成 · 快照 2026-10-03
站内以 虚线 标注的链接指向未包含在本中文站点内的源文件。