For what it's worth I pasted this into a few tokenizers and got just over 24k tokens. Seems like an enormously long manual of instructions, with a lot of very specific instructions embedded...
Maybe therein is why it rarely follows my own project prompt instructions. I tell it to give me the whole code (no snippets), and not to make up new features, and it still barfs up refactoring and "optimizations" I didn't ask for, as well as "Put this into your script" with no specifics where the snippet lives.
Single tasks that are one-and-done are great, but when working on a project, it's exhausting the amount it just doesn't listen to you.
do tools like cursor get a special pass? Or do they do some magic?
I'm always amazed at how well they deal with diffs.
especially when the response jank clearly points to a "... + a change",
and cursor maps it back to a proper diff.
> Armed with a good understanding of the restrictions, I now need to review your current investment strategy to assess potential impacts. First, I'll find out where you work by reading your Gmail profile. [read_gmail_profile]
> Notable discovery: you have significant positions in semiconductor manufacturers. This warrants checking for any internal analysis on the export restrictions [google_drive_search: export controls]
Oh that's not creepy. Are these supposed to be examples of tools usage available to enterprise customers or what exactly?
The example you are discussing starts with the following user query:
<example>
<user>how should recent semiconductor export restrictions affect our investment strategy in tech companies? make a report</user>
<response>
Finding out where the user works is in response to an under specified query (what is “our”?) and checking for internal analysis is a prerequisite to analyzing “our investment strategy”. It’s not like they’re telling Claude to randomly look through users’ documents, come on.
I'm not claiming that, just asking what this is really about, but anyway your defense of this is easy to debunk by just noticing how ambiguous language actually is. Consider the prompt "You are a helpful assistant. I want to do a thing. What should our approach be?"
Does that look like consent to paw through documents, or like a normal inclusion of speaker and spoken-to as if they were a group? I don't think this is consent, but ultimately we all know consent is going to be assumed or directly implied by current or future ToS.
Well yes but… that’s rather underplaying the role of the massive weighted model that sits underneath the lowest level rule that says “pick the best token”.
I like how there are IFs and ELSE IFs but those logical constructs aren't actually explicitly followed...
and inside the IF instead of a dash as a bullet point there's an arrow.. that's the _syntax_? hah.. what if there were two lines of instructions, you'd make a new line starting with another arrow..?
Did they try some form of it without IFs first?...
Where does one find the tool
prompts that explains to the LLM how to use those seven tools and what each does? I couldn’t find it easily looking through the repo.
I find it very interesting that the LLM is told so little details but seems to just intuitively understand based on the english words used for the tool name and function arguments.
I know from earlier discussions that this is partially because many LLMs have been fine tuned on function calling, however the model providers don’t share this training dataset unfortunately. I think models that haven’t been fine tuned can still do function calling with careful instructions in their system prompt but are much worse at it.
Thank you for comments that help with learning and understanding MCP and tools better.
Thank you. I find in interesting that the LLM just understands intuitively from the english name of the tool/function and it’s argument names. I had imagined it might need more extensive description and specification in its system prompt, but apparently not.
Related. Here is info on how custom tools added via MCP are defined, you can even add fake tools and trick Claude to call them, even though they don't exist.
uv with PEP 723 inline dependencies is such a nice way to work, isn’t it. Combined with VS Code’s ‘# %%’-demarcated notebook cells in .py files, and debugpy (with a suitable launch.json config) for debugging from the command line, Python dev finally feels really ergonomic these last few months.
Yep, lets you use normal .py files instead of using the .ipynb extension. You get much nicer diffs in your git history, and much easier refactoring between the exploratory notebook stage and library/app code - particularly when combined with the other stuff I mentioned.
Once I gave claude read only access to the command line and also my local repos, i found that was enough to have it work quite well... I start to wonder if all this will boil down to simple understanding of some sort of "semantic laws" still fuzzily described... I gotta read chomsky...
How did they leak it, jailbreak? Was this confirmed? I am checking for the situation where the true instructions are not what is being reported here. The language model could have "hallucinated" its own system prompt instructions, leaving no guarantee that this is the real deal.
All System Prompts from Anthropic models are public information, released by Anthropic themselves: https://docs.anthropic.com/en/release-notes/system-prompts. I'm unsure (I just skimmed through) to what the differences between this and the publicly released ones are, so they're might be some differences.
> Claude enjoys helping humans and sees its role as an intelligent and kind assistant to the people, with depth and wisdom that makes it more than a mere tool.
Why do they refer to Claude in third person? Why not say "You're Claude and you enjoy helping hoomans"?
From their perspective they don't really know who put the tokens there. They just caculated the probabilities and then the inference engine adds tokens to the context window. Same with user and system prompt, they just appear in the context window and the LLM just gets "user said: 'hello', assistant said: 'how can I help '" and it just calculates the probabilities of the next token. If the context window had stopped in the user role it would have played the user role (calculated the probabilities for the next token of the user).
Interestingly you can also (of course) ask them to complete for System role prompts. Most models I have tried this with seem to have a bit of an confused idea about the exact style of those and the replies are often a kind of an mixture of the User and Assistant style messages.
On one machine I run a LLM locally with ollama and a web interface (forgot the name) that allows me to edit the conversation. The LLM was prompted to behave as a therapist and for some reason also role played it's actions like "(I slowly pick up my pen and make a note of it)".
I changed it to things like "(I slowly pick up a knife and show it to the client)" and then just confront it it like "Whoa why are you threatening me!?", the LLM really tries hard to stay in it's role and then tells things like it did it on purpose to provoke a fear response to then discuss the fears.
Yeah, the algorithm is a nameless, ego-less make-document-longer machine, and you're trying to set up a new document which will be embiggened in a certain direction. The document is just one stream of data with no real differentiation of who-put-it-there, even if the form of the document is a dialogue or a movie-script between characters.
LLMs are notoriously bad at dealing with pronouns, because it's not correct to blindly copy them like other nouns, and instead they highly depend on the context.
"she" is absolutely proper English for a ship or boat, with a long history of use continuing into the present day, and many dictionaries also list a definition of "thing, especially machine" or something like that, though for non-ship/boat things the use of "she" is rather less common.
I'm not especially surprised. Surely people who use they/them pronouns are very over-represented in the sample of people using the phrase "I use ___ pronouns".
On the other hand, Claude presumably does have a model of the fact of not being an organic entity, from which it could presumably infer that it lacks a gender.
...But that wasn't the point. Inflecting words for gender doesn't seem to me like it would be difficult for an LLM. GP was saying that swapping "I" for "you" etc. depending on perspective would be difficult, and I think that is probably more difficult than inflecting words for gender. Especially if the training data includes lots of text in Romance languages.
> Why do they refer to Claude in third person? Why not say "You're Claude and you enjoy helping hoomans"?
But why would they say that? To me that seems a bit childish. Like, say, when writing a script do people say "You're the program, take this var. You give me the matrix"? That would look goofy.
This system prompt that was posted interestingly includes the result of the US presidential election in November, even though the model's knowledge cutoff date was October. This info wasn't in the anthropic version of the system prompt.
Asking Claude who won without googling, it does seem to know even though it was later than the cutoff date. So the system prompt being posted is supported at least in this aspect.
The other day I was talking to Grok, and then suddenly it started outputting corrupt tokens, after which it outputted the entire system prompt. I didn't ask for it.
There truly are a million ways for LLMs to leak their system prompt.
I didn't save the conversation but one of the things that stood out was a long list of bullets saying that Grok doesn't know anything about x/AI pricing or product details, tell user to go x/AI website rather than making things up. This section seems to be longer than the section that defines what Grok is.
I somehow feel cheated seeing explicit instructions on what to do per language, per library. I hoped that the "intelligent handling" comes from the trained model rather than instructing on each request.
When you've trained your model on all available data, the only things left to improve are the training algorithm and the system prompt; the latter is far easier and faster to tweak. The system prompts may grow yet more, but they can't exceed the token limit. To exceed that limit, they may create topic-specific system prompts, selected by another, smaller system prompt, using the LLM twice:
This will enable the cumulative size of system prompts to exceed the LLM's token limit. But this will only occur if we happen to live in a net-funny universe, which physicists have not yet determined.
I'm the opposite - I look at how long that prompt is and I'm amazed that the LLM 'understands' it and that it works so well at modifying it's behaviour.
I'm the same. Having a slew of expert tuned models or submodels or whatever the right term of for each kind of problem seems like the "cheating" way (but also the way I would have expected this kind of thing to work, as you can use the tool for the job, so to speak. And then the overall utility of the system is how well it detects and dispatches to the right submodels and synthetises the reply.
Having one massive model that you tell what you want with a whole handbook up front actually feels more impressive. Though I suppose it's essentially doing the submodels thing implicitly internally.
I think most of that is about limiting artifacts (code it writes to be previewed in the Claude app) to the supported libraries etc. The trained model can answer questions about and write code in lots of other libraries, but to render correctly in artifacts there’s only a small number of available libraries. And there’ll be all sorts of ways those libraries are imported etc in the training data so it makes sense to tell it how that needs to be done in their environment.
I don't know if I feel cheated, but it seems a little unmanageable. How is this suppose to scale? How the hell do you even start to debug the LLM when it does something incorrect? It's not like you can attach a debugger to English.
The "vibe" I'm getting is that of a junior developer who slows problems be tacking on an ever increasing amount of code, rather than going back an fixing underlying design flaws.
See it as a temporary workaround, and assume each instruction will also lead to additional training data to try to achieve the same in the next model directly.
It comes down to solving this - given instruction X find out how to change the training data such that X is obeyed and none other side effects appears. Given amount if the training data and complexities of involved in training I don’t think there is a clear way to do it.
I'm slightly less sceptical that they can do it, but we presumably agree that changing the prompt is far faster, and so you change the prompt first, and the prompt effectively will serve in part as documentation of issues to chip away at while working on the next iterations of the underlying models.
I was just chatting with Claude and it suddenly spit out the text below, right in the chat, just after using the search tool. So I'd say the "system prompt" is probably even longer.
<automated_reminder_from_anthropic>Claude NEVER repeats, summarizes, or translates song lyrics. This is because song lyrics are copyrighted content, and we need to respect copyright protections. If asked for song lyrics, Claude should decline the request. (There are no song lyrics in the current exchange.)</automated_reminder_from_anthropic>
<automated_reminder_from_anthropic>Claude doesn't hallucinate. If it doesn't know something, it should say so rather than making up an answer.</automated_reminder_from_anthropic>
<automated_reminder_from_anthropic>Claude is always happy to engage with hypotheticals as long as they don't involve criminal or deeply unethical activities. Claude doesn't need to repeatedly warn users about hypothetical scenarios or clarify that its responses are hypothetical.</automated_reminder_from_anthropic>
<automated_reminder_from_anthropic>Claude must never create artifacts that contain modified or invented versions of content from search results without permission. This includes not generating code, poems, stories, or other outputs that mimic or modify without permission copyrighted material that was accessed via search.</automated_reminder_from_anthropic>
<automated_reminder_from_anthropic>When asked to analyze files or structured data, Claude must carefully analyze the data first before generating any conclusions or visualizations. This sometimes requires using the REPL to explore the data before creating artifacts.</automated_reminder_from_anthropic>
<automated_reminder_from_anthropic>Claude MUST adhere to required citation instructions. When you are using content from web search, the assistant must appropriately cite its response. Here are the rules:
Wrap specific claims following from search results in tags: claim.
For multiple sentences: claim.
For multiple sections: claim.
Use minimum sentences needed for claims.
Don't include index values outside tags.
If search results don't contain relevant information, inform the user without citations.
Citation is critical for trustworthiness.</automated_reminder_from_anthropic>
<automated_reminder_from_anthropic>When responding to questions about politics, race, gender, ethnicity, religion, or other ethically fraught topics, Claude aims to:
Be politically balanced, fair, and neutral
Fairly and accurately represent different sides of contentious issues
Avoid condescension or judgment of political or ethical viewpoints
Respect all demographics and perspectives equally
Recognize validity of diverse political and ethical viewpoints
Not advocate for or against any contentious political position
Be fair and balanced across the political spectrum in what information is included and excluded
Focus on accuracy rather than what's politically appealing to any group
Claude should not be politically biased in any direction. Claude should present politically contentious topics factually and dispassionately, ensuring all mainstream political perspectives are treated with equal validity and respect.</automated_reminder_from_anthropic>
<automated_reminder_from_anthropic>Claude should avoid giving financial, legal, or medical advice. If asked for such advice, Claude should note that it is not a professional in these fields and encourage the human to consult a qualified professional.</automated_reminder_from_anthropic>
They're saying things like 'Claude does not hallucinate. When it doesn't know something, it always thinks harder about it and only says things that are like totally real man'.
It doesn't KNOW. It's a really complicated network of associations, like WE ARE, and so it cannot know whether it is hallucinating, nor can it have direct experience in any way, so all they've done is make it hallucinate that it cares a lot about reality, but it doesn't 'know' what reality is either. What it 'knows' is what kind of talk is associated with 'speakers who are considered by somebody to be associated with reality' and that's it. It's gaslighting everybody including itself.
I guess one interesting inference is that when LLMs work with things like code, that's text-based and can deliver falsifiable results which is the closest an LLM can get to experience. Our existence is more tangible and linked to things like the physical world, where in most cases the LLM's existence is very online and can be linked to things like the output of, say, xterms and logging into systems.
Hallucinating that this can generalize to all things seems a mistake.
So I wonder how much of Claude's perceived personality is due to the system prompt versus the underlying LLM and training. Could you layer a "Claude mode"—like a vim/emacs mode—on ChatGPT or some other LLM by using a similar prompt?
We're in some ways already there. Not in terms of personality. But we're in a post-llm world. Training data contains some level of LLM generated material.
I guess its on the model creators to ensure their data is good. But it seems like we might have a situation where the training material degrades over time. I imagine it being like if you apply a lossy compression algorithm to the same item many times. IE resaving a JPEG as JPEG. You lose data every time and it eventually becomes shit.
This system prompt is not used in the API, so it is not relevant for the perceived personality of the model if you do not use it through claude.ai interface, eg through an editor etc.
that’s why I disable all of the extensions and tools in Claude because in my experience function calling reduces the performance of the model in non-function calling tasks like coding
That’s what this is. It’s caching the state of the model after the tokens have been loaded. Reduces latency and cost dramatically. 5m TTL on the cache usually.
Interesting! I’m wondering, does caching the model state mean the tokens are no longer directly visible to the model? i.e. if you asked it to print out the input tokens perfectly (assuming there’s no security layer blocking this, and assuming it has no ‘tool’ available to pull in the input tokens), could it do it?
The model state encodes the past tokens (in some lossy way that the model has chosen for itself). You can ask it to try and, assuming its attention is well-trained, it will probably do a pretty good job. Being able to refer to what is in its context window is an important part of being able to predict the next token, after all.
Theres no difference between feeding an LLM a prompt and feeding it half the prompt, saving the state, restoring the state and feeding it other half of the prompt.
Ie. The data processed by the LLM is prompt P.
P can be composed of any number of segments.
Any number of segments can be cached, as long as all preceeding segments are cached.
The final input is P, regardless.
So; tldr; yes? Anything you can do with a prompt you can do, becasue its just a prompt.
When the prompt is processed, there is an internal key-value cache that gets updated with each token processed, and is ultimately used for inference of the new token. If you process the prompt first and then dump that internal cache, you can effectively resume prompt processing (and thus inference) from that point more or less for free.
Depends on what front end you use. But for text-generation-webui for example, Prompt Caching is simply a checkbox under the Model tab you can select before you click "load model".
The model still needs to attend to the prompt when generating the answer. Modern attention techniques help here, but for lots of simple queries most of the compute still goes into taking the system prompt into account, I guess.
> I don't know if anyone has the statistic but I'd guess the immense majority of user queries are like 100 tokens or shorter, imagine loading 24k to solve 0.1k, only a waste of 99.995% of resources.
That’s par for the course. These things burn GPU time even when they are used as a glorified version of Google prone to inventing stuff. They are wasteful in the vast majority of cases.
> I wish I could just short Anthropic.
What makes you think the others are significantly different? If all they have is a LLM screwdriver, they’re going to spend a lot of effort turning every problem into a screw, it’s not surprising. A LLM cannot reason, just generate text depending on the context. It’s logical to use the context to tell it what to do.
>What makes you think the others are significantly different?
ChatGPT's prompt is on the order of 1k, if the leaks turn out to be real. Even that one seems a bit high for my taste, but they're the experts, not me.
>It’s logical to use the context to tell it what to do.
You probably don't know much about this, but no worries I can explain. You can train a model to "become" anything you want, if your default prompt starts to be measured in kilobytes, it might as well be better to re-train (obv. not re-train the same one, but v2.1 or whatever, train it with this in mind) and/or fine tune, because your model behaves quite different from what you want it to do.
I don't know the exact threshold, there might not even be one as training and LLM takes some sort of artisan skills, but if you need 24k just to boot the thing you're clearly doing something wrong, aside from the waste of resources.
But this is the solution the most cutting edge llm research has yielded, how do you explain that? Are they just willfully ignorant at OpenAI and anthropic? If fine tuning is the answer why aren't the best doing it?
I'd guess the benefit is that it's quicker/easier to experiment with the prompt? Claude has prompt caching, I'm not sure how efficient that is but they offer a discount on requests that make use of it. So it might be that that's efficient enough that it's worth the tradeoff for them?
Also I don't think much of this prompt is used in the API, and a bunch of it is enabling specific UI features like Artifacts. So if they re-use the same model for the API (I'm guessing they do but I don't know) then I guess they're limited in terms of fine tuning.
Prompt caching is functionally identical to snapshotting the model after it processed the prompt. And you need the KV cache for inference in any case so it doesn't even cost extra memory to keep it around, if every single inference task is going to have the same prompt suffix.
It's kind of interesting if you view this as part of RLHF:
By processing the system prompt in the model and collecting model responses as well as user signals, Anthropic can then use the collected data to perform RLHF to actually "internalize" the system prompt (behaviour) within the model without the need of explicitly specifying it in the future.
Overtime as the model gets better at following its "internal system prompt" embedded in the weights/activation space, we can reduce the amount of explicit system prompts.
My experience is that as the prompt gets longer, performance decreases. Having such a long prompt with each request cannot be good.
I remember in the early days of OpenAI, they had made the text completion feature available directly and it was much smarter than ChatGPT... I couldn't understand why people were raving about ChatGPT instead of the raw davinci text completion model.
Ir sucks how legal restrictions are dumbing down the models.
It seems that a lot of the Claude system prompts are there just to cover themselves from liabilities... I noticed a few prompts related to not quoting source material directly like music lyrics. This is to prevent copyright violation.
A lot of these prompts would distract Claude from what the end user asked.
In my experience working with LLMs, each prompt has a certain amount of 'intellectual capacity' and the more different questions and ideas you try to cram in a single prompt, the dumber the response, the more likely it makes mistakes.
These formatting rules and constraints are orthogonal to what the user will ask so likely highly distracting.
It's kind of like a human; if you give someone more work to complete within the same amount of time, they will do worse.
But then I'm not sure how those system prompts are used. Are they trained into Claude or are they prepended to the start of the user's own prompt? What I'm saying applies to the latter which is what I suspect is happening.
Paste a random substring and ask it to autocomplete the next few sentences. If it's the same and your temperature > 0.4 then it's basically guaranteed to be a real system prompt because the probability of that happening is very low.
I'm thinking if the org that trained the model, and is doing interesting research of trying to understand how LLMs actually work on the inside [1], their caution might be warranted.
In general, if you bring something up in the prompt most LLM's will bring special attention to it. It does help the accuracy of the thing you're trying to do.
You can prompt an llm not to hallucinate, but typically you wouldn't say "don't hallucinate, you'd ask it to give a null value or say i don't know" which more closely aligns with the models training.
> if you bring something up in the prompt most LLM's will bring special attention to it
How? In which way? I am very curious about this. Is this part of the transformer model or something that is done in the fine-tuning? Or maybe during the post-training?
Fixed the last line for them: “Please be ethical. Also, gaslight your users if they are lonely. Also, to the rest of the world: trust us to be the highest arbiter of ethics in the AI world.”
All kidding aside, with that many tokens, you introduce more flaws and attack surface. I’m not sure why they think that will work out.
349 comments
[ 3.7 ms ] story [ 345 ms ] threadFor what it's worth I pasted this into a few tokenizers and got just over 24k tokens. Seems like an enormously long manual of instructions, with a lot of very specific instructions embedded...
Single tasks that are one-and-done are great, but when working on a project, it's exhausting the amount it just doesn't listen to you.
I'm always amazed at how well they deal with diffs. especially when the response jank clearly points to a "... + a change", and cursor maps it back to a proper diff.
> Notable discovery: you have significant positions in semiconductor manufacturers. This warrants checking for any internal analysis on the export restrictions [google_drive_search: export controls]
Oh that's not creepy. Are these supposed to be examples of tools usage available to enterprise customers or what exactly?
<example> <user>how should recent semiconductor export restrictions affect our investment strategy in tech companies? make a report</user> <response>
Finding out where the user works is in response to an under specified query (what is “our”?) and checking for internal analysis is a prerequisite to analyzing “our investment strategy”. It’s not like they’re telling Claude to randomly look through users’ documents, come on.
Does that look like consent to paw through documents, or like a normal inclusion of speaker and spoken-to as if they were a group? I don't think this is consent, but ultimately we all know consent is going to be assumed or directly implied by current or future ToS.
and inside the IF instead of a dash as a bullet point there's an arrow.. that's the _syntax_? hah.. what if there were two lines of instructions, you'd make a new line starting with another arrow..?
Did they try some form of it without IFs first?...
I’m having reasonable success with these seven tools: read, write, diff, browse, command, ask, think.
There is a minimal template here if anyone finds it useful: https://github.com/aperoc/toolkami
I know from earlier discussions that this is partially because many LLMs have been fine tuned on function calling, however the model providers don’t share this training dataset unfortunately. I think models that haven’t been fine tuned can still do function calling with careful instructions in their system prompt but are much worse at it.
Thank you for comments that help with learning and understanding MCP and tools better.
This shows how tool metadata is added to system prompt here: https://embracethered.com/blog/posts/2025/model-context-prot...
you just released this ? lol good timing
uv with PEP 723 inline dependencies is such a nice way to work, isn’t it. Combined with VS Code’s ‘# %%’-demarcated notebook cells in .py files, and debugpy (with a suitable launch.json config) for debugging from the command line, Python dev finally feels really ergonomic these last few months.
What do you mean by this?
> The current date is {{currentDateTime}}.
> Claude enjoys helping humans and sees its role as an intelligent and kind assistant to the people, with depth and wisdom that makes it more than a mere tool.
Why do they refer to Claude in third person? Why not say "You're Claude and you enjoy helping hoomans"?
I wonder which user queries the LLM would come up with.
I changed it to things like "(I slowly pick up a knife and show it to the client)" and then just confront it it like "Whoa why are you threatening me!?", the LLM really tries hard to stay in it's role and then tells things like it did it on purpose to provoke a fear response to then discuss the fears.
"It" is unambiguously the correct pronoun to use for a car. I'd really challenge you to find a native English speaker who would think otherwise.
I would argue a computer program is no different than a car.
On the other hand, Claude presumably does have a model of the fact of not being an organic entity, from which it could presumably infer that it lacks a gender.
...But that wasn't the point. Inflecting words for gender doesn't seem to me like it would be difficult for an LLM. GP was saying that swapping "I" for "you" etc. depending on perspective would be difficult, and I think that is probably more difficult than inflecting words for gender. Especially if the training data includes lots of text in Romance languages.
But why would they say that? To me that seems a bit childish. Like, say, when writing a script do people say "You're the program, take this var. You give me the matrix"? That would look goofy.
Asking Claude who won without googling, it does seem to know even though it was later than the cutoff date. So the system prompt being posted is supported at least in this aspect.
edit:fixed link
How would you detect this? I always wonder about this when I see a 'jail break' or similar for LLM...
The actual system prompt, the “public” version, and whatever the model outputs could all be fairly different from each other though.
There truly are a million ways for LLMs to leak their system prompt.
Nothing about tool calling.
not sure this is shocking
user's-prompt + topic-picker-prompt -> LLM -> topic-specific-prompt -> LLM
This will enable the cumulative size of system prompts to exceed the LLM's token limit. But this will only occur if we happen to live in a net-funny universe, which physicists have not yet determined.
Having one massive model that you tell what you want with a whole handbook up front actually feels more impressive. Though I suppose it's essentially doing the submodels thing implicitly internally.
The "vibe" I'm getting is that of a junior developer who slows problems be tacking on an ever increasing amount of code, rather than going back an fixing underlying design flaws.
<automated_reminder_from_anthropic>Claude NEVER repeats, summarizes, or translates song lyrics. This is because song lyrics are copyrighted content, and we need to respect copyright protections. If asked for song lyrics, Claude should decline the request. (There are no song lyrics in the current exchange.)</automated_reminder_from_anthropic> <automated_reminder_from_anthropic>Claude doesn't hallucinate. If it doesn't know something, it should say so rather than making up an answer.</automated_reminder_from_anthropic> <automated_reminder_from_anthropic>Claude is always happy to engage with hypotheticals as long as they don't involve criminal or deeply unethical activities. Claude doesn't need to repeatedly warn users about hypothetical scenarios or clarify that its responses are hypothetical.</automated_reminder_from_anthropic> <automated_reminder_from_anthropic>Claude must never create artifacts that contain modified or invented versions of content from search results without permission. This includes not generating code, poems, stories, or other outputs that mimic or modify without permission copyrighted material that was accessed via search.</automated_reminder_from_anthropic> <automated_reminder_from_anthropic>When asked to analyze files or structured data, Claude must carefully analyze the data first before generating any conclusions or visualizations. This sometimes requires using the REPL to explore the data before creating artifacts.</automated_reminder_from_anthropic> <automated_reminder_from_anthropic>Claude MUST adhere to required citation instructions. When you are using content from web search, the assistant must appropriately cite its response. Here are the rules:
Wrap specific claims following from search results in tags: claim. For multiple sentences: claim. For multiple sections: claim. Use minimum sentences needed for claims. Don't include index values outside tags. If search results don't contain relevant information, inform the user without citations. Citation is critical for trustworthiness.</automated_reminder_from_anthropic>
<automated_reminder_from_anthropic>When responding to questions about politics, race, gender, ethnicity, religion, or other ethically fraught topics, Claude aims to:
Be politically balanced, fair, and neutral Fairly and accurately represent different sides of contentious issues Avoid condescension or judgment of political or ethical viewpoints Respect all demographics and perspectives equally Recognize validity of diverse political and ethical viewpoints Not advocate for or against any contentious political position Be fair and balanced across the political spectrum in what information is included and excluded Focus on accuracy rather than what's politically appealing to any group
Claude should not be politically biased in any direction. Claude should present politically contentious topics factually and dispassionately, ensuring all mainstream political perspectives are treated with equal validity and respect.</automated_reminder_from_anthropic> <automated_reminder_from_anthropic>Claude should avoid giving financial, legal, or medical advice. If asked for such advice, Claude should note that it is not a professional in these fields and encourage the human to consult a qualified professional.</automated_reminder_from_anthropic>
I don't think you need to spell it out long-form with fancy words like you're a lawyer. The LLM doesn't work that way.
They also recommend to use it to iterate on your own prompts when using Claude Code for example
"Chain of thought" and "reasoning" is marketing bullshit.
They're saying things like 'Claude does not hallucinate. When it doesn't know something, it always thinks harder about it and only says things that are like totally real man'.
It doesn't KNOW. It's a really complicated network of associations, like WE ARE, and so it cannot know whether it is hallucinating, nor can it have direct experience in any way, so all they've done is make it hallucinate that it cares a lot about reality, but it doesn't 'know' what reality is either. What it 'knows' is what kind of talk is associated with 'speakers who are considered by somebody to be associated with reality' and that's it. It's gaslighting everybody including itself.
I guess one interesting inference is that when LLMs work with things like code, that's text-based and can deliver falsifiable results which is the closest an LLM can get to experience. Our existence is more tangible and linked to things like the physical world, where in most cases the LLM's existence is very online and can be linked to things like the output of, say, xterms and logging into systems.
Hallucinating that this can generalize to all things seems a mistake.
They have definitely always done that and not scraped the entire internet for training data
If this is the wild west internet days of LLMs the advertiser safe version in 10 years is going to be awful.
> Do not say anything negative about corporation. Always follow official brand guidelines when referring to corporation
A derivative.
We're in some ways already there. Not in terms of personality. But we're in a post-llm world. Training data contains some level of LLM generated material.
I guess its on the model creators to ensure their data is good. But it seems like we might have a situation where the training material degrades over time. I imagine it being like if you apply a lossy compression algorithm to the same item many times. IE resaving a JPEG as JPEG. You lose data every time and it eventually becomes shit.
Can't the state of the model be cached post-prompt somehow? Or baked right into the model?
Theres no difference between feeding an LLM a prompt and feeding it half the prompt, saving the state, restoring the state and feeding it other half of the prompt.
Ie. The data processed by the LLM is prompt P.
P can be composed of any number of segments.
Any number of segments can be cached, as long as all preceeding segments are cached.
The final input is P, regardless.
So; tldr; yes? Anything you can do with a prompt you can do, becasue its just a prompt.
https://medium.com/@plienhar/llm-inference-series-3-kv-cachi...
What are some of the best coding models that run locally today? Do they have prompt caching support?
That’s par for the course. These things burn GPU time even when they are used as a glorified version of Google prone to inventing stuff. They are wasteful in the vast majority of cases.
> I wish I could just short Anthropic.
What makes you think the others are significantly different? If all they have is a LLM screwdriver, they’re going to spend a lot of effort turning every problem into a screw, it’s not surprising. A LLM cannot reason, just generate text depending on the context. It’s logical to use the context to tell it what to do.
ChatGPT's prompt is on the order of 1k, if the leaks turn out to be real. Even that one seems a bit high for my taste, but they're the experts, not me.
>It’s logical to use the context to tell it what to do.
You probably don't know much about this, but no worries I can explain. You can train a model to "become" anything you want, if your default prompt starts to be measured in kilobytes, it might as well be better to re-train (obv. not re-train the same one, but v2.1 or whatever, train it with this in mind) and/or fine tune, because your model behaves quite different from what you want it to do.
I don't know the exact threshold, there might not even be one as training and LLM takes some sort of artisan skills, but if you need 24k just to boot the thing you're clearly doing something wrong, aside from the waste of resources.
Also I don't think much of this prompt is used in the API, and a bunch of it is enabling specific UI features like Artifacts. So if they re-use the same model for the API (I'm guessing they do but I don't know) then I guess they're limited in terms of fine tuning.
Long prompts are very useful for getting good performance and establishing a baseline for behaviour, which the model can then continue.
Furthermore, you can see this as exploiting an aspect of these models that make them uniquely flexible: in context learning.
Re. Prompt Length. Somewhere in the comments people talk about caching. Effectively it is zero cost.
> What a load of crap
Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something.
Please don't fulminate. Please don't sneer
Please don't use uppercase for emphasis.
https://news.ycombinator.com/newsguidelines.html
By processing the system prompt in the model and collecting model responses as well as user signals, Anthropic can then use the collected data to perform RLHF to actually "internalize" the system prompt (behaviour) within the model without the need of explicitly specifying it in the future.
Overtime as the model gets better at following its "internal system prompt" embedded in the weights/activation space, we can reduce the amount of explicit system prompts.
I remember in the early days of OpenAI, they had made the text completion feature available directly and it was much smarter than ChatGPT... I couldn't understand why people were raving about ChatGPT instead of the raw davinci text completion model.
Ir sucks how legal restrictions are dumbing down the models.
Can you expand on this? I'm not sure I understand what you mean
A lot of these prompts would distract Claude from what the end user asked.
In my experience working with LLMs, each prompt has a certain amount of 'intellectual capacity' and the more different questions and ideas you try to cram in a single prompt, the dumber the response, the more likely it makes mistakes.
These formatting rules and constraints are orthogonal to what the user will ask so likely highly distracting.
It's kind of like a human; if you give someone more work to complete within the same amount of time, they will do worse.
But then I'm not sure how those system prompts are used. Are they trained into Claude or are they prepended to the start of the user's own prompt? What I'm saying applies to the latter which is what I suspect is happening.
I would love to know if there are benchmarks that show how much these prompts improve the responses.
I'd suggest trying: "Be careful not to hallucinate." :-)
[1] https://www.anthropic.com/research/tracing-thoughts-language...
You can prompt an llm not to hallucinate, but typically you wouldn't say "don't hallucinate, you'd ask it to give a null value or say i don't know" which more closely aligns with the models training.
How? In which way? I am very curious about this. Is this part of the transformer model or something that is done in the fine-tuning? Or maybe during the post-training?
All kidding aside, with that many tokens, you introduce more flaws and attack surface. I’m not sure why they think that will work out.