Most agent frameworks get you to an 80% demo fast, then strand you — and the last 20% of reliability is exactly where production customers live. The bet here is counterintuitive: the agents that actually ship aren't autonomous loops at all, but mostly ordinary software with a handful of LLM calls placed precisely where judgment is genuinely needed.
Core Argument
- Treat the twelve factors as a menu, not a religion. Each one — own your prompts, small focused agents, agent as a stateless reducer, trigger from anywhere — is a standalone pattern you graft onto existing code, so you gain control without rewriting your product around a framework.
- Make the model's boundaries explicit. "Own your context window" means you decide exactly which tokens the LLM sees instead of trusting a framework's hidden serialization, and "tools are just structured outputs" reframes tool use as the model emitting JSON your deterministic code acts on — so every handoff between LLM and system stays inspectable, testable, and versioned.
- Humans are a tool call, not an afterthought. "Contact humans with tool calls" plus launch/pause/resume APIs turn agents into durable, resumable workflows instead of fragile chat sessions that die on the first ambiguous step.
Who It's For + Tradeoffs
Great fit if you're a builder dragging an LLM feature from impressive demo to dependable production, and you want vendor-neutral patterns you can adopt piecemeal. Look elsewhere if you want a turnkey framework or an installable library — this is a set of principles, diagrams, and TypeScript examples, not a package, and it assumes you're comfortable owning your own control flow.