agentscope-ai / agentscope-ai/agentscope-java

[Bug]:AG-UI TEXT_MESSAGE events interleave when multiple agent_spawn run concurrently with parallel=true

Đang mở
#2,512 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
area/build area/core/model area/core/tool area/ext/integration area/ext/spring-boot bug
Ngôn ngữ chính
Java
Star
5.6k
Fork
1.3k
Merge trung bình
4 ngày 12 giờ
Pull request đã merge (30 ngày)
77

Mô tả

环境
- AgentScope Java 2.0.0
- DashScope (qwen-flash)
- Spring Boot 4.1.0, Java 21, macOS
- Toolkit config: ToolkitConfig.builder().parallel(true).build()

- 复现步骤
在父 Agent 的 toolkit 中设置 parallel=true
父 Agent 在同一轮中并发调用多个 agent_spawn(timeout_seconds=600),每个 spawn 启动一个 sub-agent
Sub-agent 内部调用工具(如 load_images),产生 TEXT_MESSAGE_START → TEXT_MESSAGE_CONTENT → TEXT_MESSAGE_END 事件流
多个 sub-agent 并发执行
实际行为

AG-UI SSE 流中报错:

Cannot send 'TEXT_MESSAGE_CONTENT' event: No active text message found with ID
'cadcfded-833f-9dfe-9521-6b4076c9bff1'. Start a text message with 'TEXT_MESSAGE_START' first.

期望行为

多个 sub-agent 的 TEXT_MESSAGE 事件应各自独立、不交错,AG-UI 适配器能正确处理。

根因推测

AgentSpawnTool.execLocalSync() 的 Path 1(streamEvents 路径)中,所有并发 sub-agent 共享同一个 AgentEventEmitter:

Optional emitterOpt = AgentEventEmitter.fromContext(ctxView);
AgentEventEmitter parentEmitter = emitterOpt.get();

不同 sub-agent 的 TEXT_MESSAGE_START(id=A) / CONTENT(id=A) 与 START(id=B) / CONTENT(id=B) 在 parentEmitter 中交错。下游 AG-UI 适配器按单线程模型处理事件流,看到交错的 message ID 就报错。

事件虽然带 source tag(如 main/agent-A),但 AG-UI 适配器未按 source 分组。

临时绕过

回退 parallel=false,但所有 spawn 串行执行。

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.