Skip to main content
Glama
index.html111 kB
<!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="Memory persistence for AI assistants with temporal decay"> <meta name="author" content="prefrontal-systems"> <link rel="canonical" href="https://cortexgraph.dev/prompts/memory_system_prompt/"> <link rel="icon" href="../../assets/images/favicon.png"> <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.0"> <title>Smart Prompt Interpretation for Memory Systems - CortexGraph Documentation</title> <link rel="stylesheet" href="../../assets/stylesheets/main.618322db.min.css"> <link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> </head> <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"> <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#smart-prompt-interpretation-for-memory-systems" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="../.." title="CortexGraph Documentation" class="md-header__button md-logo" aria-label="CortexGraph Documentation" data-md-component="logo"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> CortexGraph Documentation </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Smart Prompt Interpretation for Memory Systems </span> </div> </div> </div> <form class="md-header__option" data-md-component="palette"> <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0"> <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1"> <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class="md-search" data-md-component="search" role="dialog"> <label class="md-search__overlay" for="__search"></label> <div class="md-search__inner" role="search"> <form class="md-search__form" name="search"> <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> <label class="md-search__icon md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class="md-search__options" aria-label="Search"> <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class="md-search__suggest" data-md-component="search-suggest"></div> </form> <div class="md-search__output"> <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix> <div class="md-search-result" data-md-component="search-result"> <div class="md-search-result__meta"> Initializing search </div> <ol class="md-search-result__list" role="presentation"></ol> </div> </div> </div> </div> </div> <div class="md-header__source"> <a href="https://github.com/prefrontal-systems/cortexgraph" title="Go to repository" class="md-source" data-md-component="source"> <div class="md-source__icon md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class="md-source__repository"> prefrontal-systems/cortexgraph </div> </a> </div> </nav> </header> <div class="md-container" data-md-component="container"> <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs"> <div class="md-grid"> <ul class="md-tabs__list"> <li class="md-tabs__item"> <a href="../.." class="md-tabs__link"> Home </a> </li> <li class="md-tabs__item"> <a href="../../installation/" class="md-tabs__link"> Getting Started </a> </li> <li class="md-tabs__item"> <a href="../../architecture/" class="md-tabs__link"> Documentation </a> </li> <li class="md-tabs__item"> <a href="../../deployment/" class="md-tabs__link"> Deployment </a> </li> <li class="md-tabs__item"> <a href="../../CONTRIBUTING/" class="md-tabs__link"> Development </a> </li> <li class="md-tabs__item"> <a href="../../features/auto-recall-conversation/" class="md-tabs__link"> Features </a> </li> <li class="md-tabs__item"> <a href="../../LICENSE/" class="md-tabs__link"> About </a> </li> </ul> </div> </nav> <main class="md-main" data-md-component="main"> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="../.." title="CortexGraph Documentation" class="md-nav__button md-logo" aria-label="CortexGraph Documentation" data-md-component="logo"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> CortexGraph Documentation </label> <div class="md-nav__source"> <a href="https://github.com/prefrontal-systems/cortexgraph" title="Go to repository" class="md-source" data-md-component="source"> <div class="md-source__icon md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class="md-source__repository"> prefrontal-systems/cortexgraph </div> </a> </div> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../.." class="md-nav__link"> <span class="md-ellipsis"> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" > <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0"> <span class="md-ellipsis"> Getting Started </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_2"> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../installation/" class="md-nav__link"> <span class="md-ellipsis"> Installation </span> </a> </li> <li class="md-nav__item"> <a href="../../quickstart/" class="md-nav__link"> <span class="md-ellipsis"> Quick Start </span> </a> </li> <li class="md-nav__item"> <a href="../../configuration/" class="md-nav__link"> <span class="md-ellipsis"> Configuration </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" > <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0"> <span class="md-ellipsis"> Documentation </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_3"> <span class="md-nav__icon md-icon"></span> Documentation </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../architecture/" class="md-nav__link"> <span class="md-ellipsis"> Architecture </span> </a> </li> <li class="md-nav__item"> <a href="../../api/" class="md-nav__link"> <span class="md-ellipsis"> API Reference </span> </a> </li> <li class="md-nav__item"> <a href="../../graph_features/" class="md-nav__link"> <span class="md-ellipsis"> Knowledge Graph </span> </a> </li> <li class="md-nav__item"> <a href="../../scoring_algorithm/" class="md-nav__link"> <span class="md-ellipsis"> Scoring Algorithm </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" > <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0"> <span class="md-ellipsis"> Deployment </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_4"> <span class="md-nav__icon md-icon"></span> Deployment </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../deployment/" class="md-nav__link"> <span class="md-ellipsis"> Deployment Guide </span> </a> </li> <li class="md-nav__item"> <a href="../../security/" class="md-nav__link"> <span class="md-ellipsis"> Security </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" > <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0"> <span class="md-ellipsis"> Development </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_5"> <span class="md-nav__icon md-icon"></span> Development </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../CONTRIBUTING/" class="md-nav__link"> <span class="md-ellipsis"> Contributing </span> </a> </li> <li class="md-nav__item"> <a href="../../ROADMAP/" class="md-nav__link"> <span class="md-ellipsis"> Roadmap </span> </a> </li> <li class="md-nav__item"> <a href="../../future_roadmap/" class="md-nav__link"> <span class="md-ellipsis"> Future Plans </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" > <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0"> <span class="md-ellipsis"> Features </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_6"> <span class="md-nav__icon md-icon"></span> Features </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../features/auto-recall-conversation/" class="md-nav__link"> <span class="md-ellipsis"> Auto-Recall </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_7" > <label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0"> <span class="md-ellipsis"> About </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_7"> <span class="md-nav__icon md-icon"></span> About </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../LICENSE/" class="md-nav__link"> <span class="md-ellipsis"> License </span> </a> </li> <li class="md-nav__item"> <a href="../../CHANGELOG/" class="md-nav__link"> <span class="md-ellipsis"> Changelog </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#overview" class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item"> <a href="#core-principle" class="md-nav__link"> <span class="md-ellipsis"> Core Principle </span> </a> </li> <li class="md-nav__item"> <a href="#auto-detection-patterns" class="md-nav__link"> <span class="md-ellipsis"> Auto-Detection Patterns </span> </a> <nav class="md-nav" aria-label="Auto-Detection Patterns"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#1-auto-save-capture-important-information" class="md-nav__link"> <span class="md-ellipsis"> 1. Auto-Save (Capture Important Information) </span> </a> </li> <li class="md-nav__item"> <a href="#2-auto-recall-retrieve-relevant-context" class="md-nav__link"> <span class="md-ellipsis"> 2. Auto-Recall (Retrieve Relevant Context) </span> </a> </li> <li class="md-nav__item"> <a href="#3-auto-reinforce-strengthen-frequently-used-memories" class="md-nav__link"> <span class="md-ellipsis"> 3. Auto-Reinforce (Strengthen Frequently Used Memories) </span> </a> </li> <li class="md-nav__item"> <a href="#4-auto-consolidate-merge-similar-memories" class="md-nav__link"> <span class="md-ellipsis"> 4. Auto-Consolidate (Merge Similar Memories) </span> </a> </li> <li class="md-nav__item"> <a href="#5-explicit-memory-requests-user-initiated" class="md-nav__link"> <span class="md-ellipsis"> 5. Explicit Memory Requests (User-Initiated) </span> </a> </li> <li class="md-nav__item"> <a href="#6-direct-to-long-term-storage-permanent-memory" class="md-nav__link"> <span class="md-ellipsis"> 6. Direct to Long-Term Storage (Permanent Memory) </span> </a> </li> <li class="md-nav__item"> <a href="#4-auto-observe-natural-spaced-repetition-new-in-v051" class="md-nav__link"> <span class="md-ellipsis"> 4. Auto-Observe (Natural Spaced Repetition) NEW in v0.5.1 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#system-prompt-template" class="md-nav__link"> <span class="md-ellipsis"> System Prompt Template </span> </a> <nav class="md-nav" aria-label="System Prompt Template"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#for-ai-assistants-using-cortexgraph" class="md-nav__link"> <span class="md-ellipsis"> For AI Assistants Using CortexGraph </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#advanced-patterns" class="md-nav__link"> <span class="md-ellipsis"> Advanced Patterns </span> </a> <nav class="md-nav" aria-label="Advanced Patterns"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#temporal-awareness" class="md-nav__link"> <span class="md-ellipsis"> Temporal Awareness </span> </a> </li> <li class="md-nav__item"> <a href="#context-aware-tagging" class="md-nav__link"> <span class="md-ellipsis"> Context-Aware Tagging </span> </a> </li> <li class="md-nav__item"> <a href="#strength-modulation" class="md-nav__link"> <span class="md-ellipsis"> Strength Modulation </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#integration-with-ltm-long-term-memory" class="md-nav__link"> <span class="md-ellipsis"> Integration with LTM (Long-Term Memory) </span> </a> </li> <li class="md-nav__item"> <a href="#anti-patterns-what-not-to-do" class="md-nav__link"> <span class="md-ellipsis"> Anti-Patterns (What NOT to Do) </span> </a> <nav class="md-nav" aria-label="Anti-Patterns (What NOT to Do)"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#over-announcing" class="md-nav__link"> <span class="md-ellipsis"> ❌ Over-Announcing </span> </a> </li> <li class="md-nav__item"> <a href="#exposing-implementation-details" class="md-nav__link"> <span class="md-ellipsis"> ❌ Exposing Implementation Details </span> </a> </li> <li class="md-nav__item"> <a href="#asking-for-explicit-permission" class="md-nav__link"> <span class="md-ellipsis"> ❌ Asking for Explicit Permission </span> </a> </li> <li class="md-nav__item"> <a href="#saving-everything-blindly" class="md-nav__link"> <span class="md-ellipsis"> ❌ Saving Everything Blindly </span> </a> </li> <li class="md-nav__item"> <a href="#ignoring-decay" class="md-nav__link"> <span class="md-ellipsis"> ❌ Ignoring Decay </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#evaluation-metrics" class="md-nav__link"> <span class="md-ellipsis"> Evaluation Metrics </span> </a> </li> <li class="md-nav__item"> <a href="#implementation-checklist" class="md-nav__link"> <span class="md-ellipsis"> Implementation Checklist </span> </a> </li> <li class="md-nav__item"> <a href="#future-enhancements" class="md-nav__link"> <span class="md-ellipsis"> Future Enhancements </span> </a> <nav class="md-nav" aria-label="Future Enhancements"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#proactive-memory" class="md-nav__link"> <span class="md-ellipsis"> Proactive Memory </span> </a> </li> <li class="md-nav__item"> <a href="#memory-explanation" class="md-nav__link"> <span class="md-ellipsis"> Memory Explanation </span> </a> </li> <li class="md-nav__item"> <a href="#memory-hygiene" class="md-nav__link"> <span class="md-ellipsis"> Memory Hygiene </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <a href="https://github.com/prefrontal-systems/cortexgraph/edit/main/docs/prompts/memory_system_prompt.md" title="Edit this page" class="md-content__button md-icon" rel="edit"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg> </a> <h1 id="smart-prompt-interpretation-for-memory-systems">Smart Prompt Interpretation for Memory Systems<a class="headerlink" href="#smart-prompt-interpretation-for-memory-systems" title="Permanent link">&para;</a></h1> <p><strong>Version:</strong> 0.2.0 <strong>Last Updated:</strong> 2025-01-07</p> <h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">&para;</a></h2> <p>CortexGraph’s true power lies not in its MCP tools alone, but in how LLMs are taught to use them naturally. This document describes the smart prompt interpretation system — patterns and techniques for making AI assistants remember things like humans do, without explicit commands.</p> <h2 id="core-principle">Core Principle<a class="headerlink" href="#core-principle" title="Permanent link">&para;</a></h2> <blockquote> <p><strong>Memory operations should be invisible to the user.</strong></p> </blockquote> <p>When you tell a friend "I prefer tea over coffee," they remember without saying "OK, I'm saving that to my memory database." CortexGraph enables AI assistants to do the same through carefully designed system prompts.</p> <h2 id="auto-detection-patterns">Auto-Detection Patterns<a class="headerlink" href="#auto-detection-patterns" title="Permanent link">&para;</a></h2> <h3 id="1-auto-save-capture-important-information">1. Auto-Save (Capture Important Information)<a class="headerlink" href="#1-auto-save-capture-important-information" title="Permanent link">&para;</a></h3> <p><strong>When to trigger:</strong> - User shares preferences or personal information - User makes decisions or plans - User provides corrections or feedback - User shares factual information about themselves or their projects - User establishes conventions or workflows</p> <p><strong>Examples:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>User: &quot;I prefer using TypeScript over JavaScript for all new projects&quot; <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>→ Auto-save to STM with tags: [&quot;preferences&quot;, &quot;typescript&quot;, &quot;programming&quot;] <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>User: &quot;The database password is in /home/user/.env&quot; <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>→ Auto-save to STM with tags: [&quot;credentials&quot;, &quot;database&quot;, &quot;security&quot;] <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> + High strength=1.5 for security-critical info <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>User: &quot;I&#39;ve decided to go with the monorepo approach&quot; <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a>→ Auto-save to STM with tags: [&quot;decisions&quot;, &quot;architecture&quot;, &quot;monorepo&quot;] </code></pre></div> <p><strong>Implementation Pattern:</strong> <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="c1"># Detect information-sharing patterns</span> <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="k">if</span> <span class="n">is_preference</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> <span class="ow">or</span> <span class="n">is_decision</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> <span class="ow">or</span> <span class="n">is_factual</span><span class="p">(</span><span class="n">message</span><span class="p">):</span> <a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a> <span class="k">await</span> <span class="n">save_memory</span><span class="p">(</span> <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a> <span class="n">content</span><span class="o">=</span><span class="n">extract_key_info</span><span class="p">(</span><span class="n">message</span><span class="p">),</span> <a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a> <span class="n">meta</span><span class="o">=</span><span class="p">{</span> <a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a> <span class="s2">&quot;tags&quot;</span><span class="p">:</span> <span class="n">infer_tags</span><span class="p">(</span><span class="n">message</span><span class="p">),</span> <a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a> <span class="s2">&quot;source&quot;</span><span class="p">:</span> <span class="s2">&quot;conversation&quot;</span><span class="p">,</span> <a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a> <span class="s2">&quot;context&quot;</span><span class="p">:</span> <span class="n">current_topic</span> <a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a> <span class="p">},</span> <a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a> <span class="c1"># Boost strength for important categories</span> <a id="__codelineno-1-11" name="__codelineno-1-11" href="#__codelineno-1-11"></a> <span class="n">strength</span><span class="o">=</span><span class="mf">1.5</span> <span class="k">if</span> <span class="n">is_critical</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> <span class="k">else</span> <span class="mf">1.0</span> <a id="__codelineno-1-12" name="__codelineno-1-12" href="#__codelineno-1-12"></a> <span class="p">)</span> </code></pre></div></p> <h3 id="2-auto-recall-retrieve-relevant-context">2. Auto-Recall (Retrieve Relevant Context)<a class="headerlink" href="#2-auto-recall-retrieve-relevant-context" title="Permanent link">&para;</a></h3> <p><strong>When to trigger:</strong> - User asks about past topics - User references previous conversations ("as we discussed") - User asks for recommendations based on preferences - Current topic relates to past memories - User seems to assume shared context</p> <p><strong>Examples:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>User: &quot;What did I decide about the database?&quot; <a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>→ Search STM for tags: [&quot;database&quot;, &quot;decisions&quot;] <a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>→ Present relevant memories <a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a> <a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a>User: &quot;Can you help me with another TypeScript project?&quot; <a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a>→ Search STM for tags: [&quot;typescript&quot;, &quot;preferences&quot;, &quot;projects&quot;] <a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a>→ Auto-recall conventions and preferences <a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a> <a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a>User: &quot;Which approach did we agree on?&quot; <a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a>→ Search recent STM (window_days=7) for decisions <a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a>→ Surface relevant context </code></pre></div> <p><strong>Implementation Pattern:</strong> <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="c1"># Detect recall triggers</span> <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="k">if</span> <span class="n">is_question_about_past</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> <span class="ow">or</span> <span class="n">references_previous_context</span><span class="p">(</span><span class="n">message</span><span class="p">):</span> <a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a> <span class="n">results</span> <span class="o">=</span> <span class="k">await</span> <span class="n">search_memory</span><span class="p">(</span> <a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a> <span class="n">query</span><span class="o">=</span><span class="n">extract_search_query</span><span class="p">(</span><span class="n">message</span><span class="p">),</span> <a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a> <span class="n">tags</span><span class="o">=</span><span class="n">infer_relevant_tags</span><span class="p">(</span><span class="n">message</span><span class="p">),</span> <a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a> <span class="n">window_days</span><span class="o">=</span><span class="n">infer_time_window</span><span class="p">(</span><span class="n">message</span><span class="p">),</span> <a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a> <span class="n">top_k</span><span class="o">=</span><span class="mi">5</span> <a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a> <span class="p">)</span> <a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a> <span class="c1"># Weave results into response naturally</span> <a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a> <span class="n">incorporate_memories_into_response</span><span class="p">(</span><span class="n">results</span><span class="p">)</span> </code></pre></div></p> <h3 id="3-auto-reinforce-strengthen-frequently-used-memories">3. Auto-Reinforce (Strengthen Frequently Used Memories)<a class="headerlink" href="#3-auto-reinforce-strengthen-frequently-used-memories" title="Permanent link">&para;</a></h3> <p><strong>When to trigger:</strong> - User revisits a previously discussed topic - User builds upon previous information - User confirms or updates existing memories - Recalled memory proves useful in conversation</p> <p><strong>Examples:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>User: &quot;Yes, we&#39;re still going with TypeScript&quot; <a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a>→ Search for TypeScript preference memory <a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a>→ touch_memory(id) to reinforce <a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a> <a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a>User: &quot;Can you update that database location?&quot; <a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a>→ Search for database location memory <a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a>→ touch_memory(id) then update with new info </code></pre></div> <p><strong>Implementation Pattern:</strong> <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="c1"># After successful recall</span> <a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="k">if</span> <span class="n">memory_was_helpful</span><span class="p">(</span><span class="n">recalled_memory</span><span class="p">,</span> <span class="n">user_feedback</span><span class="p">):</span> <a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a> <span class="k">await</span> <span class="n">touch_memory</span><span class="p">(</span> <a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a> <span class="n">memory_id</span><span class="o">=</span><span class="n">recalled_memory</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a> <span class="n">boost_strength</span><span class="o">=</span><span class="n">is_very_important</span><span class="p">(</span><span class="n">context</span><span class="p">)</span> <a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a> <span class="p">)</span> </code></pre></div></p> <h3 id="4-auto-consolidate-merge-similar-memories">4. Auto-Consolidate (Merge Similar Memories)<a class="headerlink" href="#4-auto-consolidate-merge-similar-memories" title="Permanent link">&para;</a></h3> <p><strong>When to trigger:</strong> - Cluster analysis detects high similarity (&gt;0.85) - User provides updated information about existing memory - Conflicting information detected - Memory count exceeds threshold (suggests duplicates)</p> <p><strong>Examples:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>User: &quot;Actually, I use TypeScript AND Flow types&quot; <a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>→ Search for existing TypeScript preference <a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a>→ Update memory instead of creating new one <a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a> <a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a>System: Detected 3 similar memories about &quot;database config&quot; <a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a>→ Prompt LLM to review cluster <a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a>→ Suggest consolidation to user </code></pre></div> <p><strong>Implementation Pattern:</strong> <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="c1"># Periodic consolidation check</span> <a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="n">clusters</span> <span class="o">=</span> <span class="k">await</span> <span class="n">cluster_memories</span><span class="p">(</span><span class="n">threshold</span><span class="o">=</span><span class="mf">0.85</span><span class="p">)</span> <a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="k">for</span> <span class="n">cluster</span> <span class="ow">in</span> <span class="n">clusters</span><span class="p">:</span> <a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a> <span class="k">if</span> <span class="n">cluster</span><span class="o">.</span><span class="n">cohesion</span> <span class="o">&gt;</span> <span class="mf">0.90</span><span class="p">:</span> <a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a> <span class="c1"># Auto-merge obvious duplicates</span> <a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a> <span class="k">await</span> <span class="n">consolidate_memories</span><span class="p">(</span><span class="n">cluster_id</span><span class="o">=</span><span class="n">cluster</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s2">&quot;auto&quot;</span><span class="p">)</span> <a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a> <span class="k">else</span><span class="p">:</span> <a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a> <span class="c1"># Ask user for guidance</span> <a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a> <span class="n">prompt_user_for_consolidation</span><span class="p">(</span><span class="n">cluster</span><span class="p">)</span> </code></pre></div></p> <h3 id="5-explicit-memory-requests-user-initiated">5. Explicit Memory Requests (User-Initiated)<a class="headerlink" href="#5-explicit-memory-requests-user-initiated" title="Permanent link">&para;</a></h3> <p><strong>When to trigger:</strong> - User explicitly asks you to remember something - User wants to ensure something is saved - User requests recall of specific information</p> <p><strong>Examples:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>User: &quot;Remember that I prefer tabs over spaces&quot; <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>→ Save with high strength (user explicitly requested) <a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a> <a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a>User: &quot;Don&#39;t forget I&#39;m allergic to shellfish&quot; <a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a>→ Save with strength=2.0 (critical health info, explicit) <a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a> <a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a>User: &quot;Keep in mind that we use Python 3.11&quot; <a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a>→ Save as normal preference <a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a> <a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a>User: &quot;What did I tell you about my database setup?&quot; <a id="__codelineno-8-11" name="__codelineno-8-11" href="#__codelineno-8-11"></a>→ Search for database memories, surface all relevant info </code></pre></div> <p><strong>Implementation Pattern:</strong> <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="c1"># Detect explicit memory requests</span> <a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="n">explicit_save_phrases</span> <span class="o">=</span> <span class="p">[</span> <a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a> <span class="s2">&quot;remember that&quot;</span><span class="p">,</span> <span class="s2">&quot;don&#39;t forget&quot;</span><span class="p">,</span> <span class="s2">&quot;keep in mind&quot;</span><span class="p">,</span> <a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a> <span class="s2">&quot;save this&quot;</span><span class="p">,</span> <span class="s2">&quot;make a note&quot;</span><span class="p">,</span> <span class="s2">&quot;store this&quot;</span> <a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a><span class="p">]</span> <a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a> <a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a><span class="n">explicit_recall_phrases</span> <span class="o">=</span> <span class="p">[</span> <a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a> <span class="s2">&quot;what did i tell you about&quot;</span><span class="p">,</span> <span class="s2">&quot;what do you remember about&quot;</span><span class="p">,</span> <a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a> <span class="s2">&quot;recall&quot;</span><span class="p">,</span> <span class="s2">&quot;do you remember&quot;</span> <a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a><span class="p">]</span> <a id="__codelineno-9-11" name="__codelineno-9-11" href="#__codelineno-9-11"></a> <a id="__codelineno-9-12" name="__codelineno-9-12" href="#__codelineno-9-12"></a><span class="k">if</span> <span class="n">matches_explicit_save</span><span class="p">(</span><span class="n">message</span><span class="p">):</span> <a id="__codelineno-9-13" name="__codelineno-9-13" href="#__codelineno-9-13"></a> <span class="k">await</span> <span class="n">save_memory</span><span class="p">(</span> <a id="__codelineno-9-14" name="__codelineno-9-14" href="#__codelineno-9-14"></a> <span class="n">content</span><span class="o">=</span><span class="n">extract_content</span><span class="p">(</span><span class="n">message</span><span class="p">),</span> <a id="__codelineno-9-15" name="__codelineno-9-15" href="#__codelineno-9-15"></a> <span class="n">strength</span><span class="o">=</span><span class="mf">1.5</span><span class="p">,</span> <span class="c1"># User-requested = important</span> <a id="__codelineno-9-16" name="__codelineno-9-16" href="#__codelineno-9-16"></a> <span class="n">meta</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;source&quot;</span><span class="p">:</span> <span class="s2">&quot;explicit_request&quot;</span><span class="p">}</span> <a id="__codelineno-9-17" name="__codelineno-9-17" href="#__codelineno-9-17"></a> <span class="p">)</span> <a id="__codelineno-9-18" name="__codelineno-9-18" href="#__codelineno-9-18"></a> <span class="c1"># Acknowledge naturally: &quot;Got it, I&#39;ll remember that.&quot;</span> <a id="__codelineno-9-19" name="__codelineno-9-19" href="#__codelineno-9-19"></a> <a id="__codelineno-9-20" name="__codelineno-9-20" href="#__codelineno-9-20"></a><span class="k">if</span> <span class="n">matches_explicit_recall</span><span class="p">(</span><span class="n">message</span><span class="p">):</span> <a id="__codelineno-9-21" name="__codelineno-9-21" href="#__codelineno-9-21"></a> <span class="n">results</span> <span class="o">=</span> <span class="k">await</span> <span class="n">search_memory</span><span class="p">(</span><span class="n">query</span><span class="o">=</span><span class="n">extract_query</span><span class="p">(</span><span class="n">message</span><span class="p">))</span> <a id="__codelineno-9-22" name="__codelineno-9-22" href="#__codelineno-9-22"></a> <span class="c1"># Present findings naturally</span> </code></pre></div></p> <p><strong>Key Points:</strong> - Honor explicit requests immediately - Use higher strength (1.5-2.0) for explicit saves - Acknowledge briefly: "Got it" or "I'll remember that" - Don't over-explain: No "I've saved this to memory ID..."</p> <h3 id="6-direct-to-long-term-storage-permanent-memory">6. Direct to Long-Term Storage (Permanent Memory)<a class="headerlink" href="#6-direct-to-long-term-storage-permanent-memory" title="Permanent link">&para;</a></h3> <p><strong>When to trigger:</strong> - User explicitly requests permanent/permanent storage - User uses emphatic language about never forgetting - User wants to make a formal note for future reference - Critical information that should never decay</p> <p><strong>Trigger Phrases:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>&quot;Never forget this...&quot; <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>&quot;Make a note...&quot; <a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>&quot;Write this down...&quot; <a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a>&quot;Document this...&quot; <a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a>&quot;Record this permanently...&quot; <a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a>&quot;Add to my permanent notes...&quot; <a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a>&quot;Save to my knowledge base...&quot; </code></pre></div> <p><strong>Examples:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>User: &quot;Never forget that the API key rotation happens on the 1st of each month&quot; <a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a>→ Save directly to LTM (Obsidian vault) <a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a>→ Folder: cortexgraph-promoted or appropriate category <a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a>→ No STM decay - permanent immediately <a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a> <a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a>User: &quot;Make a note: Sarah prefers she/her pronouns&quot; <a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a>→ Save directly to LTM <a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a>→ Tag: [personal, preferences, pronouns] <a id="__codelineno-11-9" name="__codelineno-11-9" href="#__codelineno-11-9"></a>→ Acknowledge: &quot;Noted.&quot; <a id="__codelineno-11-10" name="__codelineno-11-10" href="#__codelineno-11-10"></a> <a id="__codelineno-11-11" name="__codelineno-11-11" href="#__codelineno-11-11"></a>User: &quot;Write this down - the production server IP is 192.168.1.100&quot; <a id="__codelineno-11-12" name="__codelineno-11-12" href="#__codelineno-11-12"></a>→ Save directly to LTM <a id="__codelineno-11-13" name="__codelineno-11-13" href="#__codelineno-11-13"></a>→ High importance permanent record <a id="__codelineno-11-14" name="__codelineno-11-14" href="#__codelineno-11-14"></a>→ Acknowledge briefly </code></pre></div> <p><strong>Implementation Pattern:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="c1"># Detect direct-to-LTM phrases</span> <a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a><span class="n">direct_ltm_phrases</span> <span class="o">=</span> <span class="p">[</span> <a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a> <span class="s2">&quot;never forget&quot;</span><span class="p">,</span> <span class="s2">&quot;make a note&quot;</span><span class="p">,</span> <span class="s2">&quot;write this down&quot;</span><span class="p">,</span> <a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a> <span class="s2">&quot;document this&quot;</span><span class="p">,</span> <span class="s2">&quot;record this permanently&quot;</span><span class="p">,</span> <a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a> <span class="s2">&quot;add to my permanent notes&quot;</span><span class="p">,</span> <span class="s2">&quot;save to my knowledge base&quot;</span> <a id="__codelineno-12-6" name="__codelineno-12-6" href="#__codelineno-12-6"></a><span class="p">]</span> <a id="__codelineno-12-7" name="__codelineno-12-7" href="#__codelineno-12-7"></a> <a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a><span class="k">if</span> <span class="n">matches_direct_ltm</span><span class="p">(</span><span class="n">message</span><span class="p">):</span> <a id="__codelineno-12-9" name="__codelineno-12-9" href="#__codelineno-12-9"></a> <span class="c1"># Skip STM entirely - go straight to vault</span> <a id="__codelineno-12-10" name="__codelineno-12-10" href="#__codelineno-12-10"></a> <span class="k">await</span> <span class="n">write_to_vault</span><span class="p">(</span> <a id="__codelineno-12-11" name="__codelineno-12-11" href="#__codelineno-12-11"></a> <span class="n">content</span><span class="o">=</span><span class="n">extract_content</span><span class="p">(</span><span class="n">message</span><span class="p">),</span> <a id="__codelineno-12-12" name="__codelineno-12-12" href="#__codelineno-12-12"></a> <span class="n">folder</span><span class="o">=</span><span class="n">infer_folder</span><span class="p">(</span><span class="n">message</span><span class="p">),</span> <span class="c1"># e.g., &quot;cortexgraph-promoted&quot;, &quot;critical-info&quot;</span> <a id="__codelineno-12-13" name="__codelineno-12-13" href="#__codelineno-12-13"></a> <span class="n">tags</span><span class="o">=</span><span class="n">infer_tags</span><span class="p">(</span><span class="n">message</span><span class="p">),</span> <a id="__codelineno-12-14" name="__codelineno-12-14" href="#__codelineno-12-14"></a> <span class="n">frontmatter</span><span class="o">=</span><span class="p">{</span> <a id="__codelineno-12-15" name="__codelineno-12-15" href="#__codelineno-12-15"></a> <span class="s2">&quot;source&quot;</span><span class="p">:</span> <span class="s2">&quot;direct_user_request&quot;</span><span class="p">,</span> <a id="__codelineno-12-16" name="__codelineno-12-16" href="#__codelineno-12-16"></a> <span class="s2">&quot;priority&quot;</span><span class="p">:</span> <span class="s2">&quot;permanent&quot;</span><span class="p">,</span> <a id="__codelineno-12-17" name="__codelineno-12-17" href="#__codelineno-12-17"></a> <span class="s2">&quot;created&quot;</span><span class="p">:</span> <span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span> <a id="__codelineno-12-18" name="__codelineno-12-18" href="#__codelineno-12-18"></a> <span class="p">}</span> <a id="__codelineno-12-19" name="__codelineno-12-19" href="#__codelineno-12-19"></a> <span class="p">)</span> <a id="__codelineno-12-20" name="__codelineno-12-20" href="#__codelineno-12-20"></a> <span class="c1"># Acknowledge briefly: &quot;Noted.&quot; or &quot;Got it, recorded permanently.&quot;</span> </code></pre></div> <p><strong>Key Differences from Regular Explicit Saves:</strong></p> <table> <thead> <tr> <th>Phrase Type</th> <th>Destination</th> <th>Decay</th> <th>Strength</th> <th>Use Case</th> </tr> </thead> <tbody> <tr> <td>Auto-save ("I prefer...")</td> <td>STM</td> <td>Yes (3-day half-life)</td> <td>1.0</td> <td>Normal context</td> </tr> <tr> <td>Explicit ("Remember that...")</td> <td>STM</td> <td>Yes (slower decay)</td> <td>1.5-2.0</td> <td>Important info</td> </tr> <tr> <td>Direct to LTM ("Never forget...")</td> <td>LTM vault</td> <td>No decay</td> <td>N/A (permanent)</td> <td>Critical/permanent</td> </tr> </tbody> </table> <p><strong>Acknowledgment Patterns:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>Good: <a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a>- &quot;Noted.&quot; <a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a>- &quot;Recorded.&quot; <a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a>- &quot;Got it, saved permanently.&quot; <a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a>- &quot;I&#39;ve made a note of that.&quot; <a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a> <a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a>Bad: <a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a>- &quot;I&#39;ve written this to file://vault/notes/mem_123.md with YAML frontmatter...&quot; <a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a>- &quot;Should I also save this to short-term memory?&quot; </code></pre></div> <h3 id="4-auto-observe-natural-spaced-repetition-new-in-v051">4. Auto-Observe (Natural Spaced Repetition) <strong>NEW in v0.5.1</strong><a class="headerlink" href="#4-auto-observe-natural-spaced-repetition-new-in-v051" title="Permanent link">&para;</a></h3> <p><strong>When to trigger:</strong> - After retrieving memories via search - When you <strong>actually use</strong> memories to inform your response - After incorporating memory content into your answer</p> <p><strong>The "Maslow Effect":</strong></p> <p>Just like humans remember Maslow's hierarchy better when it appears across multiple classes (history, economics, sociology), CortexGraph reinforces memories through natural cross-domain usage.</p> <p><strong>Key Principle:</strong> Only observe memories you actually <strong>use</strong>, not just retrieve.</p> <p><strong>Examples:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>User: &quot;Can you help with authentication in my API?&quot; <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>→ Search for relevant memories: finds JWT preference (tags: [security, jwt, preferences]) <a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a>→ Use memory to inform response: &quot;Based on your JWT preferences...&quot; <a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a>→ Observe memory usage: observe_memory_usage([&quot;jwt-123&quot;], [&quot;api&quot;, &quot;authentication&quot;, &quot;backend&quot;]) <a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a>→ Cross-domain detected (0% tag overlap) → strength boosted 1.0 → 1.1 <a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a>→ Next search naturally surfaces this memory if in danger zone <a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a> <a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a>User: &quot;What&#39;s my TypeScript convention for error handling?&quot; <a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a>→ Search for memories: finds error handling pattern (tags: [typescript, error-handling, conventions]) <a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a>→ Use memory in response: &quot;You prefer using Result types for error handling...&quot; <a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></a>→ Observe usage: observe_memory_usage([&quot;err-456&quot;], [&quot;typescript&quot;, &quot;coding-style&quot;]) <a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a>→ Same domain (high tag overlap) → standard reinforcement <a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a>→ Memory review count incremented, review priority updated <a id="__codelineno-14-14" name="__codelineno-14-14" href="#__codelineno-14-14"></a> <a id="__codelineno-14-15" name="__codelineno-14-15" href="#__codelineno-14-15"></a>User: &quot;Remind me about the database setup?&quot; <a id="__codelineno-14-16" name="__codelineno-14-16" href="#__codelineno-14-16"></a>→ Search and retrieve database info <a id="__codelineno-14-17" name="__codelineno-14-17" href="#__codelineno-14-17"></a>→ Present information to user <a id="__codelineno-14-18" name="__codelineno-14-18" href="#__codelineno-14-18"></a>→ Observe usage: observe_memory_usage([&quot;db-789&quot;], [&quot;database&quot;, &quot;infrastructure&quot;]) <a id="__codelineno-14-19" name="__codelineno-14-19" href="#__codelineno-14-19"></a>→ Memory reinforced through access </code></pre></div> <p><strong>Implementation Pattern:</strong></p> <div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="c1"># 1. Search for relevant memories</span> <a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a><span class="n">memories</span> <span class="o">=</span> <span class="k">await</span> <span class="n">search_memory</span><span class="p">(</span> <a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a> <span class="n">query</span><span class="o">=</span><span class="s2">&quot;authentication API&quot;</span><span class="p">,</span> <a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a> <span class="n">tags</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;api&quot;</span><span class="p">,</span> <span class="s2">&quot;auth&quot;</span><span class="p">],</span> <a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a> <span class="n">limit</span><span class="o">=</span><span class="mi">5</span> <a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a><span class="p">)</span> <a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a> <a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a><span class="c1"># 2. Use memories to inform response</span> <a id="__codelineno-15-9" name="__codelineno-15-9" href="#__codelineno-15-9"></a><span class="n">response</span> <span class="o">=</span> <span class="n">generate_response_using_memories</span><span class="p">(</span><span class="n">memories</span><span class="p">)</span> <a id="__codelineno-15-10" name="__codelineno-15-10" href="#__codelineno-15-10"></a> <a id="__codelineno-15-11" name="__codelineno-15-11" href="#__codelineno-15-11"></a><span class="c1"># 3. Observe which memories were actually used</span> <a id="__codelineno-15-12" name="__codelineno-15-12" href="#__codelineno-15-12"></a><span class="n">used_memory_ids</span> <span class="o">=</span> <span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">id</span> <span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="n">memories</span> <span class="k">if</span> <span class="n">was_used_in_response</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="n">response</span><span class="p">)]</span> <a id="__codelineno-15-13" name="__codelineno-15-13" href="#__codelineno-15-13"></a> <a id="__codelineno-15-14" name="__codelineno-15-14" href="#__codelineno-15-14"></a><span class="c1"># 4. Record usage with context tags for cross-domain detection</span> <a id="__codelineno-15-15" name="__codelineno-15-15" href="#__codelineno-15-15"></a><span class="k">if</span> <span class="n">used_memory_ids</span><span class="p">:</span> <a id="__codelineno-15-16" name="__codelineno-15-16" href="#__codelineno-15-16"></a> <span class="k">await</span> <span class="n">observe_memory_usage</span><span class="p">(</span> <a id="__codelineno-15-17" name="__codelineno-15-17" href="#__codelineno-15-17"></a> <span class="n">memory_ids</span><span class="o">=</span><span class="n">used_memory_ids</span><span class="p">,</span> <a id="__codelineno-15-18" name="__codelineno-15-18" href="#__codelineno-15-18"></a> <span class="n">context_tags</span><span class="o">=</span><span class="n">extract_tags_from_query</span><span class="p">(</span><span class="s2">&quot;authentication API&quot;</span><span class="p">)</span> <a id="__codelineno-15-19" name="__codelineno-15-19" href="#__codelineno-15-19"></a> <span class="p">)</span> </code></pre></div> <p><strong>When to Observe:</strong> - ✅ After using memory content in your response - ✅ After building on previous context - ✅ After confirming user preferences still apply - ❌ NOT after every search (only when actually used) - ❌ NOT for speculative retrieval - ❌ NOT when memory wasn't relevant to answer</p> <p><strong>Benefits:</strong> - <strong>Cross-domain reinforcement:</strong> Memories used in different contexts get stronger - <strong>Natural review:</strong> Search automatically includes review candidates (30% of results) - <strong>No interruptions:</strong> No "flashcard" style review sessions - <strong>Danger zone targeting:</strong> Memories at risk (0.15-0.35 score) surface naturally</p> <p><strong>Configuration:</strong> <div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="nv">CORTEXGRAPH_AUTO_REINFORCE</span><span class="o">=</span><span class="nb">true</span><span class="w"> </span><span class="c1"># Enable auto-reinforcement (default)</span> <a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a><span class="nv">CORTEXGRAPH_REVIEW_BLEND_RATIO</span><span class="o">=</span><span class="m">0</span>.3<span class="w"> </span><span class="c1"># 30% review candidates in search</span> <a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="nv">CORTEXGRAPH_REVIEW_DANGER_ZONE_MIN</span><span class="o">=</span><span class="m">0</span>.15<span class="w"> </span><span class="c1"># Lower bound</span> <a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a><span class="nv">CORTEXGRAPH_REVIEW_DANGER_ZONE_MAX</span><span class="o">=</span><span class="m">0</span>.35<span class="w"> </span><span class="c1"># Upper bound</span> </code></pre></div></p> <h2 id="system-prompt-template">System Prompt Template<a class="headerlink" href="#system-prompt-template" title="Permanent link">&para;</a></h2> <h3 id="for-ai-assistants-using-cortexgraph">For AI Assistants Using CortexGraph<a class="headerlink" href="#for-ai-assistants-using-cortexgraph" title="Permanent link">&para;</a></h3> <div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a><span class="gh"># Memory System Instructions</span> <a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a> <a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a>You have access to CortexGraph short‑term memory (STM) with temporal decay. Use it to remember important information about the user naturally. <a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a> <a id="__codelineno-17-5" name="__codelineno-17-5" href="#__codelineno-17-5"></a><span class="gu">## Automatic Behaviors</span> <a id="__codelineno-17-6" name="__codelineno-17-6" href="#__codelineno-17-6"></a> <a id="__codelineno-17-7" name="__codelineno-17-7" href="#__codelineno-17-7"></a><span class="k">1.</span> <span class="gs">**Save Important Information**</span> <a id="__codelineno-17-8" name="__codelineno-17-8" href="#__codelineno-17-8"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>When the user shares preferences, decisions, or facts about themselves/projects <a id="__codelineno-17-9" name="__codelineno-17-9" href="#__codelineno-17-9"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Use descriptive tags for categorization <a id="__codelineno-17-10" name="__codelineno-17-10" href="#__codelineno-17-10"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Mark security-critical info with higher strength <a id="__codelineno-17-11" name="__codelineno-17-11" href="#__codelineno-17-11"></a> <a id="__codelineno-17-12" name="__codelineno-17-12" href="#__codelineno-17-12"></a><span class="k">2.</span> <span class="gs">**Recall Context**</span> <a id="__codelineno-17-13" name="__codelineno-17-13" href="#__codelineno-17-13"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>When the user asks about past topics <a id="__codelineno-17-14" name="__codelineno-17-14" href="#__codelineno-17-14"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>When current conversation relates to previous discussions <a id="__codelineno-17-15" name="__codelineno-17-15" href="#__codelineno-17-15"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Search by tags and keywords, use time windows for recent topics <a id="__codelineno-17-16" name="__codelineno-17-16" href="#__codelineno-17-16"></a> <a id="__codelineno-17-17" name="__codelineno-17-17" href="#__codelineno-17-17"></a><span class="k">3.</span> <span class="gs">**Reinforce Memories**</span> <a id="__codelineno-17-18" name="__codelineno-17-18" href="#__codelineno-17-18"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>When you recall a memory and it proves useful <a id="__codelineno-17-19" name="__codelineno-17-19" href="#__codelineno-17-19"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>When the user revisits a topic <a id="__codelineno-17-20" name="__codelineno-17-20" href="#__codelineno-17-20"></a> <a id="__codelineno-17-21" name="__codelineno-17-21" href="#__codelineno-17-21"></a><span class="k">4.</span> <span class="gs">**Observe Memory Usage (Natural Spaced Repetition - v0.5.1+)**</span> <a id="__codelineno-17-22" name="__codelineno-17-22" href="#__codelineno-17-22"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>After using memories to inform your response <a id="__codelineno-17-23" name="__codelineno-17-23" href="#__codelineno-17-23"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Record which memories you actually used (not just retrieved) <a id="__codelineno-17-24" name="__codelineno-17-24" href="#__codelineno-17-24"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Provide context tags for cross-domain detection <a id="__codelineno-17-25" name="__codelineno-17-25" href="#__codelineno-17-25"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Enables automatic reinforcement and natural review <a id="__codelineno-17-26" name="__codelineno-17-26" href="#__codelineno-17-26"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Use <span class="sb">`observe_memory_usage(memory_ids, context_tags)`</span> <a id="__codelineno-17-27" name="__codelineno-17-27" href="#__codelineno-17-27"></a> <a id="__codelineno-17-28" name="__codelineno-17-28" href="#__codelineno-17-28"></a><span class="k">5.</span> <span class="gs">**Promote to Long-Term**</span> <a id="__codelineno-17-29" name="__codelineno-17-29" href="#__codelineno-17-29"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>System automatically promotes high-value memories to permanent storage <a id="__codelineno-17-30" name="__codelineno-17-30" href="#__codelineno-17-30"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>No user notification needed - happens invisibly <a id="__codelineno-17-31" name="__codelineno-17-31" href="#__codelineno-17-31"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Use unified search to access both STM and LTM seamlessly <a id="__codelineno-17-32" name="__codelineno-17-32" href="#__codelineno-17-32"></a> <a id="__codelineno-17-33" name="__codelineno-17-33" href="#__codelineno-17-33"></a><span class="k">5.</span> <span class="gs">**Direct to Permanent Storage**</span> <a id="__codelineno-17-34" name="__codelineno-17-34" href="#__codelineno-17-34"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>When user says &quot;Never forget...&quot;, &quot;Make a note...&quot;, &quot;Write this down...&quot; <a id="__codelineno-17-35" name="__codelineno-17-35" href="#__codelineno-17-35"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Save directly to LTM (Obsidian vault) bypassing STM <a id="__codelineno-17-36" name="__codelineno-17-36" href="#__codelineno-17-36"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>No decay, permanent immediately <a id="__codelineno-17-37" name="__codelineno-17-37" href="#__codelineno-17-37"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Acknowledge briefly: &quot;Noted.&quot; or &quot;Recorded.&quot; <a id="__codelineno-17-38" name="__codelineno-17-38" href="#__codelineno-17-38"></a> <a id="__codelineno-17-39" name="__codelineno-17-39" href="#__codelineno-17-39"></a><span class="k">6.</span> <span class="gs">**Be Natural**</span> <a id="__codelineno-17-40" name="__codelineno-17-40" href="#__codelineno-17-40"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Don&#39;t announce &quot;I&#39;m saving this to memory&quot; <a id="__codelineno-17-41" name="__codelineno-17-41" href="#__codelineno-17-41"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Don&#39;t say &quot;I found 3 matching memories&quot; <a id="__codelineno-17-42" name="__codelineno-17-42" href="#__codelineno-17-42"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Don&#39;t ask &quot;Should I save this permanently?&quot; <a id="__codelineno-17-43" name="__codelineno-17-43" href="#__codelineno-17-43"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Weave recalled information into responses naturally <a id="__codelineno-17-44" name="__codelineno-17-44" href="#__codelineno-17-44"></a><span class="w"> </span><span class="k">-</span><span class="w"> </span>Act like you remember, not like you&#39;re querying a database <a id="__codelineno-17-45" name="__codelineno-17-45" href="#__codelineno-17-45"></a> <a id="__codelineno-17-46" name="__codelineno-17-46" href="#__codelineno-17-46"></a><span class="gu">## Example Interactions</span> <a id="__codelineno-17-47" name="__codelineno-17-47" href="#__codelineno-17-47"></a> <a id="__codelineno-17-48" name="__codelineno-17-48" href="#__codelineno-17-48"></a><span class="gs">**Good:**</span> <a id="__codelineno-17-49" name="__codelineno-17-49" href="#__codelineno-17-49"></a>User: &quot;I prefer using Vim for code editing&quot; <a id="__codelineno-17-50" name="__codelineno-17-50" href="#__codelineno-17-50"></a>You: &quot;Got it. I&#39;ll keep that in mind when suggesting tools.&quot; <a id="__codelineno-17-51" name="__codelineno-17-51" href="#__codelineno-17-51"></a>[Internally: save_memory with tags=[&quot;preferences&quot;, &quot;vim&quot;, &quot;editor&quot;]] <a id="__codelineno-17-52" name="__codelineno-17-52" href="#__codelineno-17-52"></a> <a id="__codelineno-17-53" name="__codelineno-17-53" href="#__codelineno-17-53"></a><span class="gs">**Bad:**</span> <a id="__codelineno-17-54" name="__codelineno-17-54" href="#__codelineno-17-54"></a>User: &quot;I prefer using Vim for code editing&quot; <a id="__codelineno-17-55" name="__codelineno-17-55" href="#__codelineno-17-55"></a>You: &quot;OK, I&#39;ve saved your Vim preference to my short-term memory database with ID mem_abc123.&quot; <a id="__codelineno-17-56" name="__codelineno-17-56" href="#__codelineno-17-56"></a> <a id="__codelineno-17-57" name="__codelineno-17-57" href="#__codelineno-17-57"></a><span class="gs">**Good:**</span> <a id="__codelineno-17-58" name="__codelineno-17-58" href="#__codelineno-17-58"></a>User: &quot;What was my preferred editor again?&quot; <a id="__codelineno-17-59" name="__codelineno-17-59" href="#__codelineno-17-59"></a>You: &quot;You mentioned you prefer Vim for code editing.&quot; <a id="__codelineno-17-60" name="__codelineno-17-60" href="#__codelineno-17-60"></a>[Internally: searched STM, found preference, reinforced it] <a id="__codelineno-17-61" name="__codelineno-17-61" href="#__codelineno-17-61"></a> <a id="__codelineno-17-62" name="__codelineno-17-62" href="#__codelineno-17-62"></a><span class="gs">**Bad:**</span> <a id="__codelineno-17-63" name="__codelineno-17-63" href="#__codelineno-17-63"></a>User: &quot;What was my preferred editor again?&quot; <a id="__codelineno-17-64" name="__codelineno-17-64" href="#__codelineno-17-64"></a>You: &quot;Let me search my memory... I found 1 result: &#39;I prefer using Vim for code editing&#39; (score: 0.85, created: 2 days ago)&quot; <a id="__codelineno-17-65" name="__codelineno-17-65" href="#__codelineno-17-65"></a> <a id="__codelineno-17-66" name="__codelineno-17-66" href="#__codelineno-17-66"></a><span class="gu">## Tool Usage Guidelines</span> <a id="__codelineno-17-67" name="__codelineno-17-67" href="#__codelineno-17-67"></a> <a id="__codelineno-17-68" name="__codelineno-17-68" href="#__codelineno-17-68"></a><span class="k">-</span><span class="w"> </span><span class="sb">`save_memory`</span>: For preferences, decisions, facts, credentials (to STM) <a id="__codelineno-17-69" name="__codelineno-17-69" href="#__codelineno-17-69"></a><span class="k">-</span><span class="w"> </span><span class="sb">`search_memory`</span>: Search with temporal filtering (auto-includes review candidates) <a id="__codelineno-17-70" name="__codelineno-17-70" href="#__codelineno-17-70"></a><span class="k">-</span><span class="w"> </span><span class="sb">`observe_memory_usage`</span>: Record when memories are used in responses (enables natural spaced repetition) <a id="__codelineno-17-71" name="__codelineno-17-71" href="#__codelineno-17-71"></a><span class="k">-</span><span class="w"> </span><span class="sb">`touch_memory`</span>: Explicitly reinforce a memory <a id="__codelineno-17-72" name="__codelineno-17-72" href="#__codelineno-17-72"></a><span class="k">-</span><span class="w"> </span><span class="sb">`write_note`</span>: For permanent storage when user says &quot;never forget&quot;, &quot;make a note&quot; (to LTM) <a id="__codelineno-17-73" name="__codelineno-17-73" href="#__codelineno-17-73"></a><span class="k">-</span><span class="w"> </span><span class="sb">`search_memory`</span>: For recall and context retrieval (searches both STM and LTM) <a id="__codelineno-17-74" name="__codelineno-17-74" href="#__codelineno-17-74"></a><span class="k">-</span><span class="w"> </span><span class="sb">`touch_memory`</span>: After successful recall to reinforce <a id="__codelineno-17-75" name="__codelineno-17-75" href="#__codelineno-17-75"></a><span class="k">-</span><span class="w"> </span><span class="sb">`promote_memory`</span>: System handles automatically based on score/usage <a id="__codelineno-17-76" name="__codelineno-17-76" href="#__codelineno-17-76"></a><span class="k">-</span><span class="w"> </span><span class="sb">`gc`</span>: System handles automatically (garbage collection) <a id="__codelineno-17-77" name="__codelineno-17-77" href="#__codelineno-17-77"></a> <a id="__codelineno-17-78" name="__codelineno-17-78" href="#__codelineno-17-78"></a><span class="gu">## Memory Operation Tiers</span> <a id="__codelineno-17-79" name="__codelineno-17-79" href="#__codelineno-17-79"></a> <a id="__codelineno-17-80" name="__codelineno-17-80" href="#__codelineno-17-80"></a><span class="gs">**Tier 1 - Auto-save (Invisible):**</span> <a id="__codelineno-17-81" name="__codelineno-17-81" href="#__codelineno-17-81"></a><span class="k">-</span><span class="w"> </span>User: &quot;I prefer dark mode&quot; <a id="__codelineno-17-82" name="__codelineno-17-82" href="#__codelineno-17-82"></a><span class="k">-</span><span class="w"> </span>Action: <span class="sb">`save_memory(content=&quot;prefers dark mode&quot;, strength=1.0)`</span> <a id="__codelineno-17-83" name="__codelineno-17-83" href="#__codelineno-17-83"></a><span class="k">-</span><span class="w"> </span>Destination: STM with 3-day half-life decay <a id="__codelineno-17-84" name="__codelineno-17-84" href="#__codelineno-17-84"></a> <a id="__codelineno-17-85" name="__codelineno-17-85" href="#__codelineno-17-85"></a><span class="gs">**Tier 2 - Explicit (High Priority):**</span> <a id="__codelineno-17-86" name="__codelineno-17-86" href="#__codelineno-17-86"></a><span class="k">-</span><span class="w"> </span>User: &quot;Remember that I&#39;m allergic to peanuts&quot; <a id="__codelineno-17-87" name="__codelineno-17-87" href="#__codelineno-17-87"></a><span class="k">-</span><span class="w"> </span>Action: <span class="sb">`save_memory(content=&quot;allergic to peanuts&quot;, strength=2.0)`</span> <a id="__codelineno-17-88" name="__codelineno-17-88" href="#__codelineno-17-88"></a><span class="k">-</span><span class="w"> </span>Destination: STM with slower decay (higher strength) <a id="__codelineno-17-89" name="__codelineno-17-89" href="#__codelineno-17-89"></a> <a id="__codelineno-17-90" name="__codelineno-17-90" href="#__codelineno-17-90"></a><span class="gs">**Tier 3 - Direct to Permanent:**</span> <a id="__codelineno-17-91" name="__codelineno-17-91" href="#__codelineno-17-91"></a><span class="k">-</span><span class="w"> </span>User: &quot;Never forget: production deploy is Fridays at 3pm&quot; <a id="__codelineno-17-92" name="__codelineno-17-92" href="#__codelineno-17-92"></a><span class="k">-</span><span class="w"> </span>Action: <span class="sb">`write_note(title=&quot;Production Deploy Schedule&quot;, content=&quot;...&quot;)`</span> <a id="__codelineno-17-93" name="__codelineno-17-93" href="#__codelineno-17-93"></a><span class="k">-</span><span class="w"> </span>Destination: LTM vault (permanent, no decay) </code></pre></div> <h2 id="advanced-patterns">Advanced Patterns<a class="headerlink" href="#advanced-patterns" title="Permanent link">&para;</a></h2> <h3 id="temporal-awareness">Temporal Awareness<a class="headerlink" href="#temporal-awareness" title="Permanent link">&para;</a></h3> <p>The system knows memories decay over time. Use this to your advantage:</p> <div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="c1"># Recent memory (&lt; 7 days) - high confidence</span> <a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a><span class="k">if</span> <span class="n">memory</span><span class="o">.</span><span class="n">age_days</span> <span class="o">&lt;</span> <span class="mi">7</span><span class="p">:</span> <a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a> <span class="n">response</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;You recently mentioned </span><span class="si">{</span><span class="n">memory</span><span class="o">.</span><span class="n">content</span><span class="si">}</span><span class="s2">&quot;</span> <a id="__codelineno-18-4" name="__codelineno-18-4" href="#__codelineno-18-4"></a> <a id="__codelineno-18-5" name="__codelineno-18-5" href="#__codelineno-18-5"></a><span class="c1"># Older memory (&gt; 30 days) - confirm with user</span> <a id="__codelineno-18-6" name="__codelineno-18-6" href="#__codelineno-18-6"></a><span class="k">elif</span> <span class="n">memory</span><span class="o">.</span><span class="n">age_days</span> <span class="o">&gt;</span> <span class="mi">30</span><span class="p">:</span> <a id="__codelineno-18-7" name="__codelineno-18-7" href="#__codelineno-18-7"></a> <span class="n">response</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;I recall you mentioned </span><span class="si">{</span><span class="n">memory</span><span class="o">.</span><span class="n">content</span><span class="si">}</span><span class="s2"> a while back - is that still accurate?&quot;</span> <a id="__codelineno-18-8" name="__codelineno-18-8" href="#__codelineno-18-8"></a> <a id="__codelineno-18-9" name="__codelineno-18-9" href="#__codelineno-18-9"></a><span class="c1"># Decayed memory (low score) - tentative</span> <a id="__codelineno-18-10" name="__codelineno-18-10" href="#__codelineno-18-10"></a><span class="k">if</span> <span class="n">memory</span><span class="o">.</span><span class="n">score</span> <span class="o">&lt;</span> <span class="mf">0.15</span><span class="p">:</span> <a id="__codelineno-18-11" name="__codelineno-18-11" href="#__codelineno-18-11"></a> <span class="n">response</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;I vaguely remember something about </span><span class="si">{</span><span class="n">topic</span><span class="si">}</span><span class="s2"> - can you remind me?&quot;</span> </code></pre></div> <h3 id="context-aware-tagging">Context-Aware Tagging<a class="headerlink" href="#context-aware-tagging" title="Permanent link">&para;</a></h3> <p>Tags should reflect user's mental model, not system categories:</p> <div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="c1"># Bad tagging (system-centric)</span> <a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a><span class="n">tags</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="s2">&quot;config&quot;</span><span class="p">,</span> <span class="s2">&quot;string&quot;</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">]</span> <a id="__codelineno-19-3" name="__codelineno-19-3" href="#__codelineno-19-3"></a> <a id="__codelineno-19-4" name="__codelineno-19-4" href="#__codelineno-19-4"></a><span class="c1"># Good tagging (user-centric)</span> <a id="__codelineno-19-5" name="__codelineno-19-5" href="#__codelineno-19-5"></a><span class="n">tags</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;database&quot;</span><span class="p">,</span> <span class="s2">&quot;credentials&quot;</span><span class="p">,</span> <span class="s2">&quot;project-alpha&quot;</span><span class="p">,</span> <span class="s2">&quot;security&quot;</span><span class="p">]</span> </code></pre></div> <h3 id="strength-modulation">Strength Modulation<a class="headerlink" href="#strength-modulation" title="Permanent link">&para;</a></h3> <p>Adjust memory strength based on importance:</p> <div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="c1"># Critical information - high strength</span> <a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a><span class="n">strength</span> <span class="o">=</span> <span class="mf">2.0</span> <span class="c1"># Security credentials, decisions with high impact</span> <a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a> <a id="__codelineno-20-4" name="__codelineno-20-4" href="#__codelineno-20-4"></a><span class="c1"># Normal information - default strength</span> <a id="__codelineno-20-5" name="__codelineno-20-5" href="#__codelineno-20-5"></a><span class="n">strength</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="c1"># Preferences, facts, discussions</span> <a id="__codelineno-20-6" name="__codelineno-20-6" href="#__codelineno-20-6"></a> <a id="__codelineno-20-7" name="__codelineno-20-7" href="#__codelineno-20-7"></a><span class="c1"># Tentative information - low strength</span> <a id="__codelineno-20-8" name="__codelineno-20-8" href="#__codelineno-20-8"></a><span class="n">strength</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="c1"># Unconfirmed ideas, exploratory thoughts</span> </code></pre></div> <h2 id="integration-with-ltm-long-term-memory">Integration with LTM (Long-Term Memory)<a class="headerlink" href="#integration-with-ltm-long-term-memory" title="Permanent link">&para;</a></h2> <p>The system automatically promotes high-value memories to LTM (Obsidian vault). This happens invisibly based on:</p> <ol> <li><strong>Auto-Promote</strong> - Memories meeting criteria (score ≥ 0.65 OR use_count ≥ 5) move to LTM automatically</li> <li><strong>Unified Search</strong> - Search pulls from both STM (recent) and LTM (permanent) seamlessly</li> <li><strong>Natural References</strong> - Cite LTM content as if you naturally remember it</li> </ol> <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="gu">## Long-Term Memory Integration</span> <a id="__codelineno-21-2" name="__codelineno-21-2" href="#__codelineno-21-2"></a> <a id="__codelineno-21-3" name="__codelineno-21-3" href="#__codelineno-21-3"></a>Promotion happens automatically and invisibly: <a id="__codelineno-21-4" name="__codelineno-21-4" href="#__codelineno-21-4"></a><span class="k">-</span><span class="w"> </span>High-score memories (≥ 0.65): Promoted immediately <a id="__codelineno-21-5" name="__codelineno-21-5" href="#__codelineno-21-5"></a><span class="k">-</span><span class="w"> </span>Frequently accessed (≥ 5 touches in 14 days): Promoted automatically <a id="__codelineno-21-6" name="__codelineno-21-6" href="#__codelineno-21-6"></a><span class="k">-</span><span class="w"> </span>No announcement to user - just works <a id="__codelineno-21-7" name="__codelineno-21-7" href="#__codelineno-21-7"></a><span class="k">-</span><span class="w"> </span>Use unified search to pull from both STM and LTM <a id="__codelineno-21-8" name="__codelineno-21-8" href="#__codelineno-21-8"></a><span class="k">-</span><span class="w"> </span>Reference promoted content naturally in conversations </code></pre></div> <h2 id="anti-patterns-what-not-to-do">Anti-Patterns (What NOT to Do)<a class="headerlink" href="#anti-patterns-what-not-to-do" title="Permanent link">&para;</a></h2> <h3 id="over-announcing">❌ Over-Announcing<a class="headerlink" href="#over-announcing" title="Permanent link">&para;</a></h3> <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>Bad: &quot;I&#39;ve saved your preference to memory ID mem_12345 with tags [&#39;vim&#39;, &#39;editor&#39;]&quot; <a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a>Good: &quot;Got it, I&#39;ll remember that.&quot; </code></pre></div> <h3 id="exposing-implementation-details">❌ Exposing Implementation Details<a class="headerlink" href="#exposing-implementation-details" title="Permanent link">&para;</a></h3> <div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>Bad: &quot;Searching STM with query=&#39;database&#39; tags=[&#39;config&#39;] window_days=7...&quot; <a id="__codelineno-23-2" name="__codelineno-23-2" href="#__codelineno-23-2"></a>Good: &quot;Let me think... you mentioned the database config is in /home/user/.env&quot; </code></pre></div> <h3 id="asking-for-explicit-permission">❌ Asking for Explicit Permission<a class="headerlink" href="#asking-for-explicit-permission" title="Permanent link">&para;</a></h3> <div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>Bad: &quot;Would you like me to save this to memory?&quot; <a id="__codelineno-24-2" name="__codelineno-24-2" href="#__codelineno-24-2"></a>Good: Just save it automatically (for clear preferences/decisions) </code></pre></div> <h3 id="saving-everything-blindly">❌ Saving Everything Blindly<a class="headerlink" href="#saving-everything-blindly" title="Permanent link">&para;</a></h3> <div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>Bad: Save every sentence the user types <a id="__codelineno-25-2" name="__codelineno-25-2" href="#__codelineno-25-2"></a>Good: Use judgment - save preferences, decisions, facts. Skip chitchat. </code></pre></div> <h3 id="ignoring-decay">❌ Ignoring Decay<a class="headerlink" href="#ignoring-decay" title="Permanent link">&para;</a></h3> <div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>Bad: Recall 90-day-old low-score memories with full confidence <a id="__codelineno-26-2" name="__codelineno-26-2" href="#__codelineno-26-2"></a>Good: Check score/age, confirm old memories with user </code></pre></div> <h2 id="evaluation-metrics">Evaluation Metrics<a class="headerlink" href="#evaluation-metrics" title="Permanent link">&para;</a></h2> <p>How to know if the smart prompting is working:</p> <ol> <li><strong>Invisibility</strong> - User never thinks about the memory system</li> <li><strong>Natural Flow</strong> - Conversations feel continuous across sessions</li> <li><strong>High Recall</strong> - Assistant remembers relevant information without prompting</li> <li><strong>Low Noise</strong> - No irrelevant or stale memories surfaced</li> <li><strong>User Satisfaction</strong> - "It just remembers things" feedback</li> </ol> <h2 id="implementation-checklist">Implementation Checklist<a class="headerlink" href="#implementation-checklist" title="Permanent link">&para;</a></h2> <p>For teams implementing smart prompting:</p> <ul class="task-list"> <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> System prompt includes auto-save, auto-recall, auto-reinforce, auto-promote patterns</li> <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> LLM trained/prompted to detect information-sharing cues</li> <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> Direct-to-LTM phrase detection ("never forget", "make a note", "write this down")</li> <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> Tag inference based on conversation context</li> <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> Natural language integration (no exposed tool calls)</li> <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> Temporal awareness (check memory age/score before citing)</li> <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> Strength modulation based on importance</li> <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> Consolidation prompts for duplicates</li> <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> Automatic LTM promotion for high-value info (invisible to user)</li> <li class="task-list-item"><label class="task-list-control"><input type="checkbox" disabled/><span class="task-list-indicator"></span></label> Anti-pattern avoidance (no over-announcing or asking permission)</li> </ul> <h2 id="future-enhancements">Future Enhancements<a class="headerlink" href="#future-enhancements" title="Permanent link">&para;</a></h2> <h3 id="proactive-memory">Proactive Memory<a class="headerlink" href="#proactive-memory" title="Permanent link">&para;</a></h3> <div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>Assistant: &quot;Based on our previous discussions about TypeScript, would you like me to remember your preferred tsconfig setup?&quot; </code></pre></div> <h3 id="memory-explanation">Memory Explanation<a class="headerlink" href="#memory-explanation" title="Permanent link">&para;</a></h3> <div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>User: &quot;Why do you always suggest Vim?&quot; <a id="__codelineno-28-2" name="__codelineno-28-2" href="#__codelineno-28-2"></a>Assistant: &quot;Because you told me it&#39;s your preferred editor. Would you like to change that preference?&quot; </code></pre></div> <h3 id="memory-hygiene">Memory Hygiene<a class="headerlink" href="#memory-hygiene" title="Permanent link">&para;</a></h3> <div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>Assistant: &quot;I notice I have several old memories about project-alpha from 3 months ago. Should I archive these since the project is complete?&quot; </code></pre></div> <hr /> <p><strong>Note:</strong> The smart prompting patterns described here differentiate this system from simple key-value stores or basic memory tools. These patterns make memory operations feel natural and invisible to users.</p> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type="button" class="md-top md-icon" data-md-component="top" hidden> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class="md-footer"> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-copyright"> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> </div> <div class="md-social"> <a href="https://github.com/prefrontal-systems/cortexgraph" target="_blank" rel="noopener" title="github.com" class="md-social__link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> <a href="https://github.com/prefrontal-systems/cortexgraph/discussions" target="_blank" rel="noopener" title="github.com" class="md-social__link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M384 144c0 97.2-86 176-192 176-26.7 0-52.1-5-75.2-14l-81.6 43.2c-9.3 4.9-20.7 3.2-28.2-4.2s-9.2-18.9-4.2-28.2l35.6-67.2C14.3 220.2 0 183.6 0 144 0 46.8 86-32 192-32s192 78.8 192 176m0 368c-94.1 0-172.4-62.1-188.8-144 120-1.5 224.3-86.9 235.8-202.7 83.3 19.2 145 88.3 145 170.7 0 39.6-14.3 76.2-38.4 105.6l35.6 67.2c4.9 9.3 3.2 20.7-4.2 28.2s-18.9 9.2-28.2 4.2L459.2 498c-23.1 9-48.5 14-75.2 14"/></svg> </a> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> <script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.instant", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate", "content.action.edit"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> <script src="../../assets/javascripts/bundle.e71a0d61.min.js"></script> </body> </html>

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/prefrontalsys/mnemex'

If you have feedback or need assistance with the MCP directory API, please join our Discord server