agentscope-ai / agentscope-ai/agentscope-java

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

未關閉
#2,439 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
area/core/agent area/core/memory area/core/tool area/docs area/harness bug
主要語言
Java
星號
5.6k
分支
1.3k
平均合併
4 天 12 小時
30 天內合併 PR
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 摘要。