[{"data":1,"prerenderedAt":174},["ShallowReactive",2],{"blog-en-the-lever-was-never-in-the-prompt":3,"header-blog-translations-/en/blog/the-lever-was-never-in-the-prompt":171},{"id":4,"title":5,"author":6,"body":7,"date":153,"description":154,"draft":155,"extension":156,"image":157,"meta":158,"navigation":159,"path":160,"seo":161,"stem":162,"tags":163,"translationKey":169,"__hash__":170},"blog_en/blog/en/the-lever-was-never-in-the-prompt.md","The Lever Was Never in the Prompt","Patrick Hofmann",{"type":8,"value":9,"toc":143},"minimark",[10,14,22,25,30,42,49,53,56,73,76,80,86,89,102,105,109,120,124,127,130,134,140],[11,12,13],"p",{},"There was no button to delete an agent.",[11,15,16,17,21],{},"To get rid of one, I logged in as root, found the home directory and cleared it away. At ",[18,19,20],"code",{},"/var/openape/homes/"," that worked without an admin password, before that it was a small ritual. In both cases: no button, no confirmation, no list something disappears from. Just me, a shell and the hope that I hit the right directory.",[11,23,24],{},"I actually wanted to sharpen an agent's system prompt. What I built was a destroy button with a danger zone.",[26,27,29],"h2",{"id":28},"how-it-was-before","How it was before",[11,31,32,33,36,37,41],{},"An agent was a system prompt. There was a ",[18,34,35],{},"SOUL.md"," — a persona file clamped as a hidden default in front of every system prompt — and that was the entire management surface. When an agent misbehaved, I tweaked the text. More behavior, sharper tone, an additional rule. That's the mental model from the time when there was ",[38,39,40],"em",{},"one"," agent: the agent is the intelligence, so working on the agent is working on the prompt.",[11,43,44,45,48],{},"On ",[18,46,47],{},"/agents"," they stood as a flat list. One entry per agent, no grouping, no hint of which Nest each runs on. As long as there were two, three, that was fine. A list with three rows needs no structure.",[26,50,52],{"id":51},"one-became-several","One became several",[11,54,55],{},"At some point it wasn't three anymore. And at that point every question starts being a different one.",[11,57,58,61,62,65,66,72],{},[38,59,60],{},"Which agent runs where?"," — irrelevant before, now a flat list that groups nothing. ",[38,63,64],{},"How do I get rid of one?"," — before a root login, now a root login I don't want to do ten times. ",[38,67,68,69,71],{},"How do I give a new agent a sensible persona without typing the ",[18,70,35],{}," text field from my head every time?"," — no problem before, because there was one agent and it had its prompt. Now: every spawn begins with an empty text field.",[11,74,75],{},"None of these questions is a prompt question. They're all questions about how I survey, create and get rid of a growing set of similar things. That's the problem a fleet has, not the one a model has.",[26,77,79],{"id":78},"why-i-built-a-destroy-button","Why I built a destroy button",[11,81,82,83,85],{},"The obvious reflex with an agent that doesn't do what it should is: better prompt. More context, clearer instruction, one more rule. That works for ",[38,84,40],{}," agent.",[11,87,88],{},"With several, the bottleneck isn't that an individual agent is too dumb. The bottleneck is that I have no overview of which ones exist, no safe way to remove one, and no fast way to set one up with a usable persona. A better prompt solves none of that. Those are ops and UI gaps, and you close those with ops and UI.",[11,90,91,92,94,95,97,98,101],{},"So I first built what hurt the most: a danger zone on the agent detail page with a destroy button that removes the agent from the UI instead of from a root shell — and that degrades cleanly on old headless agents instead of crashing. The rest followed from it: the ",[18,93,47],{}," list grouped by Nest instead of a flat enumeration, system-prompt presets in the spawn dialog instead of an empty text field, ",[18,96,35],{}," merged into the ",[18,99,100],{},"system_prompt"," instead of maintaining two places, a tool picker per agent.",[11,103,104],{},"Nothing of that makes an individual agent smarter. All of it makes a fleet manageable.",[26,106,108],{"id":107},"what-happened-under-the-ui","What happened under the UI",[11,110,111,112,115,116,119],{},"The UI was only the visible half. Underneath, the Nest stack went from HTTP API over a file-based intent layer to a pure registry watcher: the Nest reads the ",[18,113,114],{},"agents.json"," the CLI writes, no more contract than that is needed. UNIX permissions on the ",[18,117,118],{},"intents/"," directory replace the bearer-token check. That too is no prompt — it's plumbing that makes a fleet load-bearing.",[26,121,123],{"id":122},"what-fell-away","What fell away",[11,125,126],{},"The belief that working on the prompt means working on the agent.",[11,128,129],{},"As long as there was one agent, that was approximately true. The prompt was the only knob, so every improvement was a prompt improvement. What fell away is the assumption that this scales. With a fleet, the work that matters is almost never the prompt: it's the overview, safe deletion, fast spawn, the persona presets, the per-agent tool scope. The knobs all moved out of the model and into the management around it.",[26,131,133],{"id":132},"closing","Closing",[11,135,136,137,139],{},"I wanted to sharpen a system prompt and built a destroy button. That sounds like scope creep, but it's the opposite — it's the moment the actual problem became visible. The problem was never that an agent needs a better prompt. The problem was that one became several and I was still working with the tools for ",[38,138,40],{},".",[11,141,142],{},"The lever for a single agent sits in the prompt. The lever for many doesn't sit there — and it never did, I just never had enough agents to notice.",{"title":144,"searchDepth":145,"depth":145,"links":146},"",2,[147,148,149,150,151,152],{"id":28,"depth":145,"text":29},{"id":51,"depth":145,"text":52},{"id":78,"depth":145,"text":79},{"id":107,"depth":145,"text":108},{"id":122,"depth":145,"text":123},{"id":132,"depth":145,"text":133},"2026-05-14","There was no button to delete an agent. To get rid of one I had to log in as root and blow away a home directory. The day I built a destroy button with a danger zone was the day I admitted: managing many agents isn't a prompting problem anymore.",false,"md",null,{},true,"/blog/en/the-lever-was-never-in-the-prompt",{"title":5,"description":154},"blog/en/the-lever-was-never-in-the-prompt",[164,165,166,167,168],"OpenApe","AI Agents","Tooling","Infrastructure","Building in Public","the-lever-was-never-in-the-prompt","H_lqLCxM7RSyec1-1chQiATtL5uoUBG1337QVd6yNFw",{"en":172,"de":173},"/en/blog/the-lever-was-never-in-the-prompt","/de/blog/der-hebel-war-nie-im-prompt",1779001887238]