Skip to content

[BUG] Redis RunStore 应支持中立 Agent 与 Workflow 定义引用 #43

Open

Description

@Aias00

已复现问题

Core RunSpec 已支持 GRAPH、AGENT、WORKFLOW 的 DefinitionReference,graphId()/graphVersion() 对非 GRAPH 会抛 IllegalStateException。但 RedisRunKeys.fingerprint 仍调用这两个方法;RedisRunStore.submit 在发送 Redis 命令前即计算指纹。

编译实际 RedisRunKeys 并构造三类 RunSpec:GRAPH 成功;AGENT 抛 Run targets agent, not a graph;WORKFLOW 抛 Run targets workflow, not a graph。此缺陷可不启动 Redis 复现,但修复必须补真实 Redis 验收。

证据:https://github.com/agentic-ai-java/argi-extensions/blob/495414b76a37aca4d7c1022d973a8e5b9a7e92e6/graph-persistence/argi-graph-persistence-redis/src/main/java/io/github/agentic/ai/graph/persistence/redis/RedisRunKeys.java#L51;同模块 RedisRunStore.submit 与 RedisRunRecordCodec 的指纹校验。

交付与验收

  • 指纹明确覆盖 definition kind/id/version,保持 tenant/principal、输入和提交去重语义;不同 kind 的同 id/version 不得误去重。
  • 处理存量 GRAPH 指纹与 codec 校验兼容,选择版本化格式/迁移方案并有旧 fixture;不能仅全局替换字段导致历史记录变损坏。
  • 三类定义均验证提交、重读、重复提交、定义/输入冲突、跨租户访问和损坏数据。
  • 真实 Redis 验证与中立 RunStore 契约一致,不将普通 CAS 当所有权 fencing。
  • 不为通过验证将 Agent/Workflow 转成 Graph 或让公共契约重新依赖图引擎。

Redis 契约测试依赖迁移是另一个构建问题,本单验收运行时定义语义。

基线、关系与变更约束

已验证 Core 76d44429fdaa6a69320e21a1cb77119d0889d792 / Extensions 495414b76a37aca4d7c1022d973a8e5b9a7e92e6。关联:#6(历史实现)、#30;agentic-ai-java/argi#182、agentic-ai-java/argi#200。

局部修复不等待全局 Agent/Workflow/Loop 重构。优先复用现有中立契约;若改公共 API、配置或持久数据,说明替代方案、消费者影响、目标版本与迁移/回滚步骤。不得以跳过检查、删除测试或向 Core 重新引入供应商 SDK 解决问题。

契约测试构建前置:#45;本单独立验收定义种类、去重指纹和历史数据语义。

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