
memos-memory-guide
Use the MemOS Local memory system to search and use the user's past conversations. Use this skill whenever the user refers to past chats, their own preferences or history, or when you need to answer from prior context. When auto-recall returns nothing (long or unclear user query), generate your own short search query and call memorysearch. Available tools: memorysearch, memoryget, memorywritepublic, memoryshare, memoryunshare, tasksummary, skillget, skillsearch, skillinstall, skillpublish, skillunpublish, networkmemorydetail, networkskillpull, networkteaminfo, memorytimeline, memoryviewer.
- Installs
- 295
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/memtensor/memos --skill memos-memory-guide- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads memos-memory-guide automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
MemOS Local Memory — Agent Guide
This skill describes how to use the MemOS memory tools so you can reliably search and use the user's long-term conversation history, query team-shared data, share tasks, and discover or pull reusable skills.
Two sharing planes exist and must not be confused:
- Local agent sharing: visible to agents in the same OpenClaw workspace only.
- Team sharing: visible to teammates through the configured team server.
How memory is provided each turn
- Automatic recall (hook): At the start of each turn, the system runs a memory search using the user's current message and injects relevant past memories into your context. You do not need to call any tool for that.
- When that is not enough: If the user's message is very long, vague, or the automatic search returns no memories, you should generate your own short, focused query and call
memory_searchyourself. - Memory isolation: Each agent can only see its own local private memories and local
publicmemories. Team-shared data only appears when you search withscope="group"orscope="all".
Tools — what they do and when to call
memory_search
- What it does: Search long-term conversation memory for past conversations, user preferences, decisions, and experiences. Returns relevant excerpts with
chunkIdand optionallytask_id. Only returns memories belonging to the current agent or marked as public. - When to call:
- The automatic recall did not run or returned nothing.
- The user's query is long or unclear — generate a short query yourself and call
memory_search(query="..."). - You need to search with a different angle (e.g. filter by
role='user').
- Parameters:
query(string, required) — Natural language search query.scope(string, optional) —'local'(default) for current agent + local shared memories, or'group'/'all'to include team-shared memories.maxResults(number, optional) — Increase when the first search is too narrow.minScore(number, optional) — Lower slightly if recall is too strict.role(string, optional) — Filter local results by'user','assistant','tool', or'system'.
memory_get
- What it does: Get the full original text of a memory chunk. Use to verify exact details from a search hit.
- When to call: A
memory_searchhit looks relevant but you need to see the complete original content, not just the summary/excerpt. - Parameters:
chunkId(string, required) — The chunkId from a search hit.maxChars(number, optional) — Max characters to return (default 4000, max 12000).
memory_write_public
- What it does: Create a brand new local shared memory. These memories are visible to all agents in the same OpenClaw workspace during
memory_search. This does not publish anything to the team server. - When to call: In multi-agent or collaborative scenarios, when you want to create a new persistent shared note from scratch (e.g. shared decisions, conventions, configurations, workflows). Do not use it if you already have a specific memory chunk to expose.
- Parameters:
content(string, required) — The content to write to local shared memory.summary(string, optional) — Short summary of the content.
memory_share
- What it does: Share an existing memory either with local OpenClaw agents, to the team, or to both.
- When to call:
- If you want to share conversation content to team or hub, first retrieve memories related to that content to obtain the right
chunkId(s), then share. target='agents'(default): When those memories would clearly help other agents in the same workspace, you may share proactively without asking the user.target='hub'or'both': Only after explicit user consent when the content would benefit collaborators—explain briefly, ask first, then callhub/both(Hub must be configured). Never silently Hub-share.
- If you want to share conversation content to team or hub, first retrieve memories related to that content to obtain the right
- Do not use when: You are creating a brand-new shared note with no existing chunk—use
memory_write_publicinstead. - Parameters:
chunkId(string, required) — Existing memory chunk ID.target(string, optional) —'agents'(default),'hub', or'both'.visibility(string, optional) — Team visibility when target includes team:'public'(default) or'group'.groupId(string, optional) — Optional team group ID whenvisibility='group'.
memory_unshare
- What it does: Remove an existing memory from local agent sharing, team sharing, or both.
- When to call: A memory should no longer be visible outside the current agent or should be removed from the team.
- Parameters:
chunkId(string, required) — Existing memory chunk ID.target(string, optional) —'agents','hub', or'all'(default).privateOwner(string, optional) — Rare fallback only for older public memories that have no recorded original owner.
task_summary
- What it does: Get the detailed summary of a complete task: title, status, narrative summary, and related skills. Use when
memory_searchreturns a hit with atask_idand you need the full story. Preserves critical information: URLs, file paths, commands, error codes, step-by-step instructions. - When to call: A
memory_searchhit included atask_idand you need the full context of that task. - Parameters:
taskId(string, required) — The task_id from a memory_search hit.
skill_get
- What it does: Retrieve a proven skill (experience guide) by
skillIdor bytaskId. If you pass ataskId, the system will find the associated skill automatically. - When to call: A search hit has a
task_idand the task has a "how to do this again" guide. Use this to follow the same approach or reuse steps. - Parameters:
skillId(string, optional) — Direct skill ID.taskId(string, optional) — Task ID — will look up the skill linked to this task.- At least one of
skillIdortaskIdmust be provided.
skill_search
- What it does: Search available skills by natural language. Searches your own skills, local shared skills, or both. It can also include team skills.
- When to call: The current task requires a capability or guide you don't have. Use
skill_searchto find one first; after finding it, useskill_getto read it, thenskill_installto load it for future turns. - Parameters:
query(string, required) — Natural language description of the needed skill.scope(string, optional) —'mix'(default, self + local shared),'self','public'(local shared only), or'group'/'all'to include team results.
skill_install
- What it does: Install a learned skill into the agent workspace so it becomes permanently available. After installation, the skill will be loaded automatically in future sessions.
- When to call: After
skill_getwhen the skill is useful for ongoing use. - Parameters:
skillId(string, required) — The skill ID to install.
skill_publish
- What it does: Share a skill with local agents, or publish it to the team.
- When to call: You have a useful skill that other agents or your team could benefit from.
- Parameters:
skillId(string, required) — The skill ID to publish.target(string, optional) —'agents'(default) or'hub'.visibility(string, optional) — Whentarget='hub', use'public'(default) or'group'.groupId(string, optional) — Optional team group ID whentarget='hub'andvisibility='group'.scope(string, optional) — Backward-compatible alias for old calls. Prefertarget+visibilityin new calls.
skill_unpublish
- What it does: Stop local agent sharing, remove a team-published copy, or do both.
- When to call: You want to stop sharing a previously published skill.
- Parameters:
skillId(string, required) — The skill ID to unpublish.target(string, optional) —'agents'(default),'hub', or'all'.
network_memory_detail
- What it does: Fetches the full content behind a team search hit.
- When to call: A
memory_searchresult came from the team and you need the full shared memory content. - Parameters:
remoteHitId.
task_share / task_unshare
- What they do: Share a local task to the team, or remove it later.
- When to call: A task is valuable to your group or to the whole team and should be discoverable via shared search.
- Parameters:
taskId, plus sharing visibility/scope when required.
network_skill_pull
- What it does: Pulls a team-shared skill bundle down into local storage.
- When to call:
skill_searchfound a useful team skill and you want to use it locally or offline. - Parameters:
skillId.
network_team_info
- What it does: Returns current team server connection information, user, role, and groups.
- When to call: You need to confirm whether team sharing is configured or which groups the current client belongs to.
- Call this first before:
memory_share(... target='hub'|'both'),memory_unshare(... target='hub'|'all'),task_share,task_unshare,skill_publish(... target='hub'),skill_unpublish(... target='hub'|'all'), ornetwork_skill_pull. - Parameters: none.
memory_timeline
- What it does: Expand context around a memory search hit. Pass the
chunkIdfrom a search result to read the surrounding conversation messages. - When to call: A
memory_searchhit is relevant but you need the surrounding dialogue. - Parameters:
chunkId(string, required) — The chunkId from a memory_search hit.window(number, optional) — Context window ±N messages, default 2.
memory_viewer
- What it does: Show the MemOS Memory Viewer URL. Call this when the user asks how to view, browse, manage, or check their memories. Returns the URL the user can open in their browser.
- When to call: The user asks where to see or manage their memories.
- Parameters: None.
Quick decision flow
-
No memories in context or auto-recall reported nothing → Call
memory_search(query="...")with a self-generated short query. -
Need to see the full original text of a search hit → Call
memory_get(chunkId="..."). -
Search returned hits with
task_idand you need full context → Calltask_summary(taskId="..."). -
Task has an experience guide you want to follow → Call
skill_get(taskId="...")orskill_get(skillId="..."). Optionallyskill_install(skillId="...")for future use. -
You need the exact surrounding conversation of a hit → Call
memory_timeline(chunkId="..."). -
You need a capability/guide that you don't have → Call
skill_search(query="...", scope="mix")to discover available skills. -
You have new shared knowledge useful to all local agents → Call
memory_write_public(content="..."). -
You already have an existing memory chunk and want to expose or hide it → Call
memory_share(chunkId="...", target="agents|hub|both")ormemory_unshare(chunkId="...", target="agents|hub|all"). -
You are about to do anything team-sharing-related → Call
network_team_info()first if team server availability is uncertain. -
You want to share/stop sharing a skill with local agents or team → Prefer
skill_publish(skillId="...", target="agents|hub", visibility=...)andskill_unpublish(skillId="...", target="agents|hub|all"). -
User asks where to see or manage their memories → Call
memory_viewer()and share the URL.
Writing good search queries
- Prefer short, focused queries (a few words or one clear question).
- Use concrete terms: names, topics, tools, or decisions.
- If the user's message is long, derive one or two sub-queries rather than pasting the whole message.
- Use
role='user'when you specifically want to find what the user said.
Memory ownership and agent isolation
Each memory is tagged with an owner (e.g. agent:main, agent:sales-bot). This is handled automatically — you do not need to pass any owner parameter.
- Your memories: All tools (
memory_search,memory_get,memory_timeline) automatically scope queries to your agent's own memories. - Local shared memories: Memories marked as local shared are visible to all agents in the same OpenClaw workspace. Use
memory_write_publicto create them, ormemory_share(target='agents')to expose an existing chunk. - Cross-agent isolation: You cannot see memories owned by other agents (unless they are public).
- How it works: The system identifies your agent ID from the OpenClaw runtime context and applies owner filtering automatically on every search, recall, and retrieval.
FAQ
What does the memos-memory-guide skill do?
Use the MemOS Local memory system to search and use the user's past conversations. Use this skill whenever the user refers to past chats, their own preferences or history, or when you need to answer from prior context. When auto-recall returns nothing (long or unclear user query), generate your own short search query and call memorysearch. Available tools: memorysearch, memoryget, memorywritepublic, memoryshare, memoryunshare, tasksummary, skillget, skillsearch, skillinstall, skillpublish, skillunpublish, networkmemorydetail, networkskillpull, networkteaminfo, memorytimeline, memoryviewer.
How do I install memos-memory-guide?
Run npx skills add https://github.com/memtensor/memos --skill memos-memory-guide in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/memos-memory-guide/ (personal) or .claude/skills/memos-memory-guide/ (project).
Which AI agents can use memos-memory-guide?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is memos-memory-guide safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains memos-memory-guide?
It is published by memtensor in memtensor/memos. It has 295 recorded installs.
More from memtensor/memos
browserwing-executor
memtensor/memos
Control browser automation through HTTP API. Supports page navigation, element interaction (click, type, select), data extraction, accessibility snapshot analysis, screenshot, JavaScript execution, and batch operations.
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。