In short - THIS is excellent, practical and immediately useable. Thank you Daniel. I'll be linking to this from my Substack for sure. I've been curious what all is possible with the 'current' version of ChatGPT memory. Love this.
Fantastic - happy to hear you found it useful, Tom! That's the entire purpose of posts like these. If you come across any curious observations while using these approaches, I'd love to hear them.
Thanks for sharing! Great idea about prefacing memories with specific tags for easy organization. The Jarvis use case is impressive but I think I'd personally still prefer a dedicated to-do/task app for that.
Very good! I'm actually working right now on a memory component for a commercial chatbot for a client, and we're taking a more structured approach involving knowledge graphs and other fancy strategies, which make sense in that context because the nature of domain is such that what you store in memory is much more specific, but also stakes are much higher about storing something weird or false. Can't really discuss it in detail at the moment but at some point in the future I'll write a tutorial to build something like that.
Great post. I’m going to use your proactive advice a lot the next week or so and will get back to you. Thanks! Yep. The bot isn’t human but it’s extremely useful once you accept it for what it is.
Great post. Thanks for the methods guidance. I just tweaked that a little bit and added it. This immediately made me think "How would Pi do in this area?". I tried to find out just now and will @ you in a note on the results of that.
(I think there's definitely room to keep iterating to eliminate these edge cases and slipups, but I haven't spent time on it yet.)
Curious to hear what you find with Pi.
What I observed with Pi is that:
1. Its "Memory" isn't exposed to the user in the same way as ChatGPT's is. So it's hard to know what it did and didn't remember about you.
2. It seems to suffer from amnesia the further back you go. Recent stuff? No problem. Stuff you discussed earlier? Forgotten(ish).
3. They introduced "Threads" some months ago, but the Threads are apparently self-contained. So if you talk to the "Home Window" Pi, it knows nothing about what you've shared in the individual threads. I guess that's intentional to compartmentalize your chats, but it was a bummer when I had to migrate some knowledge out of a separate thread to the "Main" Pi.
I actually kept the "During this chat" that way on purpose, because of how "Custom Instructions" work. Anything you put into "Custom Instructions" just gets added at the beginning of any chat, right after the invisible system prompt. As such, it makes more sense to refer to "this chat" rather than broader stuff.
(Although I doubt that wording will make a massive difference either way.)
Oh, that makes sense - I might flip that back to your wording. In any case, I really liked this post and the guidance on helping the memory feature improve.
Amazing work, Daniel. I had faith that you would figure out some utility here.
If we start with the premise that this isn't human-memory, we can really get somewhere.
Can't wait to play around with these methods later today.
Thanks Nick. I'd love to hear about your observations once you've had the chance to try this!
In short - THIS is excellent, practical and immediately useable. Thank you Daniel. I'll be linking to this from my Substack for sure. I've been curious what all is possible with the 'current' version of ChatGPT memory. Love this.
Fantastic - happy to hear you found it useful, Tom! That's the entire purpose of posts like these. If you come across any curious observations while using these approaches, I'd love to hear them.
Will do!
Thanks for the tips! This person on YouTube also has some useful ideas for ways to use the memory feature. https://youtu.be/ce0UroMVo2M?si=qbxUvd_OSPTUMnCo
Thanks for sharing! Great idea about prefacing memories with specific tags for easy organization. The Jarvis use case is impressive but I think I'd personally still prefer a dedicated to-do/task app for that.
Very good! I'm actually working right now on a memory component for a commercial chatbot for a client, and we're taking a more structured approach involving knowledge graphs and other fancy strategies, which make sense in that context because the nature of domain is such that what you store in memory is much more specific, but also stakes are much higher about storing something weird or false. Can't really discuss it in detail at the moment but at some point in the future I'll write a tutorial to build something like that.
Yeah I can imagine the need for accuracy and specific formatting, etc. is very different in that context.
This is basically just a "duct tape" way of stitching the memory + custom instructions features into something workable.
Will be curious to read that tutorial of yours when it eventually comes out!
Great post. I’m going to use your proactive advice a lot the next week or so and will get back to you. Thanks! Yep. The bot isn’t human but it’s extremely useful once you accept it for what it is.
Awesome to hear you're implementing this. Would love to hear about your experience once you get to form an opinion.
You've got me well trained. I was thinking, "can't you do this with custom instructions?", and then #3 pops up.
You've officially become part-Daniel. I'd say "Congratulations," but we both know that this occasion is nothing to celebrate!
Great post. Thanks for the methods guidance. I just tweaked that a little bit and added it. This immediately made me think "How would Pi do in this area?". I tried to find out just now and will @ you in a note on the results of that.
Nice! What kind of tweaks did you make?
(I think there's definitely room to keep iterating to eliminate these edge cases and slipups, but I haven't spent time on it yet.)
Curious to hear what you find with Pi.
What I observed with Pi is that:
1. Its "Memory" isn't exposed to the user in the same way as ChatGPT's is. So it's hard to know what it did and didn't remember about you.
2. It seems to suffer from amnesia the further back you go. Recent stuff? No problem. Stuff you discussed earlier? Forgotten(ish).
3. They introduced "Threads" some months ago, but the Threads are apparently self-contained. So if you talk to the "Home Window" Pi, it knows nothing about what you've shared in the individual threads. I guess that's intentional to compartmentalize your chats, but it was a bummer when I had to migrate some knowledge out of a separate thread to the "Main" Pi.
My tweaks were minimal, just two:
- I switched the wording to ask it to apply to all our chats
- The other is not really a tweak, I just left my short list of bio information - work in cybersecurity, own the best dog in the universe etc
Ah, gotcha!
I actually kept the "During this chat" that way on purpose, because of how "Custom Instructions" work. Anything you put into "Custom Instructions" just gets added at the beginning of any chat, right after the invisible system prompt. As such, it makes more sense to refer to "this chat" rather than broader stuff.
(Although I doubt that wording will make a massive difference either way.)
And yes, I also have quite elaborate details added to both the "What would you like ChatGPT to know" and "How would you like ChatGPT to respond" fields. I recommend this excellent guide by Dan Shipper, which I largely followed for this purpose: https://every.to/chain-of-thought/using-chatgpt-custom-instructions-for-fun-and-profit
Oh, that makes sense - I might flip that back to your wording. In any case, I really liked this post and the guidance on helping the memory feature improve.
That's awesome! Always happy to hear when people find what I share useful.