agentscope-ai / agentscope-ai/agentscope-java

[Bug]:HarnessGateway.runSubagentStream 未向暴露的子 Agent 传递 RuntimeContext / MsgContext

Đang mở
#1,700 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
area/harness 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ả

描述:

HarnessGateway.runStream(MsgContext, List, OutboundAddress) 会正确构造 RuntimeContext,并注入 sessionId、userId、msgContext、gateKey、outboundAddress 等信息,然后传给 HarnessAgent.streamEvents(...)。

但当前 HarnessGateway.runSubagentStream(String subagentId, List) 只构造了:

RuntimeContext rtc = RuntimeContext.builder()
.sessionId(session.sessionId())
.build();
因此,当用户直接与通过 expose_to_user 暴露出来的子 Agent 对话时,调用方上下文会丢失,包括但不限于:

MsgContext
userId
请求级自定义参数
业务 middleware 依赖的运行时属性
这会导致子 Agent 的 middleware无法拿到完整上下文。

期望行为:

为 runSubagentStream 增加可传入上下文的重载,例如:

Flux runSubagentStream(
String subagentId,
MsgContext context,
List messages
);
或:

Flux runSubagentStream(
String subagentId,
RuntimeContext runtimeContext,
List messages
);
实现时应保留暴露子 Agent 原有的 sessionId,同时合并调用方传入的上下文,例如:

RuntimeContext rtc = RuntimeContext.builder()
.sessionId(session.sessionId())
.userId(context.userId())
.put("msgContext", context)
.put("gateKey", "subagent:" + subagentId)
.build();
影响:

用户直连子 Agent 时无法传递请求上下文。
子 Agent middleware 收到的 RuntimeContext 不完整。

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.