agentscope-ai / agentscope-ai/agentscope-java
[Bug]:HarnessGateway.runSubagentStream 未向暴露的子 Agent 传递 RuntimeContext / MsgContext
- Lenguaje dominante
- Java
- Estrellas
- 5.6k
- Forks
- 1.3k
- Merge medio
- 4 d 12 h
- PR fusionados (30 d)
- 77
Descripción
描述:
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 不完整。
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.