Same here.
I even have it explicitly in my instructions to ONLY remember stuff that will likely be referenced again in other chats… yet it stores inane nonsense like “Steve decided that recipe B was a better option than recipe A.” Useless example, but the memory is full of stuff that should not be there.
On a whim, I whipped up an assistant script that manages its own memory, in a simple text file…
the responses are in a 2-part XML format… a < notes > section, which is appended to the notes.txt file with a timestamp, and a < response > (had to space it out as it wasn’t displaying otherwise) section, which is displayed to me. on exit, it runs a memCleanup function that sends it back to 4o with a different prompt, to clean up and consolidate the notes… updating or appending existing notes (LTM details, current projects, whatever), and clearing out stuff that ended up being trivial…
Anything it’s uncertain of, it generates a clarification question, to ask at the start of the next interaction. It also knows the date/time, and since everything in the memory file since the last cleanup update has a timestamp, it can easily references relative times…
In one recent test, I mentioned that my girls were in the living room playing with Lego… it noted that my “daughters” were playing Lego… then in the cleanup, it reflected that I’d only ever mentioned having 1 daughter and the other person I mentioned was most likely my wife.
In the next session, the assistant greeted me and asked, conversationally, how the Lego project that E and A were working on was going… I replied that it was great and they had lots of fun, thereby confirming it was right about who the “girls” were.
The note from that response? “Steve has one daughter, E,”… when memCleanup ran, it removed the “find out how many daughters Steve has” question, and added a note to my daughter’s bio section that she is an only child.
The notes file has detailed info on me and my family, my current projects, my interests and hobbies, a list of current challenges and things we’ve talked about… and is (currently) only 43 lines long, including section headers. 4kb… easy peasy to append that to the 4o API calls, and to be honest, it’s far more functional than the memory built into ChatGPT…
Much of what it has noted has been put there specifically to test how well it identifies what is worth saving, and probably isn’t stuff I’d actually store in practice… but it’s a proof of concept. It’s not the most practical to use as it runs right in the terminal for now, but the memory function is working quite well.
If I can do this… surely it’d be easy for ChatGPT to do it at least as well.