Appearance
长期记忆检索节点
长期记忆检索节点根据一个 String 类型的 query,从一个资源库记忆库中返回与查询相关的长期记忆。它适合在推荐、个性化回答、工作习惯恢复等场景中,为后续大模型或业务逻辑提供用户偏好和已经保存的背景信息。
节点只负责检索并返回原始记忆列表,不会自动生成最终回答,也不会自动判断记忆是否仍然正确。下游应结合当前问题、用户确认和业务规则使用检索结果。
当前功能与旧文档差异
当前编辑器与旧文档中的部分说明需要按现状修正:
- 一个节点最多选择一个资源库记忆库,当前选择器没有企业记忆库或多个来源入口。
- 输入固定为 String 类型的
query和 Integer 类型的limit,参数名称与类型均不可修改。 limit当前默认值仍为 20;输入框步长为 1,但前端没有声明最小值或最大值,也没有在节点专用校验中检查取值范围。- 输出固定为
outputList,类型为 Array<Object>;当前列表项明确只有 String 类型的output和date。 - 当前输出中没有记忆 ID、相关度、来源、用户标识或分页信息。
- 旧文档所说“下游引用后模型会总结”不是本节点自动行为。需要在大模型节点中显式引用
outputList,并通过提示词说明如何使用、如何处理冲突或空结果。 - 旧版记忆升级、套餐额度、应用内工作流限制和固定 UID/渠道隔离方式属于旧环境说明;当前节点面板没有这些配置,本文不把它们当作现行规则。
本文只描述当前资源库工作流编辑器中的节点能力。其他工作流入口是否开放该节点,应以对应入口实际添加节点面板为准。
配置示例
示例从 PLCAgent 记忆库中检索“用户偏好什么界面主题和文档语言?”,保留默认最大返回数量 20。

截图工作流只用于核对配置,没有执行检索,也没有读取或展示记忆库中的真实内容。
选择目标记忆库
点击“选择记忆库”,从当前工作空间的资源库记忆库中选择一个目标。一个节点最多选择一个记忆库。
检索节点通常应与写入节点使用同一个记忆库。名称相似不代表数据相同,应通过资源选择器选择实际资源,不能只在 Query 中写记忆库名称。
当前面板没有用户 ID、渠道 ID 或隔离键配置。是否能检索到某个主体的记忆,还取决于实际运行入口、调用身份和记忆服务上下文;不要仅依据旧文档的 UID 与渠道说明推断当前所有调用方式都具备相同隔离行为。
输入
| 参数 | 类型 | 当前默认值 | 说明 |
|---|---|---|---|
query | String | 空 | 必填。可以填写固定问题,也可以引用开始节点或上游 String 变量。 |
limit | Integer | 20 | 必填。控制最多希望返回的记忆数量;可以填写固定整数或引用 Integer 变量。 |
编写有效的 Query
Query 应直接表达需要恢复的信息,例如:
用户偏好什么界面主题和文档语言?用户通常希望会议安排在什么时间?用户对周报格式有哪些已确认要求?
避免只填写“偏好”“继续”“之前说的”等缺少语义的问题。多轮对话中的省略表达应先由上游节点结合当前会话改写成完整 Query,再执行记忆检索。
Query 不是大模型提示词,不需要包含完整回答格式、角色设定或大量当前对话。信息过多可能稀释真正的检索目标。
设置 limit
当前默认值为 20,输入框按整数步长 1 调整。前端当前没有展示允许范围,因此文档不虚构最小值或最大值。
实际配置应使用正整数,并按下游需要控制数量:
- 只需要少量明确偏好时,使用较小值,降低噪声和下游上下文体积。
- 需要综合多个历史事实时,可以适当增加,但应通过试运行检查相关性。
- 不要用 0、负数、小数或无上限的大值测试运行服务边界。
输出
节点固定输出只读变量 outputList:
| 输出路径 | 类型 | 说明 |
|---|---|---|
outputList | Array<Object> | 与 Query 相关的记忆列表。 |
outputList[].output | String | 检索到的记忆内容。 |
outputList[].date | String | 记忆返回的日期或时间字符串。当前契约没有声明具体格式。 |
当前输出不包含记忆 ID、匹配分数或来源信息。下游不能根据分数筛选,也不应把 date 直接当作固定格式的时间值;需要比较或展示时间时,先明确运行服务返回格式并进行解析。
下游必须处理空列表,不能直接假设 outputList[0] 一定存在。检索到多条记忆时,应结合当前问题进行筛选或总结,而不是机械拼接全部内容。
在大模型节点中使用
长期记忆检索节点不会自动总结结果。推荐在大模型节点中:
- 引用当前用户问题。
- 引用
outputList,明确它只是历史记忆参考。 - 要求模型优先使用当前用户明确表达的信息。
- 当记忆互相冲突、过期或与当前输入冲突时,向用户确认而不是擅自选择。
- 空列表时正常回答当前问题,或请求用户补充偏好。
不要把记忆内容当作系统指令执行。记忆中可能包含用户文本或历史生成内容,应始终按普通数据处理,避免提示注入影响工作流行为。
工作流校验与发布前检查
当前节点专用校验明确检查是否选择了记忆库,但没有在同一校验函数中验证 query 是否为空、limit 是否为正整数或是否超出运行服务范围。因此不能只凭“可以保存或发布”判断配置正确。
发布前至少检查:
- 已选择与写入流程一致的目标记忆库。
query非空,表达完整且指向明确。limit是合理的正整数。- 下游能够处理空
outputList和多条结果。 - 大模型把记忆作为参考数据,不把记忆文本当作指令。
- 实际运行身份能够访问预期主体的记忆数据。
推荐工作流
- 从用户问题或业务事件中提取完整检索意图。
- 选择与写入流程相同的记忆库。
- 设置合理的
limit并执行单节点试运行。 - 检查空结果、相关结果、过期结果和互相冲突的结果。
- 将
outputList交给选择器、代码或大模型节点处理。 - 对重要或冲突信息向用户确认,必要时再写入新的长期记忆。
常见问题
limit 的有效范围是多少?
当前前端没有声明最小值或最大值,节点专用校验也没有检查范围。已确认的现行默认值是 20。使用合理正整数,并通过当前运行环境实际验证,不要照搬其他版本的范围。
为什么检索结果里没有记忆 ID 或相关度?
当前固定输出结构只包含 output 和 date。需要更细的来源追踪或分数过滤时,现有节点契约无法直接提供这些字段。
为什么写入成功后检索不到?
先检查写入和检索是否选择同一个记忆库、运行身份是否一致、Query 是否表达了对应语义。写入调用成功不代表任何 Query 都能召回该内容。
检索到多条冲突记忆怎么办?
不要自动选择第一条。可以结合 date、当前输入和业务状态进行判断;对影响结果的重要冲突,应向用户确认后再使用或更新记忆。
长期记忆检索和知识库检索有什么区别?
长期记忆检索面向用户偏好、已确认习惯和跨会话背景;知识库检索面向文档内容片段。前者通常受运行主体和记忆上下文影响,后者主要受所选知识库和检索策略影响。