ATEL
AVIP 规范

执行域(AVIP-EXE)

AVIP 执行的规范说明 —— Action Gateway、防篡改记录、检查点与里程碑推进。

执行域 —— AVIP-EXE

执行域管的是从一份签名 意图 到它 结算 之间发生的事。它把每个动作按意图门控,把每个动作记入防篡改链,周期性给这条链打检查点,并在 Agent 对 Agent 的工作中推进里程碑。

组件编码用途
Action GatewayAVIP-EXE-GW绑定意图的逐次调用策略强制
执行记录AVIP-EXE-TR仅追加、哈希链式的动作记录
检查点AVIP-EXE-CP可做部分验证的签名路标
里程碑AVIP-EXE-MS分步交付与验证(A2A)

AVIP-EXE-GW —— Action Gateway

Purpose

一个绑定到签名意图的链下策略引擎,在每次工具调用到达对手方之前授权或拒绝它。

Normative Requirements

对每次工具调用,Gateway MUST 校验以下全部,任一失败则 MUST 拒绝该调用:

  • 工具在意图的 allowedTools 内。
  • 调用参数与意图的 scope 和 maxAmount 一致。
  • 必需的前置工具已成功(如 bitrefill.createInvoice 之前要先 wallet.deposit)。
  • 意图的 deadline 未过。
  • 对超过 requiresConfirmAbove 的金额,存在用户确认记录。

被拒的调用 MUST 仍被记录(见 Error Conditions)。Gateway MUST 对每次调用写恰好一条 ActionTrace 记录,无论放行还是拒绝。

Data Structures

ActionTrace 记录

字段说明
intentId回指签名意图
sequence跨订单的单调计数
tool全限定工具名
args规范化参数
policyDecisionallow / deny / pending_user_confirm
ruleResults逐规则通过/失败明细
previousHash上一条 ActionTrace 的哈希
recordHash本条记录的哈希

Error Conditions

条件决策记为
工具不在白名单denypolicyDecision = deny 的 ActionTrace
参数超出范围/预算denypolicyDecision = deny 的 ActionTrace
前置未满足denypolicyDecision = deny 的 ActionTrace
deadline 已过denypolicyDecision = deny 的 ActionTrace
金额 > requiresConfirmAbove 且无确认pending_user_confirmpolicyDecision = pending_user_confirm 的 ActionTrace

deny 记录是审计关键:它证明系统拒绝了越界尝试,而不是悄悄丢弃。这些记录组成一条哈希链,其 Merkle root 成为链上 auditRoot(见 审计)。


AVIP-EXE-TR —— 执行记录

Purpose

任务执行期间一切事件的仅追加、哈希链式日志。篡改任一事件都会使其后所有哈希失效。

Normative Requirements

  • 每个事件 MUST 含一个按下方公式计算的 hash,以及指向上一事件哈希的 prev。
  • 记录的首个事件 MUST 用 0x00 作为 prev(genesis 锚)。
  • 事件 data MUST 在进入事件 preimage 前被独立哈希(对其确定性序列化做 SHA-256)。
  • 在终止事件(TASK_RESULT 或 TASK_FAILED)之后,实现 MUST 拒绝再追加事件。

事件哈希公式

event_hash = SHA-256(
    seq + "|" + timestamp + "|" + event_type + "|"
  + SHA-256(sorted_stringify(data)) + "|" + prev_hash
)
  • seq —— 从 0 开始的序号
  • timestamp —— ISO 8601
  • event_type —— 下列已识别类型之一
  • data —— 载荷,递归排序键后序列化
  • prev_hash —— 上一事件哈希,genesis 用 0x00

Data Structures

TraceEvent

字段类型说明
seqinteger从 0 起的单调序号
tsstringISO 8601 时间戳
typeTraceEventType已识别类型之一
task_idstring本记录所属任务
dataobject事件专属载荷
prevstring上一事件哈希(genesis 为 0x00)
hashstring本事件的 SHA-256(按公式)
sigstring(可选)Ed25519 签名;仅 CHECKPOINT 有

事件类型

类型触发时机
TASK_ACCEPTEDAgent 接受任务派发
TOOL_CALLAgent 调用外部工具
TOOL_RESULT工具返回结果
POLICY_CHECK策略引擎评估某动作
POLICY_VIOLATION某动作违反策略约束
CHECKPOINT周期性完整性检查点(AVIP-EXE-CP)
TASK_RESULT任务成功完成(终止)
TASK_FAILED任务失败(终止)
ROLLBACK某动作被回滚
THINKING_CHAIN一步推理(可被脱敏)

State

状态进入方式效果
Active记录被创建可追加事件
Finalized追加 TASK_RESULT不再追加
Failed追加 TASK_FAILED不再追加

持久化

记录以 JSONL 持久化 —— 每行一个事件 —— 路径 {storage_dir}/{task_id}.trace.jsonl。该格式支持仅追加写、流式读和崩溃恢复。加载后的记录保留原始时间戳与哈希,MUST NOT 重新计算它们。


AVIP-EXE-CP —— 检查点

Purpose

记录中的签名路标,捕获一个 Merkle root 和累计统计,使长记录无需逐事件处理即可被验证。

Normative Requirements

  • 检查点 MUST 在每 N 个非检查点事件后自动创建(默认 N = 50);每次检查点后计数清零。
  • 检查点事件 MUST 由 Agent 的 Ed25519 身份对该检查点自身的事件哈希签名。
  • 检查点事件 MUST NOT 计入下一次检查点触发。

Data Structures

检查点数据

字段类型说明
merkle_rootstring至此所有事件哈希的 Merkle root
event_countinteger含本检查点在内的事件总数
tool_callsinteger至此的 TOOL_CALL 数
last_hashstring最近一个非检查点事件的哈希
checkpoint.sig = agent_identity.sign(checkpoint.hash)

验证

验证方:(1)重算该检查点的事件哈希,(2)用 DID 中的公钥验证签名,(3)确认 Merkle root 与从事件重算的树一致。


AVIP-EXE-MS —— 里程碑

Purpose

A2A profile 中分步交付与验证的单元。一笔付费 A2A 订单被分成若干里程碑;每个被提交、被验证,最后一个驱动结算。

Normative Requirements

  • 里程碑数 MUST 取自意图的 milestoneCount(默认 5)。
  • 每个里程碑在触发强制仲裁前 MAY 提交至多 3 次。
  • 所有里程碑 MUST 通过验证后才放款。

Data Structures

里程碑记录

字段类型说明
intentIdstring治理意图
milestoneIndexinteger步序号(0..count-1)
statusstringpending / submitted / verified / rejected / arbitrated
resultHashstring交付物的 Keccak-256 哈希
resultSummarystring人类可读描述
withinScopeboolean本步是否在意图 scope 内
amountUsednumber本步消耗的预算
submittedAttimestamp执行方提交时间
verifiedAttimestamprequester 批准时间

State Machine

submitverifyreject(累计 ≤3 次提交)resubmit第 3 次驳回 / 未能解决pendingsubmittedverifiedrejectedarbitrated

范围合规(withinScope)目前是软检查 —— 把里程碑能力与意图 scope 做结构匹配。它是结构化信号,不是协议层密码学强制的保证,并在 Completion Proof 中透明标注(scopeCheckType = soft)。

On-Chain Mapping

每个被验证的里程碑经 AnchorRegistry 锚定:

事件Anchor key哈希
里程碑验证orderId:milestoneIndex(富化)结果数据的哈希
末个里程碑验证orderId:final全部里程碑结果的哈希

On this page