agentscope-ai / agentscope-ai/agentscope-java

[Bug]:AgentScope 2.0 GA 单例 Agent 并发时工具组跨会话串扰

オープン
#2,439 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
area/core/agent area/core/memory area/core/tool area/docs area/harness bug
主要言語
Java
スター
5.6k
フォーク
1.3k
平均マージ
4日 12時間
マージ済み PR(30日)
77

説明

**Describe the bug(问题描述)**

AgentScope Java 2.0.0 (GA),同一个共享的 `HarnessAgent`/`ReActAgent` 单例在多个会话
并发执行时,激活的工具组(active tool groups)会跨会话串。原因是 `AgentState` 已按调用
隔离,但 `Toolkit` 仍是实例级共享可变对象:`activateSlotForContext` 里的
`toolkit.setActiveGroups(...)` 改的是共享实例,并发调用互相覆盖;`syncToolkitToState`
还会把它回写进错误会话的状态并持久化,导致该会话之后每轮都带着别人的工具组。

关联 #2256(该 issue 说 2.x 支持单例并发):本问题是**另一种症状**——工具组静默跨会话
串扰,不是 "agent is still running" 等待。若单例并发确为支持用法,这看起来是缺陷。

**Expected behavior(期望行为)**

活动工具组应像 `AgentState` 一样按 `(userId, sessionId)` 调用隔离,会话之间互不影响。

**Environment(环境)**

- AgentScope-Java Version: 2.0.0 (GA)
- Java Version: 21

**Additional context(补充信息)**

建议把工具组活动状态改为按调用隔离(随 `CallExecution`/Reactor Context 携带),
与 `AgentState` 一致。请问:单实例并发多会话是否为官方支持用法?若是则这是 bug,
若推荐每会话独立实例,能否在文档中说明?

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。