关于 ov-experience-memory
ov-experience-memory 是一项 Agent 技能,用于检索以往任务经验,作为操作参考。它规定了搜索和读取 OpenViking Experience 记忆的条件,并要求当前请求和已验证结果优先。
主要功能
- 01检查搜索与精确 URI 读取工具是否可用
- 02将语义搜索限定在 Experience 根目录
- 03读取选定的规范记忆文件
- 04应用经验时以当前证据为准
适用场景
- 01规划可借鉴以往经验的多步骤任务
- 02操作失败后选择恢复步骤
MCP 相关
具备相应能力时,该技能会使用已注册的 OpenViking 工具进行语义搜索和精确 URI 读取;未说明其他 MCP 服务行为。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ volcengine/ openviking --skill ov-experience-memory安装后在 Claude Code 中输入/ov-experience-memory确认已加载。
详细介绍
OpenViking Experience Memory
将以往任务中的 Experience 作为参考性的操作指导。以当前用户请求、当前环境和经过验证的工具结果为准。 Experience 检索是对常规上下文检索的补充;它不会取代用户记忆、事件、偏好、会话归档、资源或 Agent Skills。
前置条件
- 仅使用当前 Agent 运行时中实际注册的 OpenViking 工具。
- 同时需要语义搜索能力和精确 URI 读取能力。
- 如果任一能力不可用,则在无 Experience 的情况下继续。不要凭空捏造工具调用、伪造 ToolPart,或用直接的 HTTP 或命令行访问替代 Agent 工具调用。
- 不要用宽泛的记忆
recall替代限定在 Experience 根目录范围内的搜索。当任务还需要用户事实、事件、决策、过往对话或领域资源时,继续使用运行时正常的 recall 和检索流程。
选择运行时工具
选择与当前运行时匹配的已注册名称:
| 运行时 | 搜索 | 读取 |
|---|---|---|
| OpenViking MCP、Codex、Claude Code | find 或 search | read |
| OpenCode、pi | openviking_find 或 openviking_search | openviking_read |
| OpenClaw | ov_search | ov_read 或 ov_multi_read |
宿主可能会以命名空间形式显示 MCP 名称,例如
mcp__openviking__find。使用运行时显示的精确注册名称和 schema。任务启动时的快速查找优先使用 find,当会话上下文或更深入的意图分析有用时优先使用 search。
检索工作流
-
判断该请求是否是可执行任务。对于规划、工具使用、环境变更、多步骤工作流或从失败尝试中恢复,请检索 Experience。对于闲聊和简单知识问答,跳过检索。
-
构建一条简洁的查询,包含任务目标、领域对象、预期操作和重要约束。失败之后,请包含失败的操作和稳定的错误特征。
-
仅搜索当前用户的 Experience 根目录:
viking://~/memories/experiences对于使用 MCP 风格参数的工具,将
target_uri设置为该根目录。对于 OpenClaw 的ov_search,将uri设置为该根目录。切勿硬编码default、test或其他用户 ID。如果服务拒绝该 URI,请按照 Servers Without the Home Alias 中所述解析根目录,并重试一次。 -
从
limit=5和工具的正常分数阈值开始。根据任务、环境、前置条件和可能的效果来判断结果;仅凭标题相似是不够的。如果没有相关结果,则在无 Experience 的情况下继续,并且不要将搜索扩大到不相关的记忆目录。 -
仅选择可能改变执行方式的一到三个 Experience 文件。要求提供不带查询或片段的精确文件 URI。忽略目录、不相关的记忆类型以及
.abstract.md和.overview.md等附属文件。 -
使用运行时的 OpenViking 读取工具读取每个选定的规范
viking://.../memories/experiences/...URI。搜索摘要有助于选择,但不能替代阅读 Experience 正文。 -
在执行任务时应用相关步骤和检查。除非答案中直接需要 Experience 的内容,否则不要将其逐字重复给用户。
-
如果执行因实质性的新原因而失败,请使用失败证据进行至多一次有针对性的后续搜索,然后仅阅读新近相关的 Experience 文件。
没有 Home 别名的服务
viking://~ 是调用方自身空间的 home 别名。在别名推出之前发布的服务
(OpenViking v0.4.16)无法解析它,会以 INVALID_URI(HTTP 400)拒绝请求,
而不是执行搜索。此时应针对调用方的显式根路径重试一次,该根路径应基于
证据解析得出,而非猜测:
- 如果本次会话中已经能看到规范的
viking://user/<user_id>/...URI —— 注入的记忆上下文,或之前某次 OpenViking 工具结果 —— 则复用该<user_id>,并搜索viking://user/<user_id>/memories/experiences。 - 否则,在无目标范围的情况下重复同一查询,并在工具支持时用
context_type将其收窄到 memories,只保留 URI 中包含/memories/experiences/的命中结果。 这些命中结果带有规范的用户 ID;请复用它进行读取,以及本任务中后续的任何 Experience 搜索。
不要退回到不带 uid 的 viking://user/memories/experiences:只有部分较旧的
服务和角色会展开它,当前服务会拒绝它。如果无法解析出显式根路径,则在
不使用 Experience 的情况下继续。
应用检索到的 Experience
- 将 Experience 视为可复用的流程,而非用户画像、用户意图、安全策略, 或某个操作已成功的证明。
- 按以下顺序遵循优先级:系统与开发者指令、当前用户请求、当前环境与工具证据, 然后是 Experience。
- 忽略过时、不兼容、不安全或相互冲突的指导。针对当前任务核验命令、路径、 API、版本和破坏性操作。
- 保留确认要求和权限边界。先前的成功绝不授权在当前会话中执行破坏性或外部 操作。
- 当多个 Experience 文件冲突时,优先选择其前提条件与当前环境匹配的那一个; 否则保守行事,并在歧义会影响用户时将其指明。
会话证据
使用真实的 Agent 工具调用,以便提交的 OpenViking 会话保留其 ToolParts:
- 一个已完成的、包含 Experience URI 的通用 OpenViking
find、search或list结果,会记录对该 Experience 的召回。 - 一个已完成的、对某 Experience URI 的通用 OpenViking
read或multi_read, 会记录注入,并可将由此产生的轨迹与该 Experience 关联。 - 失败、取消或不完整的调用不计入。
在会话提交之前,不要编辑、通过概括去除,或合成这些 ToolParts。
示例
对于修复部署失败的请求:
- 使用诸如
Kubernetes deployment image pull failure private registry的查询搜索 Experience 根路径。 - 读取最相关的确切 Experience URI。
- 检查其 registry、凭证和发布假设是否与当前集群匹配。
- 应用兼容的诊断步骤,核验实际结果,然后继续用户的任务。