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?

★ 27,072⑂ 2,046👁 226⑃ 70● 24▤ 0◈ 14
TypeScriptNOASSERTIONCreated 2025-03-30
TA的项目
27,072
stars
+17+118+431
2,046
forks
226
watchers
70
prs
24
issues
0
releases
14
discussions

README

12-Factor Agents - Principles for building reliable LLM applications



        

        

    

    

    
    




In the spirit of 12 Factor Apps.  The source for this project is public at https://github.com/humanlayer/12-factor-agents, and I welcome your feedback and contributions. Let's figure this out together!

 [!TIP]
 Missed the AI Engineer World's Fair? Catch the talk here

 Looking for Context Engineering? Jump straight to factor 3

 Want to contribute to npx/uvx create-12-factor-agent - check out the discussion thread







Hi, I'm Dex. I've been hacking on AI agents for a while. 


I've tried every agent framework out there, from the plug-and-play crew/langchains to the "minimalist" smolagents of the world to the "production grade" langraph, griptape, etc. 

I've talked to a lot of really strong founders, in and out of YC, who are all building really impressive things with AI. Most of them are rolling the stack themselves. I don't see a lot of frameworks in production customer-facing agents.

I've been surprised to find that most of the products out there billing themselves as "AI Agents" are not all that agentic. A lot of them are mostly deterministic code, with LLM steps sprinkled in at just the right points to make the experience truly magical.

Agents, at least the good ones, don't follow the "here's your prompt, here's a bag of tools, loop until you hit the goal" pattern. Rather, they are comprised of mostly just software. 

So, I set out to answer:

  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?

Welcome to 12-factor agents. As every Chicago mayor since Daley has consistently plastered all over the city's major airports, we're glad you're here.

Special thanks to @iantbutler01, @tnm, @hellovai, @stantonk, @balanceiskey, @AdjectiveAllison, @pfbyjy, @a-churchill, and the SF MLOps community for early feedback on this guide.

 The Short Version: The 12 Factors

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

 Visual Nav

|    |    |    |
|----|----|-----|
| |  |  |
| |  |  |
|  |  |  |
|  |  |  |

 How we got here

For a deeper dive on my agent journey and what led us here, check out A Brief History of Software - a quick summary here:

 Th

Top issues

Discussions

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON