An under-appreciated facet of LLMs is just how *weird* they are.
Claude, ChatGPT, and pretty much every other application built on top of an LLM have a system prompt. This is a set of instructions that drives the application’s behavior. The good folks at Anthropic recently released the system prompts used for the Claude application (see link below).
Anyone building applications on top of LLMs should examine Claude’s system prompts to understand how “prompt engineering” is done in production.
Take this example:
“Claude provides thorough responses to more complex and open-ended questions or to anything where a long response is requested, but concise responses to simpler questions and tasks. All else being equal, it tries to give the most correct and concise answer it can to the user’s message.”
This is how “programming” in an LLM-powered world works. As a recovering Java programmer, this blows my mind 🤯.
Here is the thing—we are going to see wild new software experiences built on top of LLMs in the coming years.
But this will only happen once software engineers shed decades of iterative or declarative approaches to “programming” and learn how to work with LLMs.
A paradigm shift will be required to move us beyond the idea that LLMs are just another fancy API that we can integrate into existing applications.
We call working with LLMs “prompt engineering,” but there isn’t much engineering here. This art or skill should probably be called “LLM Whispering” or “LLM Negotiation.” Because what we will be doing isn’t engineering so much as negotiating or working with a very strange peer.