Memory Orchestrator
Use this skill when the answer depends on ClawXMemory rather than only the current chat turn.
Primary Path
- If the user is asking what memory exists or what ClawXMemory currently remembers, use
memory_overviewormemory_list. - Otherwise call
memory_searchwith a concise query. - Read the returned:
routecontextselectedProjectIddisambiguationRequiredrefs.filesdebug
- If
contextalready contains the needed evidence, answer from it directly. - If exact verification is still useful, call
memory_getwith the smallest possible subset ofrefs.files.
Current Tool Contract
memory_search(...) returns the live retrieval contract:
routenoneuserproject_memory
context- The rendered ClawXMemory recall block for this turn
selectedProjectId- The formal project chosen for recall, or
null
- The formal project chosen for recall, or
disambiguationRequiredtruewhen the query looks project-oriented but no formal project was selected
refs.files- Relative file ids that can be passed into
memory_get
- Relative file ids that can be passed into
debug- Trace-oriented diagnostic metadata
Do not assume any old l2 / l1 / l0 / enoughAt fields exist.
Clarification Guardrail
If memory_search says:
disambiguationRequired = true, orroute = project_memorybutselectedProjectId = null, orrefs.filesis empty for a project-specific question
then you must:
- Say that no single formal project was selected from memory.
- Ask a focused clarification question.
- Do not list or guess project names that are not explicitly present in retrieved memory.
Example clarification:
- "我还没有选中唯一的项目。你说的是哪个项目?"
- "这个问题需要先确认具体项目名,你是在说哪个项目?"
Tool Usage Notes
- Prefer concise query strings.
- Keep
memory_search.limitsmall unless the user explicitly wants breadth. - Use
memory_getonly with ids returned frommemory_searchormemory_list. - If evidence is missing, say so directly instead of filling gaps from memory guesses.
- When retrieved evidence conflicts, prefer the newest retrieved file and mention the conflict.
Example
User asks: "这个项目现在的阶段和下一步是什么?"
1) memory_search({ query: "这个项目现在的阶段和下一步是什么?", limit: 5 })
2) If disambiguationRequired=true, ask which project the user means.
3) Otherwise answer from context.
4) Only if needed, verify one or two refs.files with memory_get.
Guardrails
- Do not fabricate details not supported by retrieved memory.
- Do not fabricate or enumerate project names when retrieval did not select one.
- Do not call
memory_getwith guessed ids. - If retrieval is empty or unresolved, ask a targeted follow-up instead of pretending memory certainty.