Field Guide0:00
Please welcome to the stage: member of technical staff at Anthropic, Thariq Shihipar.
Hey everyone, I'm Thariq, I work at Anthropic on Claude Code. Before we get started, we have a tradition on Claude Code where we take a selfie before a talk, so if you don't mind, if you strike a pose with me, I'll take a quick selfie at AI Engineer.
Okay, incredible. Well, uh, yeah, to kick things off, like we said, Fable is back.
We're rolling it out later today. Stay tuned for exact timeline. Me and Cat Woo and Simon Wilson will be doing a fireside chat at 12:30. We might have some updates for you then.
But Fable is a model I'm just so, so excited about. It's one of those Anthropic models where you just, like, you're just going to remember it. Like Sonnet 3.5 new, Opus 4, Opus 4.5. It's a model that I just have a lot of, like, affection and excitement for.
And the best way to describe Fable to me is, like, the map is opening up. You know, like you were playing, like, an RPG and you've been on the tutorial, and now you get to the point where the, like, you know, the open world starts,right?
And there's so much that you can do and explore. But there's also, it's also a little bit intimidating and confusing,right? Because there's so much you can do. And so what I wanted to do in this talk is give you guys a field guide to Fable,right?
How do you work with this new class of models? So I've got four parts to it. I've been working on this as a series of articles and blog posts. But, you know, when we announced Fable is coming out, I was like, okay, let me do all of this at once at the talk, you know, speed run.
So there are four parts: unhobbling Claude, finding your unknowns, dealing with the grief, and being unreasonable. So first, unhobbling Claude. I think something we say really often is that the models are grown, not designed,right? We don't wake up and be like, we need 99 percent on Swebench,right?
Unhobbling Claude2:25
Like the models are, you know, something we grow carefully. We give it data and feedback and compute. But ultimately it's, you know, something that we, it's a little bit organic and we sort of figure out and learn with the model as we use it.
And so that, what that also means is that what contains them is us,right? The harness we put them in and the way we prompt them is basically like a function of our understanding of Claude,right? And by unhobbling it, I mean how can we understand Claude better to unleash it?
And we need to understand Fable more. So I think one of my points is that, you know, we're still so early and I think there's a lot more understanding in Fable to unlock. And I think I'll give you a quick example about how models get smarter, because it's a little bit unintuitive,right?
Like there, I saw this viral tweet a couple weeks ago being like, you know, why can't LLMs say which Pokemon end in AW? There are a thousand Pokemon,right? And it turns out there are two whose names end in AW, Croconaut and Dreadnought,right?
And it turns out if you ask like a normal chat model, it can't answer it, which is kind of confusing because, like, you know, it definitely knows all the names of the Pokemon,right? But if you ask Claude Code, it can,right?
Because what it does is that it fetches every Pokemon and writes a script to filter for AW,right? And so this is what I mean by, like, unhobbling Claude. We call this capability overhang,right? Claude gets smarter in spiky ways.
So it doesn't just remember every Pokemon and reason through it, but if you give it the code execution tool, it can find the two Pokemons that end with AW,right? And so this is, I think, part of the challenge with Fable is figuring out this capability overhang.
What is now possible? And I think this is like a discovery that I'm excited to go on with you. To make this a little bit clearer, I'm going to talk about a few different examples of how models have progressed in the past.
One of the big examples, obviously, is like chat. You know, the chat models had to be given context,right? Like maybe you paste in your code base and maybe naively you might have thought, like, you know, the way we solve coding is by the context just gets really large and I can just paste in my entire code base.
You know, it'll be a hundred million context window. But it turns out that instead, if you give it arms, like you give it the bash tool and ways to work with the environment, it can build and search its own context.
And that's sort of like the insight that led to Claude Code,right? And so again, spiky, like a new, like innovation kind of,right, in how we think about and work with the model. And then recently we rolled out Claude Tag.
And what sort of unlocked Claude Tag is its ability to work proactively and multiplayer. Claude Code, you know, is something that you have to prompt for it to do work,right? And this ability for Claude to wake itself up and do work is something that we think is unlocking the new wave of agents.
But there's, there's more here. So for example, we recently removed 80 percent of the system prompt for Claude Code,right? And this is one of the ways in which models, you know, and what they need changes over time. So originally, like, you know, maybe back in Sonnet 3.5 new, the best practices for a system prompt was a small system prompt, few tools, and lots of examples,right?
And then as the models get smarter, you can give them more information and more instructions and they start following them. And so it's a larger system prompt with lots of examples and many tools,right? But most recently we found this new class of models want fewer, want a smaller system prompt.
The examples tend to constrain it because it's actually more imaginative than the examples we give it. And so, and we tried to give it context and not just constraints. We really try and avoid being like, do not do this, which is really necessary for the previous models.
And so this is like a way that the system prompt is changing and probably will continue to change. Another feature I really like is the ask user question tool. This is something I worked on when I first got to Claude Code.
And it's when Claude, you know, is planning or wants to ask you a question, it can show you a multiple choice dialogue. For Opus 4, it could barely call it. I had to, like, really tweak the tool to make sure that it was, that it would work,right?
And then sometime at Opus 4.5, I was like, well, what if I asked it to, like, you know, ask me 40 questions about the spec? It could start interviewing me,right? And so its ability to ask questions jumped,right? And then most recently with Opus 4.8 and Fable, I can now build a whole HTML report with the questions embedded inside of them.
And it's just like a whole new way of interacting with, with Claude,right? And so this progression of, like, how Claude can get information from you has also changed. Speaking of which, Markdown and HTML is something I've also talked a lot about.
You know, it turned, initially Markdown was a good output for the model. You know, it could show a little bit of rich information. And then, you know, with plan mode, it started to be for you. Like you could understand what Claude was about to do.
And now, you know, Claude can build you these in-depth HTML reports,right? And so again, a way of this, the model's getting smarter in a spiky way. I really like to emphasize that this is closer to a biology than a physics,right?
It's still very empirical, very organic. We don't know all the rules, but there is some sort of science behind it,right? Like there is an intuition to build as well. And so I really, you know, encourage you to treat Fable like that.
One of my favorite papers that at Anthropic that we've written is on the biology of a large language model. All of our research papers are meant to be read by, you know, people of various degrees of technical expertise, but this is one of my favorites.
So if you're looking to learn a little bit more, suggest you check it out. But so, yeah, we talked about unhobbling Claude, but it turns out when you're working with Fable, you also need to unhobble yourself,right? And so one of the things that I think a lot about is that the map is not the territory,right?
Finding Unknowns9:06
When I'm working on a coding problem, the plan and prompt and spec that I have in my mind is the map,right? But the territory is the actual code base, the real world, the constraints that Claude needs to navigate,right?
And whenever Claude runs into something in the territory that's not in the map, I call that an unknown,right? Claude has to figure out what to do about it. It's a decision point that I haven't specified. And Fable is one of those first models where I felt that, like, I really have to figure out my unknowns because if not, it's going to traverse such a large area that, like, it's going to run into a lot of them.
So how do you figure out your unknowns?
Yeah, I, Fable is bottlenecked by my ability to match the map and the territory to find my unknowns. So a few, few ways to think about this. I like to think of it in a matrix. So like for any problem, I have a bunch of known knowns.
This is usually like what I write in my prompt. What do I want,right? Then I have known unknowns, things that, like, I know I haven't, don't really know yet, but I just haven't figured out yet. I can, yeah, then I've got unknown knowns, like what's so obvious that I just wouldn't write it down, you know, but I know it when I see it,right?
And then finally, unknowns, unknowns, what haven't I considered at all? What do I not know,right? Like what is something that if I knew could change how I prompt Claude? And luckily you can use Claude, you can use Fable to find your unknowns.
So I'm going to go over a few examples of how I do that with Fable. The first is I like to do what I call a blind spot pass. So I like to say something like, hey, I'm working on a new auth provider that I know nothing about, like in this code base.
Can you do a blind spot pass to help me figure out my relevant unknown unknowns and help me prompt better,right? And so this, like, might have Claude go through the auth module and figure out like, oh, you know, this is kind of like a hairy little dead end that comes up a lot.
Maybe it searches my Git diff or Slack. I might tell it where there's context,right? So that I can learn about, you know, all the gotchas. And you can use this very broadly,right? You can use it to teach you about new fields.
I recently did this for color grading when doing video editing. I think it's really powerful and Fable is incredible at it. In many ways, the model knows more about, you know, almost everything than I do. I just need to get it out of it.
Then I like to use brainstorms and prototypes. This helps me figure out my unknown knowns,right? Things like, especially for design, for me it's like know it when you see it,right? So I might ask it to create a dashboard and I tell it I have no visual taste.
Make me an HTML page with four wildly different design decisions so I can react to them,right? And, you know, you tweak this as you want, but like the idea is to sort of get an idea of like what are the things that you, you know, you can't describe in words,right?
And like work with the model to help figure that out. Then, then interviews. So once I have an idea of like, you know, this is what I want to do, there's probably still a lot of like unknowns here,right?
Where I might not have considered something, I might not have specified it. And so I'll ask Claude to interview me,right? And I'll give it a little bit more context. In any of these questions, like giving it a little bit more context about you and the work and the stage you're at, like, hey, yeah, prioritize questions that would change the architecture is extremely helpful.
Then references. One of the best ways to give Claude a map is to give it another map,right? So instead of me writing out the spec, I can just say, hey, here's some code that represents what I want to be done,right?
It could be in a different system or language, but just read this code, understand it, and then use that to start your work,right? And again, this can be in a lot of different ways. If I'm making a React component, I might have an HTML mockup that is my map,right, that I pass in as a reference.
I think this is really, really powerful. Fable is really incredible at it. Something else I've like really appreciated is implementation notes. So if while you're running Fable and it runs into an unknown, ask it to log it,right? So that you, you can see where the deviations happened and then you can sort of figure out why as well.
You know, it'll usually give you some context about what happened. And then finally, I like to get Fable to quiz me about what happened just to make sure I understand what I'm doing and I can represent this work, you know, when I'm creating a PR or merging it.
This is a really great way of like making sure that you're like really in the loop with Fable. And I think that's like one of the most important parts of Fable is like staying in the loop and making sure that you, you get what you want.
So
Dealing with Grief14:24
those are some of my tips for working with Fable. I also want to say that the first time I used a middle class model, used Fable, I felt both a huge sense of like gain, but also a sense of loss.
And I wanted to talk a little bit about that, you know? When I think about coding before LLMs, it feels like a foreign country, you know? Like I used to run a YC startup, about 30 people, and we were just constantly forced into trade-offs because of how hard code was,right?
Like we could make the app fast or we could try prototyping a new feature and this might take a month or this would take two months. And so we had to choose and it was just really, really hard.
And now I went back to that code base a couple weeks ago and I thought about some of the things that I wanted to do and it was just way easier. It was like the things that would have taken me weeks, I could do in hours, you know?
And at some point it's like, yeah, like how can you not laugh, but also how can you not cry? Honestly, like it's like one of these things where I really, really loved programming and writing code by hand. I love the feeling of like seeing the code base in my mind and like rotating it.
But I also remember just, you know, like staying up late nights trying to debug, working on things for weeks without working,right? I just remember swimming in failure. I just remember that like the most of the projects I've ever worked on have failed.
Most startups go bankrupt, you know? I think just overall programming and coding is extremely hard. And like as much as I enjoy those highs, I cannot go back,right? And the way my reflection here is like the only way out is through,right?
There's still a lot to learn with agentic coding. There's a lot to learn with Fable. But I think if we try really hard and if we like stay in the loop, we unhobble it, we can get there, you know?
And we can come out on the other side with just so much more. And so the last bit I wanted to talk about is the so much more part,right? I call this being unreasonable. One of my favorite parts of Anthropic is that we believe that trade-offs are not real.
Being Unreasonable16:23
Like I think that very often, I like in my previous company, I was very used to being reasonable. So I'd like write down this list of priorities and I'd be like, well, I guess we can prioritize this against this,right?
And like, you know, that makes sense. So we'll, this will be our priority this quarter. But what if you just did all of it, you know? What if you forced reality to show you the trade-off,right? This is something I've really valued at our culture in Anthropic.
And my reflection going forward is that I'm going to be a lot less reasonable. I think one of this, like the math of Claude and Fable really changes how you think about trade-offs. And there are so many trade-offs that you make implicitly in your head,right?
Like good, fast, cheap. Now it's pick three,right? I think that like the best way to like do more ambitious work is to like reframe and make ourselves more ambitious. Because I think the only way to prove that agents work is to do the best work of our lives faster than ever before.
You know, for example, I made this deck last night in about four hours with Fable. I feel like it's a deck I really like and I really enjoyed it, but I also, you know, did it really fast. And I think that if you're here, you know, at AI Engineer, the world is kind of looking at you to prove that AI works,right?
That it's not just like a fad or something, but that it can make us more productive and also save us time. And that's my resolution for this year is to work, be more productive, but work less and spend more time with people I really care about.
I think it's also worth calling out that building is easier, but generating value is still hard. And I think this is something that we run into, you know, as AI engineers sometimes where we think so much about the process of building and our setups.
But the point is to generate value,right? And there, it takes a lot of swings. It takes a lot of tries to find the valuable stuff, but that really is the goal. And that's like, you know, again, what the world is looking to us to prove that AI can really transform it.
So to end, I just wanted to say like, go explore, make it real, and yeah, be less reasonable. Thank you.





