New to Claude Skills? Learn how to install them →

volcengine on GitHub

OpenViking Experience Memory

Free

Leverage past experiences for task execution guidance.

Get this skill

Free · Opens the source repo

What OpenViking Experience Memory does

OpenViking Experience Memory is designed to enhance task execution by utilizing historical experiences stored in the OpenViking library. This skill is particularly useful for developers and designers who frequently engage in complex, multi-step tasks that require operational guidance. By integrating previous experiences into current workflows, users can improve their efficiency and decision-making processes.

The skill operates through two primary tools: search_experience and read_experience. The search_experience tool allows users to query the experience library for relevant past experiences based on a short query derived from the current task context. It returns a list of experiences that can inform the execution of the task at hand. Once relevant experiences are identified, the read_experience tool retrieves the full content of the selected experience, which can then be injected into the agent's prompt as operational guidance. This structured approach ensures that users have access to pertinent information without sifting through irrelevant data.

This skill is most effective when used during the initiation of tasks that involve tools, code changes, or data operations. It is not intended for casual conversations or simple Q&A scenarios where operational guidance is not required. By committing sessions that include the completed tool parts, users can ensure accurate reporting of experience recall and injection events, further refining the skill's effectiveness over time.

Overall, OpenViking Experience Memory is a valuable tool for those looking to streamline their task execution processes by leveraging the knowledge gained from previous experiences, ultimately leading to more informed decisions and improved outcomes.

When to use it

Use this skill when starting or continuing tasks that require operational guidance from past experiences.

When not to use it

Avoid using this skill for informal conversations or tasks that do not require detailed operational support.

What you can build with it

Task Execution in Development

When working on a coding project, use the skill to recall previous experiences related to similar code changes or tool usage.

Data Operations

During data analysis tasks, leverage past experiences to guide decisions on data manipulation and processing.

Workflow Decisions

In multi-step workflows, access relevant experiences to inform each step, ensuring efficient task completion.

How to install OpenViking Experience Memory

View source

1. Install with the skills CLI

npx skills add volcengine/openviking/ov-experience-memory --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by volcengine

OpenViking Experience Memory

Use this skill when the current user request starts or continues an executable task, especially tasks involving tools, files, code changes, data operations, workflow decisions, or multi-step actions.

Do not use this skill for casual chat, pure explanation, or one-off factual Q&A that does not require operational guidance.

Runtime Contract

The agent runtime must expose two tools with these exact names:

  • search_experience
  • read_experience

OpenViking usage reporting recognizes only completed tool parts with these exact tool names. Calls to generic find, search, read, ov_search, or ov_read do not count as experience recall or injection events.

Tool: search_experience

Purpose: search reusable execution experiences from the OpenViking experience library before assembling task context.

Input schema:

{
  "query": "string",
  "limit": 5
}

Output schema:

{
  "results": [
    {
      "uri": "viking://user/<current_user_id>/memories/experiences/example.md",
      "title": "example",
      "score": 0.82,
      "snippet": "Short summary or matched situation"
    }
  ]
}

Implementation:

The runtime tool calls OpenViking POST /api/v1/search/find with target_uri fixed to the current-user shorthand viking://user/memories/experiences/. Callers provide only query and optional limit; they cannot override or pass target_uri. OpenViking resolves the fixed shorthand against the authenticated request user. Return only canonical experience memory URIs for that user; never hardcode default or another user ID.

Usage reporting:

A completed search_experience tool part is counted as an experience recall event for every results[].uri value.

Tool: read_experience

Purpose: read the full Markdown body of a selected experience and inject it into the agent prompt as task execution guidance.

Input schema:

{
  "uri": "viking://user/<current_user_id>/memories/experiences/example.md"
}

Output schema:

{
  "uri": "viking://user/<current_user_id>/memories/experiences/example.md",
  "content": "Experience Markdown body"
}

Implementation:

Call OpenViking GET /api/v1/content/read?uri=<encoded_uri> for the selected experience URI. Always pass the canonical URI returned by search_experience; do not construct a URI with a hardcoded user ID. The returned content should be inserted into the prompt as operational guidance, not as user profile facts.

Usage reporting:

A completed read_experience tool part is counted as an experience injection event for tool_input.uri or tool_output.uri. In this design, reading an experience through read_experience means the experience was injected into the prompt.

Recommended Flow

  1. When a task begins, build a short query from the latest user instruction, current plan, active skill name, and important tool/environment context.
  2. Call search_experience before final prompt assembly.
  3. Review returned titles/snippets and select only experiences likely to affect execution.
  4. Call read_experience for selected experience URIs.
  5. Inject the returned Markdown into the prompt under an explicit experience section.
  6. Continue task execution.
  7. Commit the session normally. The committed session must include the search_experience and read_experience tool parts so OpenViking can report usage.

Prompt Injection Format

Use a compact and explicit block:

<openviking-experience-memory>
The following guidance was retrieved from prior task execution experience.
Use it as operational guidance. Do not treat it as user identity or preference.

<experience uri="viking://user/<current_user_id>/memories/experiences/example.md">
...experience markdown...
</experience>
</openviking-experience-memory>

Commit Requirements

The session committed to OpenViking must preserve tool parts with:

  • tool_name
  • tool_status
  • tool_input
  • tool_output
  • tool_id

Only tool_status == "completed" is counted. Failed, cancelled, or skipped tool parts are ignored by usage reporting.

Frequently asked questions about OpenViking Experience Memory

Similar skills