Skip to content

[BUG][P2] 独立 ReAct 应使用 ModelRequest 中显式选择的 ChatClient #271

Closed

Description

@Aias00

已确认问题

ModelRequest.getChatClient() 明确用于拦截器的可选客户端覆盖,包括 fallback。独立 ReAct 的非流式调用直接使用构建时 chatClient.call(...),流式入口同样使用固定客户端,忽略了请求内选定的客户端。模型路由或 fallback 不能可靠切换目标。

代码:https://github.com/agentic-ai-java/argi/blob/b34835354b27f1f320ea8438edf2e9d170e69c84/argi-agent/argi-agent-core/src/main/java/io/github/agentic/ai/agent/react/ReActAgent.java#L384;https://github.com/agentic-ai-java/argi/blob/b34835354b27f1f320ea8438edf2e9d170e69c84/argi-agent/argi-agent-core/src/main/java/io/github/agentic/ai/agent/react/ReActAgent.java#L400。

最小复现场景与证据

  1. 为客户端 A/B 分别记录调用次数,两者均可返回正常假响应。
  2. 使用 A 构建 ReAct,在拦截器中将请求改为 ModelRequest.builder(request).chatClient(B).build() 后交给 next。
  3. 调用 Agent。

实际 primary=1, selected=0;期望 primary=0, selected=1。这证明客户端覆盖本身失效,不依赖远端故障或流式切换时机。

交付与验收

  • 存在显式覆盖时使用请求中的客户端,否则使用 Agent 默认客户端。
  • 非流式和流式遵循相同选择规则,取消必须绑定实际选中客户端的在途操作。
  • 覆盖默认、显式路由、A 失败后 B 成功、所有候选失败、并发调用和流式调用。
  • 保留选中请求的消息、工具、选项和用量归集;已有请求能力预检适用时针对实际客户端执行。

关联与范围

关联 #196、#209、#210。本单修复请求级客户端选择;不重复 #210 的“流式首事件前后能否安全 fallback”设计,不新增路由控制平面。

验证基线与变更约束

审阅基线:Core b34835354b27f1f320ea8438edf2e9d170e69c84 / Extensions cb2635ab2fc338e8aade28a132a15f48b4e655fc。以下为离线 stub、独立 Java 探针或候选工件编译验证的结果,不代表真实模型、外部服务或生产环境验收。

修复保持独立 ReAct/Workflow 不依赖 Graph/Loop,不向 Core 引入供应商 SDK。优先修正现有契约的执行行为;确需改变公开 API、配置或定义格式时,说明较小替代方案、收益、消费者影响、目标版本与迁移方式。不得以跳过测试或删除能力换取通过。

Activity

  1. hengyuss commented on Nov 3, 2026

    @hengyuss
    Contributor

    我想尝试解决这个问题~

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