AI・機械学習
私のプロンプト作成方法
How I Prompt (thorstenball.com)
要約
Ampの共同開発者であるソー ステン・ボール氏は、AIコーディングエージェントへの効果的なプロンプト作成は、魔法ではなくエンジニアリングの規律であると論じています。彼は、AIが理解できるように、プロンプトに十分なコンテキストを提供することの重要性を強調し、そのための具体的な手法や考え方を解説しています。
全文翻訳
Think Harder: How I Prompt Thorsten Ball · Laracon US · 29 Jul 2026 · Video · transcript from auto-generated captions, aligned to slides via frame matching; timestamps link into the video Intro — Aaron FrancisIntro — Aaron Francis · 0:00 Up next, we've got Thorsten. Okay, and if you don't know who Thorsten Ball is, you should ask your favorite developer who their favorite developer is, and odds are it's Thorsten. Okay? Thorsten is, one of the clearest thinkers in, in this space and has been for a very long time. Okay? He's written a couple of books, writing an interpreter in Go, writing a compiler in Go. So, I have seen people here with their books getting Thorsten to sign them. Now these days he spends his time thinking about, writing about, and writing software for, his new company that he co-founded, Amp. So, he's going to talk to us about Amp today. Previously, he's at Sourcegraph. Previously, he's at Zed. So, he's been in developer tooling for an incredibly long time. So, this is someone with a deep well of expertise that's going to help us think more about the frontier. So, all the way from Germany, please welcome Thorsten 1:05 here we are. It's nice to be here. This is my first Laracon, and I know this is talk, and you shouldn't use too many F-words up here, but I just want to say it's fantastic to be here. just phenomenal, you know? so today I want to talk to you about how I prompt, how I prompt coding agents specifically. The problem with a lot of people who talk about AI is, of course, when you ask them, "What have you shipped?" the answer is, "Well, goes to a different school, you wouldn't know it, blah blah blah, it's hard, I can't talk about it." So, to establish my credentials a little bit, I'm one of the co-creators of Amp, which is a coding agent that came out last year, couple of weeks after Claude Code. We were one of the first, and a lot of people call it polished or high taste. Aaron actually told his wife that it is a delight, which, pretty good thing to hear. And 1:59 This was our TUI last year. It's evolved tremendously in the last 6 months. 2:04 So, now it looks more like this. It's a full-blown development environment. You can spawn orbs, which are sandboxes, and you can run agents in them. You can remote control agents running on your Raspberry Pi, your fridge, your lawnmower, wherever you want. You can preview stuff. You can do a lot of things. People call us to quote, again, I'm not bragging. I'm getting to a point here. I'm not just saying this to brag. People call us the Porsche of coding agents. And a guy on Twitter doubled down and was like, "No, it's the Ferrari of Porsche coding agents." 2:35 So, it is one of the most complex distributed systems I've worked on, and I worked on some interesting things over my career. Here's the kicker. Here's why I'm saying all of This is 99% written by AI. Nobody in our team really writes code by hand anymore. I certainly don't. I did a poll 2 weeks ago, and I asked the others on the team, "How much code do you write by hand?" You know, I started with 99 Sorry, by AI. 99, 95, 90, and less. Camden was like, "I think I write 10% by hand." And I'm like, "Really?" So, it's a complex product that's beloved by many. I would say it's not slop. So, today I want to talk to you about how I prompt, like how I built Amp, or built large parts of it. Today, I'm going to reveal to you the effort that goes into prompts like the discipline and training that makes this happen, technique, artisanship, you can call it, maybe. The obsession and methodology. 3:33 All of this, finesse, I guess. To be honest, I think let's call it what it is. This is engineering, right? This Look at this stuff. at the end of this talk, I promise you you will be able to prompt like this. I'm just kidding. This is the end of my talk. This is how I prompt. Thank you very much. No, my prompts my prompt actually look more like this. 3:59 Pretty text-heavy. The good news is it's pretty Oh, let me go back. Sorry, let me go for Oh, sorry. 4:10 Sorry. There you go. It's actually pretty boring how I prompt. So, I don't use any MCP servers. I don't have to. I use one or two skills. I don't use any frameworks. I don't have any, custom slash commands set up going on. everything you see in this talk is something that you can do at home. Ideally with Amp, but, you can do it in other coding agents, too. There is no secret sauce. There's no magic keyword, really, except while researching for this talk, I look at the last 2,000 prompts that I sent. It turns out there's this one word that I as a non-native speaker have never pronounced or said out loud in my life. Yet I keep using it in every thread when I talk to an agent. 4:53 It's ridiculous. Like it showed up in every conversation I have. I mean, look at this. I even spent extra money to correct what I said just to get it in there again. So, maybe this is the magic keyword, right? But if there is such a thing as a magic little trick, it is this question. 5:10 This is the one thing that I want you to take away from this talk. This is the one thing that I want you to ask yourself when you write a prompt. I don't mean in the existential way that you have to, bow your head in front of the desk and wonder, "Where does information come from?" But what I mean is when you write a prompt, you're talking to a large language model. What you have to think about is how is the model supposed to know what I mean? You know? A coding agent under the hood is just a large language model that has a context window. Like it's magical. Don't get me wrong. I'm not saying it's a stochastic parrot or anything like this. But it is at the end of the day just a a long piece of text that you send to a model and gets completed. So, if you ask a model to do something, the information with which it can interpret what you're saying, your prompt, can only come from a bunch of places, right? 6:01 On the one side, we have the training data. That's as we know, the observable internet or all of the books or all of Stack Overflow, like all of this. Then, here's the more interesting stuff. That's the stuff that you can influence. The context window. So, in the context window goes your system prompt, the tool definitions, the MCP tool definition skills, agents, messages, meaning the whole conversation, the tool results, so everything that the model executed, every tool call that it issued. The results are in the context window. Most importantly, your prompt. 6:35 So, if you write a prompt like this, how is the model supposed to know what the bug is or what the upload is? If this is your entire prompt, and your code base doesn't have an AGENTS.md file where you clearly define what the bug is or what the upload is, it won't know. But, it's not like us. It won't say, "What the hell are you talking about? What bug? What upload?" It will say, "You're absolutely right. I'm going to fix the bug with the upload." And then, it's going to do whatever it thinks that is, right? So, here's the mental model that I want you to use. 7:08 Imagine this, and I hope this doesn't hit too close to home for some. You're a senior engineer. You've done it all. You've worked Windows, Linux, Unix, macOS. You've done back end, front end, client. You know all the languages. You've read Stack Overflow. You got the most points on Stack Overflow. You can invoke an anonymous function every language known to anybody, right? Then, one day you walk to work, and somebody snatches you off the street, throws you in a van, puts a hood over your head, drives you somewhere, and then suddenly, hood is pulled off your hat and you find yourself in a room where there's nothing in front of you except a desk, and on that desk you see a computer, and on that computer there's a code base open in a text editor, there's a terminal, and a web browser. Then magically, or tragically in this case, somebody hands you a note, and on that not