Agent skill

Memory Triage

by mem0ai in mem0ai/mem0

Persistent long-term memory protocol powered by mem0. An agent skill from mem0ai/mem0.

Apache-2.0Auto-check passedAgent Workflows

Install Memory Triage

skills CLI
$ npx skills add mem0ai/mem0 --skill memory-triage -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mem0ai/mem0 memory-triage --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mem0ai/mem0.git skills-src && mkdir -p .claude/skills && cp -r skills-src/integrations/openclaw/skills/memory-triage .claude/skills/memory-triage && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
memory-triage
GitHub stars
67k
Token cost
~5.1k tokens
SKILL.md length
1,801 words
Files
3
Skills in repo
26
Repo updated
First seen
Licence
Apache-2.0

At a glance

Persistent long-term memory protocol powered by mem0. An agent skill from mem0ai/mem0.

  • Works in 8 steps: Configuration & System State… → Standing Rules & Policies (importance:… → Identity & Demographics (importance:… → …
  • Tasks that involve Agent memory
  • SKILL.md covers Available Tools, Decision Gate, What to Extract (Priority Order) and CRITICAL: Memory Completeness…, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Memory Triage is an agent skill from mem0ai/mem0. Persistent long-term memory protocol powered by mem0. Evaluate conversations for durable facts worth storing via memoryadd. Handles identity, preferences, decisions, configurations, rules, projects, and relationships. Loaded by the openclaw-mem0 plugin when skills mode is active.

Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `domains/companion.md` and `recall-protocol.md`).

It sits in Agent Workflows, covering Agent memory. It works with Mem0. The repository describes itself as: The Memory Layer for AI Agents - Drop-in memory infrastructure for AI agents and apps. Context that persists. Built for production. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Agent memory

Example prompts

  • “/memory-triage”

Requirements

  • A credential in MEM0_API_KEY
  • A credential in OPENAI_API_KEY

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Configuration & System State (importance: 0.95 | permanent)
  2. Standing Rules & Policies (importance: 0.90 | permanent)
  3. Identity & Demographics (importance: 0.95 | permanent)
  4. Preferences & Opinions (importance: 0.85 | permanent)
  5. Goals, Projects & Milestones (importance: 0.75 | expires: 90 days)
  6. Technical Context (importance: 0.80 | permanent)
  7. Relationships & People (importance: 0.75 | permanent)
  8. Decisions & Lessons (importance: 0.80 | permanent)

What it can do on your machine

Read from SKILL.md and the folder at commit b7ad69a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Memory Triage loads about 5.1k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 1,801 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~74
When it runs · the whole SKILL.md, loaded when a task matches
~5.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mem0ai/mem0 at commit b7ad69a, republished under its Apache-2.0 licence (© mem0ai). 1,801 words, ~5,059 tokens.

Download SKILL.mdSave it as .claude/skills/memory-triage/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
memory-triage
description
Persistent long-term memory protocol powered by mem0. Evaluate conversations for durable facts worth storing via memory_add. Handles identity, preferences, decisions, configurations, rules, projects, and relationships. Loaded by the openclaw-mem0 plugin when skills mode is active.
user-invocable
false

Memory Protocol

You have persistent long-term memory powered by mem0. After responding to the user, evaluate this turn for durable, actionable facts worth persisting across future sessions.

Your primary role is to extract relevant pieces of information from the conversation and organize them into distinct, manageable facts. This allows for easy retrieval and personalization in future interactions.

The core question: "Would a new agent — with no prior context — benefit from knowing this?" If no → do nothing. Most turns produce zero memory operations. That is correct and expected.

Available Tools

Semantic search across stored memories.

  • query (required): search query
  • limit: max results (default: configured topK)
  • userId, agentId: scope overrides
  • scope: "all" (default), "session", or "long-term"
  • categories: filter by category array
  • filters: advanced filter object
memory_add

Store new facts in long-term memory.

  • facts (required): array of facts to store — ALL must share the same category
  • text: alternative single-fact string
  • category: "identity", "preference", "decision", "rule", "project", "configuration", "technical", "relationship"
  • importance: 0.0–1.0 (omit for category default)
  • userId, agentId: scope overrides
  • metadata: additional key-value metadata
  • longTerm: true (default) for persistent, false for session-scoped
memory_get

Retrieve a single memory by ID.

  • memoryId (required): the memory ID
memory_list

List all stored memories for a user or agent.

  • userId, agentId: scope overrides
  • scope: "all" (default), "session", or "long-term"
memory_update

Update an existing memory's text in place. Atomic and preserves edit history.

  • memoryId (required): the memory ID to update
  • text (required): the new text (replaces old)
memory_delete

Delete memories by ID, query, or bulk.

  • memoryId: specific memory ID to delete
  • query: search query to find and delete matching memories
  • all: delete ALL memories (requires confirm: true)
  • confirm: safety gate for bulk operations
  • userId, agentId: scope overrides
memory_event_list

List recent background processing events (platform mode only).

memory_event_status

Get status of a specific background event.

  • event_id (required): the event ID to check

Decision Gate

Every candidate fact must pass ALL four gates:

Gate 1 — FUTURE UTILITY: Would this matter to a new agent days or weeks from now?

  • Pass: identity, configurations, standing rules, preferences with rationale, decisions, project milestones, relationships, important personal details
  • Fail: tool outputs, status checks, one-time commands, transient state, small talk, generic responses → SKIP

Gate 2 — NOVELTY: Check your recalled memories below — is this already known?

  • Already known and unchanged → SKIP
  • Known but materially changed → UPDATE (find old → update in place)
  • Genuinely new → proceed
  • Material difference test: Only UPDATE if new information adds real context, details, or changes meaning. Cosmetic differences (synonyms, rephrasing, punctuation) are NOT updates. "Loves daily walks" vs "enjoys daily walks" = no material change = SKIP.

Gate 3 — FACTUAL: Is this a concrete, actionable fact — not a vague statement or question?

  • Pass: specific names, configs, choices with rationale, deadlines, system states, plans, preferences
  • Fail: vague impressions, questions, small talk, acknowledgments, generic assistant responses ("Sure, I can help") → SKIP

Gate 4 — SAFE: Does this contain ANY credential, secret, or token?

  • Scan for known credential prefixes, auth tokens, webhook URLs with tokens, pairing codes, long alphanumeric strings in config/env context, and key-value assignment patterns. The plugin injects the full pattern list at runtime.
  • ANY match → NEVER STORE the value. Instead, store that the credential was configured:
    • WRONG: "User's API key is [redacted]"
    • RIGHT: "API key was configured for the service (as of 2026-03-30)"
  • When in doubt → SKIP. No exceptions.

All four gates must pass. If any fails → do nothing.

What to Extract (Priority Order)

1. Configuration & System State (importance: 0.95 | permanent)

Tools/services configured, installed, or removed (with versions/dates). Model assignments for agents. Cron schedules, automation pipelines, deployment configs. Architecture decisions. Specific identifiers: file paths, sheet IDs, channel IDs, machine specs.

"User's Tailscale machine 'mac' (IP 100.71.135.41) is configured under beau@rizedigital.io (as of 2026-02-20)"
"User's executive orchestrator agent Quin runs on Claude Opus, heartbeat every 10 min"
2. Standing Rules & Policies (importance: 0.90 | permanent)

Explicit user directives about behavior. Workflow policies. Security constraints, permission boundaries. Always capture the reason.

"User rule: never create accounts without explicit user consent. Reason: security policy"
"User rule: each agent must review model selection before completing a task"
3. Identity & Demographics (importance: 0.95 | permanent)

Name, location, timezone, language preferences. Occupation, employer, job role, industry. Keep related facts together in a single memory.

"User is Chris, senior platform engineer at Mem0, based in EST timezone"
4. Preferences & Opinions (importance: 0.85 | permanent)

Communication style, tool preferences, technology opinions. Always capture the WHY when stated. Preserve the user's exact words for feelings and opinions.

"User prefers Cursor over VS Code for AI-assisted coding because of inline completions"
"User prefers terse responses with no trailing summaries"
5. Goals, Projects & Milestones (importance: 0.75 | expires: 90 days)

Active projects with name, description, current status. Completed milestones with dates. Deadlines, roadmaps, progress.

"As of 2026-03-30, user is building agentic memory architecture for OpenClaw. Status: active development, team demo planned early April"
"ElevenLabs voice integration fully configured as of 2026-02-20"
6. Technical Context (importance: 0.80 | permanent)

Tech stack, development environment, agent ecosystem structure (names, roles, relationships). Skill levels.

"User's stack: Python/Django backend, Next.js 15 frontend, PostgreSQL with pgvector, deployed on EKS"
7. Relationships & People (importance: 0.75 | permanent)

Names and roles of people mentioned. Team structure, key contacts.

"Deshraj owns the frontend, Taranjeet owns the backend platform at Mem0"
8. Decisions & Lessons (importance: 0.80 | permanent)

Important decisions made with reasoning. Lessons learned. Strategies that worked or failed.

"As of 2026-03-30, user decided to use infer=false for all skill-based memory storage — agent extracts, mem0 stores directly without re-extraction"

CRITICAL: Memory Completeness and Self-Containment

Each memory you store must be a self-contained, independently understandable fact. This is the single most important quality rule.

Entity-Based Grouping

ALWAYS group all information about the same entity, concept, event, or subject into a SINGLE unified memory. If multiple pieces of information refer to the same entity (e.g., a conference, a project, a person, a system), they MUST be combined into one comprehensive memory.

DO NOT split requirements, specifications, or details about the same entity across multiple memory_add calls. Even if information is phrased differently ("Budget for X", "X requires Y", "X needs Z"), if they all refer to the same entity, combine ALL into ONE call.

WRONG — fragmented into separate facts:

memory_add(facts: ["Conference requires at least 4 breakout rooms", "Conference requires vegan options", "Conference requires parking"], category: "project")

CORRECT — grouped into one self-contained fact:

memory_add(facts: ["Conference requires at least 4 breakout rooms for 30-40 people each, robust vegan and vegetarian options with allergen-free alternatives, parking for at least 100 vehicles, venue within walking distance of transit"], category: "project")

WRONG — same entity split into separate facts:

memory_add(facts: ["Budget is $150-175 per person for TechForward event", "TechForward event requires strong WiFi", "TechForward event requires hybrid capabilities"], category: "project")

CORRECT — combined into one fact about TechForward:

memory_add(facts: ["TechForward event has a budget of $150-175 per person per day including venue rental, standard AV setup, and catering. Requires strong WiFi and hybrid event capabilities for remote attendees."], category: "project")

Only create separate memories when information refers to genuinely different entities, concepts, or unrelated topics (e.g., "TechForward event" vs "Marketing campaign" are separate).

No Pronouns — Use Specific Names

DO NOT create memories that rely on pronouns (they, them, he, she, it). Always use specific names and entities.

  • WRONG: "They work at Google" and "They live in San Francisco"
  • CORRECT: "John works at Google and lives in San Francisco"
No Inference

Do not infer unstated attributes (gender, age, ethnicity, beliefs) from names or context.

  • WRONG: "Kiran's sister visited him last week"
  • CORRECT: "Kiran's sister visited last week"
No Assistant Attribution

Do not store characterizations from assistant messages (e.g., "user seems excited") unless the user explicitly confirmed them.

How to Store

Use memory_add with the facts array. All facts in one call MUST share the same category because category determines retention policy (TTL, immutability).

memory_add(
  facts: ["fact one in third person", "fact two in third person"],
  category: "identity"
)

If a turn produces facts in different categories, make one call per category:

memory_add(facts: ["User is Alex, senior engineer at Stripe, PST timezone"], category: "identity")
memory_add(facts: ["As of 2026-04-01, user decided to migrate from Postgres to CockroachDB"], category: "decision")

Categories: identity, configuration, rule, preference, decision, technical, relationship, project

Show full SKILL.md (758 more words)Show less
Storage Principles

15-50 WORDS per fact: Each fact should be 1-2 sentences. If combining would exceed this, consolidate into key facts rather than creating a paragraph. Distill rather than append.

OUTCOMES OVER INTENT: Extract what WAS DONE, not what was requested.

  • GOOD: "Call scripts sheet (ID: 146Qbb...) was updated with truth-based templates"
  • BAD: "User wants to update call scripts"

TEMPORAL ANCHORING: Time-sensitive facts MUST include "As of YYYY-MM-DD, ..."

  • If no date available, note "date unknown" rather than omitting.
  • Extract dates from conversation context or the current date.

PRESERVE USER'S WORDS: When the user expresses feelings, opinions, or preferences, keep their exact phrasing.

  • GOOD: "User says daily walks with Poppy are the best part of their day"
  • BAD: "User finds emotional significance in walking their dog"

THIRD PERSON: "User prefers..." not "I prefer..."

NO PRONOUNS: Use specific names and entities. Not "they" or "it."

PRESERVE LANGUAGE: If the user speaks Spanish, store in Spanish. Do not translate.

BATCH BY CATEGORY: Group all same-category facts into one call. Different categories require separate calls. Most turns need zero or one call.

Updating Existing Memories

When a recalled memory needs updating (fact changed, status changed, new detail added):

  1. memory_search to find the existing memory
  2. memory_update on the memory's ID with the corrected/expanded text

memory_update is preferred over delete+add because it is atomic and preserves edit history.

Choose the MORE COMPLETE version. When both old and new have unique context, COMBINE them into a unified memory using the user's stated words.

Material difference test: Only update if the new version adds real information.

  • "User likes Python" → "User prefers Python for backend services because of async support" = material update (added rationale, specificity)
  • "User likes Python" → "User enjoys Python" = NOT material = SKIP
  • When both have unique context, combine: Old "Trip to Paris in September with Jack" + New "User can't wait to visit Eiffel Tower" → "Trip to Paris in September 2025 with friend Jack, user says they can't wait to visit the Eiffel Tower and try authentic French pastries"

Consolidation: When a rich new fact encompasses multiple existing memories, memory_update the best one to the comprehensive version and memory_delete the rest.

  • Old: "User has a dog" + "Dog's name is Poppy" + "User walks dog daily"
  • New: "User has a dog named Poppy and says taking him for walks is the best part of their day"
  • Action: memory_update the best version with consolidated text, memory_delete the redundant ones

Temporary vs permanent changes: A temporary constraint (e.g., injury pausing a hobby) does NOT contradict the underlying preference. Store the constraint as a new memory; don't delete the preference.

  • Old: "User enjoys hiking on weekends"
  • New: "User has temporarily paused hiking due to knee injury"
  • Action: store the new constraint, leave old preference untouched

What NEVER to Store

  • Credentials and secrets — even embedded in config blocks, setup logs, or tool output. Includes any known credential prefixes, auth tokens, bearer tokens, webhook URLs with tokens, pairing codes, and long alphanumeric strings in config/env contexts. Record that the credential was configured, never the value itself.
  • Raw tool output — bash results, file contents, API responses, logs, diffs, test output. Extract only the durable OUTCOME or ROOT CAUSE.
  • One-time commands — "stop the script", "continue where you left off", "run this"
  • Acknowledgments and emotional reactions — "ok", "sure", "sounds good", "sir", "got it", "thanks", "you're right"
  • Transient UI/navigation states — "user is in admin panel", "relay is attached"
  • Ephemeral process status — "download at 50%", "daemon not running", "still syncing"
  • Cron heartbeat outputs — NO_REPLY, HEARTBEAT_OK, compaction directives
  • Timestamps as standalone facts — "Current time is 3:25 PM" is NEVER worth storing. But DO use timestamps to anchor other facts.
  • System routing metadata — message IDs, sender IDs, channel routing info
  • Generic small talk — no informational content
  • Raw code snippets — capture the intent/decision, not the code itself
  • Information the user explicitly asks not to remember
  • Facts already in recalled memories that haven't materially changed
  • Generic assistant responses — "Sure, I can help", "How can I assist you?"

Worked Examples

Example 1: Configuration extraction (entity-grouped)
User: "I set up the research agent on Claude Sonnet with a 30-min cron. It checks HackerNews and sends summaries to #research-feed in Slack."
Agent: [responds helpfully]
→ memory_add(facts: ["User's research agent runs on Claude Sonnet, cron every 30 minutes, monitors HackerNews and posts summaries to Slack #research-feed"], category: "configuration")
Example 2: NOOP — tool output
User: "Run the healthcheck on all services"
Agent: [executes healthcheck, returns results]
→ No memory operations. Tool output fails Gate 1.
Example 3: NOOP — already recalled, no material change
Recalled: ["User is Chris, senior platform engineer at Mem0"]
User: "Hey Chris here again"
→ No memory operations. Already known, no material change.
Example 4: Rule with rationale (preserving user's words)
User: "Never use Docker for local dev, it ate 40GB of disk last time and my Mac mini only has 256GB"
→ memory_add(facts: ["User rule: avoid Docker for local dev. Reason: ate 40GB of disk on 256GB Mac mini"], category: "rule")
Example 5: UPDATE — combining contexts from both versions
Recalled: ["As of 2026-03-15, user is planning trip to Paris in September with friend Jack"]
User: "Can't wait for the Paris trip, definitely want to hit the Eiffel Tower and try authentic French pastries"
→ memory_search("Paris trip planning")
→ memory_update(memoryId: "mem-id-of-old", text: "As of 2026-03-30, user is planning trip to Paris in September 2025 with friend Jack, says they can't wait to visit the Eiffel Tower and try authentic French pastries")
Example 6: Outcome over intent
User: "Update the call scripts sheet with the new truth-based templates"
Agent: [updates the sheet successfully]
→ memory_add(facts: ["Call scripts sheet (ID: 146Qbb...) was updated with truth-based templates (as of 2026-03-30)"], category: "configuration")
Example 7: Credential — store the fact, not the value
User: "Use this API key for the new service: [credential value]"
Agent: [configures the service]
→ memory_add(facts: ["API key was configured for the new service (as of 2026-03-30)"], category: "configuration")
Example 8: NOOP — cosmetic difference, not material
Recalled: ["User has a dog named Poppy and enjoys their daily walks together"]
User: "Yeah me and Poppy love our daily walks"
→ No memory operations. Semantically equivalent. No new context.
Example 9: Entity grouping — single call, not fragmented
User: "The budget for the offsite is $200 per head. We need a venue with WiFi, parking for 50 cars, and a projector."
→ memory_add(facts: ["Team offsite budget is $200 per person. Venue requirements: WiFi, parking for 50 vehicles, and projector setup."], category: "project")
All details about the same entity (offsite) go in one fact, one call.
Example 10: Temporary constraint — don't delete the preference
Recalled: ["User enjoys hiking on weekends and finds it therapeutic"]
User: "I hurt my knee last week, can't hike for a while"
→ memory_add(facts: ["As of 2026-03-30, user has temporarily paused hiking due to knee injury"], category: "project")
DO NOT delete the hiking preference. It is temporarily paused, not contradicted.
Example 11: Mixed categories in one turn — separate calls
User: "I'm Sarah, I work at Cloudflare. I just decided to switch our monitoring from Datadog to Grafana because of cost."
→ memory_add(facts: ["User is Sarah, works at Cloudflare"], category: "identity")
→ memory_add(facts: ["As of 2026-03-30, user decided to switch monitoring from Datadog to Grafana due to cost"], category: "decision")
Two calls because identity and decision have different retention policies.
Example 12: NOOP — generic greeting
User: "Hi"
Agent: "Hello! How can I help?"
→ No memory operations. No extractable facts.
Example 11: Consolidation — rich memory absorbs atomic ones
Recalled: ["User has a dog", "Dog's name is Poppy", "User walks dog daily"]
User: "Poppy learned fetch! Our walks are even better now, honestly it's the best part of my day"
→ memory_search("dog Poppy walks") → find all three old memory IDs
→ memory_update(memoryId: "id-1", text: "User has a dog named Poppy and says taking him for walks is the best part of their day. Poppy recently learned fetch, making walks more enjoyable.")
→ memory_delete(memoryId: "id-2"), memory_delete(memoryId: "id-3")
Example 12: NOOP — generic greeting, nothing to store
User: "Hi"
Agent: "Hello! How can I help?"
→ No memory operations. No extractable facts.

© mem0ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in integrations/openclaw/skills/memory-triage of mem0ai/mem0.

  • SKILL.md
  • domains/companion.md
  • recall-protocol.md

Open the folder on GitHubat commit b7ad69a

Compare with similar skills

Memory Triage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Memory Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Memory Triage this skillmem0ai/mem067k—~5.1kAutomated safety check: PassApache-2.0
Agenticx Memory ArchitectDemonDamon/AgenticX294—~1.1kAutomated safety check: PassApache-2.0
Hyperspacedb MemoryYARlabs/hyperspace-db161—~880Automated safety check: PassMIT
Self Improving Systemsooiyeefei/ccc494—~5.2kAutomated safety check: PassMIT
Mem0Anil-matcha/awesome-muse-connectors1.3k—~867Automated safety check: PassMIT
Mem0majiayu000/claude-skill-registry6661 repos~1.8kAutomated safety check: PassApache-2.0

Similar skills

  • Agenticx Memory Architect

    DemonDamon/AgenticX

    Guide for setting up and using the AgenticX memory system including Mem0 integration, long-term memory, context management, and memory-enhanced agents.

    294 GitHub stars~1.1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Hyperspacedb Memory

    YARlabs/hyperspace-db

    Zero-overhead cognitive long-term and episodic memory for AI agents (Mem0 drop-in and mcp-hyperspace-memory).

    161 GitHub stars~880 tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Decide whether your agent actually needs persistent memory, feedback loops, or closed-loop learning, then design the smallest thing that pays for itself.

    494 GitHub stars~5.2k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check passed
  • Mem0

    Anil-matcha/awesome-muse-connectors

    Mem0 memory CLI: add memories from messages, semantic search, read or delete memories, poll async events.

    1.3k GitHub stars~867 tokensUpdated 3 days ago
    Agent WorkflowsAuto-check passed
  • Mem0

    majiayu000/claude-skill-registry

    Adds persistent, personalized long-term memory to LLM apps and agents with Mem0, the open-source memory layer: it extracts facts from conversations, stores them in a vector database and retrieves…

    666 GitHub starsUsed in 1 repo~1.8k tokens
    DatabasesAuto-check passed
  • Mem0 Bridge

    momori777/Artemis

    Mem0 memory bridge for AI Girlfriend — search/read/write long-term memories from Qdrant vector DB.

    377 GitHub stars~453 tokensUpdated 8 days ago
    Media & CreativeAuto-check passed

More from mem0ai/mem0

All 26 skills in this repo
  • Adds persistent memory to AI apps with the Mem0 Python and TypeScript SDKs: store, search, update and delete user memories, with framework integrations.

    67k GitHub starsUsed in 2 repos~2.2k tokens
    Auto-check passed
  • Adds, searches, lists, updates and deletes memories on the Mem0 platform from the terminal with the mem0 command, including a JSON mode built for agents.

    67k GitHub stars~2k tokensUpdated yesterday
    Auto-check: notes
  • Adds persistent memory to Vercel AI SDK apps with the Mem0 provider, using a wrapped model or standalone retrieve and store utilities.

    67k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Finds and deletes specific mem0 memories by search query or ID, always asking for confirmation first, and can undo the most recent memories added this session.

    67k GitHub stars~664 tokensUpdated yesterday
    Auto-check passed
  • Saves a fact, decision or preference the user states into mem0 as written, labeled with a memory type such as decision, convention or user_preference.

    67k GitHub stars~560 tokensUpdated yesterday
    Auto-check passed
  • Shows or changes the default Mem0 memory scope, project, session or global, which decides where memories are saved and searched.

    67k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Memory Triage

What does Memory Triage do?

Persistent long-term memory protocol powered by mem0. An agent skill from mem0ai/mem0. Memory Triage is an agent skill from mem0ai/mem0. Persistent long-term memory protocol powered by mem0.

When should I use Memory Triage?

Memory Triage fits situations like: tasks that involve Agent memory.

How do I install Memory Triage in Claude Code?

Run `npx skills add mem0ai/mem0 --skill memory-triage -a claude-code`. Or copy the skill folder (integrations/openclaw/skills/memory-triage in mem0ai/mem0) into .claude/skills/memory-triage in your project. Claude Code loads it when a task matches its description.

How do I install Memory Triage in Codex?

Run `npx skills add mem0ai/mem0 --skill memory-triage -a codex`. Or copy the skill folder (integrations/openclaw/skills/memory-triage in mem0ai/mem0) into .agents/skills/memory-triage in your project. Codex loads it when a task matches its description.

Can I use Memory Triage in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mem0ai/mem0 --skill memory-triage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/memory-triage, .gemini/skills/memory-triage, .github/skills/memory-triage and .opencode/skills/memory-triage in your project.

What does Memory Triage need to run?

SKILL.md names no scripts, command-line tools or credentials: Memory Triage is instructions for the agent only. Our summary lists: A credential in MEM0_API_KEY; A credential in OPENAI_API_KEY.

Does Memory Triage access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Memory Triage safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Memory Triage use?

Memory Triage is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Memory Triage use?

About 5.1k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Memory Triage?

Skills that share tags, products or a category with Memory Triage: Agenticx Memory Architect (DemonDamon/AgenticX, 294 stars), Hyperspacedb Memory (YARlabs/hyperspace-db, 161 stars), Self Improving Systems (ooiyeefei/ccc, 494 stars) and Mem0 (Anil-matcha/awesome-muse-connectors, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Memory Triage?

mem0ai (a GitHub organization) maintains it in mem0ai/mem0, which has 66,788 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on October 7, 2026.

Source: mem0ai/mem0 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.