Skip to content

Interaction Request

角色

InteractionRequest 是平台统一的人机交互对象,用于表达审批、补充输入、鉴权、选择和确认。

它是 AaaS v1 的 canonical interaction model。A2A、ACP、AG-UI 以及原生 runtime 的等待输入语义都必须先收敛到这个资源,而不是各自维护独立暂停状态机。

核心字段

  • interactionId
  • orgId
  • runId
  • attemptId
  • threadId
  • kind
  • status
  • blocking
  • scope
  • resolutionPolicy
  • prompt
  • payloadSchema
  • options
  • response
  • deadlineAt
  • origin
  • version

规范要求

  • 每个 InteractionRequest MUST 归属于单一 runId 与单一 attemptId
  • 终态为 resolvedrejectedexpiredcanceled,终态 MUST 不可逆
  • 会阻塞运行推进的审批、补充输入、鉴权、选择、确认需求 MUST 被归一化为 InteractionRequest
  • 同一 run MAY 同时存在多个 open interaction
  • 同一 run 在任一时刻 MUST 至多暴露一个 blocking=true 且仍未终结的当前阻塞 interaction
  • interaction 的响应动作 MUST 统一为 RespondInteractionCommand,并显式带 decision = resolve | reject | cancel
  • response 之后依赖该交互结果产生的输出事件,MUST 在序列上晚于对应的 response fact

与 Run 的关系

  • interaction 是 run 的阻塞覆盖层,不引入新的顶层状态
  • run 在等待交互时,通常保持 status=running,并同时暴露 blockingInteractionIdblockedReasonwaitingSince
  • 历史 interaction MAY 保留在读模型中,用于审计、恢复与前端重建

标准接口

  • Read Plane
    • GET /v1/runs/{runId}/interactions
    • GET /v1/runs/{runId}/interactions/{interactionId}
  • Control Plane
    • POST /v1/runs/{runId}/interactions/{interactionId}:respond:
  • Run Stream / Output Event
    • interaction.requested
    • interaction.updated
    • interaction.responded

协议映射

  • A2A 的等待输入、鉴权或确认语义 MUST 映射到 InteractionRequest
  • ACP 的 permission / prompt 语义 MUST 映射到 InteractionRequest
  • AG-UI 的 human-in-the-loop、approval、intervention 语义 MUST 映射到 InteractionRequest

白皮书与规范内容以仓库真源为准。