Skip to content

创建会话节点

创建会话节点在当前应用中创建一个用于承载连续消息的空会话。节点本身只创建会话对象,不会自动写入用户消息或模型回复;后续可把 conversationId 交给消息节点、会话历史节点或对话流继续处理。

适用场景

  • 首次进入应用时,为当前用户建立一个业务会话。
  • 按订单、工单、客户或任务主题隔离上下文。
  • 在工作流中先创建会话,再写入消息或调用需要会话上下文的后续流程。
  • 用稳定的会话名称重复进入同一主题,并复用已经存在的会话。

使用前提与作用域

创建会话属于会话管理操作,执行时必须关联一个应用。资源库工作流试运行时,应在调试配置中选择目标应用;只关联智能体不能替代应用关联。

节点会在“目标应用(项目)+ 当前用户”的作用域内查找和创建会话,并检查当前用户是否有权访问该应用。不同应用或不同用户之间的同名会话互不复用。

IMPORTANT

旧文档中的“动态会话区域”“草稿态临时数据”和“最多 200 个会话”等描述,没有在当前节点定义、执行器和编辑器中形成同等约束,本页不继续沿用。实际数据保留与环境隔离策略以部署环境为准。

添加与配置节点

  1. 在工作流画布中添加“创建会话”节点。
  2. 连接需要先执行的上游节点。
  3. 配置必填输入 conversationName
  4. isSuccessisExistedconversationId 连接到判断、消息或输出节点。
  5. 试运行时关联目标应用,再检查节点输出。

创建会话节点及配置面板

图中画布只保留开始、创建会话和结束节点,右侧面板展示当前版本固定的输入与输出字段。

输入参数

参数类型必填说明
conversationNameString会话名称。支持填写固定文本,也支持引用上游节点输出。首尾空白会在执行时被去除,去除后不能为空

固定值

名称固定且可复用时,可直接填写清晰的业务名称,例如 售后工单-20260824-001

引用上游变量

需要按业务对象动态隔离会话时,可引用上游节点生成的名称。建议名称中包含稳定业务标识,例如工单号或订单号;不要只使用容易重复的展示标题。

输出参数

参数类型说明
isSuccessBoolean本次查找或创建是否成功。节点执行异常时,流程会进入异常处理,不应只依赖该字段兜底
isExistedBooleantrue 表示当前作用域内已经存在同名会话,本次复用了原会话;false 表示创建了新会话
conversationIdString新建或复用会话的唯一 ID,供后续消息、历史或业务节点引用

成功创建新会话时,典型结果为:

json
{
  "isSuccess": true,
  "isExisted": false,
  "conversationId": "conv_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

命中同名会话时,节点不会重复创建,而是返回已有会话 ID:

json
{
  "isSuccess": true,
  "isExisted": true,
  "conversationId": "conv_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

当前版本的执行逻辑

节点按以下顺序执行:

  1. 解析 conversationName 的固定值或变量引用,并校验结果非空。
  2. 从运行上下文读取关联应用,校验当前用户对目标应用的访问权限。
  3. 在目标应用与当前用户的作用域内按名称查询有效会话。
  4. 如果找到同名会话,返回原 conversationId,并令 isExisted=true
  5. 如果没有找到,则创建状态为有效的空会话,生成新的 conversationId,并令 isExisted=false

因此,创建会话节点在相同作用域和相同名称下具备幂等复用语义。重复执行并不等于创建多个同名会话。

推荐编排

创建后写入消息

开始 → 创建会话 → 判断 isSuccess → 创建消息 → 结束

后续消息节点应使用本节点输出的 conversationId 或与之对应的会话引用,避免再次通过不稳定的展示文本猜测目标会话。

区分首次创建与再次进入

创建会话 → 判断 isExisted → 首次初始化 / 直接复用 → 后续处理

  • isExisted=false:可以写入欢迎语、初始化业务状态或建立首条系统记录。
  • isExisted=true:可以直接查询历史消息或继续原主题。

试运行与验收

资源库工作流包含创建、修改、删除或查询会话列表节点时,试运行必须关联应用。建议至少验证两次:

  1. 使用一个未出现过的名称执行,期望 isSuccess=trueisExisted=false,并返回非空 conversationId
  2. 保持应用、用户和名称不变再次执行,期望 isSuccess=trueisExisted=true,且 conversationId 与第一次一致。

更换应用或用户后,不应假定仍会命中第一次创建的会话。

常见错误与处理

现象原因处理
提示需要关联应用调试或运行上下文中没有目标应用,或只关联了智能体在试运行配置中选择应用后重试
提示 conversationName 必填输入为空、只含空白,或上游变量没有值检查固定值和变量引用;在上游增加非空校验
权限校验失败当前用户无权访问目标应用切换到有权限的应用,或由应用管理员授予必要权限
isExisted=true当前应用和用户下已经存在同名会话需要续接时直接复用;必须新建时生成新的业务名称
conversationId 为空或节点异常会话服务没有返回有效 ID,或底层服务执行失败保留运行记录,检查节点错误信息和会话服务日志,不要继续写入消息

与旧文档的核对结论

旧文档内容当前处理
创建一个没有消息的会话保留;当前存储实现创建会话后初始化空消息集合
conversationName 必填,可填写固定值或引用变量保留
同一应用中名称唯一;重名时返回原会话 ID保留,并明确作用域为目标应用与当前用户
输出 isSuccessisExistedconversationId保留,字段和类型与当前节点定义一致
资源库试运行时需要关联应用保留;当前校验明确要求应用关联,关联智能体不能替代
创建空白上下文片段、显示在“动态会话区域”不沿用;当前实现没有对应的用户可见契约
每个用户最多 200 个会话不沿用;当前节点定义与执行器没有该限制

发布前检查

  • conversationName 非空,并能稳定区分业务主题。
  • 动态名称引用的上游字段在所有分支上都有值。
  • 工作流已关联正确的应用,执行用户拥有访问权限。
  • 后续节点使用 conversationId,并处理 isExisted 两种结果。
  • 已验证首次创建与同名复用两条路径。
  • 异常分支不会在会话创建失败后继续写入消息。