← All AI Engineer talks

AI Engineer Summit 2025

The Model Isn’t Wrong—You’re Just Bad at Prompting

Read the talk

Prompt Engineering Before Architectural Complexity

Dan Cleary explains how instructions, examples and model-generated feedback improve prompts—and why early reasoning models change which techniques help.

From a talk by Dan Cleary

Before you start: Basic familiarity with LLM prompts is sufficient; no coding or model-training background is required.

What do you actually want the model to do?

Why does an LLM feature need prompt engineering if you can simply tell the model what to do? Because defining the desired behavior is already difficult. A request can sound clear to its author while leaving the model to guess what a successful answer looks like. That gap becomes consequential when the output is part of a product.

Prompting is a starting point within a larger system. Teams can access the same models, but their instructions, evaluation process and surrounding architecture differ. The opening diagram puts prompt engineering before testing and evaluation, with RAG and fine-tuning as further options. The useful question is whether better instructions can solve the problem before additional infrastructure becomes necessary.

Slide titled “An easy starting point” shows Prompt Engineering leading to Test and Evaluate, then to stacked RAG and Fine-tuning boxes.
Prompt engineering as a starting point: test and evaluate before considering RAG or fine-tuning.

Cleary connects this approach to Anthropic’s advice to seek the simplest solution when building agents. His cautionary example is spending an hour adjusting a prompt, declaring prompting insufficient, and moving immediately to a more complicated retrieval-augmented generation system. If prompting can meet the requirement, it leaves less machinery to manage; it deserves a serious iteration cycle before being ruled out.

Two techniques provide the starting toolkit: chain-of-thought prompting, which elicits intermediate reasoning, and few-shot prompting, which demonstrates the desired behavior through examples. These are selected methods rather than a complete taxonomy. Cleary points to additional reasoning templates in PromptHub for extending that toolkit.

0:450:58
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:45 · section reference included

Give the model room for intermediate work

Chain-of-thought prompting asks the model to work through a problem before producing its answer. Decomposing a task into smaller problems gives it intermediate work to build on, and the generated explanation can provide clues when troubleshooting an incorrect result. Cleary introduces this as a broadly applicable technique, then immediately qualifies it: reasoning models already incorporate reasoning behavior, so they do not necessarily need the same prompting intervention.

There are two straightforward ways to elicit that intermediate work:

ApproachWhat the prompt supplies
Zero-shot instructionA request to reason before answering
Few-shot demonstrationA worked example showing the desired solution steps

The zero-shot version adds a cue such as “Take a breath and think it through.” The demonstration version supplies another problem and its worked solution before the new question. For a math task, the example communicates the steps to follow as well as the final-answer format.

2:262:31
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

2:26 · section reference included

Use models to generate reasoning examples

Writing every worked example by hand is not the only option. Automatic Chain of Thought Prompting generates reasoning demonstrations with a model; Cleary introduces it as a more involved framework. He then presents AutoReason through a single prompt that accepts a task or question and generates a reasoning chain, using embedded reasoning examples. That offered prompt is the rationale-generation part of the workflow: the complete AutoReason method subsequently generates an answer from the question and rationale.

The same idea—eliciting intermediate reasoning in a structured format—also appears in model training. Cleary points to the DeepSeek training template, which separates thinking from the answer using think tags. The DeepSeek report labels that particular template DeepSeek-R1-Zero, rather than DeepSeek-R1. R1 uses a separate multistage training pipeline that includes cold-start supervised data and reinforcement learning; the template is a format for eliciting reasoning, not the whole training method.

For prompt experimentation, Cleary describes a shorter path: enter a task into one of PromptHub’s templates, generate a reasoning chain, and copy it for reuse. The collection he presents includes other reasoning and verification methods as well as chain-of-thought prompts, particularly for complex problems. These templates were offered as free resources in the talk.

3:303:39
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:30 · section reference included

Show the client’s style through brief–content pairs

Few-shot prompting turns examples into part of the specification. Cleary’s concrete task is generating content for a client. Instead of trying to describe the client’s tone exhaustively, the prompt supplies a brief and the finished content associated with it, repeats that pairing, then supplies a new brief whose content the model should produce. The examples demonstrate what a satisfactory transformation looks like.

The demonstrated structure can be used directly as a prompt template:

Write content for {client_name} using the examples below
as guidance for tone and style.

Brief: {example_brief_1}
Content: {approved_content_1}

Brief: {example_brief_2}
Content: {approved_content_2}

Brief: {new_brief}
Content:

Each completed pair connects an input to an acceptable output. The final empty Content field asks the model to apply that pattern to a new input. This communicates style through actual copy rather than adjectives such as friendly or professional.

Slide titled “Few-shot prompting example” shows client placeholders, two example brief–content pairs, and a final brief followed by Content. The presenter bubble sits toward the lower center.
A few-shot prompt supplies two brief–content examples before a new brief with an empty Content field.

Cleary recommends starting with one or two diverse examples, describing diminishing returns and possible degradation as more examples are added. That is a starting heuristic, not a measured optimum for this client-content task. Choose examples that cover different inputs the model is likely to encounter; duplicating nearly identical examples teaches less about the range of acceptable behavior.

4:364:48
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

4:36 · section reference included

Let an LLM help revise the prompt

Meta-prompting uses an LLM to create, refine or improve another prompt. It applies the same model assistance used elsewhere in development to the instructions themselves. The available approaches range from frameworks requiring code to user-facing prompt generators.

Cleary names Anthropic’s prompt-generation tool, OpenAI’s Playground and PromptHub’s enhancers. In the PromptHub workflow he describes, choosing a model provider selects a different underlying meta-prompt. The motivation is practical: instructions that work well with one provider’s models may need a different form for another provider’s models.

Prompt creation can then become a feedback loop:

  1. Run the current prompt.
  2. Inspect the output and give feedback about what should change.
  3. Use the feedback to revise the prompt and run it again.

Cleary describes PromptHub’s copilot as using ideas similar to TextGrad, where textual feedback guides iterative improvement. The relationship he claims is similarity of approach, not that the product necessarily uses the TextGrad package.

5:425:50
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

5:42 · section reference included

Reasoning models change what belongs in the prompt

The earlier techniques need another pass when the model has been trained to reason. Cleary turns to Microsoft’s From Medprompt to o1, first submitted in November 2024, and its experiments with o1-preview. Cleary reports that adding examples reduced performance in the Medprompt comparison he discusses. The result concerns that experimental setting, rather than establishing that demonstrations harm every reasoning model.

DeepSeek’s report likewise says few-shot prompting degraded performance for the evaluated R1 model and recommends a zero-shot problem description with an output format. Cleary also recalls OpenAI’s early o1-preview warning about excessive context. The historical guidance quoted in his companion discussion concerns keeping RAG context relevant: extra material can complicate the task rather than help resolve it.

Additional reasoning is a different intervention from additional examples. Cleary reports better results from an extended-reasoning prompt than from a quick-response prompt in the Medprompt work. The distinction is the amount of problem-solving effort encouraged at inference time, not the number of demonstrations placed in the input.

Cleary also describes longer reasoning traces alongside improved accuracy during DeepSeek training. This is a training observation, not a guarantee that making any answer longer improves it. No numerical effect sizes accompany these comparisons in the talk.

For the early reasoning models discussed here, start with a clear task and minimal prompting. If the output falls short, encouraging more reasoning may help, but that does not require scripting the model’s reasoning procedure. Cleary advises avoiding few-shot prompting by default in this setting; if examples are necessary, begin with one or at most two. He distinguishes asking for more reasoning from prescribing how to reason, which can interfere with behavior the model already learned.

The talk closes by pointing readers toward reusable material: the Prompt Engineering Substack, PromptHub’s blog, and community prompts contributed by the team and other users. Those resources extend the iteration process—from a clear task, to a tested prompt, to a targeted change when the output reveals what is missing.

6:476:58
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

6:47 · section reference included

Resources

From the talk

Read the complete timestamped transcript
  1. 0:00

    Hey everyone, how's it going? Dan here. So excited that you're joining today. Um, we're gonna be talking about all things related to prompt engineering. And so some very quick background on myself.

  2. 0:08

    I'm the co-founder of PromptHub, it's the GitHub for prompts. Based in New York. I'm a Lakers fan, more specifically a LeBron fan, but that just means February's been a great month for me.

  3. 0:16

    Um, and I'm a marathon runner. And so today we'll be covering a lot of ground, a lot of templates, a lot of free stuff, um, that should be hopefully pretty helpful that you can go and take and start messing around with.

  4. 0:26

    And so we'll talk about why prompt engineering is still important, why chain-of-thought prompt, uh, prompting has been so revolutionary, especially when it comes to test-time compute, few-shot prompting, using LLMs to help you write prompts via meta-prompting, how prompt engineering with reasoning models is actually very different, um, and a bunch of res-resource templates we've got.

  5. 0:45

    So I usually include a slide like this in any of my talks, and I, I waiver from doubling down and including more of these and completely removing it. But, you know, I think the meme in the beginning was that, you know, why do you even-- why is prompt engineering even a term?

  6. 0:58

    You can just tell the model what to do. But I think anyone who's ever actually shipped an LLM-based feature has known it, it's much more nuanced from that. Even just trying to understand what you want the model to do is challenging.

  7. 1:11

    And I think it's just a really good starting point for folks. Of course, um, it's the easiest and most successful way to get better outputs from LLMs, and it's a part of the med-- a greater system, right?

  8. 1:22

    We all have access to the same models, um, but the prompts, the architecture, everything around that is how we can also have a competitive advantage in our product or whatever we're building.

  9. 1:32

    I think, you know, something that was mentioned in Anthropic's recent paper, uh, or blog post about agents is that going for the simplest solution, I think is really key to keep in mind.

  10. 1:41

    It's really easy to kind of run away with these things when you're working with LLM to think about everything you can do, and that's great. Um, but, you know, just spending an hour trying to mess around with a prompt and then determining that, you know, it's impossible to solve whatever you're trying to do via prompt engineering, and

  11. 1:56

    you need to do more complex RAG or things along those lines, I think is, is not super smart. You need to give some time here, because if you can do it, it's much simpler to manage.

  12. 2:06

    And so we'll cover just two main methods, chain-of-thought and few-shot prompting, just 'cause I think they're the most effective and most topical. There are a bajillion more. A lot of them fall underneath the umbrella of general reasoning prompts.

  13. 2:17

    Um, we've covered most, if not all of these, and they're all available as templates in PromptHub as well that you can check out for free.

  14. 2:26

    So what is chain-of-thought prompting? Simply when you instruct the model to

  15. 2:31

    reason or think about the problem or a solution before actually jumping into whatever that, that answer is. And so it breaks down problems into sub-problems. Um, you get a glimpse into how the model is thinking, which can be helpful for, for troubleshooting.

  16. 2:47

    It's widely applicable, of course. You can use it kind of with any model. Um, easy to implement as well. And it's so powerful that it's now kind of being built into these reasoning models, and so you don't even really need to do it for those reasoning models.

  17. 2:58

    And so the classic kind of zero-shot way to do this is just to add something to your prompt that will make the model think a little bit before it's just giving you the output.

  18. 3:06

    You know, you want it to just generate some sort of kind of reasoning tokens beforehand and think step by step. What's a classic one? Take a breath and think it through.

  19. 3:13

    Things along those lines. Another very popular way to do this is by having few-shot examples of those reasoning steps. And so if I'm having a prompt to do solve math problems, I can include another math problem in the prompt and show the reasoning steps I wanted to solving that.

  20. 3:30

    And of course, you can use LLMs to generate these reasoning chains as well. So there's something called just automatic chain of thought, which is a framework, um, that's a little bit more involved.

  21. 3:39

    Um, there's another one called AutoReason, which is just a single prompt here, where you pass your task or question and it will generate, um, reasoning chains. It actually has few-shot examples of reasoning chains in there as well, and you can try this out in PromptHub.

  22. 3:52

    And even the training template that DeepSeek used for its R1 model, um, basically did this. It had it generate its thinking process, uh, within think tags and then-- and used all these outputs, these generated reasoning chains to train the model to be really good at chain-of-thought.

  23. 4:08

    And so this is also available inside PromptHub. You can input your task, get a reasoning chain, um, copy, on your way, and that's totally free if you want to try it out.

  24. 4:16

    And as I mentioned, we have a, a ton of these, um, in the platform, a ton of reasoning chains that you can go and check out. Some of them are chain-of-thought, some of them are other type of, um, reasoning or verification methods as well.

  25. 4:29

    But they're all pretty helpful, I would say, especially when you want to use them when, when you're dealing with like complex problems.

  26. 4:36

    So moving on to few-shot prompting. Um, it's-- that's generally when you include examples of what you want the model to kind of mimic or do or to understand about your problem, and essentially you're doing a show rather than tell.

  27. 4:48

    And so in this example here, I'm telling, um, the model that I have this client, we need to like generate some content for it. Here's a brief, here's the related content.

  28. 4:57

    Here's a brief, here's the related content. And then I say, "Here's the brief," and then the model will fill in this, this content here. And so rather than trying to encapsulate my client's tone or style by sending an input and output example, a brief and a piece of content, I can kind of teach the model, uh, exact

  29. 5:14

    what I want. The great part of this is that you get most of the gains from just like an example or two. Um, almost all the graphs kind of look like this when you're looking at number, number of examples versus, uh, performance, and sometimes performance can degrade once you have like a bunch.

  30. 5:30

    Um, but it's great for builders 'cause you only need, I'd say one or two. You want, kind of want to have them be diverse and cover your bases of different inputs you could expect that model to handle.

  31. 5:39

    Um, but yeah, you don't need many of them.

  32. 5:42

    And so next up is meta-prompting. Um, you know, I think it'd be silly as some people who are working with LLMs to not use LLMs for this part of the process.

  33. 5:50

    So meta-prompting is basically just using an LLM either to create a prompt, refine a prompt, improve a prompt, whatever that might be.

  34. 5:57

    There are a ton of frameworks for this out there. Um, some of them are require you to have coding knowledge, some of them don't. There are a bunch of free tools as well, which of course are very user-friendly.

  35. 6:06

    Anthropic has a great one. OpenAI has one inside of their playground, and then we also have one in PromptHub. Um, the difference with ours is you can select which model provider you are using, and it will run a different meta prompt because a prompt that is good for OpenAI models might not be the same as Anthropic.

  36. 6:24

    And so we, we tailor it a little bit for you as well. And then we also have a way that you kind of iteratively work with a, um, kind of like a copilot inside PromptHub.

  37. 6:33

    It's built off very similar things to TextGrad, where you can run prompts, give feedback. So this is another free tool that you have to your disposal as well because prompt engineering is something that we can use help with, so why not u-leverage LLMs?

  38. 6:47

    And so moving on to kind of to stuff that's much more, um, apparent now and more recent is that reasoning models are very different, both in terms of how they work and how you prompt them.

  39. 6:58

    So Microsoft released a paper earlier this year about their MedPrompt framework. It's not super important, but basically they ran, uh, a prompt engineering framework with o1 and found that adding examples led to worse performance.

  40. 7:12

    And the researchers at DeepSeek when building R1 found this as well, uh, that few-shot degraded performance. And OpenAI kind of mentioned this when they first released o1-preview, saying that you need to be careful when providing additional context because it can kind of overcomplicate things and confuse the model.

  41. 7:31

    And so you gotta be careful with examples, but if you need to-- want to increase performance, there's been a lot of research that has shown that the more reasoning a model does, the better the output could be.

  42. 7:41

    So in that same MedPrompt paper, they had a prompt that was, you know, quick response and then a prompt that prompted the model to think more. Um, and they saw that better results when the model was thinking more from extended reasoning.

  43. 7:53

    And the folks at DeepSeek saw this as well. So as they continued to train the model, the length of the response or the thought process increased, and then also this will in turn, um, increase accuracy and performance as well.

  44. 8:08

    And so overall, when you're using reasoning models specifically, minimal prompting, nothing can really beat like a really good, clear task description. I'm gonna encourage more reasoning if you're having trouble kind of getting maybe that last bit of performance, having-- encouraging the model to reason more can be helpful.

  45. 8:24

    Avoid few-shot prompting. If you're gonna do it, start with like one, one, maybe only two examples. And then you don't really need to instruct the model on how to reason.

  46. 8:34

    It's kind of built in there, so doing that can actually, um, hurt performance as well. And so as I mentioned, lots of free resources. We run a Substack called Prompt Engineering Substack.

  47. 8:43

    We write on our blog. Um, there's a bunch of prompts in the community from us and from other people. And so I hope this was helpful, and I hope you have a great time at the summit, and have a great day.