记忆使用
记忆让 Agent 在新的会话中继续使用已经了解的偏好、项目背景和工作经验,减少重复说明。OpenViking 可以在会话提交后提取值得保留的信息,供 Agent 在后续任务中检索和使用。
下面以虚构的海岬项目为例:先保存评审习惯,再开启一个新会话,让 VikingBot 根据这些记忆准备评审提纲。完成后,你可以查看记忆正文、核对召回来源,并确认回答是否沿用了项目约定。
适用场景
| 场景 | 可以保留的信息 | 后续如何使用 |
|---|---|---|
| 个性化回答 | 常用语言、摘要格式、表达偏好 | 按用户熟悉的方式组织回答 |
| 项目协作 | 项目背景、已有决定、文件命名约定 | 开启新会话后继续处理项目任务 |
| 经验复用 | 解决问题时有效的方法和注意事项 | 遇到类似问题时检索已有经验 |
记忆会根据输入内容和服务端配置提取、整理。同一段对话可能产生多条记忆,也可能更新已有记忆;具体分类见记忆类型。
准备环境
先按快速开始连接服务,完成 VikingBot 的启用与连接配置。服务端需要可用的记忆提取和 Embedding 模型,VikingBot 需要能够调用 OpenViking 检索工具。
本流程通过 CLI 保存会话,再由 VikingBot 召回。两者应连接同一服务、使用同一用户身份,让新会话能够访问前面保存的记忆。本例使用用户自身的记忆空间,项目插件的身份与 Peer 范围可参考集成能力对照。
以下操作会调用模型,并将虚构项目的信息写入当前用户的记忆。可使用专门的演示账号体验,便于之后清理。会话名称使用下方示例值即可;若已经使用过这些名称,请更换名称并同步修改后续命令。
保存项目背景
先创建一个会话,用于记录海岬项目的评审约定。--no-auto-commit 将提交时机交给后面的手动操作:
ov session new --session-id cape-docs-a --no-auto-commit向这个会话写入一条用户消息,说明希望在后续评审中复用的背景:
ov session add-message cape-docs-a --role user --content "这是虚构的海岬项目。我们每次评审只讨论两项风险,摘要使用中文三条要点,交付文件统一命名为 cape-review.csv。以后准备海岬评审时请遵循这些约定。"提交会话,让服务归档消息并开始提取记忆:
ov session commit cape-docs-a记录返回的 task_id 和 archive_uri。accepted 表示消息已归档、记忆提取已进入后台处理;接下来查询任务,确认记忆是否生成。
查看生成的记忆
将 <task_id> 替换为提交时返回的任务 ID:
ov task status <task_id>状态为 completed 后读取结果。可以每隔 5 秒检查一次,先观察最多 2 分钟;仍在运行时保留任务 ID,稍后继续。若状态为 failed 或 cancelled,先查看任务错误或取消原因,再决定后续操作。
将 <archive_uri> 替换为提交时返回的归档 URI,读取本次记忆变更:
ov read "<archive_uri>/memory_diff.json"在 operations.adds 或 operations.updates 中找到 uri,复制该值读取记忆正文:
ov read "<记忆 URI>"核对正文是否保留了三个要点:每次评审讨论两项风险、摘要使用三条中文要点、交付文件名为 cape-review.csv。记忆的文件名和分类可能不同,以实际返回的 URI 为准。
在新会话中使用
使用新的 VikingBot 会话 ID,只提供项目名称和新任务。具体的风险数量、摘要格式和文件名由 Agent 从已保存的记忆中获取:
ov chat --session cape-docs-b -m "请检索已保存的海岬项目记忆,按项目约定准备下一次评审提纲,并说明建议的交付文件名。请引用使用的记忆 URI。"核对回答是否包含两项风险的讨论位置、三条中文摘要要点,以及文件名 cape-review.csv。本次输入没有提供具体风险,提纲可将风险内容标为待补充。
结合工具调用输出或 Bot 日志,检查保存、召回和使用三个环节:
| 环节 | 核对内容 |
|---|---|
| 保存 | memory_diff.json 记录了变更,记忆正文包含项目约定 |
| 召回 | 检索工具结果包含对应的记忆 URI 和内容 |
| 使用 | 新回答遵循约定,引用的记忆 URI 与检索结果一致 |
再开启一个新会话,查看回答是否能保持与当前任务相关:
ov chat --session cape-docs-c -m "17 加 25 等于多少?"这个问题的答案应为 42,回答无需加入海岬项目的评审格式或文件名。
常见问题
| 遇到的情况 | 检查方式 |
|---|---|
提交返回 skipped | 本次没有可归档消息;用 ov session get cape-docs-a 检查消息是否已添加或已提交 |
| 任务失败或一直未完成 | 查看任务状态和错误信息,检查模型连接及服务端记忆配置 |
| 没有生成预期记忆 | 核对原消息、memory_diff.json 和生效的提取策略;相同信息也可能已保存在已有记忆中 |
| 已保存但新会话没有召回 | 检查 CLI 与 VikingBot 的服务地址、用户身份、记忆范围和检索工具是否可用 |
| 已召回但回答没有使用 | 查看工具返回内容和 Agent 指令,让 Agent 依据召回的记忆修订回答 |
继续使用
换成自己的项目背景或回答偏好后,可以用效果评估记录相关任务和无关任务的表现。接入已有 Agent 时,各插件的会话捕获、提交与召回方式见集成能力对照;会话参数和变更记录格式见会话 API。
体验结束后,可在 Studio 中根据本次 memory_diff.json 确认演示记忆,再按需清理会话和记忆。若本次更新了已有记忆,先核对修改内容,保留仍需使用的信息。