Split memory into assisted and learned, and deny learned the precedence assisted has

This commit is contained in:
Gmer4Lfe
2026-08-10 21:50:35 -04:00
parent 775bdce6e1
commit 57f3bf2807
3 changed files with 155 additions and 15 deletions
+19 -3
View File
@@ -746,13 +746,29 @@ if ($scope !== '') {
. "somewhere else, answer anyway and tell them plainly where it actually is.\n\n";
}
$mem = vv_ai_memory_read();
if ($mem['exists'] && trim($mem['text']) !== '') {
// Two blocks, two different standings, and the difference is stated to the model rather than
// implied. The assisted block keeps the precedence it always had. The learned block explicitly
// does not get it: those lines were proposed by a model, and a model whose own notes are ranked
// above the retrieved source would restate a wrong conclusion indefinitely, growing more
// confident each time it read its own claim back.
$mem = vv_ai_memory_assemble($profile);
if (trim($mem['assisted']) !== '') {
$system .= "WHAT YOU ALREADY KNOW ABOUT THIS OPERATOR AND INSTALLATION\n"
. "Written by the operator, not retrieved. Treat it as established fact about this "
. "system, prefer it over anything in the passages that contradicts it, and do not "
. "cite it as a numbered source.\n\n"
. trim($mem['text']) . "\n\n";
. trim($mem['assisted']) . "\n\n";
}
if (trim($mem['learned']) !== '') {
$system .= "NOTES YOU WROTE EARLIER, KEPT BY THE OPERATOR\n"
. "These were proposed by you on previous turns and approved for keeping. They are "
. "hints, not facts. Anything in the passages above, and anything in the operator's "
. "own notes, outranks them — if a passage contradicts a note here, the passage is "
. "right and the note is stale. Do not cite them as numbered sources, and do not "
. "repeat one as established fact if nothing retrieved supports it.\n\n"
. trim($mem['learned']) . "\n\n";
}
if ($diagBlock !== '') {