Appearance
删除会话节点
删除会话节点用于删除当前应用、当前用户作用域内的一个会话,并使该会话下的消息不再可用。节点只返回删除是否成功,不返回被删除的会话 ID 或消息数量。
适用场景
- 用户主动结束并清理一个不再需要的业务会话。
- 测试流程完成后清理专用测试会话。
- 根据明确的保留策略删除过期会话及其消息。
- 在用户确认后执行会话级数据清理。
WARNING
删除会话会同时影响该会话下的全部消息。节点没有撤销或恢复入口,也不会在运行时弹出二次确认。不要直接把未经校验的用户输入连接到该节点。
使用前提与作用域
删除会话属于会话管理操作,执行时必须关联应用。资源库工作流试运行时需要选择目标应用,只关联智能体不能替代应用关联。
节点只会在“目标应用(项目)+ 当前用户”的作用域内查找目标,并校验当前用户对目标应用的访问权限。相同名称但属于其他应用或其他用户的会话不会被删除。
添加与配置节点
- 在工作流画布中添加“删除会话”节点。
- 在删除节点之前增加目标选择、权限判断或用户确认步骤。
- 配置必填输入
conversationName。 - 使用
isSuccess处理删除成功和目标不存在两种结果。 - 删除成功后,不再使用原会话名称或 ID 调用消息与历史节点。

图中画布只保留开始、删除会话和结束节点;右侧面板展示当前版本固定的一个输入和一个输出字段。
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
conversationName | String | 是 | 待删除会话的名称。当前执行器也兼容传入会话 ID;支持固定文本或引用上游节点输出 |
输入在执行时会去除首尾空白,去除后不能为空。
推荐传入会话 ID
虽然字段名为 conversationName,但当前执行器会优先把值作为会话 ID 查找,未命中后再按名称查找。删除属于破坏性操作,优先使用创建会话或查询会话列表得到的 conversationId,比使用可能重复或已经修改过的展示名称更可靠。
使用名称时的要求
如果必须按名称删除,先查询会话列表并确认目标应用、当前用户、名称和业务标识全部匹配。不要使用默认名称、模糊匹配结果或未经校验的自由文本。
输出参数
| 参数 | 类型 | 说明 |
|---|---|---|
isSuccess | Boolean | true 表示目标会话被删除;false 表示当前作用域内没有找到有效目标,或目标已经被删除 |
删除成功时返回:
json
{
"isSuccess": true
}找不到目标或重复删除时返回:
json
{
"isSuccess": false
}节点输出不包含错误原因。权限失败、输入缺失或底层服务异常会作为节点执行错误处理,而不是统一转换为 isSuccess=false。
当前版本的执行逻辑
节点按以下顺序执行:
- 解析
conversationName的固定值或变量引用,并校验结果非空。 - 从运行上下文读取关联应用,校验当前用户对目标应用的访问权限。
- 优先把输入值作为会话 ID 查找;未命中时,再在当前应用和用户作用域内按名称查找有效会话。
- 找到目标后,删除会话并同步删除该会话下的全部有效消息。
- 根据会话是否实际被删除返回
isSuccess。
当前主数据库使用删除标记隐藏会话和消息,内存运行路径会直接移除对应数据。无论底层采用哪种方式,节点和产品界面都没有恢复操作,因此对工作流编排而言应视为不可恢复;这不等于承诺数据库记录已经被物理擦除。
推荐编排
带确认的删除
查询会话列表 → 选择唯一目标 → 展示影响范围 → 用户确认 → 删除会话 → 判断 isSuccess → 结果提示
确认步骤应明确告诉用户:会话和其中的消息都会从正常查询结果中消失。
自动清理测试会话
创建测试会话 → 执行测试 → 保留 conversationId → 删除会话 → 记录 isSuccess
自动清理只应作用于有固定前缀、固定应用和明确 ID 的测试数据,不能扫描并删除普通业务会话。
试运行与验收
删除是破坏性操作。不要用正式业务会话直接试运行,建议创建专用测试会话后验证:
- 在测试应用中创建唯一名称的测试会话,并记录
conversationId。 - 可选:写入一条测试消息,确认消息列表可查询。
- 把
conversationId传给删除节点并执行,期望isSuccess=true。 - 查询会话列表,确认目标会话不再出现。
- 查询原会话消息或历史,确认消息不再可用。
- 使用相同 ID 再次执行删除,期望
isSuccess=false。
线上环境验证前应确认测试数据范围和清理权限。本文档截图只展示配置,不执行线上删除。
常见错误与处理
| 现象 | 原因 | 处理 |
|---|---|---|
| 提示需要关联应用 | 调试或运行上下文中没有目标应用,或只关联了智能体 | 在试运行配置中选择应用后重试 |
提示 conversationName 必填 | 输入为空、只含空白,或上游变量没有值 | 检查固定值和变量引用,在上游增加非空校验 |
isSuccess=false | 目标不存在、名称或 ID 错误、作用域不匹配,或目标已经删除 | 先查询会话列表确认目标;不要盲目重复删除 |
| 权限校验失败 | 当前用户无权访问关联应用 | 切换到有权限的应用,或由管理员授予必要权限 |
| 删除了错误会话 | 使用了重复名称、旧名称或未经确认的输入 | 使用唯一 conversationId,并在删除前增加确认与审计记录 |
| 后续节点继续报会话不存在 | 删除后仍执行了消息或历史节点 | 把后续节点放入删除失败分支,或在成功后终止相关会话流程 |
与清空会话历史的区别
| 操作 | 会话对象 | 会话消息 | 后续是否可继续使用原会话 |
|---|---|---|---|
| 删除会话 | 删除 | 同步删除 | 否 |
| 清空会话历史 | 保留 | 清空或切换到新的上下文段 | 是 |
如果只是希望重新开始对话而继续使用同一会话,不要使用删除会话节点,应使用清空会话历史节点。
与旧文档的核对结论
| 旧文档内容 | 当前处理 |
|---|---|
| 每次删除一个指定会话,并同时删除其中所有消息 | 保留,与当前存储实现一致 |
conversationName 为必填 String,可填写固定值或引用变量 | 保留,并补充当前执行器也支持传入会话 ID |
输出固定为 Boolean 类型的 isSuccess | 保留 |
| 资源库试运行需要关联应用 | 保留;当前校验明确要求应用关联 |
| 删除后不可恢复 | 调整为“节点与产品无恢复入口”;主数据库使用删除标记,不描述为物理擦除 |
| 只能删除由“创建会话”节点创建的会话 | 不沿用;当前实现按应用、用户和会话 ID/名称查找,没有校验创建来源 |
| 每个用户最多 200 个会话 | 不沿用;当前节点定义和执行器没有该限制 |
| 试运行只操作草稿态临时会话 | 不作为节点契约沿用;环境隔离以实际部署配置为准 |
发布前检查
- 删除目标来自可信的
conversationId或经过查询确认的唯一名称。 - 工作流已关联正确应用,执行用户拥有访问权限。
- 删除前有明确的业务条件、用户确认或自动清理范围。
- 已记录必要的会话 ID、业务标识和审计信息,但未记录敏感消息正文。
- 已处理
isSuccess=false,不会把目标不存在误判为删除成功。 - 删除成功后不会继续调用该会话的消息或历史节点。
- 业务真正需要的是删除整个会话,而不是清空历史。