8 ms·
I don't use any of these type of LLM tools which basically amount to just a prompt you leave in place. They make it harder to refine my prompts and keep track o
by cainxinth 1y ago
I don't use any of these type of LLM tools which basically amount to just a prompt you leave in place. They make it harder to refine my prompts and keep track of what is causing what in the outputs. I write very precise prompts every time.
Also, I try not work out a problem over the course of several prompts back and forth. The first response is always the best and I try to one shot it every time. If I don't get what I want, I adjust the prompt and try again.
- corry 1y agoStrong agree. For every time that I'd get a better answer if the LLM had a bit more context on me (that I didn't think to provide, but it 'knew') there seems to be a multiple of that where the 'memory' was either actually confounding or possibly confounding the best response. I'm sure OpenAI and Antropic look at the data, and I'm sure it says that for new / unsophisticated users who don't know how to prompt, that this is a handy crutch (even if it's bad here and there) to make sure they get SOMETHING useable. But for the HN crowd in particular, I think most of us have a feeling like making the blackbox even more black -- i.e. even more inscrutable in terms of how it operates and what inputs it's using -- isn't something to celebrate or want.
- cubefox 1y agoAnecdotally, LLMs also get less intelligent when the context is filled up with a lot of irrelevant information.
- taejavu 1y agoThis is well established at this point, it’s called “context rot”: https://research.trychroma.com/context-rot https://research.trychroma.com/context-rot
- cubefox 1y agoYeah, though this paper doesn't test any standard LLM benchmarks like GPQA diamond, SimpleQA, AIME 25, LiveCodeBench v5, etc. So it remains hard to tell how much intelligence is lost when the context is filled with irrelevant information.
- mbesto 1y ago> For every time that I'd get a better answer if the LLM had a bit more context on me If you already know what a good answer is why use a LLM? If the answer is "it'll just write the same thing quicker than I would have", then why not just use it as an autocomplete feature?
- Nition 1y agoThat might be exactly how they're using it. A lot of my LLM use is really just having it write something I would have spent a long time typing out and making a few edits to it. Once I get into stuff I haven't worked out how to do yet, the LLM often doesn't really know either unless I can work it out myself and explain it first.
- cruffle_duffle 1y agoThat rubber duck is a valid workflow. Keep iterating at how you want to explain something until the LLM can echo back (and expand upon) whatever the hell you are trying to get out of your head. Sometimes I’ll do five or six edits to a single prompt to get the LLM to echo back something that sounds right. That refinement really helps clarify my thinking. …it’s also dangerous if you aren’t careful because you are basically trying to get the model to agree with you and go along with whatever you are saying. Gotta be careful to not let the model jerk you off too hard!
- Nition 1y agoYes, I have had times where I realised after a while that my proposed approach would never actually work because of some overlooked high-level issue, but the LLM never spots that kind of thing and just happily keeps trying. Maybe that's a good thing - if it could think that well, what would I be contributing?
- svachalek 1y agoYou don't need to know what the answer is ahead of time to recognize the difference between a good answer and a bad answer. Many times the answer comes back as a Python script and I'm like, oh I hate Python, rewrite that. So it's useful to have a permanent prompt that tells it things like that. But myself as well, that prompt is very short. I don't keep a large stable of reusable prompts because I agree, every unnecessary word is a distraction that does more harm than good.
- awesome_dude 1y agoIf I find that previous prompts are polluting the responses I tell Claude to "Forget everything so far" BUT I do like that Claude builds on previous discussions, more than once the built up context has allowed Claude to improve its responses (eg. [Actual response] "Because you have previously expressed a preference for SOLID and Hexagonal programming I would suggest that you do X" which was exactly what I wanted)
- logicallee 1y agoit can't really "forget everything so far" just because you ask it to. everything so far would still be part of the context. you need a new chat with memory turned off if you want a fresh context.
- awesome_dude 1y agoI mean I am telling you what has actually worked for me so far - and being a NLP the system (should) understand what that means... as should you...
- baq 1y agoLLMs literally can’t forget. If it’s in the context window, it is known regardless of what you put in the context next. That said, if the ‘pretend forget’ you’re getting works for you, great. Just remember it’s fake.
- awesome_dude 1y agoLike I said, the AI does exactly what I intend for it to do. Almost, as I said earler, like the AI has processed my request, realised that I am referring to the context of the earlier discussions, and moved on to the next prompt exactly how I have expected it to Given the two very VERY dumb responses, and multiple people down voting, I am reminded how thankful I am that AI is around now, because it understood what you clearly don't. I didn't expect it to delete the internet, the world, the universe, or anything, it didn't read my request as an instruction to do so... yet you and that other imbecile seem to think that that's what was meant... even after me saying it was doing as I wanted. /me shrugs - now fight me how your interpretation is the only right one... go on... (like you and that other person already are) One thing I am not going to miss is the toxic "We know better" responses from JUNIORS
- chaostheory 1y agoBoth of you are missing a lot of use cases. Outside of HN, not everyone uses an LLM for programming. A lot of these people use it as a diary/journal that talks back or as a Walmart therapist.
- deleted 1y ago[deleted]
- gordon_freeman 1y agoWalmart therapist?
- sshine 1y agoAs in cheap.
- chaostheory 1y agoPeople use LLMs as their therapist because they’re either unwilling to see or unable to afford a human one. Based on anecdotal Reddit comments, some people have even mentioned that an LLM was more “compassionate” than a human therapist. Due to economics, being able to see a human therapist in person for more than 15 minutes at a time has now become a luxury. Imo this is dangerous, given the memory features that both Claude and ChatGPT have. Of course, most medical data is already online but at least there are medical privacy laws for some countries.
- SecretDreams 1y agoThis is exactly why the two use cases need to be delineated.
- brookst 1y agoI'm pretty deep in this stuff and I find memory super useful. For instance, I can ask "what windshield wipers should I buy" and Claude (and ChatGPT and others) will remember where I live, what winter's like, the make, model, and year of my car, and give me a part number. Sure, there's more control in re-typing those details every single time. But there is also value in not having to.
- Footprint0521 1y agoLike valid, but also just ?temporarychat=true that mfer
- brulard 1y agoI would say these are two distinct use cases - one is the assistant that remembers my preferences. The other use case is the clean intelligent blackbox that knows nothing about previous sessions and I can manage the context in fine detail. Both are useful, but for very different problems.
- helloplanets 1y agoI'd imagine 99% of ChatGPT users see the app as the former. And then the rest know how to turn the memory off manually. Either way, I think memory can be especially sneakily bad when trying to get creative outputs. If I have had multiple separate chats about a theme I'm exploring, I definitely don't want the model to have any sort of summary from those in context if I want a new angle on the whole thing. The opposite: I'd rather have 'random' topics only tangentially related, in order to add some sort of entropy in the outout.
- sheepscreek 1y agoGood point. I almost wish for an anonymous mode with chat history.
- love2read 1y agoWould that just be the ability to chat without making new memories while using existing memories?
- crucialfelix 1y agoAll those moments will be lost in time, like tears in rain.
- philmont 1y agoDo Androids Dream of Electric Sheep? Soon.
- tom_m 1y agoNah, they don't look at the data. They just try random things and see what works. That's why there's now the whole skills thing. They are all just variations of ideas to manage context basically. LLMs are very simply text in and text out. Unless the providers begin to expand into other areas, there's only so much they can do other than simply focus on training better models. In fact, if they begin to slow down or stop training new models and put focus elsewhere, it could be a sign that they are plateauing with their models. They will reach that point some day after all.
- mmaunder 1y agoYeah same. And I'd rather save the context space. Having custom md docs per lift per project is what I do. Really dials it in.
- dabockster 1y agoOr I just metaprompt a new chat if the one I’m in starts hallucinating.
- distances 1y agoAnother comment earlier suggested creating small hierarchical MD docs. This really seems to work, Claude can independently follow the references and get to the exact docs without wasting context by reading everything.
- CamperBob2 1y agoExactly... this is just another unwanted 'memory' feature that I now need to turn off, and then remember to check periodically to make sure it's still turned off.
- jrockway 1y agoIt can remember everything about your life... except whether or not you already opted out.
- CamperBob2 1y agoLOL, at this point I have NO idea what's enabled and what's disabled: https://i.imgur.com/l7geDOl.png https://i.imgur.com/l7geDOl.png
- mckn1ght 1y agoPlan mode is the extent of it for me. It’s essentially prompting to produce a prompt, which is then used to actually execute the inference to produce code changes. It’s really upped the quality of the output IME. But I don’t have any habits around using subagents or lots of CLAUDE.md files etc. I do have some custom commands.
- seyyid235 1y ago[flagged]
- cruffle_duffle 1y agoCursor’s implementation of plan mode works better for me simply because it’s an editable markdown file. Claude code seems to really want to be the driver and you be the copilot. I really dislike that relationship and vastly prefer a workflow that lets me edit the LLM output rather than have it generate some plan and then piss away time and tokens fighting the model so it updates the plan how I want it. With cursor I just edit it myself and then edit its output super easy.
- mckn1ght 1y agoI’ve even resorted to using actual markdown files on disk for long sets of work, as a kind of long term memory meta-plan mode. I’ll even have claude generate them and keep them updated. But I get what you mean.
- liqilin1567 1y agoThanks for sharing, I didn't even know about this useful feature.
- mstkllah 1y agoCould you share some suggestions or links on how to best craft such very precise prompts?
- oblio 1y agoYou sit on the chair, insert a coin and pull the lever.
- wppick 1y agoIt's called "prompt engineering", and there's lots of resources on the web about it if you're looking to go deep on it
- svachalek 1y agoWasn't me but I think the principle is straightforward. When you get an answer that wasn't what you want and you might respond, "no, I want the answer to be shorter and in German", instead start a new chat, copy-paste the original prompt, and add "Please respond in German and limit the answer to half a page." (or just edit the prompt if your UI allows it) Depending on how much you know about LLMs, this might seem wasteful but it is in fact more efficient and will save you money if you pay by the token.
- vl 1y agoIn most tools there is no need to cut-n-paste, just click small edit icon next to the prompt, edit and resubmit. Boom, old answer is discarded, new answer is generated.
- mstkllah 1y agoThat's what I have been doing. The poster made it sound like they had some magical way of prompting very precisely.
- ivape 1y agoRegardless, whatever memory engines people come up with, it's not in anyone's interest to have the memory layer sitting on Anthropic or Open AIs server. The memory layer should exist locally, with these external servers acting as nothing else but LLM request fulfillment. Now, we'll never be able to educate most of the world on why they should seek out tools that handle the memory layer locally, and these big companies know that (the same way they knew most of the world would not fight back against data collection), but that is the big education that needs to spread diligently. To put it another way, some games save your game state locally, some save it in the cloud. It's not much of a personal concern with games because what the fuck are you really going to learn from my Skyrim sessions? But the save state for my LLM convos? Yeah, that will stay on my computer, thank you very much for your offer.
- antihipocrat 1y agoIsn't the saved state still being sent as part of the prompt context with every prompt? The high token count is financially beneficial to the LLM vendor no matter where it's stored.
- ivape 1y agoThe saved state is sent on each prompt, yes. Those who are fully aware of this would seek a local memory agent and a local llm, or at the very least a provider that promises no-logging. Every sacrifice we make for convenience will be financially beneficial to the vendor, so we need to factor them out of the equation. Engineered context does mean a lot more tokens, so it will be more business for the vendor, but the vendors know there is much more money in saving your thoughts. Privacy-first intelligence requires these two things at the bare minimum: 1) Your thoughts stay on your device 2) At worst, your thoughts pass through a no-logging environment on the server. Memory cannot live here because any context saved to a db is basically just logging. 3) Or slightly worse, your local memory agent only sends some prompts to a no-logging server. The first two things will never be offered by the current megacapitalist. Finally, the developer community should not be adopting things like Claude memory because we know. We’re not ignorant of the implications compared to non-technical people. We know what this data looks like, where it’s saved, how it’s passed around, and what it could be used for. We absolutely know better.
- labrador 1y ago> If I don't get what I want, I adjust the prompt and try again. This feels like cheating to me. You try again until you get the answer you want. I prefer to have open ended conversations to surface ideas that I may not be be comfortable with because "the truth sometimes hurts" as they say.
- teeklp 1y agoThis is literally insane.
- labrador 1y agoI love that people hate this because that means I'm using AI in an interesting way. People will see what I mean eventually. Edit: I see the confusion. OP is talking about needing precise output for agents. I'm talking about riffing on ideas that may go in strange places.
- bongodongobob 1y agoNo, he's talking about memory getting passed into the prompts and maintaining control. When you turn on memory, you have no idea what's getting stuffed into the system prompt. This applies to chats and agents. He's talking about chat.
- labrador 1y agoParent is not chatting though. Parent is crafting a precise prompt. I agree, in that case you don't want memory to introduce global state. I see the distinction between two workflows: one where you need deterministic control and one where you want emergent, exploratory conversation.
- bongodongobob 1y agoYes, you still craft an initial prompt with exploratory chats. I feel like I'm talking to a bot right now tbh.
- heisenbit 1y agoBasics of control theory: Use (energy storage), add some lag and maybe a bit of amplification and then the instability fun begins.
- dreamcompiler 1y agoOr, IIR filters can blow up while FIR filters never do.
- Nition 1y ago> The first response is always the best and I try to one shot it every time. If I don't get what I want, I adjust the prompt and try again. I've really noticed this too and ended up taking your same strategy, especially with programming questions. For example if I ask for some code and the LLM initially makes an incorrect assumption, I notice the result tends to be better if I go back and provide that info in my initial question, vs. clarifying in a follow-up and asking for the change. The latter tends to still contain some code/ideas from the first response that aren't necessarily needed. Humans do the same thing. We get stuck on ideas we've already had.[1] --- [1] e.g. Rational Choice in an Uncertain World (1988) explains: "Norman R. F. Maier noted that when a group faces a problem, the natural tendency of its members is to propose possible solutions as they begin to discuss the problem. Consequently, the group interaction focuses on the merits and problems of the proposed solutions, people become emotionally attached to the ones they have suggested, and superior solutions are not suggested. Maier enacted an edict to enhance group problem solving: 'Do not propose solutions until the problem has been discussed as thoroughly as possible without suggesting any.'"
- cruffle_duffle 1y agoA wise mentor once said “fall in love with the problem, not the solution”
- imiric 1y ago> Humans do the same thing. We get stuck on ideas we've already had. Humans usually provide the same answer when asked the same question. LLMs almost never do, even for the exact same prompt. Stop anthropomorphizing these tools.
- svachalek 1y agoThat is odd, are you using small models with the temperature cranked up? I mean I'm not getting word for word the same answer but material differences are rare. All these rising benchmark scores come from increasingly consistent and correct answers. Perhaps you are stuck on the stochastic parrot fallacy.
- stingraycharles 1y agoYes, your last paragraph is absolutely the key to great output: instead of entering a discussion, refine the original prompt. It is much more token efficient, and gets rid of a lot of noise. I often start out with “proceed by asking me 5 questions that reduce ambiguity” or something like that, and then refine the original prompt. It seems like we’re all discovering similar patterns on how to interact with LLMs the best way.
- IshKebab 1y ago> It is much more token efficient Is it? Aren't input tokens are like 1000x cheaper than output tokens? That's why they can do this memory stuff in the first place.
- stavros 1y agoThey're around 10x cheaper than output, and 100x if they're cached.
- stingraycharles 1y agoWhat I mean is that you want the total number of tokens to convey the information to the LLM to be as small as possible. If you’re having a discussion, you’ll have (perhaps incorrect) responses from the LLM in there, have to correct it, etc. All this is wasteful, and may even confuse the LLM. It’s much better to ensure all the information is densely packed in the original message.
- LTL_FTC 1y agoWe sure are. We are all discovering context rot on our own timelines. One thing that has really helped me when working with LLMs is to notice when it begins looping on itself, asking it to summarize all pertinent information and to create a prompt to continue in a new conversation. I then review the prompt it provides me, edit it, and paste it into a new chat. With this approach I manage context rot and get much better responses.
- jasonjmcghee 1y agoThe trick to do this well is to split the part of the prompt that might change and won't change. So if you are providing context like code, first have it read all of that, then (new message) give it instructions. This way that is written to the cache and you can reuse it even if you're editing your core prompt. If you make this one message, it's a cache miss / write every time you edit. You can edit 10 times for the price of one this way. (Due to cache pricing)
- dreamcompiler 1y agoI think you're saying a functional LLM is easier to use than a stateful LLM.
- cruffle_duffle 1y agoI completely agree. ChatGPT put all kinds of nonsense into its memory. “Cruffle is trying to make bath bombs with baking soda and citric acid” or “Cruffle is deciding between a red colored bedsheet or a green colored bedsheet”. Like great both of those are “time bound” and have no relevance after I made the bath bomb or picked a white bedsheet… All these LLM manufacturers lack ways to edit these memories either. It’s like they want you to treat their shit as “the truth” and you have to “convince” the model to update it rather than directly edit it yourself. I feel the same way about Claude’s implementation of artifacts too… they are read only and the only way to change them is via prompting (I forget if ChatGPT lets you edit its canvas artifacts). In fact the inability to “hand edit” LLM artifacts is pervasive… Claude code doesn’t let you directly edit its plans, nor does it let you edit the diffs. Cursor does! You can edit all of the artifacts it generates just fine, putting me in the drivers seat instead of being a passive observer. Claude code doesn’t even let you edit previous prompts, which is incredibly annoying because like you, editing your prompt is key to getting optimal output. Anyway, enough rambling. I’ll conclude with a “yes this!!”. Because yeah, I find these memory features pretty worthless. They never give you much control over when the system uses them and little control over what gets stored. And honestly, if they did expose ways to manage the memory and edit it and stuff… the amount of micromanagement required would make it not worth it.
- dr_kiszonka 1y agoYou can delete memories in ChatGPT and ask your bot to add a custom ones; memories can be instructions too. Gemini lets you create and edit memories.
- ternus 1y agoWere the bath bombs any good? Did the LLM's advice(?) make a meaningful difference? I didn't know making them was so simple.
- cruffle_duffle 1y agoThey are pretty simple in the abstract but lots of iterations… kiddo loves making them.
- ericmcer 1y agobut if we don't keep adding futuristic sounding wrappers to the same LLMs how can we convince investors to keep dumping money in? Hard agree though, these token hungry context injectors and "thinking" models are all kind of annoying to me. It is a text predictor I will figure out how to make it spit out what I want.
- UltraSane 1y agoI often edit a prompt using feedback from the LLM and run it again.
- CuriouslyC 1y agoMemory is ok when it's explicitly created/retrieved as part of a tool, and even better if the tool is connected to your knowledge bases rather than just being silod. Best of all is to create a knowledge agent that can synthesize relevant instructions from memory and knowledge. Then take a team of those and use them on a partitioned dataset, with a consolidation protocol, and you have every deep research tool on the market.
- vayup 1y agoI agree. I use this approach in my coding agent, and it works wonderfully to keep context across sessions: https://docs.cline.bot/prompting/cline-memory-bank https://docs.cline.bot/prompting/cline-memory-bank Even though the above link is from Cline, you can use this approach with any coding agent.
- jonplackett 1y agoYeah they just gets all in a muddle. The other day I was asking ChatGPT about types of mortgages and it began: As a creative technologist using mostly TypeScript lets analyse the type of mortgage that would work for you. It just doesn’t understand how to use its memory or the personalisation settings for relevant things and ignore it for irrelevant things.
- deleted 1y ago[deleted]
- amelius 1y agoYes, but I find it difficult to stop most LLMs once they start generating. Ideally, you'd just click on the input textbox, a cursor appears and the generation stops.
- tracker1 1y agoThat's mostly been my experience as well... That said, there always seems to be something wrong on a technical response and it's up to you to figure out what. It has been relatively good for writing out custom cover letters for jobs though... I created an "extended" markdown file with everything I would put into a resume and more going back a few decades and it does a decent job of it. Now, if only I could convince every company on earth to move away from Workday, god I hate that site, and there's no way to get a resume to submit clean/correctly. Not to mention, they can't manage to just have one profile for you and your job history to copy from instead of a separate one for each client.
- verdverm 1y agoThere is some research that supports this approach. Essentially once the LLM starts down a bad path (or gets a little bit of "context poisoning"), it's very hard for it to escape and starting fresh is the way to go
- Sophistifunk 1y agoClaude is (in my limited experience so far) more useful after a bit of back and forth where you can explain to it what's going on in your codebase. Although I suspect if you have a lot of accurate comments in your code then it will be able to extract more of that information for itself.
- m_mueller 1y agoI do get a lot of value out of a project wide system prompt that gets automatically addded (Cursor has that built in). For a while I kept refining it when I saw it making incorrect assumptions about the codebase. I try to keep it brief though, about 20 bullet points.
- liqilin1567 1y agoIt really resonates with me, I often run into this situation when I'm trying to fix a bug with llm: if my first prompt is not good enough, then I end up stuck in a loop where I keep asking llm to refine its solution based on the current context. The result is llm still doesn't output what I want even after 10 rounds of fixing requests. so I just start a new session and give llm a well-crafted prompt, and suddenly it produce a great result.
- crackalamoo 1y agoI make heavy use of the "temporary chat" feature on ChatGPT. It's great whenever I need a fresh context or need to iteratively refine a prompt, and I can use the regular chat when I want it to have memory. Granted, this isn't the best UX because I can't create a fresh context chat without making it temporary. But I'd say it allows enough choice that overall having the memory feature is a big plus.
- godelski 1y agoHonestly it feels weird to call these features "memory". I think it just confuses users and over encourages inappropriate anthropomorphism. It's not like they're fine tuning or building LoRAs. Feels more appropriate to call them "project notes". And I agree with your overall point. I wish there was a lot more clarity too. Like is info from my other chats infecting my current one? Sometimes it seems that way. And why can't I switch to a chat with a standard system prompt? Incognito isn't shareable nor can I maintain a history. I'm all for this project notes thing but I'd love to have way more control over it. Really what makes it hard to wrangle is that I don't know what's being pulled into context or not. That's the most important thing with these tools.
- abustamam 1y agoI wish the LLMs would tell you exactly what the input was (system prompt, memory, etc, at least, the ones we have control over, not necessarily their system prompts) that resulted in the output. Also, out of curiosity, do you use LLMs for coding? Claude Code, Cursor, etc? I think it's a good idea to limit llm conversations to one input message but it makes me wonder how that could work with code generation given that the first step is often NOT to generate code but to plan? Pipe the plan to a new conversation?
- theshrike79 1y agoThe basic process is that you use a "plan mode" with whatever model is good at planning. Sometimes it's the same model, but not always. You refine your plan and go into details as much as you feel necessary. Then you switch to act mode (letting the model access the local filesystem) and tell it to write the plan to docs/ACDC1234_feature_plan.md or whatever is your system. I personally ask them to make github issues from tasks using the `gh` command line tool. Then you clear context, maybe switch to a coding model, tell it to read the plan and start working. If you want to be fancy, you can ask the plan system to write down the plan "as a markdown checklist" and tell the code model to check each task from the file after it's complete. This way you can easily reset context if you're running out and ask a fresh one to start where the previous one left off.
- mikkupikku 1y agoI use plan mode, but then I let it go using its own todo tool and trust its auto-compaction to deal with context size. It seems to almost always work out okay.
- theshrike79 1y agoThe rule of thumb is that when you've compacted, you've already lost. But YMMV. The internal todo list works well if the task is something that can be completed within one context pass, otherwise it should be an external task list - whatever works for your flow, markdown, github issues, memory MCP etc.
- zbyforgotp 1y agoThey should just give the user some control over this
- marcus_holmes 1y agoI use projects for sandboxing context, I find it really useful. A lot of the stuff I'm using Claude for needs a decent chunk of context, too much for a single prompt. Memory is going to make that easier/better, I think. It'll be interesting to find out.
- skeeter2020 1y agoIntuitively this feels like what happens with long Amazon or YT histories: you get erroneous context across independent sessions. The end result is my feed is full of videos from one-time activities and shopping recommendations packed with "washing machine replacement belt".