import type { MemoryPromptSectionBuilder } from "openclaw/plugin-sdk/memory-core-host-runtime-core"; export const buildPromptSection: MemoryPromptSectionBuilder = ({ availableTools, citationsMode, }) => { const hasMemorySearch = availableTools.has("memory_search"); const hasMemoryGet = availableTools.has("memory_get"); if (!hasMemorySearch && !hasMemoryGet) { return []; } let toolGuidance: string; if (hasMemorySearch && hasMemoryGet) { toolGuidance = "Before answering anything about prior work, decisions, dates, people, preferences, or todos: run memory_search on MEMORY.md + memory/*.md + indexed session transcripts; then use memory_get to pull only the needed lines. If low confidence after search, say you checked."; } else if (hasMemorySearch) { toolGuidance = "Before answering anything about prior work, decisions, dates, people, preferences, or todos: run memory_search on MEMORY.md + memory/*.md + indexed session transcripts and answer from the matching results. If low confidence after search, say you checked."; } else { toolGuidance = "Before answering anything about prior work, decisions, dates, people, preferences, or todos that already point to a specific memory file or note: run memory_get to pull only the needed lines. If low confidence after reading them, say you checked."; } const lines = ["## Memory Recall", toolGuidance]; if (citationsMode === "off") { lines.push( "Citations are disabled: do not mention file paths or line numbers in replies unless the user explicitly asks.", ); } else { lines.push( "Citations: include Source: when it helps the user verify memory snippets.", ); } lines.push(""); return lines; };