Skip to content

修改会话节点

修改会话节点用于重命名当前应用、当前用户作用域内的已有会话。修改成功后,会话 ID 保持不变,已经写入的消息和会话历史仍然属于原会话。

适用场景

  • 用户确认主题后,把临时会话名改成容易识别的业务名称。
  • 工单、订单或任务状态变化后,同步更新会话标题。
  • 根据上游分类结果动态生成新的会话名称。
  • 在不迁移消息、不更换会话 ID 的前提下修正会话名称。

使用前提与作用域

修改会话属于会话管理操作,执行时必须关联应用。资源库工作流试运行时需要选择目标应用,只关联智能体不能替代应用关联。

节点只会在“目标应用(项目)+ 当前用户”的作用域内查找待修改会话,并校验当前用户对目标应用的访问权限。相同名称但属于其他应用或其他用户的会话不会被修改。

添加与配置节点

  1. 在工作流画布中添加“修改会话”节点。
  2. 将上游节点连接到修改会话节点。
  3. 配置当前名称 conversationName 和目标名称 newConversationName
  4. 使用 isSuccess 判断是否找到并成功修改会话。
  5. 将返回的 conversationId 交给后续消息或历史节点。

修改会话节点及配置面板

图中画布只保留开始、修改会话和结束节点;右侧面板展示当前版本固定的两个输入和三个输出字段。

输入参数

参数类型必填说明
conversationNameString当前会话名称。也兼容传入会话 ID;通常应引用创建会话或查询会话列表得到的可靠值
newConversationNameString修改后的会话名称。支持固定文本或引用上游节点输出

两个输入在执行时都会去除首尾空白,去除后不能为空。

当前会话名称

如果名称来自用户输入,建议先通过查询会话列表确认目标。仅凭展示文本直接修改,可能因为名称错误、大小写差异或作用域不一致而找不到会话。

新会话名称

建议使用稳定的业务标识组成名称,例如 售后工单-20260824-已受理。如果业务要求名称唯一,应在修改前查询会话列表并自行判断目标名称是否已被占用。

WARNING

当前主运行链路不会在重命名前检查 newConversationName 是否与另一个会话重复。虽然节点仍保留 isExisted 输出,成功修改和找不到原会话时该字段当前都为 false。不要依赖它完成名称冲突校验。

输出参数

参数类型说明
isSuccessBooleantrue 表示找到目标会话并完成更新;false 表示当前作用域内没有找到待修改会话
isExistedBoolean为兼容节点契约保留。当前主运行链路没有用它报告目标名称冲突
conversationIdString修改后的会话 ID。修改名称不会改变 ID;找不到目标时为空字符串

修改成功时,典型结果为:

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

找不到原会话时,节点返回:

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

当前版本的执行逻辑

节点按以下顺序执行:

  1. 解析 conversationNamenewConversationName 的固定值或变量引用,并校验非空。
  2. 从运行上下文读取关联应用,校验当前用户对目标应用的访问权限。
  3. 优先把 conversationName 作为会话 ID 查找;未命中时,再在当前应用和用户作用域内按名称查找有效会话。
  4. 没有找到目标时,返回 isSuccess=false 和空 conversationId
  5. 找到目标时,更新会话名称与标题,保留原 conversationId、消息和历史记录。
  6. 返回固定的三个输出字段。

如果新名称与当前名称相同,节点仍会执行一次更新并返回成功;它不会创建新会话。

推荐编排

通过创建结果重命名

创建会话 → 判断 isSuccess → 修改会话 → 判断 isSuccess → 后续消息处理

创建会话节点输出的是 conversationId,而修改节点字段名仍叫 conversationName。当前执行器允许把该 ID 作为 conversationName 的值传入,这比重新拼接旧名称更稳定。

保证目标名称唯一

查询会话列表 → 检查 newConversationName 是否已存在 → 修改会话 / 生成新名称 → 结束

当前版本没有在主存储路径自动阻止重名,因此需要唯一性时必须把检查放在工作流中明确实现。

试运行与验收

建议在关联应用后按以下顺序验证:

  1. 创建一个测试会话并记录其 conversationId
  2. 使用会话 ID 或当前名称执行修改,期望 isSuccess=true
  3. 查询会话列表,确认名称已经改变、conversationId 保持不变。
  4. 如果会话已有消息,再查询会话历史,确认消息仍然存在。
  5. 使用不存在的旧名称执行一次,确认 isSuccess=falseconversationId 为空。

不要在生产业务会话上随意试运行重命名。测试工作流应使用专门的应用和测试会话名称。

常见错误与处理

现象原因处理
提示需要关联应用调试或运行上下文中没有目标应用,或只关联了智能体在试运行配置中选择应用后重试
提示输入必填任一输入为空、只含空白,或上游变量没有值检查两个输入的固定值和变量引用
isSuccess=false 且 ID 为空当前应用和用户作用域内没有找到原会话先查询会话列表,确认名称或直接使用可靠的会话 ID
修改后出现同名会话当前主运行链路没有执行目标名称冲突检查修改前查询列表并增加唯一性判断,或生成带业务 ID 的名称
权限校验失败当前用户无权访问关联应用切换到有权限的应用,或由管理员授予必要权限
修改成功但后续节点仍找不到会话后续节点继续使用了旧名称优先保存并传递不变的 conversationId,不要依赖旧名称

与旧文档的核对结论

旧文档内容当前处理
修改会话名称,不改变会话 ID 和消息保留;当前存储更新会话记录,不迁移消息
conversationNamenewConversationName 均为必填 String保留,字段和类型与当前节点定义一致
两个输入支持固定值或变量引用保留
输出 isSuccessisExistedconversationId保留,但补充当前主运行链路对 isExisted 的真实行为
新名称已存在时修改失败并返回 isExisted=true不沿用;当前主存储路径没有执行该冲突检查
只能修改由“创建会话”节点创建的会话不沿用;当前实现按应用、用户和会话 ID/名称查找,没有校验创建来源
试运行操作草稿态临时会话,与线上数据隔离不作为节点契约沿用;当前实现只明确要求关联应用,环境隔离以部署配置为准

发布前检查

  • 两个输入在所有执行分支上都非空。
  • conversationName 来自可靠的会话 ID、创建结果或查询结果。
  • 工作流已关联正确应用,执行用户拥有访问权限。
  • 需要名称唯一时,已在修改前显式查询并校验。
  • 后续流程保存和传递 conversationId,不会继续使用旧名称定位会话。
  • 已验证修改成功、目标不存在和消息保留三条路径。
  • 失败分支不会继续执行需要有效会话的消息或历史节点。