[{"data":1,"prerenderedAt":231},["ShallowReactive",2],{"layout-chapters":3,"sidebar-chapters":34,"chapter-factor-10":65,"all-chapters":203},[4,6,8,10,12,14,16,18,20,22,24,26,28,30,32],{"slug":5},"intro",{"slug":7},"brief-history",{"slug":9},"factor-1",{"slug":11},"factor-2",{"slug":13},"factor-3",{"slug":15},"factor-4",{"slug":17},"factor-5",{"slug":19},"factor-6",{"slug":21},"factor-7",{"slug":23},"factor-8",{"slug":25},"factor-9",{"slug":27},"factor-10",{"slug":29},"factor-11",{"slug":31},"factor-12",{"slug":33},"appendix",[35,37,39,41,43,45,47,49,51,53,55,57,59,61,63],{"slug":5,"title":36},"Introduction",{"slug":7,"title":38},"A Brief History of Software",{"slug":9,"title":40},"Factor 1: Natural Language to Tool Calls",{"slug":11,"title":42},"Factor 2: Own Your Prompts",{"slug":13,"title":44},"Factor 3: Own Your Context Window",{"slug":15,"title":46},"Factor 4: Tools Are Structured Outputs",{"slug":17,"title":48},"Factor 5: Unify Execution State",{"slug":19,"title":50},"Factor 6: Launch\u002FPause\u002FResume",{"slug":21,"title":52},"Factor 7: Contact Humans with Tools",{"slug":23,"title":54},"Factor 8: Own Your Control Flow",{"slug":25,"title":56},"Factor 9: Compact Errors into Context",{"slug":27,"title":58},"Factor 10: Small, Focused Agents",{"slug":29,"title":60},"Factor 11: Trigger from Anywhere",{"slug":31,"title":62},"Factor 12: Stateless Reducer",{"slug":33,"title":64},"Appendix: Pre-Fetch Context",{"id":66,"title":58,"body":67,"chapterIndex":196,"description":190,"extension":197,"meta":198,"navigation":199,"path":200,"seo":201,"slug":27,"stem":27,"__hash__":202},"chapters\u002Ffactor-10.md",{"type":68,"value":69,"toc":189},"minimark",[70,75,79,86,89,97,100,135,139,142,149,161,172,181,186],[71,72,74],"h3",{"id":73},"_10-small-focused-agents","10. Small, Focused Agents",[76,77,78],"p",{},"Rather than building monolithic agents that try to do everything, build small, focused agents that do one thing well. Agents are just one building block in a larger, mostly deterministic system.",[76,80,81],{},[82,83],"img",{"alt":84,"src":85},"1a0-small-focused-agents","https:\u002F\u002Fgithub.com\u002Fhumanlayer\u002F12-factor-agents\u002Fblob\u002Fmain\u002Fimg\u002F1a0-small-focused-agents.png?raw=true",[76,87,88],{},"The key insight here is about LLM limitations: the bigger and more complex a task is, the more steps it will take, which means a longer context window. As context grows, LLMs are more likely to get lost or lose focus. By keeping agents focused on specific domains with 3-10, maybe 20 steps max, we keep context windows manageable and LLM performance high.",[90,91,92],"blockquote",{},[93,94,96],"h4",{"id":95},"as-context-grows-llms-are-more-likely-to-get-lost-or-lose-focus","As context grows, LLMs are more likely to get lost or lose focus",[76,98,99],{},"Benefits of small, focused agents:",[101,102,103,111,117,123,129],"ol",{},[104,105,106,110],"li",{},[107,108,109],"strong",{},"Manageable Context",": Smaller context windows mean better LLM performance",[104,112,113,116],{},[107,114,115],{},"Clear Responsibilities",": Each agent has a well-defined scope and purpose",[104,118,119,122],{},[107,120,121],{},"Better Reliability",": Less chance of getting lost in complex workflows",[104,124,125,128],{},[107,126,127],{},"Easier Testing",": Simpler to test and validate specific functionality",[104,130,131,134],{},[107,132,133],{},"Improved Debugging",": Easier to identify and fix issues when they occur",[71,136,138],{"id":137},"what-if-llms-get-smarter","What if LLMs get smarter?",[76,140,141],{},"Do we still need this if LLMs get smart enough to handle 100-step+ workflows?",[76,143,144,145,148],{},"tl;dr yes. As agents and LLMs improve, they ",[107,146,147],{},"might"," naturally expand to be able to handle longer context windows. This means handling MORE of a larger DAG. This small, focused approach ensures you can get results TODAY, while preparing you to slowly expand agent scope as LLM context windows become more reliable. (If you've refactored large deterministic code bases before, you may be nodding your head right now).",[76,150,151],{},[152,153,157],"a",{"href":154,"rel":155},"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F0cd3f52c-046e-4d5e-bab4-57657157c82f",[156],"nofollow",[82,158],{"alt":159,"src":160},"gif","https:\u002F\u002Fgithub.com\u002Fhumanlayer\u002F12-factor-agents\u002Fblob\u002Fmain\u002Fimg\u002F1a5-agent-scope-grow.gif?raw=true",[162,163,164,171],"details",{},[165,166,167],"summary",{},[152,168,170],{"href":169},"https:\u002F\u002Fgithub.com\u002Fhumanlayer\u002F12-factor-agents\u002Fblob\u002Fmain\u002Fimg\u002F1a5-agent-scope-grow.gif","GIF Version","\n![gif](https:\u002F\u002Fgithub.com\u002Fhumanlayer\u002F12-factor-agents\u002Fblob\u002Fmain\u002Fimg\u002F1a5-agent-scope-grow.gif?raw=true)\n",[76,173,174,175,180],{},"Being intentional about size\u002Fscope of agents, and only growing in ways that allow you to maintain quality, is key here. As the ",[152,176,179],{"href":177,"rel":178},"https:\u002F\u002Fopen.substack.com\u002Fpub\u002Fswyx\u002Fp\u002Fnotebooklm?selection=08e1187c-cfee-4c63-93c9-71216640a5f8&utm_campaign=post-share-selection&utm_medium=web",[156],"team that built NotebookLM put it",":",[90,182,183],{},[76,184,185],{},"I feel like consistently, the most magical moments out of AI building come about for me when I'm really, really, really just close to the edge of the model capability",[76,187,188],{},"Regardless of where that boundary is, if you can find that boundary and get it right consistently, you'll be building magical experiences. There are many moats to be built here, but as usual, they take some engineering rigor.",{"title":190,"searchDepth":191,"depth":191,"links":192},"",2,[193,195],{"id":73,"depth":194,"text":74},3,{"id":137,"depth":194,"text":138},11,"md",{},true,"\u002Ffactor-10",{"title":58,"description":190},"pixY_w8bE7Rns77wpgbNR_VmL0D3tV6sTLG-FWvu4To",[204,206,208,209,210,212,214,216,218,220,222,224,225,227,229],{"slug":5,"title":36,"chapterIndex":205},0,{"slug":7,"title":38,"chapterIndex":207},1,{"slug":9,"title":40,"chapterIndex":191},{"slug":11,"title":42,"chapterIndex":194},{"slug":13,"title":44,"chapterIndex":211},4,{"slug":15,"title":46,"chapterIndex":213},5,{"slug":17,"title":48,"chapterIndex":215},6,{"slug":19,"title":50,"chapterIndex":217},7,{"slug":21,"title":52,"chapterIndex":219},8,{"slug":23,"title":54,"chapterIndex":221},9,{"slug":25,"title":56,"chapterIndex":223},10,{"slug":27,"title":58,"chapterIndex":196},{"slug":29,"title":60,"chapterIndex":226},12,{"slug":31,"title":62,"chapterIndex":228},13,{"slug":33,"title":64,"chapterIndex":230},14,1788741638422]