memos-memory-guide
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, share knowledge across agents, and discover public skills.
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 memories and memories marked as
public. Other agents' private memories are invisible to you.
Tools — what they do and when to call
memory_search
- What it does: Searches the user's stored conversation memory by a natural-language query. Returns a list of 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(required), optionalminScore,role.
memory_write_public
- What it does: Writes a piece of information to public memory. Public memory is visible to all agents — any agent doing
memory_searchcan find it. - When to call: In multi-agent or collaborative scenarios, when you have persistent information useful to everyone (e.g. shared decisions, conventions, configurations, workflows). Do not write session-only or purely private content.
- Parameters:
content(required),summary(optional).
task_summary
- What it does: Returns the full task summary for a given
task_id: title, status, and the complete narrative summary. - When to call: A
memory_searchhit included atask_idand you need the full story of that task. - Parameters:
taskId(from a search hit).
skill_get
- What it does: Returns the content of a learned skill (experience guide) by
skillIdor bytaskId. - 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(direct) ortaskId(lookup).
skill_search
- What it does: Searches available skills (capabilities/guides) by natural language. Can search your own skills, other agents' public skills, or both — controlled by the
scopeparameter. - 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. Setscopetopublicto only see others' public skills,selffor only your own, or leave as defaultmixfor both. - Parameters:
query(required, natural language description of the need),scope(optional, defaultmix: self + public;self: own only;public: public only).
skill_install
- What it does: Installs a skill (by
skillId) into the workspace for future sessions. - When to call: After
skill_getwhen the skill is useful for ongoing use. - Parameters:
skillId.
skill_publish
- What it does: Makes a skill public so other agents can discover and install it via
skill_search. - When to call: You have a useful skill that other agents could benefit from, and you want to share it.
- Parameters:
skillId.
skill_unpublish
- What it does: Makes a skill private again. Other agents will no longer discover it.
- When to call: You want to stop sharing a previously published skill.
- Parameters:
skillId.
memory_timeline
- What it does: Expands context around a single memory chunk: returns the surrounding conversation messages.
- When to call: A
memory_searchhit is relevant but you need the surrounding dialogue. - Parameters:
chunkId(from a search hit), optionalwindow(default 2).
memory_viewer
- What it does: Returns the URL of the MemOS Memory Viewer web dashboard.
- When to call: The user asks how to view their memories or open the memory dashboard.
- Parameters: None.
Quick decision flow
-
No memories in context or auto-recall reported nothing → Call
memory_searchwith a self-generated short query. -
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 shared knowledge useful to all agents → Call
memory_write_public(content="...")to persist it in public memory. -
You want to share a useful skill with other agents → Call
skill_publish(skillId=...). -
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.