You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
使用 OpenViking 接管 Agent 记忆
了解 OpenViking 的记忆机制
复制全文
下载 pdf
了解 OpenViking 的记忆机制

OpenViking 将会话中具有长期价值的信息整理为记忆,并在后续任务中提供检索和读取能力。接入后,Agent 可以在新的会话中继续使用用户偏好、项目背景和任务经验,无需每次重新收集这些信息。

OpenViking 记忆类型

记忆主要解决两类问题:一类是“了解服务对象”,另一类是“积累做事方法”。OpenViking 内置6类记忆类型:画像、偏好、实体、事件,以及用于经验积累的轨迹和经验。
Agent 或服务端先记录会话并传入 OpenViking,再通过 Commit 接口提交 Session;OpenViking 根据输入内容、有效记忆策略和已有记忆,判断是否需要抽取或更新。

画像(Profile):用户是谁

何时抽取:​会话中出现用户明确说明或确认的、预期持续有效的身份与背景,例如“我是数据工程师,有五年 Python 开发经验”。
记忆主题:​职业、教育背景、专业技能等稳定状态。具体喜好放入偏好;某次任职变动等发生过的事情放入事件。
存储与更新:​固定保存为 memories/profile.md。新事实补充到已有画像;可变状态有新的明确确认时更新。

Image

偏好(Preferences):希望怎样被服务

何时抽取:​用户表达具体、可复用的选择、习惯或要求,例如“以后排障请用中文,先给简短步骤,必要时再展开”。不需要使用固定的触发词。
记忆主题:​沟通方式、代码风格、工具选择、工作流程等。不同主题分别保存,同一主题中保留适用条件和例外。
存储与更新:​路径为 memories/preferences/{偏好主体}/{主题}.md。同一主体、同一主题的内容可以补充或修正;无关主题不合并。

Image

实体(Entities):持续关注哪些对象

何时抽取:​会话提供了某个具体对象的、后续仍有用的事实,例如“Atlas 是团队的数据分析服务,使用 Python,存储用 PostgreSQL”。
记忆主题:​项目、产品、组织、设备、地点等对象的身份、用途、属性和关系。
存储与更新:​路径为 memories/entities/{类别}/{名称}.md;英文类别和名称为小写。
合并边界:​同一对象的新事实更新到其文件;不同对象即使名称相近、用途相似,也不会整理为一个对象。

Image

事件(Events):发生了什么

何时抽取:​出现值得后续追踪的事实、决定、承诺、安排或结果,例如“今天确认 Atlas 在 9 月 20 日开始试运行,由数据平台团队负责”。
记忆主题:​具体发生的事,以及参与对象、时间、决定和结果。一场会议中的不同决定可以形成不同事件,不把整段聊天都当作一个事件。
存储与更新:​路径为 memories/events/{年}/{月}/{日}/{事件名}.md。默认事件都是新增,不像画像那样持续改写为一个最新状态。

Image

轨迹(Trajectories):任务是怎样完成的

何时抽取:​启用相应经验记忆能力后,任务包含可识别的目标,以及工具调用、关键决策或多步骤执行过程。简单闲聊通常没有可提炼的执行轨迹。
记忆主题:​任务意图、前置条件、关键步骤、对象边界、结果和证据。轨迹是对执行过程的结构化提炼,不是原始聊天或工具日志的逐字副本。
存储与更新:​路径为 memories/trajectories/{轨迹名}_{会话时间戳}.md。默认新增保存;时间戳形如 YYYYMMDDHHMMSS,来自会话消息时间。

Image

经验(Experiences):下次可以怎样做

何时抽取:​启用经验记忆后,从任务轨迹及结果中发现可迁移的方法、有效分支或需要避免的错误。并非每条轨迹都会产生一条新经验。
记忆主题:​Situation 说明适用情境,Approach 给出执行方法,Reflect 记录限制和风险边界。经验强调可复用做法,而非某个人、某次任务的流水账。
存储与更新:​路径为 memories/experiences/{经验名}.md。新方法可以生成文件;同一主题的经验会结合新证据更新,而不是每次都机械追加。

Image

一次交互可以产生不同类型的记忆。例如,“我是数据工程师”可补充画像,“以后用中文给步骤”可形成偏好,“Atlas 使用 PostgreSQL”可更新实体,“确认试运行日期”可形成事件;Agent 实际完成的排障过程可形成轨迹,并进一步提炼经验。是否产生记忆、产生哪些类型,以实际启用能力和抽取结果为准。

记忆如何自动产生和更新

Image

记录真实的交互过程

Agent 执行任务时,将用户输入、助手回复、工具调用与结果按发生顺序写入 Session。用户的纠错、任务最终结果和验证反馈也属于重要输入。
OpenViking 只能处理接入方实际提供的内容。仅配置检索工具,或仅保存 Agent 最终回复,不能替代完整的会话记录。专属插件可自动完成部分记录工作;自建 Agent 需要在 Runtime 中实现。

在合适的边界提交会话

Commit session 操作用于将本次可归档的消息提交给后续处理。常见时机包括任务完成、一次纠错处理结束,或准备切换到无关目标。长会话还可以使用接入方或服务端提供的自动提交机制。

后台抽取并更新长期记忆

会话提交后,OpenViking 在后台分析已归档内容,结合信息归属、允许的记忆类型和已有记忆,生成或更新长期信息。已有内容可能被补充,而重复、缺少长期价值或不在策略范围内的信息可能不产生新的记忆。
个人和项目记忆用于描述对象的画像、偏好、实体与事件;经验记忆通过轨迹保留任务过程与结果,再提炼可复用的经验。新增信息、对已有内容的补充或纠正,以及重复信息,会形成不同的处理结果。
Image

Agent 如何检索和使用记忆

将 OpenViking 记忆接入到 Agent runtime 端进行消费,一次完整的使用过程包括确定范围、检索、读取与组装上下文。Agent 服务需要做这几件事:

  1. Agent 或服务端确定当前用户身份或任务范围。明确正在使用哪个 User,以及当前服务的人或项目是否对应某个 Peer。
  2. 构造查询 Query 并使用 User 凭据调用检索工具。用当前目标、关键对象和限制条件描述需要的信息,调用 find 检索记忆。
  3. 筛选并按需读取。先利用摘要判断相关性,再读取可能影响当前任务的内容。
  4. 加入模型上下文。将选中的长期记忆作为有来源的参考信息,与近期对话、当前请求一起提供给模型。
  5. 结合当前事实使用。检查记忆的时效性和适用条件;当前用户的明确要求与最新任务事实优先。

如果您使用标准的消费级 Agent 产品(如 Codex,Claude Code,Trae),接入 OpenViking Plugin 即可使用插件中开箱即用的记忆检索能力(详见:使用 OpenViking 个人版快速接入记忆)。如果您希望使用 Open API 自行开发记忆机制,可参考 将 OpenViking 记忆接入 Agent

最近更新时间:2026.09.17 17:49:16
这个页面对您有帮助吗?
有用
有用
无用
无用