fix: 保留模型异常后的会话上下文
- 保存模型失败与无正文取消路径中的 AgentScope 会话 - 补充失败和推理中断场景的上下文恢复测试
This commit is contained in:
@@ -689,6 +689,7 @@ public class AgentScopeReActRuntime implements AgentRuntime {
|
||||
saveSession();
|
||||
return Flux.just(cancelled(context));
|
||||
}
|
||||
saveSession();
|
||||
return Flux.just(failed(context, error));
|
||||
}
|
||||
|
||||
@@ -733,7 +734,8 @@ public class AgentScopeReActRuntime implements AgentRuntime {
|
||||
* 将取消前已输出的助手内容补写入 AgentScope memory 并保存 session。
|
||||
*
|
||||
* <p>AgentScope 的正常完成路径会自行把最终助手消息写入 memory。取消订阅时不会触发
|
||||
* 完成路径,因此这里仅在已有非空助手内容时补写一次,确保下一轮对话能拿到中断前上下文。</p>
|
||||
* 完成路径,因此这里仅在已有非空助手内容时补写一次,并始终保存已经进入 memory 的
|
||||
* 用户消息,确保下一轮对话能拿到中断前上下文。</p>
|
||||
*
|
||||
* @param finalText 当前已累计的助手文本
|
||||
* @param finalMessage 当前已捕获的结构化助手消息
|
||||
@@ -741,10 +743,9 @@ public class AgentScopeReActRuntime implements AgentRuntime {
|
||||
private void persistPartialAssistantOnCancel(StringBuilder finalText,
|
||||
AtomicReference<AgentMessage> finalMessage) {
|
||||
AgentMessage partialMessage = partialAssistantMessage(finalText, finalMessage);
|
||||
if (partialMessage == null) {
|
||||
return;
|
||||
if (partialMessage != null) {
|
||||
agent.getMemory().addMessage(messageAdapter.toMsg(partialMessage));
|
||||
}
|
||||
agent.getMemory().addMessage(messageAdapter.toMsg(partialMessage));
|
||||
saveSession();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user