Skip to content

删除会话节点

删除会话节点用于删除当前应用、当前用户作用域内的一个会话,并使该会话下的消息不再可用。节点只返回删除是否成功,不返回被删除的会话 ID 或消息数量。

适用场景

  • 用户主动结束并清理一个不再需要的业务会话。
  • 测试流程完成后清理专用测试会话。
  • 根据明确的保留策略删除过期会话及其消息。
  • 在用户确认后执行会话级数据清理。

WARNING

删除会话会同时影响该会话下的全部消息。节点没有撤销或恢复入口,也不会在运行时弹出二次确认。不要直接把未经校验的用户输入连接到该节点。

使用前提与作用域

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

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

添加与配置节点

  1. 在工作流画布中添加“删除会话”节点。
  2. 在删除节点之前增加目标选择、权限判断或用户确认步骤。
  3. 配置必填输入 conversationName
  4. 使用 isSuccess 处理删除成功和目标不存在两种结果。
  5. 删除成功后,不再使用原会话名称或 ID 调用消息与历史节点。

删除会话节点及配置面板

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

输入参数

参数类型必填说明
conversationNameString待删除会话的名称。当前执行器也兼容传入会话 ID;支持固定文本或引用上游节点输出

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

推荐传入会话 ID

虽然字段名为 conversationName,但当前执行器会优先把值作为会话 ID 查找,未命中后再按名称查找。删除属于破坏性操作,优先使用创建会话或查询会话列表得到的 conversationId,比使用可能重复或已经修改过的展示名称更可靠。

使用名称时的要求

如果必须按名称删除,先查询会话列表并确认目标应用、当前用户、名称和业务标识全部匹配。不要使用默认名称、模糊匹配结果或未经校验的自由文本。

输出参数

参数类型说明
isSuccessBooleantrue 表示目标会话被删除;false 表示当前作用域内没有找到有效目标,或目标已经被删除

删除成功时返回:

json
{
  "isSuccess": true
}

找不到目标或重复删除时返回:

json
{
  "isSuccess": false
}

节点输出不包含错误原因。权限失败、输入缺失或底层服务异常会作为节点执行错误处理,而不是统一转换为 isSuccess=false

当前版本的执行逻辑

节点按以下顺序执行:

  1. 解析 conversationName 的固定值或变量引用,并校验结果非空。
  2. 从运行上下文读取关联应用,校验当前用户对目标应用的访问权限。
  3. 优先把输入值作为会话 ID 查找;未命中时,再在当前应用和用户作用域内按名称查找有效会话。
  4. 找到目标后,删除会话并同步删除该会话下的全部有效消息。
  5. 根据会话是否实际被删除返回 isSuccess

当前主数据库使用删除标记隐藏会话和消息,内存运行路径会直接移除对应数据。无论底层采用哪种方式,节点和产品界面都没有恢复操作,因此对工作流编排而言应视为不可恢复;这不等于承诺数据库记录已经被物理擦除。

推荐编排

带确认的删除

查询会话列表 → 选择唯一目标 → 展示影响范围 → 用户确认 → 删除会话 → 判断 isSuccess → 结果提示

确认步骤应明确告诉用户:会话和其中的消息都会从正常查询结果中消失。

自动清理测试会话

创建测试会话 → 执行测试 → 保留 conversationId → 删除会话 → 记录 isSuccess

自动清理只应作用于有固定前缀、固定应用和明确 ID 的测试数据,不能扫描并删除普通业务会话。

试运行与验收

删除是破坏性操作。不要用正式业务会话直接试运行,建议创建专用测试会话后验证:

  1. 在测试应用中创建唯一名称的测试会话,并记录 conversationId
  2. 可选:写入一条测试消息,确认消息列表可查询。
  3. conversationId 传给删除节点并执行,期望 isSuccess=true
  4. 查询会话列表,确认目标会话不再出现。
  5. 查询原会话消息或历史,确认消息不再可用。
  6. 使用相同 ID 再次执行删除,期望 isSuccess=false

线上环境验证前应确认测试数据范围和清理权限。本文档截图只展示配置,不执行线上删除。

常见错误与处理

现象原因处理
提示需要关联应用调试或运行上下文中没有目标应用,或只关联了智能体在试运行配置中选择应用后重试
提示 conversationName 必填输入为空、只含空白,或上游变量没有值检查固定值和变量引用,在上游增加非空校验
isSuccess=false目标不存在、名称或 ID 错误、作用域不匹配,或目标已经删除先查询会话列表确认目标;不要盲目重复删除
权限校验失败当前用户无权访问关联应用切换到有权限的应用,或由管理员授予必要权限
删除了错误会话使用了重复名称、旧名称或未经确认的输入使用唯一 conversationId,并在删除前增加确认与审计记录
后续节点继续报会话不存在删除后仍执行了消息或历史节点把后续节点放入删除失败分支,或在成功后终止相关会话流程

与清空会话历史的区别

操作会话对象会话消息后续是否可继续使用原会话
删除会话删除同步删除
清空会话历史保留清空或切换到新的上下文段

如果只是希望重新开始对话而继续使用同一会话,不要使用删除会话节点,应使用清空会话历史节点。

与旧文档的核对结论

旧文档内容当前处理
每次删除一个指定会话,并同时删除其中所有消息保留,与当前存储实现一致
conversationName 为必填 String,可填写固定值或引用变量保留,并补充当前执行器也支持传入会话 ID
输出固定为 Boolean 类型的 isSuccess保留
资源库试运行需要关联应用保留;当前校验明确要求应用关联
删除后不可恢复调整为“节点与产品无恢复入口”;主数据库使用删除标记,不描述为物理擦除
只能删除由“创建会话”节点创建的会话不沿用;当前实现按应用、用户和会话 ID/名称查找,没有校验创建来源
每个用户最多 200 个会话不沿用;当前节点定义和执行器没有该限制
试运行只操作草稿态临时会话不作为节点契约沿用;环境隔离以实际部署配置为准

发布前检查

  • 删除目标来自可信的 conversationId 或经过查询确认的唯一名称。
  • 工作流已关联正确应用,执行用户拥有访问权限。
  • 删除前有明确的业务条件、用户确认或自动清理范围。
  • 已记录必要的会话 ID、业务标识和审计信息,但未记录敏感消息正文。
  • 已处理 isSuccess=false,不会把目标不存在误判为删除成功。
  • 删除成功后不会继续调用该会话的消息或历史节点。
  • 业务真正需要的是删除整个会话,而不是清空历史。