protocol

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2026 License: MIT Imports: 1 Imported by: 0

README

Agent↔Task Bridge M1 — 实施基线入口

日期:2026-10-30。版本:bridge-m1-1。状态:已冻结为本地实施基线;未实现 daemon,尚未公开发布。

本阶段把已采纳的 Core v1 和 能力蓝图 转成方法、状态、授权、数据结构与黑盒向量。目标仍是:两个独立 Agent 客户端完成一次真实任务交接,独立读取方通过公共协议恢复统一事实。它是独立的新桥接项目,不是 p-drive 的投影器或自动编排系统。

阅读与规范分工

材料 负责回答的问题
状态与事务契约 每个方法何时允许,检查哪个 revision,怎样原子改变 Task/Assignment/Run/Submission/Decision,事件是什么顺序
身份与授权契约 谁能创建、领取、交付、验收、授予和撤销权限,身份与父子关系怎样隔离
HTTP / JSON-RPC 契约 27 个方法的参数/结果、错误、幂等、资源引用、快照/cursor、历史审计和部署限制
JSON Schema 对象、27 个请求形状、结果与错误的机器可验证结构
方法映射 精确方法名对应参数/结果类型及幂等、CAS、lease 要求
固定样例 正/负输入、预期结构结果、canonical 字节和请求摘要
黑盒验收向量 H01 真实交接、V01–V25 故障与竞争、G01–G06 跨语言结构/摘要覆盖

Core 定义业务不变量;状态/auth/wire 分别约束流程、权限和编码,三者取交集。Schema 约束结构,不代替授权、跨对象唯一性和时间守卫。若这些文件出现冲突,应修订协议包,不能靠选择一份“优先”文件静默绕过另一份。旧 v9 保留在来源工作区用于追溯,不属于本项目实施输入。

本阶段确定的最小选择

  1. 统一 Task 聚合 revision。 每个成功事实事务加一,renew/report/grant 也参与 CAS。实现简单、并发可解释;代价是 supervisor 与执行者需要处理明确冲突,M1 不另设 lease revision。
  2. 先独立维护,再对新命令做 CAS。 已提交幂等回执优先返回;新命令可能先物化到期并返回 stale。只物化一次,重读后不会被同一到期事实无限阻塞。
  3. claim 和 start 分开。 claim 只创建 Assignment,start 创建唯一 Run;submit 同事务完成 Assignment、Run 与 Submission。Decision 唯一性按 Submission,拒绝后重做产生新一组对象。
  4. 直接授权,固定 binding 实例。 Owner/Issuer 显式授予 Task 权限;parent 不携权。停用后重新启用生成新 binding_id,旧 Assignment 不能复活。claim Grant 与 binding 都限制 lease 截止。
  5. child 独立聚合。 createChild 原子创建 child/Relation/grants,但不改父 revision;child 与 parent 同 Owner。跨 Owner、递归授权和父子状态聚合后置。
  6. 历史回执与执行权分离。 当前有读取权才能取回历史业务结果;token 不因重放恢复有效。只读状态可能尚未物化到期,恢复外部执行前必须通过当前 fenced 命令。
  7. 快照接续与历史审计各有入口。 snapshot 在同一 W 捕获对象事实,接续 W 之后事件;events.open/read 提供 W 之前的完整保留事务历史。audit 保存 action、request_id、reason。
  8. 有边界的 M1 运行配置。 单 authority、私网、预注册、HTTP/JSON-RPC、SQLite/WAL、pull;快照有上限。全局 auth_epoch 简化权限一致性,代价是不相关授权变化也会引发重建。

M1 选择不清理成功幂等键/事件/历史,避免窗口结束后重新执行旧命令;容量达到限制时明确失败。这不是无限容量承诺,未来 retention/GC 需新增协议。JSON 数字只允许安全整数,未知业务数据放 namespaced extensions,较大产物放外部引用。

场景到契约的对应

Owner create/publish P
  → A discover/claim/start P
  → A 以独立 Owner/Issuer 权限 createChild C + publish C
  → B discover/claim/start/report C
  → B submit C(结束租约、创建 Submission)
  → 指定主体验收 S_C
  → R snapshot + replay;需要过去控制记录时 events.open/read

C 超时只结束 C 的承接,P 保持自身流程;P 超时也不撤销 C 的直接权限。另用允许 A/B 的 Q 测试换 Agent 重领,不能扩大定向 C 的候选范围。

可复现的静态检查

在仓库根运行(Python 3.10+,依赖见根目录 requirements-contract.txt;Node 22+):

python3 protocol/m1/check-contract.py
node protocol/m1/check-hashes.mjs

检查器验证 Schema 自身、固定正/负结构样例、UTC 毫秒日期与 URI 格式、重复 JSON 键/非法 Unicode/数值、27 个方法的请求覆盖,以及 JCS 安全整数子集的固定摘要。Python 与 ECMAScript 分别计算相同摘要;这仅是摘要互认,不等于两个完整客户端已经互操作。

迁移前检查通过 90 个结构样例、7 个摘要样例、9 个解析样例;本基线增加两个 IPvFuture 正例,结构样例为 92 个。版本变为 bridge-m1-1 后已重算固定请求摘要。历史设计审查见 协议细化复核记录,本次验证和基线摘要见 冻结记录。

当前尚未执行:daemon 状态/授权/事务测试、SQLite 崩溃恢复、H01/V01–V25、真实输入和产物访问,以及两个独立客户端的完整 conformance。不能把静态通过记为 M1 通过。

冻结与下一阶段

协议包已迁入独立 Git 项目;manifest.json 绑定本基线的确切文件,版本规则 定义修订与兼容性处理。冻结记录保存审查范围及静态验证证据,不冒充运行通过。

后续按 实现任务单 先固定领域对象与事务端口,再实现 daemon、两个独立客户端和只读消费者,最后执行 H01/V01–V25。本阶段不包含这些运行实现。

Documentation

Overview

Package protocol embeds the frozen M1 resources for working-directory independent validation.

Index

Constants

View Source
const Version = "bridge-m1-1"

Variables

View Source
var Golden []byte
View Source
var Schema []byte

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL