Skip to content

[Feature][P1] 实现生命周期插件执行链与不可绕过的运行检查 #299

Open

Description

@Aias00

目标

实现生命周期插件的确定性执行链,解决顺序、转换、强制检查、异步取消和重复执行语义;复用已有拦截器链和安全策略,不重写授权或审批系统。

范围与验收

  • 阶段内排序与 before/after 依赖可诊断;循环依赖、重复标识和写入冲突在装配时拒绝,不依赖 Bean 扫描顺序。
  • 观察器只读,转换器返回受限新值;定义包装器嵌套和退出顺序,以及 next 可调用次数。多次调用仅在声明允许的重试阶段有效,每次实际尝试有独立身份与控制检查。
  • 区分观察失败、必要业务门失败和处理器超时;强制策略缺失或失败不能无提示放行,禁止用统一吞异常策略处理所有插件。
  • 工具参数最终变换后复用 Schema/授权/预算/审批检查,实际执行参数与被批准内容绑定;执行后复用结果检查及 [P1][T37] 增加工具上下文补丁校验与成功提交规则 #140 补丁提交。缓存命中、替代响应、returnDirect、子结果和重试不得绕过必经检查。
  • 插件继承 deadline/取消/预算;取消阻止后续阶段,在途异步操作按执行能力中止并释放。运行结束回调与清理幂等,清理预算有界,不吞原始终态。
  • 区分运行、attempt、恢复及回放;声明哪些回调会重跑。带外副作用需稳定身份/幂等或明确拒绝自动重放,接入 [P1C][T14] 持久化模型调用结果与稳定工具执行计划 #125/[P1C][T15] 增加工具效果回执、幂等身份与 IN_DOUBT 核对路径 #126,不承诺任意插件 exactly-once。
  • 流式插件遵守背压、片段/完整响应关联和终态;严格检查必须发生在公开输出前,不宣称已发送内容可撤回。
  • 覆盖顺序冲突、参数变换后拒绝、next 重入、缓存短路、异步取消、插件超时、流失败、恢复重复和清理异常。

边界与约束

扩展点契约由同批契约任务提供;#201 负责策略组合诊断,#120/#134/#135/#140 继续拥有具体检查,#127 继续拥有持久预算。#202 负责插件初始化/注册/撤销与共享资源所有权,本单负责单次运行中的链执行。基础本地行为先交付,持久恢复另行接入原任务。优先复用现有实现,独立 Agent/Workflow 不依赖 Graph/Loop;破坏性变化须论证收益与迁移。

Concrete dependencies

Contract: #298. Runtime wiring: #301.

stream-agent 参考:执行边界的竞态验收

参考 stream-agent 工作区 ToolEngine.checkInvocation/execute;静态分析,不据此认定 ARGI 新漏洞。只补验收,不重写已完成授权组件。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions