mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-29 10:50:58 +00:00
39 lines
1.6 KiB
TypeScript
39 lines
1.6 KiB
TypeScript
import type { MemoryPromptSectionBuilder } from "./api.js";
|
|
|
|
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; 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 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: <path#line> when it helps the user verify memory snippets.",
|
|
);
|
|
}
|
|
lines.push("");
|
|
return lines;
|
|
};
|