From the Desk of Josh Beckman (www.joshbeckman.org) home / notes / note-on-github-humanlayer-12-factor-agents-what-are-the-principles-we-can-use-to-build-llm-powered-software-that-is-actually-good-enough-to-put-in-the-hands-of-production-customers-via-github Even if LLMs continue to get exponentially more powerful, there will be core engineering techniques that make LLM-powered software more reliable, more scalable, and easier to maintain. • How We Got Here: A Brief History of Software • Factor 1: Natural Language to Tool Calls • Factor 2: Own your prompts • Factor 3: Own your context window • Factor 4: Tools are just structured outputs • Factor 5: Unify execution state and business state • Factor 6: Launch/Pause/Resume with simple APIs • Factor 7: Contact humans with tool calls • Factor 8: Own your control flow • Factor 9: Compact Errors into Context Window • Factor 10: Small, Focused Agents • Factor 11: Trigger from anywhere, meet users where they are • Factor 12: Make your agent a stateless reducer Josh Beckman Reference llm system-design GitHub - Humanlayer/12-Factor-Agents: What Are the Principles We Can Use to Build LLM-powered Software That Is Actually Good Enough to Put in the Hands of Production Customers? GitHub 2025, May 05, Monday Edit Comment/Reply via email Widgets Network Graph Legend Insight This widget generates “insights” about a post - you can read about how it works. Generating Keyboard Shortcuts Key Action o Source e Edit i Insight r Random h Home s or / Search Close www.joshbeckman.org/notes/886125748