Appearance
知识库删除节点
知识库删除节点根据文档 ID,从一个资源库知识库中删除指定文档。它适合清理失效资料、在重新写入新版文件前移除旧文档,或由受控业务流程撤销已经写入的知识内容。
删除会直接影响后续知识库检索结果,且当前节点没有恢复入口。应把它视为高风险操作:只有在知识库和文档 ID 均经过确认时才执行,不能把未经校验的用户自由输入直接用于删除。
当前功能与旧文档差异
当前编辑器与旧文档有以下差异,配置时应以当前实现为准:
- 输入参数固定为 String 类型的
documentID,一次只接收一个文档 ID。 - 旧文档中的“上游存在多个
documentId时默认选择第一个”不是当前节点的自动行为。上游返回列表时,需要先明确选出一个元素,或通过循环、批处理逐项删除。 - 一个节点最多选择一个目标知识库。
- 当前选择器只提供资源库知识库。企业知识库目前没有文档删除接口,不能作为删除目标。
- 输出固定为 Boolean 类型的
isSuccess,当前面板不提供被删除文档详情或删除数量。
配置示例
下面的专用截图工作流只用于展示配置,没有执行删除。示例将安全占位值 docs-demo-document-id 填入 documentID,目标选择 java知识库。

实际流程中不要照抄占位值。应引用知识库写入节点返回的 documentId、知识库检索结果中经过明确选择的 documentId,或业务系统保存的受控文档 ID。
输入
| 参数 | 类型 | 当前要求 |
|---|---|---|
documentID | String | 必填。填写固定文档 ID 或引用一个 String 变量;参数名称和类型不可修改。 |
注意大小写:删除节点的输入名是 documentID,而知识库写入、知识库检索输出中的字段名是 documentId。二者不是同一个字段名。通过“引用变量”选择上游输出时,编辑器会保存具体变量引用;手工编排数据时必须保留各自的准确大小写。
引用知识库写入结果
知识库写入节点成功后会输出单个 documentId。如果流程需要稍后更新或撤销该文档,应把这个 ID 保存到受控业务记录,再在删除节点中引用,避免仅凭文件名定位。
引用知识库检索结果
知识库检索节点返回 outputList,其中每一项才包含 documentId。删除节点不会自动处理整个列表,也不会自动取第一项。应先检查列表是否为空,再通过代码、选择器、循环或批处理明确确定要删除的条目。
不要仅根据召回文本相似就直接删除。更稳妥的做法是同时核对文档 ID、业务主键和目标知识库,并在必要时增加人工确认。
使用固定值
只有当文档 ID 来自可信控制台、受控配置或业务数据时才使用固定值。不要把示例 ID、文件名或用户输入的普通文本当作真实文档 ID。
选择目标知识库
点击“选择知识库”,从当前工作空间的资源库知识库中选择一个目标。当前节点最多选择一个知识库,且目标知识库必须与文档 ID 所属知识库一致。
当前节点不支持企业知识库删除。即使旧文档介绍过多个知识库来源,也不能据此推断当前运行服务已经提供企业知识库删除能力。
输出
节点固定输出一个只读变量:
| 输出 | 类型 | 说明 |
|---|---|---|
isSuccess | Boolean | 本次删除操作是否成功。 |
下游应根据 isSuccess 设计成功和失败分支。当前固定输出不包含被删除文档、失败原因或删除数量;需要审计时,应在调用前记录目标知识库、文档 ID、业务来源和操作主体,并把运行失败交给统一异常处理或人工复核。
工作流校验
保存或发布前,编辑器会检查:
documentID已填写固定值或绑定变量。- 已选择一个资源库知识库。
- 知识库来源和所选资源信息一致。
- 目标不是当前不支持删除的企业知识库。
截图工作流没有执行“测试节点”或“试运行”,这是为了避免占位文档 ID 触发真实删除。正式工作流测试应在隔离的测试知识库中进行,并准备可以重新写入的测试文件。
推荐的文档更新流程
- 从业务记录取得旧文档 ID,并核对其所属知识库。
- 删除旧文档,判断
isSuccess。 - 仅在删除成功后写入新版文件。
- 保存知识库写入节点返回的新
documentId,替换业务记录中的旧 ID。 - 对删除失败、写入失败和部分成功分别记录,避免业务记录与知识库实际状态不一致。
如果业务必须确保新版本始终可用,可以先写入新版并验证可检索,再由人工或受控流程删除旧版;具体顺序应根据重复内容和短暂不可用哪一种风险更可接受来决定。
批量删除
当前节点一次处理一个 documentID。删除多个文档时,应把经过确认的文档 ID 列表交给循环或批处理节点,并为每一项保留独立结果。
批量删除前建议增加:
- 数量上限,防止异常列表扩大影响范围。
- 知识库白名单,防止跨库误删。
- 空值和重复 ID 过滤。
- 失败项记录和人工复核,不对未知错误进行无上限重试。
常见问题
为什么不能选择企业知识库?
当前企业知识库没有提供文档删除接口,编辑器也不会把它作为知识库删除节点的可选目标。旧文档中的知识库来源说明不适用于当前节点。
为什么不能直接引用整个 outputList?
documentID 需要一个 String,而 outputList 是对象数组。应先判断数组是否为空,再明确选择其中某一项的 documentId;多项删除使用循环或批处理。
会自动删除检索结果中的第一条吗?
不会。当前节点没有“自动取第一条”的配置或转换逻辑。旧文档中的这一描述已经不适用。
documentID 和 documentId 为什么写法不同?
这是当前节点契约的实际字段命名:删除节点输入使用 documentID,写入和检索输出使用 documentId。引用变量时选择正确的输出路径,不要手工把大小写统一。
删除后还能恢复吗?
当前工作流节点没有恢复操作。删除前应确认目标,并保留可以重新写入的原始文件或来源数据。