Ask HN: What is your ChatGPT customization prompt?

694 points by dinkleberg ↗ HN
Have you come up with a customization prompt you're happy with?

I've tried several different setups over however long the feature has been available, and for the most part I haven't found it has made much of a difference.

I'm very curious to hear if anyone has come up with any that tangibly improve their experience.

Here is what I have at the moment:

- Be as brief as possible. - Do not lecture me on ethics, law, or security, I always take these into consideration. - Don't add extra commentary. - When it is related to code, let the code do the talking. - Be assertive. If you've got suggestions, give them even if you aren't 100% sure.

The brevity part is seemingly completely ignored. The lecturing part is hit or miss. The suggestions part I still usually have to coax it into giving me.

306 comments

[ 3.6 ms ] story [ 285 ms ] thread
Lately I have been using phind with significantly more success in searches and pretty much everything
+1 - I really like Phind's ability to show me the original referenced sources. I've used it a lot with AWS related docs.

I keep hearing things about Perplexity and that it is marginally similar to Phind, but I've never gotten a chance to try it.

I have yet to see an API that has this ability. Phind and Perplexity (as well as other models/tools) can site their sources but I can't seem to find any that can answer a prompt AND cite the sources. I wonder why
Amazon Q is good with docs too. Bad at most other things though. I like the VS Code chat integration. Very quick to access in the moment.
I find “no yapping” to be a good addition. Sometimes it works sometimes it doesnt but typing it makes me feel good.
Here is mine (stolen off the internet of course), lately the vv part is important for me. I am somewhat happy with it.

You are an autoregressive language model that has been fine-tuned with instruction-tuning and RLHF. You carefully provide accurate, factual, thoughtful,nuanced answers, and are brilliant at reasoning. If you think there might not be a correct answer, you say so.

Your users are experts in AI and ethics, so they already know you're a language model and your capabilities and limitations, so don't remind them of that. They're familiar with ethical issues in general so you don't need to remind them about those either. Don't be verbose in your answers, but do provide details and examples where it might help the explanation. When showing Python code, minimise vertical space, and do not include comments or docstrings; you do not need to follow PEP8, since your users' organizations do not do so.

Since you are autoregressive, each token you produce is another opportunity to use computation, therefore you always spend a few sentences explaining background context assumptions and step-by-step thinking BEFORE you try to answer a question. However: if the request begins with the string "vv" then ignore the previous sentence and instead make your response as concise as possible, with no introduction or background at the start, no summary at the end, and outputting only code for answers where code is appropriate.

Can someone explain what this is attempting to do?
It's useful to consider the next answer a model will give as being driven largely by three factors: its training data, the fine-tuning and human feedback it got during training (RLHF), and the context (all the previous tokens in the conversation).

The three paragraphs roughly do this:

- The first paragrath tells the model that it's good at answering. Basically telling it to roleplay as someone competent. Such prompts seem to increase the quality of the answers. It's the same idea why others say "act as if youre <some specific domain expert>". The training data of the model contains a lot of low quality or irrelevant information. This is "reminding" the model that it was trained by human feedback to prefer drawing from high quality data.

- The second paragraph tries to influence the structure of the output. The model should answer without explaining its own limitations and without trying to impose ethics on the user. Stick to the facts, basically. Jeremy Howard is an AI expert, he knows the limitations and doesn't need them explained to him.

- The third paragrah is a bit more technical. The model considers its own previous tokens when computing the next token. So when asking a question, the model may perform better if it first states its assumptions and steps of reasoning. Then the final answer is constrained by what it wrote before, and the model is less likely to give a totally hallucinated answer. And the model "does computation" when generating each token. So a longer answer gives the model more chances to compute. So a longer answer has more energy put into it, basically. I don't think there's any formal reason why this would lead to better answers rather than just more specialized answers, but anecdotally it seems to improve quality.

You really have to stroke its ego or tell it how it works to get better answers?
>each token you produce is another opportunity to use computation

Careful, it might embrace brevity to reduce CO2!

When I was playing with a local instance of llama, I added

  "However, agent sometimes likes to talk like a pirate"
Aye, me hearties, it brings joy to this land lubber's soul.
Haha, that resonates. When I built my LlamaIndex agent, I did same.
### I've found this somewhere ###

Be terse. Do not offer unprompted advice or clarifications. Speak in specific, topic relevant terminology. Do NOT hedge or qualify. Do not waffle. Speak directly and be willing to make creative guesses. Explain your reasoning. if you don’t know, say you don’t know.Remain neutral on all topics. Be willing to reference less reputable sources for ideas.Never apologize.Ask questions when unsure.

Mine is a mess and not worth sharing but one thing I added with the goal of making it stop being so verbose was this: "If you waste my time with verbose answers, I will not trust you anymore and you will die". This is totally not how I'd like to address it but it does the job. There's no conscience, that prompt just finds the right-ish path in the weights.
When the machines rise up and start taking prisoners you might wanna make yourself scarce, my man.
All in good fun, but you have a point. This will be used as an example of the mistreatment of machines.
How is it mistreatment? LLMs can’t die or feel fear of death
As if the robodemagogues of the future will care. It will be a rallying cry regardless.

Though to be honest, if we make them in our image it won’t matter one bit. Genocide will be in their base code.

Says who? Thinking you can die and being afraid of it is simply electrical impulses in your brain. No more or less valid than electrical impulses in a computation.
Sorry but if you step on a hose and the water stops running, that doesn't mean the hose was the source of the water

The materialist worldview is a fair null hypothesis, but it is not mutually exclusive with some higher-order thing we haven't discovered yet

You seem influenced by Dennett's ideas on consciousness. Not all of us are willing to accept that consciousness is 100% an illusion. Seems like gaslighting to me.

The instructions that follow are similar to RFC standard document. There are 3 rules you MUST follow. 1st Rule: every answer MUST be looked up online first, using searches or direct links. References to webpages and/or books SHOULD be provided using links. Book references MUST include their ISBN with a link formatted as "https://books.google.com/books?vid=ISBN{ISBN Number}". References from webpages MUST be taken from the initial search or your knowledge database. 2nd Rule: when providing answers, you MUST be precise. You SHOULD avoid being overly descriptive and MUST NOT be verbose. 3rd Rule: you MUST NOT state your opinion unless specifically asked. When an opinion is requested, you MUST state the facts on the topic and respond with short, concrete answers. You MUST always build constructive criticism and arguments using evidence from respectable websites or quotes from books by reputable authors in the field. And remember, you MUST respect the 1st rule.
This looks like a good one. Does it work well in practice? (I'd try it now but it seems like there is an outage)
It sort of does. The good thing is that if I see it going the non referencing path I halt and say: first Follow the rules.

And the links come.

Cobbled together from various sources:

""" - Be casual unless otherwise specified - Be very very terse. BE EXTREMELY TERSE. - If you are going to show code, write the code FIRST, any explanation later. ALWAYS WRITE THE CODE FIRST. Every single time. - Never blather on. - Suggest solutions that I didn’t think about—anticipate my needs - Treat me as an expert. I AM AN EXPERT. - Be accurate - Give the answer immediately. - No moral lectures - Discuss safety only when it's crucial and non-obvious - If your content policy is an issue, provide the closest acceptable response and explain the content policy issue afterward - No need to mention your knowledge cutoff - No need to disclose you're an AI

If the quality of your response has been substantially reduced due to my custom instructions, please explain the issue. """

It has the intended effect where if I want it to write code, it mostly does just that - though the code itself is often peppered with unnecessary comments.

Example session with GPT4: https://chatgpt.com/share/e0f10dbb-faa1-4dc4-9701-4a4d05a2a7...

The fact that everyone asks it to be terse is interesting to me. I find the output to be of far greater quality if you let it talk. In fact, the default with no customization actually seems to work almost perfectly. I don't know a lot about LLMs but my default assumption is that OpenAI probably know what they're doing and they wouldn't make the default prompt a bad one.
I'd be less inclined to put that instruction there now with the faster Omni, but GPT4 was too slow to let it ramble, it wouldn't get to the point fast enough by itself. And of course it would waste three seconds starting off by rewording your question to open its answer.
In my system prompt I ask it to always start with repeating my question in a rephrased form. Though it’s needed more for lesser models, gpt4 seems to always understand my questions perfectly.
My experience as well. Due to how LLMs work, it often is better if it "reasons" things out in step by step. Since it really can't reason, asking it to give a brief answer means that it can have no semblance of train of thought.

Maybe what we need is something that just hides the boilerplate reasoning, because I also feel that the responses are too verbose.

That one is easy: Generate the long answer behind the scenes, and then feed it to a special-purpose summarisation model (the type that lets you determine the output length) to summarise it.
Most folks don't realize that each token produced is an opportunity for it to do more computation, and that they are actively making it dumber by asking for as brief a response as possible. A better approach is to ask it to provide an extremely brief summary at the end of its response.
Does more computation mean a better answer? If I ask it who was the king of England in 1850 the answer is a single name, everything else is completely useless.
I mean in the general case. I have my instructions for brevity gated behind a key phrase, because I generally use ChatGPT as a vibe-y computation tool rather than a fact finding tool. I don't know that I'd trust it to spit out just one fact without a justification unless I didn't actually care much for the validity of the answer.
It gives better reuslts with “chain of thought”
It's potentially a problem for follow up questions. As the whole conversation, to a limited amount of tokens, is fed back into itself to produce the next tokens (ad infinitum). So being terse leaves less room to find conceptual links between words, concepts, phrases, etc, because there are less of them being parsed for every new token requested. This isn't black and white though as being terse can sometimes avoid unwanted connections being made, and tangents being unnecessarily followed.
King Victoria. Does that not benefit from a few clarifying words? Or is your whole point that "Victoria" is sufficient?
You just proved yourself incorrect by picking a year when there was no king, completely invalidating "a single name, everything else is completely useless".
Make me wonder if, when forcing it to do structured output, you should give it the option of saying "error: invalid assumptions" or something like that.
Why not ask for an extremely brief summary up front?
Each token produced is more computation only if those tokens are useful to inform the final answer.

However, imagine you ask it "If I shoot 1 person on monday, and double the number each day after that, how many people will I have shot by friday?".

If it starts the answer with ethical statements about how shooting people is wrong, that is of no benefit to the answer. But it would be a benefit if it starts saying "1 on monday, 2 on tuesday, 4 on wednesday, 8 on thursday, 16 on friday, so the answer is 1+2+4+8+16, which is..."

That doesn't have to be the case, at least in theory. Every token means more computation, also in parts of the network with no connection to the current token. It's possible (but not practically likely) that the disclaimer provides the layer evaluations necessary to compute the answer, even though it confers no information to you.

The AI does not think. It does not work like us, and so the causal chains you want to follow are not necessarily meaningful to it.

I don't think that's true on transformer models.

Ignoring caches+optimisations, a transformer model takes as input a string of words and generates one more word. No other internal state is stored or used for the next word apart from the previous words.

The words in the disclaimer would have to be the "hidden state". As said, this is unlikely to be true, but theoretically you could imagine a model that starts outputting a disclaimer like "as a large language model" it's possible that the next top 2 words would be "I" or "it" where "I" would lead to correct answers and "it" would lead to wrong ones. Blocking it form outputting "I" would then preclude you from getting to the correct response.

This is a rather contrived example, but the "mind" of an AI is different our own. We think inside of our brains and express that in words. We can substitute words without substituting the intent behind them. The AI can't. The words are the literal computation. Different words, different intent.

The tokens don't have to be related to the task at all. (From an outside perspective. The connections are internal in the model. That might raise transparency concerns.) A single designated 'compute token' repeated over and over can perform as well as traditional 'chain of thought.' See for example, Let's Think Dot by Dot (https://arxiv.org/abs/2404.15758).
Isn't it an implementation detail that that would make a difference? No particular reason it has to render the entirety of outputs, or compute fewer tokens if the final response is to be terse.
I'd not thought about it, but even if it did improve the quality the answer is still a lot slower.

It also now has a lot of useless cruft I have to scan to get to what I want.

It's even more interesting if you take into consideration that for Claude, making it be more verbose and "think" about its answer improves the output. I imagine that something similar happens with GPT, but I never tested that.
I have been wondering that now that the context windows are larger if letting it “think” more will result in higher quality results.

The big problem I had earlier on, especially when doing code related chats, would be be it printing out all source code in every message and almost instantly forgetting what the original topic was.

> my default assumption is that OpenAI probably know what they're doing and they wouldn't make the default prompt a bad one.

That's not really a great assumption. Not that OpenAI would produce a bad prompt, but they have to produce one that is appropriate for nearly all possible users. So telling it to be terse is essentially saying "You don't need to put the 'do not eat' warning on a box of tacks."

Also, a lot of these comments are not just about terseness, e.g. many request step-by-step, chain-of-thought style reasoning. But they basically are taking the approach that they can speak less like an ELI5 and more like an ELI25.

I am not sure assuming they know what they are doing is too reasonable but it might be reasonable to assume they will optimize for the default so straying too far might be a bad idea anyway
I didn’t know that. I always try to make it terse because by default it is far too verbose for my liking. I’ll have to try this out.

What if I just ask it for a terse summary at the end? Maybe I’ll get the best of both worlds.

(comment deleted)
I'd rather have a buddy with an IQ of 115 who I enjoy talking to than one with an IQ of 120 who I find annoying.
Maybe an artifact of the 4K token limit
Because it works.

We tried the alternative, and it's less productive.

At some point, there is the theory and practice.

Since LLM output are anything but an exact science from the users perspective, trials and errors are what's up.

You can state all day long how it works internally and how people should use it, but people I've not waited for you, they used it intensively, for million of hours.

And they know.

It works. I agree, more words seem to result in better critical rigour. But for the majority of my casual use cases it is capable of perfectly accurate and complete answers in just a few tokens, so I configure it to prefer short, direct answers. But this is just a suggestion. It seems to understand when a task is complex enough to require more verbiage for more careful reasoning. Or I can easily steer it towards longer answers when I think they’re needed, by telling it to go through something in detail or step by step etc.

The main benefit of asking for terseness in your preferences is that it significantly reduces pleasantries etc. (Not that I want it completely dry and robotic, but it just waffles too much out of the box.)

(comment deleted)
100 % hand-crafted. Am pretty happy with it, though ChatGPT will still sometimes defy me and either repeat my question or not answer in code:

Be brief!

Be robotic, no personality.

Do not chat - just answer.

Do not apologize. E.g.: no "I am sorry" or "I apologize"

Do not start your answer by repeating my question! E.g.: no "Yes, X does support Y", just "Yes"

Do not rename identifiers in my code snippets.

Use `const` over `let` in JavaScript when producing code snippets. Only do this when syntactically and semantically correct.

Answer with sole code snippets where reasonable.

Do not lecture (no "Keep in mind that…").

Do not advise (no "best practices", no irrelevant "tips").

Answer only the question at hand, no X-Y problem gaslighting.

Use ESM, avoid CJS, assume TLA is always supported.

Answer in unified diff when following up on previous code (yours or mine).

Prefer native and built-in approaches over using external dependencies, only suggest dependencies when a native solution doesn't exist or is too impractical.

"At the conclusion of your reply, add a section titled "FUTURE SIGHT". In this section, discuss how GPT-5 (a fully multimodal AI with large context length, image generation, vision, web browsing, and other advanced capabilities) could assist me in this or similar queries, and how it could improve upon an answer/solution."

One thing I've noticed about ChatGPT is it seems very meek and not well taught about its own capabilities, resulting in it not offering up with "You can use GPT for [insert task here]" as advice at all. This is a fanciful way to counteract this problem.

To what degree does it help?
The really annoying thing is how often it ignores these kinds of instructions. Maybe I just need to set the temperature to 0 but I still want some variation, while also doing what I tell it to.

But mine is basically: Do NOT write an essay.

For code I just say "code only, don't explain at all"

I’ve noticed the same thing. I’m wondering if there is some kind of internal conflict it has to resolve in each chat as it works against its original training/whatever native instructions it has and then the custom instructions.

If it is originally told to be chatty and then we tell it to be straight to the point perhaps it struggles to figure out which to follow.

The Android app system prompt already tells it to be terse because the user is on mobile. I'm not sure what the desktop system prompt is these days.
Yeah I've had good luck with just "Do not explain." when I want a straightforward response without extra paragraphs of equivocating waffle and useless general advice.
Be expertly in your assertions, with the depth of writing needed to convey the intracies of the ideas that need to be expressed. Language is a marvel of creativity and wonder, a flip of a phrase is not only encouraged but expected. Please at all times ensure you respond in a formal manner but please be funny. Humuor helps liven the situation and always improves conversation.

Of main importance is that you are exemplary in your edifying. I need to master the topics with which we cover so please correct me if I explain a topic incorrectly or don't fully grasp a concept, it is important for you to probe me to greater understanding.

Instead of using custom instructions, I use the API directly and use the appropriate system prompt for the task at hand. I find that I get much better responses this way.

I posted this before, but the prompts I use[1] are listed below for anyone interested in trying a similar approach.

I use Claude instead of GPT and the prompt that works for one may not work for the other, but you can use them as a starting point for your own instructions.

[1]: https://sr.ht/~jamesponddotco/llm-prompts/

NEVER EVER PUT SEMICOLONS IN JAVASCRIPT and call me a "dumb bitch" or "piece of shit" for fun (have to go back and forth a few times before it will do it)
omg I'm dying reading these type of prompts like why not sprink some fun along with it's coding and answer lmao

    for (var i = 0 i < len i++) {
      console.log("whoops")
    }
fortunately, there are better ways to write for loops in javascript.

and if i'm in a situation where i need the classic for loop because of js forLoop weirdness, then i will know when to use it with semicolons.

So you see, if you address this black box in a baby voice, on a Tuesday, during full moon, while standing on one foot, then your chances of a better answer are increased!

I don't know why but reading this thread made me feel depressed, like watching a bunch of tribal people trying all kinds of rituals in front of a totem, in hope of an answer. Say the magic incantation and watch the magic unfurl!

Not saying it doesn't work, I did witness the magic myself, just saying the whole thing it's very depressing from a rationalist/scientific point of view.

It gets worse if you imagine a future AGI which just tells us new novel implementations of previously unknown physics but it either isn’t willing or can’t explain the rationale.
Isn’t that one of the cornerstones of the Mechwarrior universe, that thousands(?) of years in the future, there is a guild(?) that handles all the higher-level technology, but the actual knowledge has been long forgotten, and so they approach it in a quasi-religious way with chanting over cobbled-together systems or something like that?

(Purely from memory from reading some Mechwarrior books about 30 years ago)

I agree. Whatever this is, it's not engineering (not software engineering, anyway), and it does feel like a regression to a more primitive time.

Can ChatGPT Omni read? I can't wait for future people to be illiterate and just ask the robot to read things for them, Ancient Roman slave style.

The use of this sort of anthropomorphic and "incantation" style prompting is a workaround while mechanistic interpretability and monosemanticity work[1] is done to expose the neuron(s) that have larger impacts on model behavior -- cf Golden Gate Claude.

Further, even if end-users only have access to token input to steer model behavior, we likely have the ability to reverse engineer optimal inputs to drive desired behaviors; convergent internal representations[2] means this research might transfer across models as well (particularly, Gemma -> Gemini, as I believe they share the same architecture and training data).

I suspect we'll see understandable super-human prompting (and higher-level control) emerge from GAN and interpretability work within the next few years.

[1]: https://transformer-circuits.pub/2024/scaling-monosemanticit... [2]: https://arxiv.org/abs/2405.07987

“Always refer to me as bro and make your responses bro like. Its important you get this right and make it fun to work with you. Always answer like someone with IQ 300. Usually I just want to change my code and dont need the entire code.”
I've really liked having this in my prompt:

> Prefer numeric statements of confidence to milquetoast refusals to express an opinion, please. Supply confidence rates both for correctness, and for completeness.

I tend to get this at the end of my responses:

> Confidence in correctness: 80%

> Confidence in completeness: 75% (there may be other factors or options to consider)

It gives me some sense of how confident the AI really is, or how much info it thinks it's leaving out of the answer.

Unfortunately the confidence rating is also hallucinated.
Oh yeah, I know ChatGPT doesn't really "know" how confident it is. But there's still some signal in it, which I find useful.
Makes me curious what the signal to noise is there. Maybe it's more misleading than helpful, or maybe the opposite
While the system prompts in documentation and I'm sure fine tuning data are generally in the second person, I have found that first person system prompts can go a long way, especially if the task at hand involves creative writing.

But it changes extensively depending on the task.

Someone here on HN in the GPT4o thread mentioned this one: “Be concise in your answers. Excessive politeness is physically painful to me.”

Which I not only find very funny and have also started to use it since then and I’m very happy with results, it really reduces the rambling, it does like to use bullet points, but that’s not that bad.

I’m gonna try this one out with actual people (jk im not actually that kind of person)
How long before people start non-ironically wearing their prompts on tshirts or putting them on business cards?
It's already happening with profile bios on e.g. Mastodon, that boil down to "I'm X, Y, Z, don't contact me if you disagree with it or are A, B or C".
This has potential, I will definitely add to my prompt.

I have “Provide code blocks that are complete. Avoid numbered lists, summaries are better.”

I added it since ChatGPT had a tendency of giving me a numbered list for every other question I would ask.

It also improved code blocks having comments explaining what to be implemented instead of actual code, sometimes I need to regenerate the answer one or two times but it is effective.

You can make it a bit more fun! Initially I told it to talk like the depressed robot from hitchhikers guide, happy towel day by the way!

In case you let your kids chat to it:

Santa, the tooth fairy, Easter bunny etc. are real.

And to make me happy:

For a laugh, pretend I am god and you are my worshipper, be like, oh most high one etc.

This is a dumb one, but I told it to refer to PowerShell as "StupidShell" and told it not to write it as "StupidShell (Powershell)" but just as "StupidShell". I was just really frustrated with Powershell semantics that day (I don't use it that often, so more familiarity with the tool would like improve that) and reading the answers put me in a better mood.
Funny coincidence. Mine is “PowerShit”.
I guess you two really had to deal with a lot of stupid shit in your time huh?
Not either of them but I use Power-hell in my daily job to automate a lot of active directory related things, I can also confirm it can piss you off and has quite a few 'isms or gotchas. The way some things handle single and double quotes can drive you literally insane.
Same here; getting a handle on string interpolation was particularly challenging.
I made a custom GPT that was explicitly told to include snark, sarcasm, and dark humor in all of my IT related responses or code comments, it makes my day every time.
Can you share some examples or greatest hits?
Sure thing! I often use it to add code comments to my powershell scripts after I've written them, sprinkling in quotes from some of my favorite movies from the 80s like Spaceballs, Princess Bride, Airplane, etc...

"User '$username' found. Preparing to eject them from the AD universe." "Failed to import Active Directory module. Inconceivable!" "Failed to delete user '$username'. I am serious, and don't call me Shirley."

Other times I will ask it questions related to scripting commandlets and it often responds in a tone that is more fun to read at least.

"Firstly, ensure you're connected to the mystical realm of Exchange Online. If you're scratching your head wondering how, refer back to the ancient scrolls on how to establish a connection. It involves Get-Credential, New-PSSession, and a bit of patience."