🔄 多轮对话
后续请求传同一个 conversationId,并使用同一份存储,即可继续对话。
# 延续同一段对话
沿用快速开始的组件,调用时传入 ExecuteOption:
LiteflowResponse first = flowExecutor.execute2Resp(
"chatChain", "我叫小明",
ExecuteOption.of().autoConversationId());
if (!first.isSuccess()) {
throw new IllegalStateException("Agent 执行失败", first.getCause());
}
String conversationId = first.getConversationId();
LiteflowResponse second = flowExecutor.execute2Resp(
"chatChain", "我叫什么名字?",
ExecuteOption.of().conversationId(conversationId));
if (!second.isSuccess()) {
throw new IllegalStateException("Agent 执行失败", second.getCause());
}
String answer = second.getSlot().getResponseData();
将首轮的 conversationId 返回前端,后续请求原样传回;开始新对话时换一个 ID。也可以直接使用业务生成的 UUID。ID 使用普通名称,避免 /、\、.. 等路径字符。应用名和组件的 Agent 标识也遵循这一命名约束,非法标识会在构建运行时前被拒绝。
需要同时流式输出时,在同一个 ExecuteOption 上继续调用 .eventListener(...),监听方式与快速开始相同。
应用重启后,只要存储数据、应用名、组件名和会话 ID 保持不变,就能接续会话。同一会话中的多个 Agent 各自保存对话上下文,共享工作区文件。
# 重启后续聊
默认 JSON 模式保留 data/agent-state 即可保存正常完成的会话。正式部署应使用固定路径并持久化数据目录;Redis 和 MySQL 的配置见会话存储。
开始新话题时使用新的会话 ID。删除过的 ID 不要复用。一次流程里即使有多个 Agent,也应由调用方维护本次业务会话 ID。
需要在页面中展示会话列表、修改标题或删除聊天记录,见聊天历史。
帮助我们改善此文档 (opens new window)
上次更新: 2026/09/20, 11:49:27



