mcpField
O
ov-experience-memory

ov-experience-memory

github.com/volcengineAgent 工作流41.1k602 次安装今天更新
代码仓库

关于 ov-experience-memory

ov-experience-memory 是一项 Agent 技能,用于检索以往任务经验,作为操作参考。它规定了搜索和读取 OpenViking Experience 记忆的条件,并要求当前请求和已验证结果优先。

主要功能

  1. 01检查搜索与精确 URI 读取工具是否可用
  2. 02将语义搜索限定在 Experience 根目录
  3. 03读取选定的规范记忆文件
  4. 04应用经验时以当前证据为准

适用场景

  1. 01规划可借鉴以往经验的多步骤任务
  2. 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 Codefind 或 searchread
OpenCode、piopenviking_find 或 openviking_searchopenviking_read
OpenClawov_searchov_read 或 ov_multi_read

宿主可能会以命名空间形式显示 MCP 名称,例如 mcp__openviking__find。使用运行时显示的精确注册名称和 schema。任务启动时的快速查找优先使用 find,当会话上下文或更深入的意图分析有用时优先使用 search。

检索工作流

  1. 判断该请求是否是可执行任务。对于规划、工具使用、环境变更、多步骤工作流或从失败尝试中恢复,请检索 Experience。对于闲聊和简单知识问答,跳过检索。

  2. 构建一条简洁的查询,包含任务目标、领域对象、预期操作和重要约束。失败之后,请包含失败的操作和稳定的错误特征。

  3. 仅搜索当前用户的 Experience 根目录:

    viking://~/memories/experiences
    

    对于使用 MCP 风格参数的工具,将 target_uri 设置为该根目录。对于 OpenClaw 的 ov_search,将 uri 设置为该根目录。切勿硬编码 default、test 或其他用户 ID。如果服务拒绝该 URI,请按照 Servers Without the Home Alias 中所述解析根目录,并重试一次。

  4. 从 limit=5 和工具的正常分数阈值开始。根据任务、环境、前置条件和可能的效果来判断结果;仅凭标题相似是不够的。如果没有相关结果,则在无 Experience 的情况下继续,并且不要将搜索扩大到不相关的记忆目录。

  5. 仅选择可能改变执行方式的一到三个 Experience 文件。要求提供不带查询或片段的精确文件 URI。忽略目录、不相关的记忆类型以及 .abstract.md 和 .overview.md 等附属文件。

  6. 使用运行时的 OpenViking 读取工具读取每个选定的规范 viking://.../memories/experiences/... URI。搜索摘要有助于选择,但不能替代阅读 Experience 正文。

  7. 在执行任务时应用相关步骤和检查。除非答案中直接需要 Experience 的内容,否则不要将其逐字重复给用户。

  8. 如果执行因实质性的新原因而失败,请使用失败证据进行至多一次有针对性的后续搜索,然后仅阅读新近相关的 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。

示例

对于修复部署失败的请求:

  1. 使用诸如 Kubernetes deployment image pull failure private registry 的查询搜索 Experience 根路径。
  2. 读取最相关的确切 Experience URI。
  3. 检查其 registry、凭证和发布假设是否与当前集群匹配。
  4. 应用兼容的诊断步骤,核验实际结果,然后继续用户的任务。

评论

支持 Markdown