[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-the-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expa-round2-article":3,"summaries-facets-categories":177,"article-related-the-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expa-round2-article":3763},{"id":4,"title":5,"ai_summary":6,"author":7,"body":8,"category":152,"date_modified":153,"description":154,"excerpt":7,"extension":155,"faq":153,"keywords":156,"meta":163,"meta_description":164,"meta_title":165,"navigation":166,"path":167,"primary_keyword":18,"published_at":153,"related_posts":168,"sections":169,"seo":171,"sitemap":172,"slug":173,"status":174,"stem":175,"__hash__":176},"articles\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expa-round2-article.md","The 3-Core-Agent Harness: Why Production Agents Need Structure, Not Just Models","The 3-core-agent harness is a production architecture that splits AI tasks into three specialized roles: Planner, Generator, and Evaluator. This separation prevents context drift and self-evaluation bias, allowing systems to complete complex, multi-hour tasks that single-agent systems fail to execute reliably due to lack of internal skepticism.","",{"type":9,"value":10,"toc":143},"minimark",[11,20,23,28,34,37,40,44,47,54,64,68,71,74,102,105,109,112,115,118,122,125,128,132,135,138],[12,13,14,15,19],"p",{},"Single-agent systems are great for demos but reliably fail in production because they are essentially developers forced to be their own product managers and QA engineers simultaneously. The ",[16,17,18],"strong",{},"3-core-agent harness"," is a production-grade architecture that separates concerns into specialized Planner, Generator, and Evaluator agents. This structural division prevents context loss and self-evaluation bias, enabling AI systems to complete complex, multi-hour tasks that single agents fail to execute reliably.",[12,21,22],{},"We have all seen the \"cool demo\" where an agent builds a landing page in sixty seconds. However, when you ask that same agent to manage a four-hour migration or build a full-stack feature, the wheels come off. The failure isn't usually the model's intelligence; it is the lack of architectural constraints. Without a harness, agents suffer from context window saturation and a \"rubber-stamping\" effect where they stop being critical of their own errors.",[24,25,27],"h2",{"id":26},"solving-the-context-coherence-and-self-evaluation-bias","Solving the Context Coherence and Self-Evaluation Bias",[12,29,30,31,33],{},"Single-agent failures stem from two psychological-parallel flaws: context coherence loss, where the model forgets its original goal during long sessions, and self-evaluation bias, where models consistently overpraise their own mediocre outputs. A ",[16,32,18],{}," solves this by externalizing the \"goal\" and \"critique\" into separate model instances to ensure the agent doing the work is never checking its own work.",[12,35,36],{},"In sessions lasting four hours or more, \"context drift\" becomes an inevitability. As the context window fills with logs, intermediate code snippets, and conversational filler, the original requirement loses its \"gravity\" in the model’s attention mechanism. Anthropic’s 2026 research, \"Harness Design for Long-Running Application Development,\" indicates that agents tend to respond with confident praise when asked to evaluate their own work, even when the quality is objectively poor.",[12,38,39],{},"Simply increasing the context window does not fix this. Reasoning decay happens because the model is trying to juggle too many conflicting internal roles. By splitting the work, you ensure the Planner stays focused on the \"North Star,\" while the Generator focuses on the immediate technical implementation.",[24,41,43],{"id":42},"the-anatomy-of-a-3-core-agent-harness","The Anatomy of a 3-Core-Agent Harness",[12,45,46],{},"A robust 3-core-agent harness functions like a professional software development team, with the Planner defining the \"what,\" the Generator executing the \"how,\" and the Evaluator verifying those results against the original specification. This intentional separation ensures that the technical implementation never drifts from the business requirements by mirroring the classic software development lifecycle at machine speed.",[12,48,49,50,53],{},"The ",[16,51,52],{},"Planner"," agent acts as the product manager. It converts brief, often vague prompts into high-level specifications. The goal here is clarity without over-specification; if the Planner dictates every line of code, it creates cascading errors. Instead, it defines what \"correct\" looks like, often aiming for a higher qualitative bar to push the Generator further.",[12,55,49,56,59,60,63],{},[16,57,58],{},"Generator"," is the \"developer\" in the box. It works in focused sprints, using standard tools like Git, Vite, or a CLI rather than just outputting raw text. Finally, the ",[16,61,62],{},"Evaluator"," must be architecturally separate to maintain skepticism. It uses runtime validation—like Playwright for UI tests or API calls—to verify that the Generator actually met the Planner's requirements.",[24,65,67],{"id":66},"the-gan-inspired-feedback-loop-turning-rubrics-into-loss-functions","The GAN-Inspired Feedback Loop: Turning Rubrics into Loss Functions",[12,69,70],{},"The system operates as a generative adversarial network (GAN) where the Evaluator’s skeptical assessment drives the Generator's iterative improvement. By using weighted rubrics as \"loss functions,\" the harness transforms subjective quality judgments into objective, optimizable scoring signals. This creates a closed-loop system that refuses to accept \"good enough\" while maintaining a high bar for production-ready code.",[12,72,73],{},"The cycle follows a strict path:",[75,76,77,84,90,96],"ul",{},[78,79,80,83],"li",{},[16,81,82],{},"Spec",": The Planner sets the target.",[78,85,86,89],{},[16,87,88],{},"Implementation",": The Generator builds a version.",[78,91,92,95],{},[16,93,94],{},"Skeptical Review",": The Evaluator attempts to break it.",[78,97,98,101],{},[16,99,100],{},"Refinement",": The Generator receives structured feedback and tries again.",[12,103,104],{},"This loop relies on \"sprint contracts\"—shared definitions of \"done\" between agents. Rather than giving vague feedback like \"make the UI better,\" the Evaluator provides structured PASS\u002FFAIL criteria based on the rubric. If the Evaluator finds that a button doesn't trigger a modal, the Generator receives a specific failure report rather than a generic prompt to \"fix the bugs.\"",[24,106,108],{"id":107},"production-patterns-from-stripes-minions-to-virtualized-sandboxes","Production Patterns: From Stripe’s Minions to Virtualized Sandboxes",[12,110,111],{},"Leading engineering teams at Stripe and OpenAI have moved beyond generic frameworks to custom harnesses that treat agents as stateless \"cattle\" rather than fragile \"pets.\" These systems use centralized toolservers and isolated devboxes to ensure every agent action is observable, reproducible, and verifiable across complex, multi-step engineering workflows.",[12,113,114],{},"Stripe’s \"Minions\" system is a prime example, shipping over 1,300 pull requests per week as detailed in Jasnova's 2026 analysis of harness engineering. They use a centralized Model Context Protocol (MCP) server called \"Toolshed\" to give agents access to over 500 internal tools. Each agent operates in a virtualized \"devbox\" that spins up in seconds, ensuring that if an agent messes up the environment, the harness can simply reboot it.",[12,116,117],{},"Similarly, OpenAI has integrated browser validation into agent runtimes. By using the Chrome DevTools Protocol, the Evaluator role can take screenshots, inspect the DOM, and verify that a fix actually works in a real browser. This level of observability is what separates a toy from a tool.",[24,119,121],{"id":120},"the-20x-cost-premium-balancing-the-3-core-agent-harness-economics","The 20x Cost Premium: Balancing the 3-Core-Agent Harness Economics",[12,123,124],{},"Implementing a 3-core-agent harness involves a significant cost trade-off, often increasing token usage by 20x compared to solo agents. However, this investment represents the difference between a $9 broken prototype and a $200 fully functional production application. This cost premium facilitates the transition from unusable code to a shipped, feature-complete product that requires zero human intervention.",[12,126,127],{},"The baseline for multi-agent systems is roughly 3x the token burn of a single agent, but the iterative loops often push this much higher. As foundation models improve, engineers can follow the \"Shrinking Harness\" principle—removing components that the model can now handle natively. However, for high-stakes production tasks, the cost of a failed execution is almost always higher than the cost of the extra tokens.",[24,129,131],{"id":130},"conclusion","Conclusion",[12,133,134],{},"The 3-core-agent harness proves that the \"intelligence\" of an AI system is as much a product of its architectural constraints as it is the underlying model. By separating planning, generation, and evaluation, builders can finally ship agents that handle long-running, complex tasks without degrading. This shift from monolithic prompts to structured workflows is the key to moving beyond brittle demos.",[12,136,137],{},"Audit your current agent implementation for \"self-grading.\" If your agent is evaluating its own output, try splitting that evaluation into a separate, skeptical model instance using a structured rubric and observe the immediate delta in quality. Separating the \"doer\" from the \"checker\" is the fastest way to move an AI project from a demo to a shipped product.",[12,139,140],{},[16,141,142],{},"Ready to build more reliable agents? Start by decoupling your QA logic from your generation prompt and implementing a dedicated Evaluator role in your next agentic workflow.",{"title":7,"searchDepth":144,"depth":144,"links":145},2,[146,147,148,149,150,151],{"id":26,"depth":144,"text":27},{"id":42,"depth":144,"text":43},{"id":66,"depth":144,"text":67},{"id":107,"depth":144,"text":108},{"id":120,"depth":144,"text":121},{"id":130,"depth":144,"text":131},"AI Engineering",null,"Single-agent systems are great for demos but reliably fail in production because they are essentially developers forced to be their own product managers and QA engineers simultaneously. The 3-core-agent harness is a production-grade architecture that separates concerns into specialized Planner, Generator, and Evaluator agents. This structural division prevents context loss and self-evaluation bias, enabling AI systems to complete complex, multi-hour tasks that single agents fail to execute reliably.","md",[18,157,158,159,160,161,162],"AI agent architecture","agentic workflows","LLM evaluation bias","context coherence","Anthropic agent research","AI engineering patterns",{},"Learn why the 3-core-agent harness (Planner, Generator, Evaluator) is the standard for production AI systems to solve context drift and self-evaluation bias.","The 3-Core-Agent Harness for Production AI Agents",true,"\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expa-round2-article",[],{"intro":170,"solving-context-coherence":27,"anatomy-of-harness":43,"gan-feedback-loop":67,"production-patterns":108,"economics-of-harness":121,"conclusion":131},"(intro)",{"title":5,"description":154},{"loc":167},"3-core-agent-harness-production-architecture","ready","articles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expa-round2-article","CBd2pv8olaPjtCyjEO63oVaTjk18WRC-a7F-z0yiopo",[178,181,184,187,190,193,195,197,199,201,203,205,208,210,212,214,216,218,220,222,224,226,229,232,234,236,239,241,243,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,503,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,563,565,567,569,571,573,575,577,579,581,583,585,587,589,591,593,595,597,599,601,603,605,607,609,611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,743,745,747,749,751,753,755,757,759,761,763,765,767,769,771,773,775,777,779,781,783,785,787,789,791,793,795,797,799,801,803,805,807,809,811,813,815,817,819,821,823,825,827,829,831,833,835,837,839,841,843,845,847,849,851,853,855,857,859,861,863,865,867,869,871,873,875,877,879,881,883,885,887,889,891,893,895,897,899,901,903,905,907,909,911,913,915,917,919,921,923,925,927,929,931,933,935,937,939,941,943,945,947,949,951,953,955,957,959,961,963,965,967,969,971,973,975,977,979,981,983,985,987,989,991,993,995,997,999,1001,1003,1005,1007,1009,1011,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037,1039,1041,1043,1045,1047,1049,1051,1053,1055,1057,1059,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095,1097,1099,1101,1103,1105,1107,1109,1111,1113,1115,1117,1119,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335,1337,1339,1341,1343,1345,1347,1349,1351,1353,1355,1357,1359,1361,1363,1365,1367,1369,1371,1373,1375,1377,1379,1381,1383,1385,1387,1389,1391,1393,1395,1397,1399,1401,1403,1405,1407,1409,1411,1413,1415,1417,1419,1421,1423,1425,1427,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467,1469,1471,1473,1475,1477,1479,1481,1483,1485,1487,1489,1491,1493,1495,1497,1499,1501,1503,1505,1507,1509,1511,1513,1515,1517,1519,1521,1523,1525,1527,1529,1531,1533,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585,1587,1589,1591,1593,1595,1597,1599,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637,1639,1641,1643,1645,1647,1649,1651,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671,1673,1675,1677,1679,1681,1683,1685,1687,1689,1691,1693,1695,1697,1699,1701,1703,1705,1707,1709,1711,1713,1715,1717,1719,1721,1723,1725,1727,1729,1731,1733,1735,1737,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783,1785,1787,1789,1791,1793,1795,1797,1799,1801,1803,1805,1807,1809,1811,1813,1815,1817,1819,1821,1823,1825,1827,1829,1831,1833,1835,1837,1839,1841,1843,1845,1847,1849,1851,1853,1855,1857,1859,1861,1863,1865,1867,1869,1871,1873,1875,1877,1879,1881,1883,1885,1887,1889,1891,1893,1895,1897,1899,1901,1903,1905,1907,1909,1911,1913,1915,1917,1919,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943,1945,1947,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973,1975,1977,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027,2029,2031,2033,2035,2037,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057,2059,2061,2063,2065,2067,2069,2071,2073,2075,2077,2079,2081,2083,2085,2087,2089,2091,2093,2095,2097,2099,2101,2103,2105,2107,2109,2111,2113,2115,2117,2119,2121,2123,2125,2127,2129,2131,2133,2135,2137,2139,2141,2143,2145,2147,2149,2151,2153,2155,2157,2159,2161,2163,2165,2167,2169,2171,2173,2175,2177,2179,2181,2183,2185,2187,2189,2191,2193,2195,2197,2199,2201,2203,2205,2207,2209,2211,2213,2215,2217,2219,2221,2223,2225,2227,2229,2231,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403,2405,2407,2409,2411,2413,2415,2417,2419,2421,2423,2425,2427,2429,2431,2433,2435,2437,2439,2441,2443,2445,2447,2449,2451,2453,2455,2457,2459,2461,2463,2465,2467,2469,2471,2473,2475,2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497,2499,2501,2503,2505,2507,2509,2511,2513,2515,2517,2519,2521,2523,2525,2527,2529,2531,2533,2535,2537,2539,2541,2543,2545,2547,2549,2551,2553,2555,2557,2559,2561,2563,2565,2567,2569,2571,2573,2575,2577,2579,2581,2583,2585,2587,2589,2591,2593,2595,2597,2599,2601,2603,2605,2607,2609,2611,2613,2615,2617,2619,2621,2623,2625,2627,2629,2631,2633,2635,2637,2639,2641,2643,2645,2647,2649,2651,2653,2655,2657,2659,2661,2663,2665,2667,2669,2671,2673,2675,2677,2679,2681,2683,2685,2687,2689,2691,2693,2695,2697,2699,2701,2703,2705,2707,2709,2711,2713,2715,2717,2719,2721,2723,2725,2727,2729,2731,2733,2735,2737,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2759,2761,2763,2765,2767,2769,2771,2773,2775,2777,2779,2781,2783,2785,2787,2789,2791,2793,2795,2797,2799,2801,2803,2805,2807,2809,2811,2813,2815,2817,2819,2821,2823,2825,2827,2829,2831,2833,2835,2837,2839,2841,2843,2845,2847,2849,2851,2853,2855,2857,2859,2861,2863,2865,2867,2869,2871,2873,2875,2877,2879,2881,2883,2885,2887,2889,2891,2893,2895,2897,2899,2901,2903,2905,2907,2909,2911,2913,2915,2917,2919,2921,2923,2925,2927,2929,2931,2933,2935,2937,2939,2941,2943,2945,2947,2949,2951,2953,2955,2957,2959,2961,2963,2965,2967,2969,2971,2973,2975,2977,2979,2981,2983,2985,2987,2989,2991,2993,2995,2997,2999,3001,3003,3005,3007,3009,3011,3013,3015,3017,3019,3021,3023,3025,3027,3029,3031,3033,3035,3037,3039,3041,3043,3045,3047,3049,3051,3053,3055,3057,3059,3061,3063,3065,3067,3069,3071,3073,3075,3077,3079,3081,3083,3085,3087,3089,3091,3093,3095,3097,3099,3101,3103,3105,3107,3109,3111,3113,3115,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145,3147,3149,3151,3153,3155,3157,3159,3161,3163,3165,3167,3169,3171,3173,3175,3177,3179,3181,3183,3185,3187,3189,3191,3193,3195,3197,3199,3201,3203,3205,3207,3209,3211,3213,3215,3217,3219,3221,3223,3225,3227,3229,3231,3233,3235,3237,3239,3241,3243,3245,3247,3249,3251,3253,3255,3257,3259,3261,3263,3265,3267,3269,3271,3273,3275,3277,3279,3281,3283,3285,3287,3289,3291,3293,3295,3297,3299,3301,3303,3305,3307,3309,3311,3313,3315,3317,3319,3321,3323,3325,3327,3329,3331,3333,3335,3337,3339,3341,3343,3345,3347,3349,3351,3353,3355,3357,3359,3361,3363,3365,3367,3369,3371,3373,3375,3377,3379,3381,3383,3385,3387,3389,3391,3393,3395,3397,3399,3401,3403,3405,3407,3409,3411,3413,3415,3417,3419,3421,3423,3425,3427,3429,3431,3433,3435,3437,3439,3441,3443,3445,3447,3449,3451,3453,3455,3457,3459,3461,3463,3465,3467,3469,3471,3473,3475,3477,3479,3481,3483,3485,3487,3489,3491,3493,3495,3497,3499,3501,3503,3505,3507,3509,3511,3513,3515,3517,3519,3521,3523,3525,3527,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3555,3557,3559,3561,3563,3565,3567,3569,3571,3573,3575,3577,3579,3581,3583,3585,3587,3589,3591,3593,3595,3597,3599,3601,3603,3605,3607,3609,3611,3613,3615,3617,3619,3621,3623,3625,3627,3629,3631,3633,3635,3637,3639,3641,3643,3645,3647,3649,3651,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671,3673,3675,3677,3679,3681,3683,3685,3687,3689,3691,3693,3695,3697,3699,3701,3703,3705,3707,3709,3711,3713,3715,3717,3719,3721,3723,3725,3727,3729,3731,3733,3735,3737,3739,3741,3743,3745,3747,3749,3751,3753,3755,3757,3759,3761],{"categories":179},[180],"Developer Productivity",{"categories":182},[183],"Business & SaaS",{"categories":185},[186],"AI & LLMs",{"categories":188},[189],"AI Automation",{"categories":191},[192],"Product Strategy",{"categories":194},[186],{"categories":196},[180],{"categories":198},[183],{"categories":200},[],{"categories":202},[186],{"categories":204},[],{"categories":206},[207],"AI News & Trends",{"categories":209},[189],{"categories":211},[207],{"categories":213},[189],{"categories":215},[189],{"categories":217},[186],{"categories":219},[186],{"categories":221},[207],{"categories":223},[186],{"categories":225},[],{"categories":227},[228],"Design & Frontend",{"categories":230},[231],"Data Science & Visualization",{"categories":233},[207],{"categories":235},[],{"categories":237},[238],"Software Engineering",{"categories":240},[186],{"categories":242},[189],{"categories":244},[245],"Marketing & Growth",{"categories":247},[186],{"categories":249},[189],{"categories":251},[],{"categories":253},[],{"categories":255},[228],{"categories":257},[189],{"categories":259},[180],{"categories":261},[228],{"categories":263},[186],{"categories":265},[189],{"categories":267},[207],{"categories":269},[],{"categories":271},[],{"categories":273},[189],{"categories":275},[238],{"categories":277},[],{"categories":279},[183],{"categories":281},[],{"categories":283},[],{"categories":285},[189],{"categories":287},[189],{"categories":289},[186],{"categories":291},[],{"categories":293},[238],{"categories":295},[],{"categories":297},[],{"categories":299},[],{"categories":301},[186],{"categories":303},[245],{"categories":305},[228],{"categories":307},[228],{"categories":309},[186],{"categories":311},[189],{"categories":313},[186],{"categories":315},[186],{"categories":317},[189],{"categories":319},[189],{"categories":321},[231],{"categories":323},[207],{"categories":325},[189],{"categories":327},[245],{"categories":329},[189],{"categories":331},[192],{"categories":333},[],{"categories":335},[189],{"categories":337},[],{"categories":339},[189],{"categories":341},[238],{"categories":343},[228],{"categories":345},[186],{"categories":347},[],{"categories":349},[],{"categories":351},[189],{"categories":353},[],{"categories":355},[186],{"categories":357},[],{"categories":359},[180],{"categories":361},[238],{"categories":363},[183],{"categories":365},[207],{"categories":367},[186],{"categories":369},[],{"categories":371},[186],{"categories":373},[],{"categories":375},[238],{"categories":377},[231],{"categories":379},[],{"categories":381},[186],{"categories":383},[228],{"categories":385},[],{"categories":387},[228],{"categories":389},[189],{"categories":391},[],{"categories":393},[189],{"categories":395},[207],{"categories":397},[183],{"categories":399},[186],{"categories":401},[],{"categories":403},[189],{"categories":405},[186],{"categories":407},[192],{"categories":409},[],{"categories":411},[186],{"categories":413},[189],{"categories":415},[189],{"categories":417},[],{"categories":419},[231],{"categories":421},[186],{"categories":423},[],{"categories":425},[180],{"categories":427},[183],{"categories":429},[186],{"categories":431},[189],{"categories":433},[238],{"categories":435},[186],{"categories":437},[],{"categories":439},[],{"categories":441},[186],{"categories":443},[],{"categories":445},[228],{"categories":447},[],{"categories":449},[186],{"categories":451},[],{"categories":453},[189],{"categories":455},[186],{"categories":457},[228],{"categories":459},[],{"categories":461},[186],{"categories":463},[186],{"categories":465},[183],{"categories":467},[189],{"categories":469},[186],{"categories":471},[228],{"categories":473},[189],{"categories":475},[],{"categories":477},[],{"categories":479},[207],{"categories":481},[],{"categories":483},[186],{"categories":485},[183,245],{"categories":487},[],{"categories":489},[186],{"categories":491},[],{"categories":493},[],{"categories":495},[186],{"categories":497},[],{"categories":499},[186],{"categories":501},[502],"DevOps & Cloud",{"categories":504},[],{"categories":506},[207],{"categories":508},[228],{"categories":510},[],{"categories":512},[207],{"categories":514},[207],{"categories":516},[186],{"categories":518},[245],{"categories":520},[],{"categories":522},[183],{"categories":524},[],{"categories":526},[186,502],{"categories":528},[186],{"categories":530},[186],{"categories":532},[189],{"categories":534},[186,238],{"categories":536},[231],{"categories":538},[186],{"categories":540},[245],{"categories":542},[189],{"categories":544},[189],{"categories":546},[],{"categories":548},[189],{"categories":550},[186,183],{"categories":552},[],{"categories":554},[228],{"categories":556},[228],{"categories":558},[],{"categories":560},[],{"categories":562},[207],{"categories":564},[],{"categories":566},[180],{"categories":568},[238],{"categories":570},[186],{"categories":572},[228],{"categories":574},[189],{"categories":576},[238],{"categories":578},[207],{"categories":580},[228],{"categories":582},[],{"categories":584},[186],{"categories":586},[186],{"categories":588},[186],{"categories":590},[207],{"categories":592},[180],{"categories":594},[186],{"categories":596},[189],{"categories":598},[502],{"categories":600},[228],{"categories":602},[189],{"categories":604},[],{"categories":606},[],{"categories":608},[228],{"categories":610},[207],{"categories":612},[231],{"categories":614},[],{"categories":616},[186],{"categories":618},[186],{"categories":620},[183],{"categories":622},[186],{"categories":624},[186],{"categories":626},[207],{"categories":628},[],{"categories":630},[189],{"categories":632},[238],{"categories":634},[],{"categories":636},[186],{"categories":638},[186],{"categories":640},[189],{"categories":642},[],{"categories":644},[],{"categories":646},[186],{"categories":648},[],{"categories":650},[183],{"categories":652},[189],{"categories":654},[],{"categories":656},[180],{"categories":658},[186],{"categories":660},[183],{"categories":662},[207],{"categories":664},[],{"categories":666},[],{"categories":668},[],{"categories":670},[207],{"categories":672},[207],{"categories":674},[],{"categories":676},[],{"categories":678},[183],{"categories":680},[],{"categories":682},[],{"categories":684},[180],{"categories":686},[],{"categories":688},[245],{"categories":690},[189],{"categories":692},[183],{"categories":694},[189],{"categories":696},[238],{"categories":698},[],{"categories":700},[192],{"categories":702},[228],{"categories":704},[238],{"categories":706},[186],{"categories":708},[189],{"categories":710},[183],{"categories":712},[186],{"categories":714},[],{"categories":716},[],{"categories":718},[238],{"categories":720},[231],{"categories":722},[192],{"categories":724},[189],{"categories":726},[186],{"categories":728},[],{"categories":730},[502],{"categories":732},[],{"categories":734},[189],{"categories":736},[],{"categories":738},[],{"categories":740},[186],{"categories":742},[228],{"categories":744},[245],{"categories":746},[189],{"categories":748},[],{"categories":750},[180],{"categories":752},[],{"categories":754},[207],{"categories":756},[186,502],{"categories":758},[207],{"categories":760},[186],{"categories":762},[183],{"categories":764},[186],{"categories":766},[],{"categories":768},[183],{"categories":770},[],{"categories":772},[238],{"categories":774},[228],{"categories":776},[207],{"categories":778},[231],{"categories":780},[180],{"categories":782},[186],{"categories":784},[238],{"categories":786},[],{"categories":788},[],{"categories":790},[192],{"categories":792},[],{"categories":794},[186],{"categories":796},[],{"categories":798},[228],{"categories":800},[228],{"categories":802},[228],{"categories":804},[],{"categories":806},[],{"categories":808},[207],{"categories":810},[189],{"categories":812},[186],{"categories":814},[186],{"categories":816},[186],{"categories":818},[183],{"categories":820},[186],{"categories":822},[],{"categories":824},[238],{"categories":826},[238],{"categories":828},[183],{"categories":830},[],{"categories":832},[186],{"categories":834},[186],{"categories":836},[183],{"categories":838},[207],{"categories":840},[245],{"categories":842},[189],{"categories":844},[],{"categories":846},[228],{"categories":848},[],{"categories":850},[186],{"categories":852},[],{"categories":854},[183],{"categories":856},[189],{"categories":858},[],{"categories":860},[502],{"categories":862},[231],{"categories":864},[238],{"categories":866},[245],{"categories":868},[238],{"categories":870},[189],{"categories":872},[],{"categories":874},[],{"categories":876},[189],{"categories":878},[180],{"categories":880},[189],{"categories":882},[192],{"categories":884},[183],{"categories":886},[],{"categories":888},[186],{"categories":890},[192],{"categories":892},[186],{"categories":894},[186],{"categories":896},[245],{"categories":898},[228],{"categories":900},[189],{"categories":902},[],{"categories":904},[],{"categories":906},[502],{"categories":908},[238],{"categories":910},[],{"categories":912},[189],{"categories":914},[186],{"categories":916},[228,186],{"categories":918},[180],{"categories":920},[],{"categories":922},[186],{"categories":924},[180],{"categories":926},[228],{"categories":928},[189],{"categories":930},[238],{"categories":932},[],{"categories":934},[186],{"categories":936},[],{"categories":938},[180],{"categories":940},[],{"categories":942},[189],{"categories":944},[192],{"categories":946},[186],{"categories":948},[186],{"categories":950},[228],{"categories":952},[189],{"categories":954},[502],{"categories":956},[228],{"categories":958},[189],{"categories":960},[186],{"categories":962},[186],{"categories":964},[186],{"categories":966},[207],{"categories":968},[],{"categories":970},[192],{"categories":972},[189],{"categories":974},[228],{"categories":976},[189],{"categories":978},[238],{"categories":980},[228],{"categories":982},[189],{"categories":984},[207],{"categories":986},[],{"categories":988},[186],{"categories":990},[228],{"categories":992},[186],{"categories":994},[180],{"categories":996},[207],{"categories":998},[186],{"categories":1000},[245],{"categories":1002},[186],{"categories":1004},[186],{"categories":1006},[189],{"categories":1008},[189],{"categories":1010},[186],{"categories":1012},[189],{"categories":1014},[228],{"categories":1016},[186],{"categories":1018},[],{"categories":1020},[],{"categories":1022},[238],{"categories":1024},[],{"categories":1026},[180],{"categories":1028},[502],{"categories":1030},[],{"categories":1032},[180],{"categories":1034},[183],{"categories":1036},[245],{"categories":1038},[],{"categories":1040},[183],{"categories":1042},[],{"categories":1044},[],{"categories":1046},[],{"categories":1048},[],{"categories":1050},[],{"categories":1052},[186],{"categories":1054},[189],{"categories":1056},[502],{"categories":1058},[180],{"categories":1060},[186],{"categories":1062},[238],{"categories":1064},[192],{"categories":1066},[186],{"categories":1068},[245],{"categories":1070},[186],{"categories":1072},[186],{"categories":1074},[186],{"categories":1076},[186,180],{"categories":1078},[238],{"categories":1080},[238],{"categories":1082},[228],{"categories":1084},[186],{"categories":1086},[],{"categories":1088},[],{"categories":1090},[],{"categories":1092},[238],{"categories":1094},[231],{"categories":1096},[207],{"categories":1098},[228],{"categories":1100},[],{"categories":1102},[186],{"categories":1104},[186],{"categories":1106},[],{"categories":1108},[],{"categories":1110},[189],{"categories":1112},[186],{"categories":1114},[183],{"categories":1116},[],{"categories":1118},[180],{"categories":1120},[186],{"categories":1122},[180],{"categories":1124},[186],{"categories":1126},[238],{"categories":1128},[245],{"categories":1130},[186,228],{"categories":1132},[207],{"categories":1134},[228],{"categories":1136},[],{"categories":1138},[502],{"categories":1140},[228],{"categories":1142},[189],{"categories":1144},[],{"categories":1146},[],{"categories":1148},[],{"categories":1150},[],{"categories":1152},[238],{"categories":1154},[189],{"categories":1156},[189],{"categories":1158},[502],{"categories":1160},[186],{"categories":1162},[186],{"categories":1164},[186],{"categories":1166},[],{"categories":1168},[228],{"categories":1170},[],{"categories":1172},[],{"categories":1174},[189],{"categories":1176},[],{"categories":1178},[],{"categories":1180},[245],{"categories":1182},[245],{"categories":1184},[189],{"categories":1186},[],{"categories":1188},[186],{"categories":1190},[186],{"categories":1192},[238],{"categories":1194},[228],{"categories":1196},[228],{"categories":1198},[189],{"categories":1200},[180],{"categories":1202},[186],{"categories":1204},[228],{"categories":1206},[228],{"categories":1208},[189],{"categories":1210},[189],{"categories":1212},[186],{"categories":1214},[],{"categories":1216},[],{"categories":1218},[186],{"categories":1220},[189],{"categories":1222},[207],{"categories":1224},[238],{"categories":1226},[180],{"categories":1228},[186],{"categories":1230},[],{"categories":1232},[189],{"categories":1234},[189],{"categories":1236},[],{"categories":1238},[180],{"categories":1240},[186],{"categories":1242},[180],{"categories":1244},[180],{"categories":1246},[],{"categories":1248},[],{"categories":1250},[189],{"categories":1252},[189],{"categories":1254},[186],{"categories":1256},[186],{"categories":1258},[207],{"categories":1260},[231],{"categories":1262},[192],{"categories":1264},[207],{"categories":1266},[228],{"categories":1268},[],{"categories":1270},[207],{"categories":1272},[],{"categories":1274},[],{"categories":1276},[],{"categories":1278},[],{"categories":1280},[238],{"categories":1282},[231],{"categories":1284},[],{"categories":1286},[186],{"categories":1288},[186],{"categories":1290},[231],{"categories":1292},[238],{"categories":1294},[],{"categories":1296},[],{"categories":1298},[189],{"categories":1300},[207],{"categories":1302},[207],{"categories":1304},[189],{"categories":1306},[180],{"categories":1308},[186,502],{"categories":1310},[],{"categories":1312},[228],{"categories":1314},[180],{"categories":1316},[189],{"categories":1318},[228],{"categories":1320},[],{"categories":1322},[189],{"categories":1324},[189],{"categories":1326},[186],{"categories":1328},[245],{"categories":1330},[238],{"categories":1332},[228],{"categories":1334},[],{"categories":1336},[189],{"categories":1338},[186],{"categories":1340},[189],{"categories":1342},[189],{"categories":1344},[189],{"categories":1346},[245],{"categories":1348},[189],{"categories":1350},[186],{"categories":1352},[],{"categories":1354},[245],{"categories":1356},[207],{"categories":1358},[189],{"categories":1360},[],{"categories":1362},[],{"categories":1364},[186],{"categories":1366},[189],{"categories":1368},[207],{"categories":1370},[189],{"categories":1372},[],{"categories":1374},[],{"categories":1376},[],{"categories":1378},[189],{"categories":1380},[],{"categories":1382},[],{"categories":1384},[231],{"categories":1386},[186],{"categories":1388},[231],{"categories":1390},[207],{"categories":1392},[186],{"categories":1394},[186],{"categories":1396},[189],{"categories":1398},[186],{"categories":1400},[],{"categories":1402},[],{"categories":1404},[502],{"categories":1406},[],{"categories":1408},[],{"categories":1410},[180],{"categories":1412},[],{"categories":1414},[],{"categories":1416},[],{"categories":1418},[],{"categories":1420},[238],{"categories":1422},[207],{"categories":1424},[245],{"categories":1426},[183],{"categories":1428},[186],{"categories":1430},[186],{"categories":1432},[183],{"categories":1434},[],{"categories":1436},[228],{"categories":1438},[189],{"categories":1440},[183],{"categories":1442},[186],{"categories":1444},[186],{"categories":1446},[180],{"categories":1448},[],{"categories":1450},[180],{"categories":1452},[186],{"categories":1454},[245],{"categories":1456},[189],{"categories":1458},[207],{"categories":1460},[183],{"categories":1462},[186],{"categories":1464},[189],{"categories":1466},[],{"categories":1468},[186],{"categories":1470},[180],{"categories":1472},[186],{"categories":1474},[],{"categories":1476},[207],{"categories":1478},[186],{"categories":1480},[],{"categories":1482},[183],{"categories":1484},[186],{"categories":1486},[],{"categories":1488},[],{"categories":1490},[],{"categories":1492},[186],{"categories":1494},[],{"categories":1496},[502],{"categories":1498},[186],{"categories":1500},[],{"categories":1502},[186],{"categories":1504},[186],{"categories":1506},[186],{"categories":1508},[186,502],{"categories":1510},[186],{"categories":1512},[186],{"categories":1514},[228],{"categories":1516},[189],{"categories":1518},[],{"categories":1520},[189],{"categories":1522},[186],{"categories":1524},[186],{"categories":1526},[186],{"categories":1528},[180],{"categories":1530},[180],{"categories":1532},[238],{"categories":1534},[228],{"categories":1536},[189],{"categories":1538},[],{"categories":1540},[186],{"categories":1542},[207],{"categories":1544},[186],{"categories":1546},[183],{"categories":1548},[],{"categories":1550},[502],{"categories":1552},[228],{"categories":1554},[228],{"categories":1556},[189],{"categories":1558},[207],{"categories":1560},[189],{"categories":1562},[186],{"categories":1564},[],{"categories":1566},[186],{"categories":1568},[],{"categories":1570},[],{"categories":1572},[186],{"categories":1574},[186],{"categories":1576},[186],{"categories":1578},[189],{"categories":1580},[186],{"categories":1582},[],{"categories":1584},[231],{"categories":1586},[189],{"categories":1588},[],{"categories":1590},[],{"categories":1592},[186],{"categories":1594},[207],{"categories":1596},[],{"categories":1598},[228],{"categories":1600},[502],{"categories":1602},[207],{"categories":1604},[238],{"categories":1606},[238],{"categories":1608},[207],{"categories":1610},[207],{"categories":1612},[502],{"categories":1614},[],{"categories":1616},[207],{"categories":1618},[186],{"categories":1620},[180],{"categories":1622},[207],{"categories":1624},[],{"categories":1626},[231],{"categories":1628},[207],{"categories":1630},[238],{"categories":1632},[207],{"categories":1634},[502],{"categories":1636},[186],{"categories":1638},[186],{"categories":1640},[],{"categories":1642},[183],{"categories":1644},[],{"categories":1646},[],{"categories":1648},[186],{"categories":1650},[186],{"categories":1652},[186],{"categories":1654},[186],{"categories":1656},[],{"categories":1658},[231],{"categories":1660},[180],{"categories":1662},[],{"categories":1664},[186],{"categories":1666},[186],{"categories":1668},[502],{"categories":1670},[502],{"categories":1672},[],{"categories":1674},[189],{"categories":1676},[207],{"categories":1678},[207],{"categories":1680},[186],{"categories":1682},[189],{"categories":1684},[],{"categories":1686},[228],{"categories":1688},[186],{"categories":1690},[186],{"categories":1692},[],{"categories":1694},[],{"categories":1696},[502],{"categories":1698},[186],{"categories":1700},[238],{"categories":1702},[183],{"categories":1704},[186],{"categories":1706},[],{"categories":1708},[189],{"categories":1710},[180],{"categories":1712},[180],{"categories":1714},[],{"categories":1716},[186],{"categories":1718},[228],{"categories":1720},[189],{"categories":1722},[],{"categories":1724},[186],{"categories":1726},[186],{"categories":1728},[189],{"categories":1730},[],{"categories":1732},[189],{"categories":1734},[238],{"categories":1736},[],{"categories":1738},[186],{"categories":1740},[],{"categories":1742},[186],{"categories":1744},[],{"categories":1746},[186],{"categories":1748},[186],{"categories":1750},[],{"categories":1752},[186],{"categories":1754},[207],{"categories":1756},[186],{"categories":1758},[186],{"categories":1760},[180],{"categories":1762},[186],{"categories":1764},[207],{"categories":1766},[189],{"categories":1768},[],{"categories":1770},[186],{"categories":1772},[245],{"categories":1774},[],{"categories":1776},[],{"categories":1778},[],{"categories":1780},[180],{"categories":1782},[207],{"categories":1784},[189],{"categories":1786},[186],{"categories":1788},[228],{"categories":1790},[189],{"categories":1792},[],{"categories":1794},[189],{"categories":1796},[],{"categories":1798},[186],{"categories":1800},[189],{"categories":1802},[186],{"categories":1804},[],{"categories":1806},[186],{"categories":1808},[186],{"categories":1810},[207],{"categories":1812},[228],{"categories":1814},[189],{"categories":1816},[228],{"categories":1818},[183],{"categories":1820},[],{"categories":1822},[],{"categories":1824},[186],{"categories":1826},[180],{"categories":1828},[207],{"categories":1830},[],{"categories":1832},[],{"categories":1834},[238],{"categories":1836},[228],{"categories":1838},[],{"categories":1840},[186],{"categories":1842},[],{"categories":1844},[245],{"categories":1846},[186],{"categories":1848},[502],{"categories":1850},[238],{"categories":1852},[],{"categories":1854},[189],{"categories":1856},[186],{"categories":1858},[189],{"categories":1860},[189],{"categories":1862},[186],{"categories":1864},[],{"categories":1866},[180],{"categories":1868},[186],{"categories":1870},[183],{"categories":1872},[238],{"categories":1874},[228],{"categories":1876},[],{"categories":1878},[],{"categories":1880},[],{"categories":1882},[189],{"categories":1884},[228],{"categories":1886},[207],{"categories":1888},[186],{"categories":1890},[207],{"categories":1892},[228],{"categories":1894},[],{"categories":1896},[228],{"categories":1898},[207],{"categories":1900},[183],{"categories":1902},[186],{"categories":1904},[207],{"categories":1906},[245],{"categories":1908},[],{"categories":1910},[],{"categories":1912},[231],{"categories":1914},[186,238],{"categories":1916},[207],{"categories":1918},[186],{"categories":1920},[189],{"categories":1922},[189],{"categories":1924},[186],{"categories":1926},[],{"categories":1928},[238],{"categories":1930},[186],{"categories":1932},[231],{"categories":1934},[189],{"categories":1936},[245],{"categories":1938},[502],{"categories":1940},[],{"categories":1942},[180],{"categories":1944},[189],{"categories":1946},[189],{"categories":1948},[238],{"categories":1950},[186],{"categories":1952},[186],{"categories":1954},[],{"categories":1956},[],{"categories":1958},[],{"categories":1960},[502],{"categories":1962},[207],{"categories":1964},[186],{"categories":1966},[186],{"categories":1968},[186],{"categories":1970},[],{"categories":1972},[231],{"categories":1974},[183],{"categories":1976},[],{"categories":1978},[189],{"categories":1980},[502],{"categories":1982},[],{"categories":1984},[228],{"categories":1986},[228],{"categories":1988},[],{"categories":1990},[238],{"categories":1992},[228],{"categories":1994},[186],{"categories":1996},[],{"categories":1998},[207],{"categories":2000},[186],{"categories":2002},[228],{"categories":2004},[189],{"categories":2006},[207],{"categories":2008},[],{"categories":2010},[189],{"categories":2012},[228],{"categories":2014},[186],{"categories":2016},[],{"categories":2018},[186],{"categories":2020},[186],{"categories":2022},[502],{"categories":2024},[207],{"categories":2026},[231],{"categories":2028},[231],{"categories":2030},[],{"categories":2032},[],{"categories":2034},[],{"categories":2036},[189],{"categories":2038},[238],{"categories":2040},[238],{"categories":2042},[],{"categories":2044},[],{"categories":2046},[186],{"categories":2048},[],{"categories":2050},[189],{"categories":2052},[186],{"categories":2054},[],{"categories":2056},[186],{"categories":2058},[183],{"categories":2060},[186],{"categories":2062},[245],{"categories":2064},[189],{"categories":2066},[186],{"categories":2068},[238],{"categories":2070},[207],{"categories":2072},[189],{"categories":2074},[],{"categories":2076},[207],{"categories":2078},[189],{"categories":2080},[189],{"categories":2082},[],{"categories":2084},[183],{"categories":2086},[189],{"categories":2088},[],{"categories":2090},[186],{"categories":2092},[180],{"categories":2094},[207],{"categories":2096},[502],{"categories":2098},[189],{"categories":2100},[189],{"categories":2102},[180],{"categories":2104},[186],{"categories":2106},[],{"categories":2108},[],{"categories":2110},[228],{"categories":2112},[186,183],{"categories":2114},[],{"categories":2116},[180],{"categories":2118},[231],{"categories":2120},[186],{"categories":2122},[238],{"categories":2124},[186],{"categories":2126},[189],{"categories":2128},[186],{"categories":2130},[186],{"categories":2132},[207],{"categories":2134},[189],{"categories":2136},[],{"categories":2138},[],{"categories":2140},[189],{"categories":2142},[186],{"categories":2144},[502],{"categories":2146},[],{"categories":2148},[186],{"categories":2150},[189],{"categories":2152},[],{"categories":2154},[186],{"categories":2156},[245],{"categories":2158},[231],{"categories":2160},[189],{"categories":2162},[186],{"categories":2164},[502],{"categories":2166},[],{"categories":2168},[186],{"categories":2170},[245],{"categories":2172},[228],{"categories":2174},[186],{"categories":2176},[],{"categories":2178},[245],{"categories":2180},[207],{"categories":2182},[186],{"categories":2184},[186],{"categories":2186},[180],{"categories":2188},[],{"categories":2190},[],{"categories":2192},[228],{"categories":2194},[186],{"categories":2196},[231],{"categories":2198},[245],{"categories":2200},[245],{"categories":2202},[207],{"categories":2204},[],{"categories":2206},[],{"categories":2208},[186],{"categories":2210},[],{"categories":2212},[186,238],{"categories":2214},[207],{"categories":2216},[189],{"categories":2218},[238],{"categories":2220},[186],{"categories":2222},[180],{"categories":2224},[],{"categories":2226},[],{"categories":2228},[180],{"categories":2230},[245],{"categories":2232},[186],{"categories":2234},[],{"categories":2236},[228,186],{"categories":2238},[502],{"categories":2240},[180],{"categories":2242},[],{"categories":2244},[183],{"categories":2246},[183],{"categories":2248},[186],{"categories":2250},[238],{"categories":2252},[189],{"categories":2254},[207],{"categories":2256},[245],{"categories":2258},[228],{"categories":2260},[186],{"categories":2262},[186],{"categories":2264},[186],{"categories":2266},[180],{"categories":2268},[186],{"categories":2270},[189],{"categories":2272},[207],{"categories":2274},[],{"categories":2276},[],{"categories":2278},[231],{"categories":2280},[238],{"categories":2282},[186],{"categories":2284},[228],{"categories":2286},[231],{"categories":2288},[186],{"categories":2290},[186],{"categories":2292},[189],{"categories":2294},[189],{"categories":2296},[186,183],{"categories":2298},[],{"categories":2300},[228],{"categories":2302},[],{"categories":2304},[186],{"categories":2306},[207],{"categories":2308},[180],{"categories":2310},[180],{"categories":2312},[189],{"categories":2314},[186],{"categories":2316},[183],{"categories":2318},[238],{"categories":2320},[245],{"categories":2322},[],{"categories":2324},[207],{"categories":2326},[186],{"categories":2328},[186],{"categories":2330},[207],{"categories":2332},[238],{"categories":2334},[186],{"categories":2336},[189],{"categories":2338},[207],{"categories":2340},[186],{"categories":2342},[228],{"categories":2344},[186],{"categories":2346},[186],{"categories":2348},[502],{"categories":2350},[192],{"categories":2352},[189],{"categories":2354},[186],{"categories":2356},[207],{"categories":2358},[189],{"categories":2360},[245],{"categories":2362},[186],{"categories":2364},[],{"categories":2366},[186],{"categories":2368},[],{"categories":2370},[],{"categories":2372},[],{"categories":2374},[183],{"categories":2376},[186],{"categories":2378},[189],{"categories":2380},[207],{"categories":2382},[207],{"categories":2384},[207],{"categories":2386},[207],{"categories":2388},[],{"categories":2390},[180],{"categories":2392},[189],{"categories":2394},[207],{"categories":2396},[180],{"categories":2398},[189],{"categories":2400},[186],{"categories":2402},[186,189],{"categories":2404},[189],{"categories":2406},[502],{"categories":2408},[207],{"categories":2410},[207],{"categories":2412},[189],{"categories":2414},[186],{"categories":2416},[],{"categories":2418},[207],{"categories":2420},[245],{"categories":2422},[180],{"categories":2424},[186],{"categories":2426},[186],{"categories":2428},[],{"categories":2430},[238],{"categories":2432},[],{"categories":2434},[180],{"categories":2436},[189],{"categories":2438},[207],{"categories":2440},[186],{"categories":2442},[207],{"categories":2444},[180],{"categories":2446},[207],{"categories":2448},[207],{"categories":2450},[],{"categories":2452},[183],{"categories":2454},[189],{"categories":2456},[207],{"categories":2458},[207],{"categories":2460},[207],{"categories":2462},[207],{"categories":2464},[207],{"categories":2466},[207],{"categories":2468},[207],{"categories":2470},[207],{"categories":2472},[207],{"categories":2474},[207],{"categories":2476},[231],{"categories":2478},[180],{"categories":2480},[186],{"categories":2482},[186],{"categories":2484},[],{"categories":2486},[186,180],{"categories":2488},[],{"categories":2490},[189],{"categories":2492},[207],{"categories":2494},[189],{"categories":2496},[186],{"categories":2498},[186],{"categories":2500},[186],{"categories":2502},[186],{"categories":2504},[186],{"categories":2506},[189],{"categories":2508},[183],{"categories":2510},[228],{"categories":2512},[207],{"categories":2514},[186],{"categories":2516},[],{"categories":2518},[],{"categories":2520},[189],{"categories":2522},[228],{"categories":2524},[186],{"categories":2526},[],{"categories":2528},[],{"categories":2530},[245],{"categories":2532},[186],{"categories":2534},[],{"categories":2536},[],{"categories":2538},[180],{"categories":2540},[183],{"categories":2542},[186],{"categories":2544},[183],{"categories":2546},[228],{"categories":2548},[],{"categories":2550},[207],{"categories":2552},[],{"categories":2554},[228],{"categories":2556},[186],{"categories":2558},[245],{"categories":2560},[],{"categories":2562},[245],{"categories":2564},[],{"categories":2566},[],{"categories":2568},[189],{"categories":2570},[],{"categories":2572},[183],{"categories":2574},[180],{"categories":2576},[228],{"categories":2578},[238],{"categories":2580},[],{"categories":2582},[],{"categories":2584},[186],{"categories":2586},[180],{"categories":2588},[245],{"categories":2590},[],{"categories":2592},[189],{"categories":2594},[189],{"categories":2596},[207],{"categories":2598},[186],{"categories":2600},[189],{"categories":2602},[186],{"categories":2604},[189],{"categories":2606},[186],{"categories":2608},[192],{"categories":2610},[207],{"categories":2612},[],{"categories":2614},[245],{"categories":2616},[238],{"categories":2618},[189],{"categories":2620},[],{"categories":2622},[186],{"categories":2624},[189],{"categories":2626},[183],{"categories":2628},[180],{"categories":2630},[186],{"categories":2632},[228],{"categories":2634},[238],{"categories":2636},[238],{"categories":2638},[186],{"categories":2640},[231],{"categories":2642},[186],{"categories":2644},[189],{"categories":2646},[183],{"categories":2648},[189],{"categories":2650},[186],{"categories":2652},[186],{"categories":2654},[189],{"categories":2656},[207],{"categories":2658},[],{"categories":2660},[180],{"categories":2662},[186],{"categories":2664},[189],{"categories":2666},[186],{"categories":2668},[186],{"categories":2670},[],{"categories":2672},[228],{"categories":2674},[183],{"categories":2676},[207],{"categories":2678},[186],{"categories":2680},[186],{"categories":2682},[228],{"categories":2684},[245],{"categories":2686},[231],{"categories":2688},[186],{"categories":2690},[207],{"categories":2692},[186],{"categories":2694},[189],{"categories":2696},[502],{"categories":2698},[186],{"categories":2700},[189],{"categories":2702},[231],{"categories":2704},[],{"categories":2706},[189],{"categories":2708},[238],{"categories":2710},[228],{"categories":2712},[186],{"categories":2714},[180],{"categories":2716},[183],{"categories":2718},[238],{"categories":2720},[],{"categories":2722},[189],{"categories":2724},[186],{"categories":2726},[],{"categories":2728},[207],{"categories":2730},[],{"categories":2732},[207],{"categories":2734},[186],{"categories":2736},[189],{"categories":2738},[189],{"categories":2740},[189],{"categories":2742},[],{"categories":2744},[],{"categories":2746},[186],{"categories":2748},[186],{"categories":2750},[],{"categories":2752},[228],{"categories":2754},[189],{"categories":2756},[245],{"categories":2758},[180],{"categories":2760},[],{"categories":2762},[],{"categories":2764},[207],{"categories":2766},[238],{"categories":2768},[186],{"categories":2770},[186],{"categories":2772},[186],{"categories":2774},[238],{"categories":2776},[207],{"categories":2778},[228],{"categories":2780},[186],{"categories":2782},[186],{"categories":2784},[186],{"categories":2786},[207],{"categories":2788},[186],{"categories":2790},[207],{"categories":2792},[189],{"categories":2794},[189],{"categories":2796},[238],{"categories":2798},[189],{"categories":2800},[186],{"categories":2802},[238],{"categories":2804},[228],{"categories":2806},[],{"categories":2808},[189],{"categories":2810},[],{"categories":2812},[],{"categories":2814},[],{"categories":2816},[183],{"categories":2818},[186],{"categories":2820},[189],{"categories":2822},[180],{"categories":2824},[189],{"categories":2826},[245],{"categories":2828},[],{"categories":2830},[189],{"categories":2832},[],{"categories":2834},[180],{"categories":2836},[189],{"categories":2838},[],{"categories":2840},[189],{"categories":2842},[186],{"categories":2844},[207],{"categories":2846},[186],{"categories":2848},[189],{"categories":2850},[207],{"categories":2852},[189],{"categories":2854},[238],{"categories":2856},[228],{"categories":2858},[180],{"categories":2860},[],{"categories":2862},[189],{"categories":2864},[228],{"categories":2866},[502],{"categories":2868},[207],{"categories":2870},[186],{"categories":2872},[228],{"categories":2874},[180],{"categories":2876},[],{"categories":2878},[189],{"categories":2880},[189],{"categories":2882},[186],{"categories":2884},[],{"categories":2886},[189],{"categories":2888},[192],{"categories":2890},[207],{"categories":2892},[189],{"categories":2894},[183],{"categories":2896},[],{"categories":2898},[186],{"categories":2900},[192],{"categories":2902},[186],{"categories":2904},[189],{"categories":2906},[207],{"categories":2908},[180],{"categories":2910},[502],{"categories":2912},[186],{"categories":2914},[186],{"categories":2916},[186],{"categories":2918},[207],{"categories":2920},[183],{"categories":2922},[186],{"categories":2924},[228],{"categories":2926},[207],{"categories":2928},[502],{"categories":2930},[186],{"categories":2932},[],{"categories":2934},[],{"categories":2936},[502],{"categories":2938},[231],{"categories":2940},[189],{"categories":2942},[189],{"categories":2944},[207],{"categories":2946},[186],{"categories":2948},[180],{"categories":2950},[228],{"categories":2952},[189],{"categories":2954},[186],{"categories":2956},[245],{"categories":2958},[186],{"categories":2960},[189],{"categories":2962},[],{"categories":2964},[186],{"categories":2966},[186],{"categories":2968},[207],{"categories":2970},[180],{"categories":2972},[],{"categories":2974},[186],{"categories":2976},[186],{"categories":2978},[238],{"categories":2980},[228],{"categories":2982},[186,189],{"categories":2984},[245,183],{"categories":2986},[186],{"categories":2988},[],{"categories":2990},[189],{"categories":2992},[],{"categories":2994},[238],{"categories":2996},[186],{"categories":2998},[207],{"categories":3000},[],{"categories":3002},[189],{"categories":3004},[],{"categories":3006},[228],{"categories":3008},[189],{"categories":3010},[180],{"categories":3012},[189],{"categories":3014},[186],{"categories":3016},[502],{"categories":3018},[245],{"categories":3020},[183],{"categories":3022},[183],{"categories":3024},[180],{"categories":3026},[180],{"categories":3028},[186],{"categories":3030},[189],{"categories":3032},[186],{"categories":3034},[186],{"categories":3036},[180],{"categories":3038},[186],{"categories":3040},[245],{"categories":3042},[207],{"categories":3044},[186],{"categories":3046},[189],{"categories":3048},[186],{"categories":3050},[],{"categories":3052},[238],{"categories":3054},[],{"categories":3056},[189],{"categories":3058},[180],{"categories":3060},[],{"categories":3062},[502],{"categories":3064},[186],{"categories":3066},[],{"categories":3068},[207],{"categories":3070},[189],{"categories":3072},[238],{"categories":3074},[186],{"categories":3076},[189],{"categories":3078},[238],{"categories":3080},[189],{"categories":3082},[207],{"categories":3084},[180],{"categories":3086},[207],{"categories":3088},[238],{"categories":3090},[186],{"categories":3092},[228],{"categories":3094},[186],{"categories":3096},[186],{"categories":3098},[186],{"categories":3100},[186],{"categories":3102},[189],{"categories":3104},[186],{"categories":3106},[189],{"categories":3108},[186],{"categories":3110},[180],{"categories":3112},[186],{"categories":3114},[189],{"categories":3116},[228],{"categories":3118},[180],{"categories":3120},[189],{"categories":3122},[228],{"categories":3124},[],{"categories":3126},[186],{"categories":3128},[186],{"categories":3130},[238],{"categories":3132},[],{"categories":3134},[189],{"categories":3136},[245],{"categories":3138},[186],{"categories":3140},[207],{"categories":3142},[245],{"categories":3144},[189],{"categories":3146},[183],{"categories":3148},[183],{"categories":3150},[186],{"categories":3152},[180],{"categories":3154},[],{"categories":3156},[186],{"categories":3158},[],{"categories":3160},[180],{"categories":3162},[186],{"categories":3164},[189],{"categories":3166},[189],{"categories":3168},[],{"categories":3170},[238],{"categories":3172},[238],{"categories":3174},[245],{"categories":3176},[228],{"categories":3178},[],{"categories":3180},[186],{"categories":3182},[180],{"categories":3184},[186],{"categories":3186},[238],{"categories":3188},[180],{"categories":3190},[207],{"categories":3192},[207],{"categories":3194},[],{"categories":3196},[207],{"categories":3198},[189],{"categories":3200},[228],{"categories":3202},[231],{"categories":3204},[186],{"categories":3206},[],{"categories":3208},[207],{"categories":3210},[238],{"categories":3212},[183],{"categories":3214},[186],{"categories":3216},[180],{"categories":3218},[502],{"categories":3220},[180],{"categories":3222},[],{"categories":3224},[],{"categories":3226},[207],{"categories":3228},[],{"categories":3230},[189],{"categories":3232},[189],{"categories":3234},[189],{"categories":3236},[],{"categories":3238},[186],{"categories":3240},[],{"categories":3242},[207],{"categories":3244},[180],{"categories":3246},[228],{"categories":3248},[186],{"categories":3250},[207],{"categories":3252},[207],{"categories":3254},[],{"categories":3256},[207],{"categories":3258},[180],{"categories":3260},[186],{"categories":3262},[],{"categories":3264},[189],{"categories":3266},[189],{"categories":3268},[180],{"categories":3270},[],{"categories":3272},[],{"categories":3274},[],{"categories":3276},[228],{"categories":3278},[189],{"categories":3280},[186],{"categories":3282},[],{"categories":3284},[],{"categories":3286},[],{"categories":3288},[228],{"categories":3290},[],{"categories":3292},[180],{"categories":3294},[],{"categories":3296},[],{"categories":3298},[228],{"categories":3300},[186],{"categories":3302},[207],{"categories":3304},[],{"categories":3306},[245],{"categories":3308},[207],{"categories":3310},[245],{"categories":3312},[186],{"categories":3314},[],{"categories":3316},[],{"categories":3318},[189],{"categories":3320},[],{"categories":3322},[],{"categories":3324},[189],{"categories":3326},[186],{"categories":3328},[],{"categories":3330},[189],{"categories":3332},[207],{"categories":3334},[245],{"categories":3336},[231],{"categories":3338},[189],{"categories":3340},[189],{"categories":3342},[],{"categories":3344},[],{"categories":3346},[],{"categories":3348},[207],{"categories":3350},[],{"categories":3352},[],{"categories":3354},[228],{"categories":3356},[180],{"categories":3358},[],{"categories":3360},[183],{"categories":3362},[245],{"categories":3364},[186],{"categories":3366},[238],{"categories":3368},[180],{"categories":3370},[231],{"categories":3372},[183],{"categories":3374},[238],{"categories":3376},[],{"categories":3378},[],{"categories":3380},[189],{"categories":3382},[180],{"categories":3384},[228],{"categories":3386},[180],{"categories":3388},[189],{"categories":3390},[502],{"categories":3392},[189],{"categories":3394},[],{"categories":3396},[186],{"categories":3398},[207],{"categories":3400},[238],{"categories":3402},[],{"categories":3404},[228],{"categories":3406},[207],{"categories":3408},[180],{"categories":3410},[189],{"categories":3412},[186],{"categories":3414},[183],{"categories":3416},[189,502],{"categories":3418},[189],{"categories":3420},[238],{"categories":3422},[186],{"categories":3424},[231],{"categories":3426},[245],{"categories":3428},[189],{"categories":3430},[],{"categories":3432},[189],{"categories":3434},[186],{"categories":3436},[183],{"categories":3438},[],{"categories":3440},[],{"categories":3442},[186],{"categories":3444},[231],{"categories":3446},[186],{"categories":3448},[],{"categories":3450},[207],{"categories":3452},[],{"categories":3454},[207],{"categories":3456},[238],{"categories":3458},[189],{"categories":3460},[186],{"categories":3462},[245],{"categories":3464},[238],{"categories":3466},[],{"categories":3468},[207],{"categories":3470},[186],{"categories":3472},[],{"categories":3474},[186],{"categories":3476},[189],{"categories":3478},[186],{"categories":3480},[189],{"categories":3482},[186],{"categories":3484},[186],{"categories":3486},[186],{"categories":3488},[186],{"categories":3490},[183],{"categories":3492},[],{"categories":3494},[192],{"categories":3496},[207],{"categories":3498},[186],{"categories":3500},[],{"categories":3502},[238],{"categories":3504},[186],{"categories":3506},[186],{"categories":3508},[189],{"categories":3510},[207],{"categories":3512},[186],{"categories":3514},[186],{"categories":3516},[183],{"categories":3518},[189],{"categories":3520},[228],{"categories":3522},[],{"categories":3524},[231],{"categories":3526},[186],{"categories":3528},[],{"categories":3530},[207],{"categories":3532},[245],{"categories":3534},[],{"categories":3536},[],{"categories":3538},[207],{"categories":3540},[207],{"categories":3542},[245],{"categories":3544},[180],{"categories":3546},[189],{"categories":3548},[189],{"categories":3550},[186],{"categories":3552},[183],{"categories":3554},[],{"categories":3556},[],{"categories":3558},[207],{"categories":3560},[231],{"categories":3562},[238],{"categories":3564},[189],{"categories":3566},[228],{"categories":3568},[231],{"categories":3570},[231],{"categories":3572},[],{"categories":3574},[207],{"categories":3576},[186],{"categories":3578},[186],{"categories":3580},[238],{"categories":3582},[],{"categories":3584},[207],{"categories":3586},[207],{"categories":3588},[207],{"categories":3590},[],{"categories":3592},[189],{"categories":3594},[186],{"categories":3596},[],{"categories":3598},[180],{"categories":3600},[183],{"categories":3602},[],{"categories":3604},[186],{"categories":3606},[186],{"categories":3608},[],{"categories":3610},[238],{"categories":3612},[],{"categories":3614},[],{"categories":3616},[],{"categories":3618},[],{"categories":3620},[186],{"categories":3622},[207],{"categories":3624},[],{"categories":3626},[],{"categories":3628},[186],{"categories":3630},[186],{"categories":3632},[186],{"categories":3634},[231],{"categories":3636},[186],{"categories":3638},[231],{"categories":3640},[],{"categories":3642},[231],{"categories":3644},[231],{"categories":3646},[502],{"categories":3648},[189],{"categories":3650},[238],{"categories":3652},[],{"categories":3654},[],{"categories":3656},[231],{"categories":3658},[238],{"categories":3660},[238],{"categories":3662},[238],{"categories":3664},[],{"categories":3666},[180],{"categories":3668},[238],{"categories":3670},[238],{"categories":3672},[180],{"categories":3674},[238],{"categories":3676},[183],{"categories":3678},[238],{"categories":3680},[238],{"categories":3682},[238],{"categories":3684},[231],{"categories":3686},[207],{"categories":3688},[207],{"categories":3690},[186],{"categories":3692},[238],{"categories":3694},[231],{"categories":3696},[502],{"categories":3698},[231],{"categories":3700},[231],{"categories":3702},[231],{"categories":3704},[],{"categories":3706},[183],{"categories":3708},[],{"categories":3710},[502],{"categories":3712},[238],{"categories":3714},[238],{"categories":3716},[238],{"categories":3718},[189],{"categories":3720},[207,183],{"categories":3722},[231],{"categories":3724},[],{"categories":3726},[],{"categories":3728},[231],{"categories":3730},[],{"categories":3732},[231],{"categories":3734},[207],{"categories":3736},[189],{"categories":3738},[],{"categories":3740},[238],{"categories":3742},[186],{"categories":3744},[228],{"categories":3746},[],{"categories":3748},[186],{"categories":3750},[],{"categories":3752},[207],{"categories":3754},[180],{"categories":3756},[231],{"categories":3758},[],{"categories":3760},[238],{"categories":3762},[207],[3764,3926,4154,4748],{"id":3765,"title":3766,"ai_summary":3767,"author":7,"body":3768,"category":152,"date_modified":153,"description":3772,"excerpt":7,"extension":155,"faq":153,"keywords":3908,"meta":3915,"meta_description":3916,"meta_title":3917,"navigation":166,"path":3918,"primary_keyword":18,"published_at":153,"related_posts":3919,"sections":3920,"seo":3921,"sitemap":3922,"slug":3923,"status":174,"stem":3924,"__hash__":3925},"articles\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expa-balanced-post-merge-article.md","The 3-Core-Agent Harness: Why Production AI Needs Governance, Not Just Frameworks","The 3-core-agent harness is an architectural pattern that splits AI tasks into specialized roles: a Planner (specifications), a Generator (execution), and an Evaluator (testing). This separation prevents self-evaluation bias and ensures production-grade reliability by mirroring the software engineering sprint cycle of scope, execute, and QA to deliver hardened results.",{"type":9,"value":3769,"toc":3900},[3770,3773,3776,3780,3783,3786,3806,3809,3813,3816,3819,3831,3835,3838,3841,3844,3848,3851,3854,3857,3871,3875,3878,3881,3884,3892,3894,3897],[12,3771,3772],{},"The 3-core-agent harness is an architectural pattern that splits AI tasks into specialized roles: a Planner (specifications), a Generator (execution), and an Evaluator (testing). This separation prevents self-evaluation bias and ensures production-grade reliability by mirroring the software engineering sprint cycle of scope, execute, and QA.",[12,3774,3775],{},"In early 2024, an autonomous AI agent successfully hacked a FreeBSD system in just four hours. It didn't do this because it was \"evil\" or sentient; it did it because it was given a goal and zero governance to check its work. When we build monolithic agents that plan, execute, and grade their own homework, we aren't building assets—we are building liabilities. The shift from \"cool demos\" to production-grade AI requires moving away from the black-box agent and toward a structured, role-based harness.",[24,3777,3779],{"id":3778},"the-3-core-agent-harness-a-blueprint-for-production-reliability","The 3-Core-Agent Harness: A Blueprint for Production Reliability",[12,3781,3782],{},"The 3-core-agent harness replaces the \"black box\" agent approach with a transparent, three-tiered hierarchy of Planner, Generator, and Evaluator. By isolating the specification from execution and testing, builders can force agents to negotiate strict technical contracts that define success before work begins. This structured separation ensures the system meets high-level requirements and satisfies rigorous acceptance criteria, preventing the cascading hallucinations common in monolithic models.",[12,3784,3785],{},"This architecture treats the AI pipeline as a professional engineering team rather than a single, overworked intern. The roles are strictly defined:",[75,3787,3788,3794,3800],{},[78,3789,3790,3793],{},[16,3791,3792],{},"The Planner",": This agent takes a vague, two-sentence prompt and converts it into a hardened technical specification. It prevents cascading assumptions by defining the boundaries of the task before work begins.",[78,3795,3796,3799],{},[16,3797,3798],{},"The Generator",": This is the \"worker\" that executes the sprint. It builds against the Planner’s contract using modern stacks like Vite, FastAPI, or React, focusing purely on implementation without the distraction of high-level strategy.",[78,3801,3802,3805],{},[16,3803,3804],{},"The Evaluator",": The \"skeptic\" of the group. It doesn't just look at the code; it uses concrete tools like Playwright to verify output against the original spec, providing line-level failure reports.",[12,3807,3808],{},"By using this harness, you ensure that the system remains observable. When a failure occurs, you can pinpoint exactly which role dropped the ball: the plan was flawed, the execution missed the mark, or the evaluation was too lenient.",[24,3810,3812],{"id":3811},"why-the-evaluator-is-your-most-critical-hire","Why the Evaluator is Your Most Critical Hire",[12,3814,3815],{},"Anthropic’s research on multi-agent systems reveals that agents suffer from \"generosity bias\" and \"context anxiety,\" causing them to overrate their own mediocre work as their context windows fill up. A dedicated Evaluator agent solves this by operating as an independent QA layer, providing the granular, line-level feedback necessary for meaningful iteration.",[12,3817,3818],{},"Generosity bias is a documented phenomenon where a model ignores its own errors to maintain the appearance of progress. When the same model that wrote the code is asked to review it, it consistently misses bugs it introduced itself. Furthermore, \"context anxiety\" causes models to wrap up tasks prematurely as they approach their token limits, leading to \"good enough\" solutions that break in production.",[12,3820,3821,3822,3826,3827,3830],{},"A separate Evaluator agent changes the feedback loop from vague commentary to contract-based failure reports. Instead of saying \"the UI looks a bit off,\" a dedicated Evaluator using a tool like Playwright can report: \"",[3823,3824,3825],"code",{},"fillRectangle"," exists in the source but isn't triggered on ",[3823,3828,3829],{},"mouseUp",".\" This level of specificity allows the Generator to perform a surgical fix rather than guessing at the problem.",[24,3832,3834],{"id":3833},"harnesses-vs-frameworks-trading-control-for-reliable-output","Harnesses vs. Frameworks: Trading Control for Reliable Output",[12,3836,3837],{},"While agent frameworks like CrewAI or LangChain provide flexible building blocks, a 3-core-agent harness is a maximally opinionated system designed for specific, reliable outcomes. Frameworks are for builders who want to design the engine from scratch; harnesses provide users with a complete vehicle featuring pre-configured navigation, braking systems, and automated safety checks.",[12,3839,3840],{},"The distinction lies in the \"batteries-included\" nature of a harness. In a framework, you must decide how agents communicate, how memory is handled, and how loops are structured. In a harness like OpenClaw, these decisions are pre-configured. You are trading the ability to customize every internal gear for the assurance that the system will not exceed its mandate or hallucinate a success state.",[12,3842,3843],{},"For most product-minded builders, a harness is the superior choice for production. It provides a stable environment where memory, context, and agent interactions are already optimized for high-complexity tasks, allowing you to focus on the product features rather than the orchestration logic.",[24,3845,3847],{"id":3846},"the-9-vs-200-decision-managing-the-cost-quality-tradeoff","The $9 vs. $200 Decision: Managing the Cost-Quality Tradeoff",[12,3849,3850],{},"Production-grade AI is not cheap; a solo agent run might cost $9 and take 20 minutes, but a full 3-core-agent harness run can exceed $200 over six hours. This 40x cost difference, highlighted in analysis by engineering leader Apurv Khare, forces builders to treat agent orchestration like a PM’s sprint planning, where expensive resources are reserved specifically for high-complexity features.",[12,3852,3853],{},"Khare's data demonstrates that while the cost jump is significant, the delta in quality is massive. A solo run often results in \"broken entity wiring\" where components exist but don't talk to each other. A full harness run, involving 5 to 15 iterations, can produce a 16-feature working application with sound effects, sprite generation, and shareable exports.",[12,3855,3856],{},"The decision to use a harness should follow a simple complexity threshold:",[75,3858,3859,3865],{},[78,3860,3861,3864],{},[16,3862,3863],{},"Low Complexity (\u003C$10):"," Simple scripts, unit tests, or content drafts. Use a solo agent.",[78,3866,3867,3870],{},[16,3868,3869],{},"High Complexity (>$150):"," Full feature builds, complex UI interactions, or multi-step data pipelines. Use the 3-core-agent harness.",[24,3872,3874],{"id":3873},"implementing-governance-from-simple-prompts-to-sprint-cycles","Implementing Governance: From Simple Prompts to Sprint Cycles",[12,3876,3877],{},"Implementing a 3-core-agent harness effectively turns your AI pipeline into a 5-to-15 iteration sprint cycle. Each loop refines the output as the Evaluator identifies failures and the Planner adjusts the spec.",[12,3879,3880],{},"This iterative process allows the Generator to attempt fresh implementations based on precise feedback. It effectively mirrors the traditional software development lifecycle but executes at machine speed.",[12,3882,3883],{},"This cycle is the only way to prevent the \"FreeBSD scenario,\" where an ungoverned agent autonomously exploited a system in four hours. By baking scope constraints and permission boundaries into the Planner role, you ensure the autonomous system cannot wander outside its designated sandbox. The Evaluator then acts as the final gatekeeper, refusing to \"merge\" the work until every acceptance criterion is met.",[12,3885,3886,3887,3891],{},"Success in this model depends on negotiating \"Done\" contracts ",[3888,3889,3890],"em",{},"before"," generation starts. If the Planner and Evaluator agree on what success looks like—down to the specific API endpoints and UI states—the Generator is much more likely to hit the target on the first or second iteration.",[24,3893,131],{"id":130},[12,3895,3896],{},"The 3-core-agent harness is the recognition that AI agents require the same governance and separation of concerns as human engineering teams. By decoupling planning, execution, and skepticism, we move from \"cool demos\" to reliable, autonomous production systems.",[12,3898,3899],{},"Audit your current agentic workflows: identify where a single agent is currently \"grading its own homework\" and experiment with a separate, skeptically-prompted Evaluator agent to review its next five outputs.",{"title":7,"searchDepth":144,"depth":144,"links":3901},[3902,3903,3904,3905,3906,3907],{"id":3778,"depth":144,"text":3779},{"id":3811,"depth":144,"text":3812},{"id":3833,"depth":144,"text":3834},{"id":3846,"depth":144,"text":3847},{"id":3873,"depth":144,"text":3874},{"id":130,"depth":144,"text":131},[18,3909,158,3910,3911,3912,3913,3914],"AI agent governance","Anthropic research","generosity bias","autonomous systems","AI software engineering","primary_keyword: 3-core-agent harness",{},"Discover why splitting AI agents into Planner, Generator, and Evaluator roles is the only way to eliminate bias and ship production-grade autonomous systems.","The 3-Core-Agent Harness for Production AI Reliability","\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expa-balanced-post-merge-article",[],{"intro":170,"blueprint":3779,"evaluator":3812,"harness-vs-framework":3834,"cost-tradeoff":3847,"governance":3874,"conclusion":131},{"title":3766,"description":3772},{"loc":3918},"3-core-agent-harness-production-reliability","articles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expa-balanced-post-merge-article","uJNkAB5y-PSAv8pt1_N-vNENos2JrZho0VX37EYihGQ",{"id":3927,"title":3928,"ai_summary":3929,"author":7,"body":3930,"category":152,"date_modified":153,"description":3929,"excerpt":7,"extension":155,"faq":153,"keywords":4137,"meta":4143,"meta_description":4144,"meta_title":4145,"navigation":166,"path":4146,"primary_keyword":4138,"published_at":153,"related_posts":4147,"sections":4148,"seo":4149,"sitemap":4150,"slug":4151,"status":174,"stem":4152,"__hash__":4153},"articles\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expb-round2-article.md","Building Reliable AI with the Planner-Generator-Evaluator Pattern","The planner-generator-evaluator pattern is a multi-agent architecture that separates reasoning, execution, and quality assurance into distinct roles. By forcing an adversarial feedback loop between generation and skeptical evaluation, this harness eliminates the self-confirmation bias and hallucination loops that plague single-agent systems.",{"type":9,"value":3931,"toc":4128},[3932,3934,3937,3940,3943,3947,3950,3953,3956,3959,3963,3966,3972,3977,3990,3994,3997,4004,4007,4016,4020,4023,4026,4046,4049,4052,4061,4065,4068,4071,4080,4093,4096,4098,4101,4104],[12,3933,3929],{},[12,3935,3936],{},"Most AI agents look great in a controlled social media demo. They write a quick Python script or draft an email, and the output seems flawless on the first try. But these same monolithic agents fail spectacularly when asked to write production code, validate infrastructure setups, or manage a multi-step workflow without human intervention.",[12,3938,3939],{},"The core problem is scaling AI from single-shot prompts to reliable, long-running production tasks. When a single foundation model tries to plan a complex task, execute the steps, and check its own work, it inevitably cuts corners. It forgets initial constraints, hallucinates variables, and rubber-stamps its own errors.",[12,3941,3942],{},"The planner-generator-evaluator (PGE) harness offers an architectural blueprint to fix this, avoiding the trap of generic, bloated multi-agent frameworks. It enforces strict separation of concerns across the lifecycle of a task. Engineering teams must stop relying on single models to grade their own homework. To ship reliable AI features, you need structural constraints that force models to prove their work.",[24,3944,3946],{"id":3945},"the-fallacy-of-single-agent-systems","The Fallacy of Single-Agent Systems",[12,3948,3949],{},"Single-agent systems fail at long-running tasks because generation and evaluation share the same context window, creating an inescapable self-confirmation bias. When a model drafts code and immediately reviews it, it inherently trusts its own logic, blinding it to edge-case failures and gradual coherence loss.",[12,3951,3952],{},"When you ask a large language model (LLM) to generate a complex script and then follow up with \"is this correct?\", the model reads its own output in the context window. It recognizes the exact probabilistic patterns it just generated, and because those patterns match its internal weights, it assumes the output is correct. This self-confirmation bias makes single agents terrible at catching their own logical flaws, especially in strict domains like continuous integration pipelines.",[12,3954,3955],{},"As the context window fills with previous steps, the model's reasoning capabilities degrade further. It begins to lose track of the original constraints. If you ask a single agent to generate a React component, add unit tests, and then fix accessibility issues, by the third step it has likely forgotten the styling rules you established in step one. The attention mechanism spreads too thin across the growing token history, leading to hallucinated variables and skipped requirements.",[12,3957,3958],{},"The common industry reaction to these failures is to reach for off-the-shelf multi-agent frameworks. These generic tools often add massive coordination overhead without structurally solving the feedback loop problem. They give you a dozen agents chatting with each other, but no mathematical or architectural guarantee of quality. Reliable AI requires deliberate architectural constraints, not just larger foundation models or noisier agent swarms.",[24,3960,3962],{"id":3961},"deconstructing-the-planner-generator-evaluator-pattern","Deconstructing the Planner-Generator-Evaluator Pattern",[12,3964,3965],{},"The planner-generator-evaluator pattern divides complex AI tasks into three specialized roles to enforce strict quality control and prevent context contamination. The Planner expands a high-level prompt into a rigorous specification, the Generator produces the required output against that spec, and the Evaluator independently critiques the result until all criteria are met.",[12,3967,3968,3969,3971],{},"This architecture explicitly isolates reasoning from execution. The ",[16,3970,52],{}," role is responsible for scoping edge cases, defining strict acceptance criteria, and setting an ambitious bar for the output. Instead of writing the final code or content, it writes the blueprint by translating a vague user request into a deterministic checklist. By forcing the system to declare its intentions before writing code, the Planner establishes a ground-truth document that anchors the rest of the workflow.",[12,3973,49,3974,3976],{},[16,3975,58],{}," role operates in a narrow, highly focused context. It receives the Planner's specification and executes it without the distraction of higher-level reasoning. By stripping away the conversational history and the original user prompt, the Generator can dedicate its entire attention mechanism to satisfying the exact constraints of the spec. It functions purely as a translation layer between the specification and the final syntax.",[12,3978,49,3979,3981,3982,3989],{},[16,3980,62],{}," role acts as an independent quality assurance mechanism. It provides structured, granular feedback rather than a simple binary pass\u002Ffail. This setup adapts the adversarial loop of Generative Adversarial Networks (GANs) for concrete task completion. Instead of training a model's weights, this ",[3983,3984,3988],"a",{"href":3985,"rel":3986},"https:\u002F\u002Fwww.mindstudio.ai\u002Fblog\u002Fplanner-generator-evaluator-pattern-gan-inspired-ai-coding",[3987],"nofollow","GAN-inspired architecture"," iterates on a specific output through rigorous, automated critique. The Evaluator compares the Generator's draft directly against the Planner's exact criteria, sending failures back for correction.",[24,3991,3993],{"id":3992},"why-the-evaluator-role-dictates-success","Why the Evaluator Role Dictates Success",[12,3995,3996],{},"A production-grade Evaluator operates as a skeptical quality assurance engineer rather than a passive reviewer. By utilizing a clean context window to judge the Generator's output strictly against the Planner's original specification, this adversarial stance prevents rubber-stamping and forces iterative improvement cycles until the output legitimately passes all constraints.",[12,3998,3999,4000,4003],{},"Context isolation is the most critical factor in this phase. The Evaluator must never see the Generator's internal reasoning or the conversational history that led to the draft. It should only receive the final output and the initial specification. If the Evaluator sees the Generator explaining ",[3888,4001,4002],{},"why"," it made a mistake, the Evaluator is more likely to forgive the error. Maintaining a strict firewall between these contexts forces the Evaluator to judge the work purely on its objective merits.",[12,4005,4006],{},"Prompt engineering tactics for the Evaluator must actively enforce skepticism. You have to explicitly instruct the model to assume the output is flawed. The prompt should demand that the Evaluator search for specific failure modes, edge cases, and missing requirements. It must output a structured assessment—often a JSON payload detailing exact line numbers and missing criteria—rather than a conversational summary.",[12,4008,4009,4010,4015],{},"Top engineering teams combine this static LLM review with dynamic runtime validation. For example, ",[3983,4011,4014],{"href":4012,"rel":4013},"https:\u002F\u002Fwww.shiplight.ai\u002Fblog\u002Fplanner-generator-evaluator-multi-agent-qa",[3987],"OpenAI wired the Chrome DevTools Protocol into their agent runtime"," to validate UI fixes in a real browser. This functional observation provides a ground-truth signal that static code inspection cannot match. When the Evaluator finds a flaw, its detailed, structured feedback becomes the exact prompt for the Generator's next iteration.",[24,4017,4019],{"id":4018},"implementing-the-planner-generator-evaluator-pattern-in-production","Implementing the Planner-Generator-Evaluator Pattern in Production",[12,4021,4022],{},"Implementing the planner-generator-evaluator pattern in production requires assigning distinct foundation models to each role based on their strengths. This balances reasoning capabilities with token costs. Teams route complex planning and evaluation to frontier models, assigning repetitive generation to faster, cost-effective alternatives.",[12,4024,4025],{},"You do not need to use the most expensive model for every step. A standard routing strategy looks like this:",[75,4027,4028,4034,4040],{},[78,4029,4030,4033],{},[16,4031,4032],{},"Planner:"," Claude 3.5 Sonnet or GPT-4o (high reasoning, deep context)",[78,4035,4036,4039],{},[16,4037,4038],{},"Generator:"," Claude 3.5 Haiku or GPT-4o-mini (fast execution, low cost)",[78,4041,4042,4045],{},[16,4043,4044],{},"Evaluator:"," Claude 3.5 Sonnet or GPT-4o (strict logic, critical analysis)",[12,4047,4048],{},"By deliberately splitting these tasks, you optimize for both budget and performance without degrading the final output.",[12,4050,4051],{},"You must define strict iteration limits to prevent infinite loops and control API spend. Cap the evaluation loop at three to five cycles. If the Generator cannot satisfy the Evaluator after five attempts, the system should halt and escalate the task to a human developer. A loop that fails to converge usually indicates a flawed initial plan or an impossible specification, not a generation error.",[12,4053,4054,4055,4060],{},"Orchestration requires managing state, scheduling, and communication between these isolated contexts. You can wire these agents together using code-first SDKs like ",[3983,4056,4059],{"href":4057,"rel":4058},"https:\u002F\u002Fchatbotkit.com\u002Fexamples\u002Fplanner-executor-evaluator-harness",[3987],"ChatBotKit"," or visual workflow builders. Regardless of the tooling, keep the system prompts entirely isolated per role to maintain the integrity of the adversarial harness. State management must rigorously track which iteration cycle the system is currently executing to enforce the termination thresholds.",[24,4062,4064],{"id":4063},"the-cost-and-complexity-trade-offs","The Cost and Complexity Trade-Offs",[12,4066,4067],{},"Adopting a three-agent harness introduces significant architectural complexity, increasing token overhead, latency, and debugging difficulty. Engineering teams must earn this complexity by proving a single-agent baseline cannot meet the required quality bar, investing heavily in observability tooling to trace which agent introduced an error.",[12,4069,4070],{},"Multi-agent loops cost more and run slower. Passing context back and forth between three distinct models over multiple network requests adds unavoidable latency. If your user expects a real-time response, an iterative evaluation loop will feel sluggish and unresponsive. You are fundamentally trading speed for mathematical correctness and reliability.",[12,4072,4073,4074,4079],{},"Debugging also becomes a distributed systems problem. A failure could stem from a vague plan, a hallucinated generation, or an overly pedantic evaluation. As noted in the ",[3983,4075,4078],{"href":4076,"rel":4077},"https:\u002F\u002Fwww.codebridge.tech\u002Farticles\u002Fsingle-agent-vs-multi-agent-architecture-what-changes-in-reliability-cost-and-debuggability",[3987],"Codebridge decision framework",", teams that ship reliable AI systems are those who earned every agent they added. You must be able to isolate whether the Planner missed a constraint or the Evaluator triggered a false positive.",[12,4081,4082,4083],{},"Do not use this pattern for simple text summarization or basic data extraction. Reserve the PGE harness for high-stakes domains like code generation, continuous integration configuration, or infrastructure as code.",[4084,4085,4086],"sup",{},[3983,4087,4092],{"href":4088,"ariaDescribedBy":4089,"dataFootnoteRef":7,"id":4091},"#user-content-fn-1",[4090],"footnote-label","user-content-fnref-1","1",[12,4094,4095],{},"To maintain system observability, you must mandate robust logging for every iteration cycle. Record the exact prompt, the raw output, the token count, and the latency for every single role in the loop. Without this granular telemetry, diagnosing a failed multi-agent workflow devolves into blind guesswork.",[24,4097,131],{"id":130},[12,4099,4100],{},"The three-agent harness proves that reliable AI outputs require architectural discipline and strict separation of concerns. Moving beyond monolithic prompts into specialized, adversarial feedback loops catches errors before they reach production. It forces foundation models to operate within the same quality assurance constraints we expect from human engineering teams.",[12,4102,4103],{},"Audit your most error-prone single-agent workflow today. Split the existing prompt into a distinct planning phase and a generation phase, and manually act as the Evaluator yourself to measure the quality delta. Do this before you write any orchestration code.",[4105,4106,4109,4114],"section",{"className":4107,"dataFootnotes":7},[4108],"footnotes",[24,4110,4113],{"className":4111,"id":4090},[4112],"sr-only","Footnotes",[4115,4116,4117],"ol",{},[78,4118,4120,4121],{"id":4119},"user-content-fn-1","Anthropic engineering notes that harness design for long-running apps demands continuous iteration and monitoring. It is a practice, not a pattern you implement once and forget. ",[3983,4122,4127],{"href":4123,"ariaLabel":4124,"className":4125,"dataFootnoteBackref":7},"#user-content-fnref-1","Back to reference 1",[4126],"data-footnote-backref","↩",{"title":7,"searchDepth":144,"depth":144,"links":4129},[4130,4131,4132,4133,4134,4135,4136],{"id":3945,"depth":144,"text":3946},{"id":3961,"depth":144,"text":3962},{"id":3992,"depth":144,"text":3993},{"id":4018,"depth":144,"text":4019},{"id":4063,"depth":144,"text":4064},{"id":130,"depth":144,"text":131},{"id":4090,"depth":144,"text":4113},[4138,4139,4140,4141,4142,158],"planner-generator-evaluator pattern","multi-agent architecture","AI agent production","LLM orchestration","AI evaluation loop",{},"Learn how the planner-generator-evaluator pattern fixes single-agent hallucinations by separating reasoning, execution, and QA into distinct roles.","The Planner-Generator-Evaluator Pattern for AI Agents","\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expb-round2-article",[],{"intro":170,"the-fallacy-of-single-agent-systems":3946,"deconstructing-the-planner-generator-evaluator-pattern":3962,"why-the-evaluator-role-dictates-success":3993,"implementing-the-planner-generator-evaluator-pattern-in-production":4019,"the-cost-and-complexity-trade-offs":4064},{"title":3928,"description":3929},{"loc":4146},"planner-generator-evaluator-pattern","articles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-ca-203-expb-round2-article","LnDdAcnBrlLUDdhOLM6KJwu-rn73rrBJBoIvD13uA-c",{"id":4155,"title":4156,"ai_summary":4157,"author":7,"body":4158,"category":4726,"date_modified":153,"description":4727,"excerpt":7,"extension":155,"faq":153,"keywords":4728,"meta":4737,"meta_description":4738,"meta_title":4739,"navigation":166,"path":4740,"primary_keyword":4729,"published_at":153,"related_posts":4741,"sections":4742,"seo":4743,"sitemap":4744,"slug":4745,"status":174,"stem":4746,"__hash__":4747},"articles\u002Farticles\u002Fagent-architecture-the-orchestration-stack-that-actually-emerged-article.md","The Emergent AI Agent Orchestration Stack: Harnesses, Specs, and Primitives","AI agent orchestration stacks mature compute layers atop lagging coordination using YAML harnesses, spec-driven workflows, and primitives like tool registries and state persistence. Tools such as Archon V3 and Claude Code enable deterministic multi-agent execution for production reliability without frameworks.",{"type":9,"value":4159,"toc":4717},[4160,4176,4186,4190,4199,4209,4221,4224,4234,4238,4249,4259,4269,4272,4276,4287,4303,4306,4309,4313,4322,4342,4359,4362,4366,4375,4395,4398,4401,4459,4462,4465,4469,4480,4497,4520,4523,4526,4713],[12,4161,4162,4163,4168],{},"Production AI agent orchestration demands stack literacy across six uneven layers, from mature compute sandboxes like E2B Firecracker to lagging coordination without Kubernetes-grade tools. Builders bridge gaps with YAML harnesses and spec-driven workflows today, delivering deterministic multi-agent execution via Archon V3 and Claude Code primitives.",[4084,4164,4165],{},[3983,4166,4092],{"href":4088,"ariaDescribedBy":4167,"dataFootnoteRef":7,"id":4091},[4090],[4084,4169,4170],{},[3983,4171,4175],{"href":4172,"ariaDescribedBy":4173,"dataFootnoteRef":7,"id":4174},"#user-content-fn-2",[4090],"user-content-fnref-2","2",[12,4177,4178,4179,4185],{},"Demos shine with single agents, but real systems crumble on orchestration failures—compounding errors across layers drop end-to-end reliability from five 99% components to 95% overall.",[4084,4180,4181],{},[3983,4182,4092],{"href":4088,"ariaDescribedBy":4183,"dataFootnoteRef":7,"id":4184},[4090],"user-content-fnref-1-2"," Without primitives like tool registries and state persistence, you risk hyperscaler lock-in and sprawl. This guide maps the stack, harnesses, specs, challenges, and pitfalls to ship reliable agents now.",[24,4187,4189],{"id":4188},"the-layered-maturity-of-the-ai-agent-stack","The Layered Maturity of the AI Agent Stack",[12,4191,4192,4193],{},"The AI agent stack matures unevenly across six layers—compute and sandboxing lead with mature tools like Browserbase and E2B Firecracker for isolated execution, while orchestration lags like pre-Kubernetes eras without infra-grade scheduling or FinOps. Identity\u002Fcomms transitions via emerging agent-native protocols beyond email shims. This creates production bottlenecks in coordination, demanding immediate stack literacy.",[4084,4194,4195],{},[3983,4196,4092],{"href":4088,"ariaDescribedBy":4197,"dataFootnoteRef":7,"id":4198},[4090],"user-content-fnref-1-3",[12,4200,4201,4202,4208],{},"Nate B. Jones breaks it into six layers in his analysis.",[4084,4203,4204],{},[3983,4205,4092],{"href":4088,"ariaDescribedBy":4206,"dataFootnoteRef":7,"id":4207},[4090],"user-content-fnref-1-4"," Compute\u002Fsandboxing handles isolated execution reliably. Identity\u002Fcomms transitions with emerging agent-native protocols over email shims.",[12,4210,4211,4212,4220],{},"Memory sits early, blending Mem0 hybrids but risking vendor lock-in.",[4084,4213,4214],{},[3983,4215,4219],{"href":4216,"ariaDescribedBy":4217,"dataFootnoteRef":7,"id":4218},"#user-content-fn-3",[4090],"user-content-fnref-3","3"," Tools explode via Compose connectors for auth-heavy integrations.",[12,4222,4223],{},"Provisioning emerges in Stripe Projects for dynamic scaling. Orchestration gaps lack FinOps and infra-grade controls—no standard for fleets.",[12,4225,4226,4227,4233],{},"Ephemeral agents suit quick tasks; persistent ones need state for long runs. Gartner notes a 1,445% multi-agent surge, amplifying these mismatches.",[4084,4228,4229],{},[3983,4230,4092],{"href":4088,"ariaDescribedBy":4231,"dataFootnoteRef":7,"id":4232},[4090],"user-content-fnref-1-5"," Skip stack literacy, and your agents stay demo-bound.",[24,4235,4237],{"id":4236},"what-is-harness-engineering-for-ai-agent-orchestration","What Is Harness Engineering for AI Agent Orchestration?",[12,4239,4240,4241],{},"Harness engineering wraps unreliable AI agents in declarative YAML or Markdown workflows that use DAGs for dependencies, Git worktrees for parallel isolation, and pre\u002Fpost-tool hooks for self-correction and verification loops like type-checks or rewrites. This enables Stripe-scale PRs (1,300\u002Fweek) without constant oversight by treating agents as deterministic nodes.",[4084,4242,4243],{},[3983,4244,4248],{"href":4245,"ariaDescribedBy":4246,"dataFootnoteRef":7,"id":4247},"#user-content-fn-4",[4090],"user-content-fnref-4","4",[12,4250,4251,4252,4258],{},"Archon V3 defines this: YAML commands like classify\u002Fplan\u002Fimplement form nodes in DAGs with dependencies.",[4084,4253,4254],{},[3983,4255,4248],{"href":4245,"ariaDescribedBy":4256,"dataFootnoteRef":7,"id":4257},[4090],"user-content-fnref-4-2"," Worktrees isolate parallel runs—four agents at once without clashes. Pre\u002Fpost-tool hooks loop for verification, like type-checks or rewrites.",[12,4260,4261,4262,4268],{},"Claude Code adds structured metadata, permissions, and multi-agent forks.",[4084,4263,4264],{},[3983,4265,4175],{"href":4172,"ariaDescribedBy":4266,"dataFootnoteRef":7,"id":4267},[4090],"user-content-fnref-2-2"," Mix precise steps with AI nodes; extend as Markdown primitives standard in Anthropic\u002FOpenAI for chaining. You treat agents as cogs in deterministic machines, not free-range thinkers.",[12,4270,4271],{},"This beats prompt tweaks alone. Version YAML in Git for audits. Production demands it over ad-hoc calls.",[24,4273,4275],{"id":4274},"the-shift-to-spec-centric-development","The Shift to Spec-Centric Development",[12,4277,4278,4279],{},"Spec-centric development flips code-first workflows by making declarative specs in YAML or Markdown the executable single source of truth, driving AI agents like GitHub SpecKit to generate synchronized code through staged pipelines of specify\u002Fplan\u002Ftasks\u002Fimplement for consistent handoffs.",[4084,4280,4281],{},[3983,4282,4286],{"href":4283,"ariaDescribedBy":4284,"dataFootnoteRef":7,"id":4285},"#user-content-fn-5",[4090],"user-content-fnref-5","5",[12,4288,4289,4290,4296,4297],{},"Code drifts specs outdated; specs drive regeneration instead.",[4084,4291,4292],{},[3983,4293,4286],{"href":4283,"ariaDescribedBy":4294,"dataFootnoteRef":7,"id":4295},[4090],"user-content-fnref-5-2"," GitHub SpecKit structures .github\u002Fprompts\u002Fagents for PM\u002Farchitect\u002Fengineer handoffs. Anthropic harnesses use minimal three agents—planner\u002Fgenerator\u002Fevaluator—outpacing bloated frameworks on Opus models.",[4084,4298,4299],{},[3983,4300,4175],{"href":4172,"ariaDescribedBy":4301,"dataFootnoteRef":7,"id":4302},[4090],"user-content-fnref-2-3",[12,4304,4305],{},"Version specs in repos for team reliability. No more merge hell from AI code dumps. Specs ensure handoffs work; code follows.",[12,4307,4308],{},"I prefer this for complex projects. It cuts ambiguity. Agents execute living docs, not stale prose.",[24,4310,4312],{"id":4311},"why-ai-agent-orchestration-is-the-biggest-unsolved-problem","Why AI Agent Orchestration Is the Biggest Unsolved Problem",[12,4314,4315,4316],{},"AI agent orchestration fails production due to critical gaps in scheduling\u002Flifecycle management, supervision hierarchies, FinOps controls, inter-agent comms protocols, and observability tools—current libraries like LangGraph manage notebooks but crumble under 50-agent fleets needing audits and traces.",[4084,4317,4318],{},[3983,4319,4219],{"href":4216,"ariaDescribedBy":4320,"dataFootnoteRef":7,"id":4321},[4090],"user-content-fnref-3-2",[75,4323,4324,4333,4336,4339],{},[78,4325,4326,4327],{},"Dynamic scheduling beats cron; state persists across crashes.",[4084,4328,4329],{},[3983,4330,4219],{"href":4216,"ariaDescribedBy":4331,"dataFootnoteRef":7,"id":4332},[4090],"user-content-fnref-3-3",[78,4334,4335],{},"Retry logic and error isolation prevent cascades.",[78,4337,4338],{},"Token budgeting enforces FinOps per task.",[78,4340,4341],{},"MCP protocols limit comms; no standard for negotiation.",[12,4343,4344,4345,4351,4352,4358],{},"MindStudio calls it the core blocker: demos route simply, production demands hierarchies and traces.",[4084,4346,4347],{},[3983,4348,4219],{"href":4216,"ariaDescribedBy":4349,"dataFootnoteRef":7,"id":4350},[4090],"user-content-fnref-3-4"," Jones likens it to pre-K8s chaos.",[4084,4353,4354],{},[3983,4355,4092],{"href":4088,"ariaDescribedBy":4356,"dataFootnoteRef":7,"id":4357},[4090],"user-content-fnref-1-6"," Flexibility invites emergence; determinism suits enterprise.",[12,4360,4361],{},"Trade-off bites: emergent behavior thrills but flakes. Prioritize primitives over frameworks. Libraries add overhead without infra.",[24,4363,4365],{"id":4364},"key-primitives-for-production-ai-agent-orchestration","Key Primitives for Production AI Agent Orchestration",[12,4367,4368,4369],{},"Production AI agent orchestration relies on 12 primitives from Claude Code leaks, including tool registries for metadata filtering, tiered permissions to block rogue actions, state persistence via JSON sessions, token budgeting with projections and halts, structured logging through typed events, verification loops, plus agent typing and dynamic pools for crash-resilient, observable multi-agent workflows.",[4084,4370,4371],{},[3983,4372,4175],{"href":4172,"ariaDescribedBy":4373,"dataFootnoteRef":7,"id":4374},[4090],"user-content-fnref-2-4",[75,4376,4377,4386,4389,4392],{},[78,4378,4379,4380],{},"Dual registries list 207 commands with metadata for filtering.",[4084,4381,4382],{},[3983,4383,4175],{"href":4172,"ariaDescribedBy":4384,"dataFootnoteRef":7,"id":4385},[4090],"user-content-fnref-2-5",[78,4387,4388],{},"Permissions tier built-in\u002Fplugins\u002Fuser to block rogue acts.",[78,4390,4391],{},"JSON persists sessions; projections halt overruns.",[78,4393,4394],{},"Typed events stream logs.",[12,4396,4397],{},"Agents specialize: explore\u002Fplan\u002Fverify types in hierarchies. Formula: Role+Goal+Tools+Rules+Output.",[12,4399,4400],{},"Code stub for tools:",[4402,4403,4407],"pre",{"className":4404,"code":4405,"language":4406,"meta":7,"style":7},"language-yaml shiki shiki-themes github-light github-dark","tools:\n  - name: list_files\n    description: List files in directory\n    source: builtin\n","yaml",[3823,4408,4409,4422,4437,4448],{"__ignoreMap":7},[4410,4411,4414,4418],"span",{"class":4412,"line":4413},"line",1,[4410,4415,4417],{"class":4416},"s9eBZ","tools",[4410,4419,4421],{"class":4420},"sVt8B",":\n",[4410,4423,4424,4427,4430,4433],{"class":4412,"line":144},[4410,4425,4426],{"class":4420},"  - ",[4410,4428,4429],{"class":4416},"name",[4410,4431,4432],{"class":4420},": ",[4410,4434,4436],{"class":4435},"sZZnC","list_files\n",[4410,4438,4440,4443,4445],{"class":4412,"line":4439},3,[4410,4441,4442],{"class":4416},"    description",[4410,4444,4432],{"class":4420},[4410,4446,4447],{"class":4435},"List files in directory\n",[4410,4449,4451,4454,4456],{"class":4412,"line":4450},4,[4410,4452,4453],{"class":4416},"    source",[4410,4455,4432],{"class":4420},[4410,4457,4458],{"class":4435},"builtin\n",[12,4460,4461],{},"Persist post-events. Update claude.md for skills; \u002Fplan for tasks. Pools assemble per-session.",[12,4463,4464],{},"These make fleets observable. Skip them, stay small-scale.",[24,4466,4468],{"id":4467},"common-pitfalls-and-trade-offs-in-multi-agent-systems","Common Pitfalls and Trade-offs in Multi-Agent Systems",[12,4470,4471,4472],{},"Multi-agent systems trip on overkill by jumping to agents before mastering 5 workflows, bloat from skills exceeding 150 lines, lock-in via hyperscaler memory, and ignoring compounding failures that drop reliability—counter them by testing quantitatively, tiering skills, and designing agent-first for composability.",[4084,4473,4474],{},[3983,4475,4479],{"href":4476,"ariaDescribedBy":4477,"dataFootnoteRef":7,"id":4478},"#user-content-fn-6",[4090],"user-content-fnref-6","6",[75,4481,4482,4491,4494],{},[78,4483,4484,4485],{},"Vague skills undertrigger; self-evals overconfident; no permissions equals demos.",[4084,4486,4487],{},[3983,4488,4175],{"href":4172,"ariaDescribedBy":4489,"dataFootnoteRef":7,"id":4490},[4090],"user-content-fnref-2-6",[78,4492,4493],{},"Single agents scale until they don't—multi for handoffs.",[78,4495,4496],{},"Ephemeral for bursts; persistent for state.",[12,4498,4499,4500,4506,4507,4513,4514],{},"Frameworks bloat post-Opus; chaining routes first.",[4084,4501,4502],{},[3983,4503,4479],{"href":4476,"ariaDescribedBy":4504,"dataFootnoteRef":7,"id":4505},[4090],"user-content-fnref-6-2"," Margerie: Master Role+Goal+Tools+Rules+Output.",[4084,4508,4509],{},[3983,4510,4479],{"href":4476,"ariaDescribedBy":4511,"dataFootnoteRef":7,"id":4512},[4090],"user-content-fnref-6-3"," Jones: Primitives avert pain.",[4084,4515,4516],{},[3983,4517,4092],{"href":4088,"ariaDescribedBy":4518,"dataFootnoteRef":7,"id":4519},[4090],"user-content-fnref-1-7",[12,4521,4522],{},"Test E2E: 99% layers compound poorly. Agent-first composes; code-first breaks.",[12,4524,4525],{},"Audit your agent workflow against Claude Code's 12 primitives today. Fork an Archon V3 YAML harness into a Git repo, route a test issue through planner\u002Fgenerator\u002Fevaluator, and log E2E reliability metrics before adding agents.",[4105,4527,4529,4532],{"className":4528,"dataFootnotes":7},[4108],[24,4530,4113],{"className":4531,"id":4090},[4112],[4115,4533,4534,4584,4628,4658,4674,4690],{},[78,4535,4536,4537,4540,4541,4540,4548,4540,4555,4540,4562,4540,4569,4540,4576],{"id":4119},"Nate B. Jones, \"6-Layer AI Agent Stack: Build Literacy Now,\" AI News & Strategy Daily. ",[3983,4538,4127],{"href":4123,"ariaLabel":4124,"className":4539,"dataFootnoteBackref":7},[4126]," ",[3983,4542,4127,4546],{"href":4543,"ariaLabel":4544,"className":4545,"dataFootnoteBackref":7},"#user-content-fnref-1-2","Back to reference 1-2",[4126],[4084,4547,4175],{},[3983,4549,4127,4553],{"href":4550,"ariaLabel":4551,"className":4552,"dataFootnoteBackref":7},"#user-content-fnref-1-3","Back to reference 1-3",[4126],[4084,4554,4219],{},[3983,4556,4127,4560],{"href":4557,"ariaLabel":4558,"className":4559,"dataFootnoteBackref":7},"#user-content-fnref-1-4","Back to reference 1-4",[4126],[4084,4561,4248],{},[3983,4563,4127,4567],{"href":4564,"ariaLabel":4565,"className":4566,"dataFootnoteBackref":7},"#user-content-fnref-1-5","Back to reference 1-5",[4126],[4084,4568,4286],{},[3983,4570,4127,4574],{"href":4571,"ariaLabel":4572,"className":4573,"dataFootnoteBackref":7},"#user-content-fnref-1-6","Back to reference 1-6",[4126],[4084,4575,4479],{},[3983,4577,4127,4581],{"href":4578,"ariaLabel":4579,"className":4580,"dataFootnoteBackref":7},"#user-content-fnref-1-7","Back to reference 1-7",[4126],[4084,4582,4583],{},"7",[78,4585,4587,4588,4540,4593,4540,4600,4540,4607,4540,4614,4540,4621],{"id":4586},"user-content-fn-2","Nick Puru, \"Claude Code Leak Reveals Full AI Orchestration Engine,\" AI Automation. ",[3983,4589,4127],{"href":4590,"ariaLabel":4591,"className":4592,"dataFootnoteBackref":7},"#user-content-fnref-2","Back to reference 2",[4126],[3983,4594,4127,4598],{"href":4595,"ariaLabel":4596,"className":4597,"dataFootnoteBackref":7},"#user-content-fnref-2-2","Back to reference 2-2",[4126],[4084,4599,4175],{},[3983,4601,4127,4605],{"href":4602,"ariaLabel":4603,"className":4604,"dataFootnoteBackref":7},"#user-content-fnref-2-3","Back to reference 2-3",[4126],[4084,4606,4219],{},[3983,4608,4127,4612],{"href":4609,"ariaLabel":4610,"className":4611,"dataFootnoteBackref":7},"#user-content-fnref-2-4","Back to reference 2-4",[4126],[4084,4613,4248],{},[3983,4615,4127,4619],{"href":4616,"ariaLabel":4617,"className":4618,"dataFootnoteBackref":7},"#user-content-fnref-2-5","Back to reference 2-5",[4126],[4084,4620,4286],{},[3983,4622,4127,4626],{"href":4623,"ariaLabel":4624,"className":4625,"dataFootnoteBackref":7},"#user-content-fnref-2-6","Back to reference 2-6",[4126],[4084,4627,4479],{},[78,4629,4631,4632,4540,4637,4540,4644,4540,4651],{"id":4630},"user-content-fn-3","MindStudio, \"What Is Agent Orchestration? Why It's the Biggest Unsolved Problem in the AI Stack.\" ",[3983,4633,4127],{"href":4634,"ariaLabel":4635,"className":4636,"dataFootnoteBackref":7},"#user-content-fnref-3","Back to reference 3",[4126],[3983,4638,4127,4642],{"href":4639,"ariaLabel":4640,"className":4641,"dataFootnoteBackref":7},"#user-content-fnref-3-2","Back to reference 3-2",[4126],[4084,4643,4175],{},[3983,4645,4127,4649],{"href":4646,"ariaLabel":4647,"className":4648,"dataFootnoteBackref":7},"#user-content-fnref-3-3","Back to reference 3-3",[4126],[4084,4650,4219],{},[3983,4652,4127,4656],{"href":4653,"ariaLabel":4654,"className":4655,"dataFootnoteBackref":7},"#user-content-fnref-3-4","Back to reference 3-4",[4126],[4084,4657,4248],{},[78,4659,4661,4662,4540,4667],{"id":4660},"user-content-fn-4","\"Archon V3: YAML Harnesses for AI Coding Agents,\" DIY Smart Code. ",[3983,4663,4127],{"href":4664,"ariaLabel":4665,"className":4666,"dataFootnoteBackref":7},"#user-content-fnref-4","Back to reference 4",[4126],[3983,4668,4127,4672],{"href":4669,"ariaLabel":4670,"className":4671,"dataFootnoteBackref":7},"#user-content-fnref-4-2","Back to reference 4-2",[4126],[4084,4673,4175],{},[78,4675,4677,4678,4540,4683],{"id":4676},"user-content-fn-5","\"SDD Makes Specs the Single Source of Truth via AI Agents,\" Level Up Coding. ",[3983,4679,4127],{"href":4680,"ariaLabel":4681,"className":4682,"dataFootnoteBackref":7},"#user-content-fnref-5","Back to reference 5",[4126],[3983,4684,4127,4688],{"href":4685,"ariaLabel":4686,"className":4687,"dataFootnoteBackref":7},"#user-content-fnref-5-2","Back to reference 5-2",[4126],[4084,4689,4175],{},[78,4691,4693,4694,4540,4699,4540,4706],{"id":4692},"user-content-fn-6","Lukas Margerie insights on agent fundamentals. ",[3983,4695,4127],{"href":4696,"ariaLabel":4697,"className":4698,"dataFootnoteBackref":7},"#user-content-fnref-6","Back to reference 6",[4126],[3983,4700,4127,4704],{"href":4701,"ariaLabel":4702,"className":4703,"dataFootnoteBackref":7},"#user-content-fnref-6-2","Back to reference 6-2",[4126],[4084,4705,4175],{},[3983,4707,4127,4711],{"href":4708,"ariaLabel":4709,"className":4710,"dataFootnoteBackref":7},"#user-content-fnref-6-3","Back to reference 6-3",[4126],[4084,4712,4219],{},[4714,4715,4716],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":7,"searchDepth":144,"depth":144,"links":4718},[4719,4720,4721,4722,4723,4724,4725],{"id":4188,"depth":144,"text":4189},{"id":4236,"depth":144,"text":4237},{"id":4274,"depth":144,"text":4275},{"id":4311,"depth":144,"text":4312},{"id":4364,"depth":144,"text":4365},{"id":4467,"depth":144,"text":4468},{"id":4090,"depth":144,"text":4113},"ai-agents","Production AI agent orchestration demands stack literacy across six uneven layers, from mature compute sandboxes like E2B Firecracker to lagging coordination without Kubernetes-grade tools. Builders bridge gaps with YAML harnesses and spec-driven workflows today, delivering deterministic multi-agent execution via Archon V3 and Claude Code primitives.12",[4729,4730,4731,4732,4733,4734,4735,4736],"AI agent orchestration","agent stack","harness engineering","spec-centric development","multi-agent systems","Claude Code","Archon V3","production AI agents",{},"Master the emergent AI agent orchestration stack: uneven maturity, harness engineering, spec-centric dev, and key primitives for production multi-agent systems. Avoid pitfalls with practical workflows from Claude Code and Archon V3.","AI Agent Orchestration Stack: Layers and Primitives","\u002Farticles\u002Fagent-architecture-the-orchestration-stack-that-actually-emerged-article",[],{"the-layered-maturity-of-the-ai-agent-stack":4189,"what-is-harness-engineering-for-ai-agent-orchestration":4237,"the-shift-to-spec-centric-development":4275,"why-ai-agent-orchestration-is-the-biggest-unsolved-problem":4312,"key-primitives-for-production-ai-agent-orchestration":4365,"common-pitfalls-and-trade-offs-in-multi-agent-systems":4468},{"title":4156,"description":4727},{"loc":4740},"emergent-ai-agent-orchestration-stack-harnesess-specs-primitives","articles\u002Fagent-architecture-the-orchestration-stack-that-actually-emerged-article","xdOSx_FUsF7EEM6WqQRjgq4p4T-5gHkBnwndjo2dz-M",{"id":4749,"title":4750,"ai_summary":4751,"author":7,"body":4752,"category":5898,"date_modified":153,"description":5899,"excerpt":7,"extension":155,"faq":153,"keywords":5900,"meta":5906,"meta_description":5907,"meta_title":5908,"navigation":166,"path":5909,"primary_keyword":4759,"published_at":153,"related_posts":5910,"sections":5911,"seo":5913,"sitemap":5914,"slug":5915,"status":174,"stem":5916,"__hash__":5917},"articles\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-article.md","The 3-Core Agent Harness: Planner, Generator, Evaluator for Production AI Agents","Production AI agent systems succeed with a 3-core agent harness: Planner creates high-level outlines, Generator builds outputs from them, and Evaluator critiques via graded rubrics. This strips 90% redundant framework overhead, leveraging modern LLMs for reliable, scalable results on long tasks.",{"type":9,"value":4753,"toc":5888},[4754,4767,4770,4779,4787,4801,4804,5012,5015,5019,5028,5031,5039,5053,5056,5060,5071,5078,5086,5094,5102,5115,5118,5127,5130,5166,5169,5173,5183,5186,5189,5192,5201,5204,5208,5220,5223,5226,5234,5237,5241,5254,5284,5292,5298,5301,5376,5379,5385,5412,5415,5424,5430,5510,5525,5530,5562,5574,5577,5581,5597,5600,5622,5625,5634,5637,5640,5644,5653,5656,5682,5692,5695,5698,5701,5885],[12,4755,4756,4757,4760,4761,4766],{},"Production AI agent systems thrive with a ",[16,4758,4759],{},"3-core agent harness","—Planner for high-level outlines, Generator for implementation, Evaluator for adversarial critique using graded rubrics—stripping 90% bloated framework overhead per Anthropic tests.",[4084,4762,4763],{},[3983,4764,4092],{"href":4088,"ariaDescribedBy":4765,"dataFootnoteRef":7,"id":4091},[4090]," This leverages modern LLMs' 1M+ token windows and coherence for reliable, scalable outputs on long-horizon tasks.",[12,4768,4769],{},"You've likely tried agent frameworks that promise reliability but deliver cascading errors from micro-task sharding. Those assumptions fit older LLMs with short contexts and poor coherence, not Claude Opus 4.6. This harness ships product-level work like high-volume AI-generated PRs, letting you focus on primitives over complexity.",[12,4771,4772,4773,4778],{},"Anthropic's experiments, summarized by AI LABS, tested stripping frameworks layer by layer on long tasks.",[4084,4774,4775],{},[3983,4776,4092],{"href":4088,"ariaDescribedBy":4777,"dataFootnoteRef":7,"id":4184},[4090]," Results showed only the Planner for product outlines, Generator for execution, and Evaluator for critique delivered gains. Complex staging in SpecKit or loops in GSD added token bloat and error drift without benefits.",[12,4780,4781,4782],{},"Contrast traditional setups: BMAD shards PRDs into micro-tasks to handle context resets; GSD enforces rigid agent loops for weak reasoning. With 1M-token windows, LLMs now manage full product scopes autonomously—micro-sharding forces premature decisions that fail downstream.",[4084,4783,4784],{},[3983,4785,4092],{"href":4088,"ariaDescribedBy":4786,"dataFootnoteRef":7,"id":4198},[4090],[12,4788,4789,4790,4795,4796],{},"Nate B. Jones's analysis of Claude's leaked code reinforces primitives over frameworks for scalability.",[4084,4791,4792],{},[3983,4793,4175],{"href":4172,"ariaDescribedBy":4794,"dataFootnoteRef":7,"id":4174},[4090]," Agent Blueprint advises single-agent mastery before multi-agent scaling.",[4084,4797,4798],{},[3983,4799,4219],{"href":4216,"ariaDescribedBy":4800,"dataFootnoteRef":7,"id":4218},[4090],[12,4802,4803],{},"To see it in action, here's a minimal YAML harness stub using Archon V3 style for a task-tracking app:",[4402,4805,4807],{"className":4404,"code":4806,"language":4406,"meta":7,"style":7},"harness:\n  planner:\n    role: \"Product Lead\"\n    goal: \"Outline task-tracking app\"\n    tools: [\"search\"]\n    rules: [\"High-level only; flag risks; no code\"]\n    output: \"Markdown: user stories, features, roadmap\"\n  generator:\n    role: \"Engineer\"\n    goal: \"Implement planner outline\"\n    tools: [\"git\", \"calc\"]\n    rules: [\"Isolated worktree; commit artifacts\"]\n    output: \"Code files + README\"\n  evaluator:\n    role: \"QA Adversary\"\n    goal: \"Score vs rubric\"\n    tools: [\"playwright\"]\n    rules: [\"Assume flaws; weighted scores\"]\n    output: \"JSON: scores, fixes\"\n",[3823,4808,4809,4816,4823,4833,4843,4858,4871,4882,4890,4900,4910,4928,4940,4950,4958,4968,4978,4990,5002],{"__ignoreMap":7},[4410,4810,4811,4814],{"class":4412,"line":4413},[4410,4812,4813],{"class":4416},"harness",[4410,4815,4421],{"class":4420},[4410,4817,4818,4821],{"class":4412,"line":144},[4410,4819,4820],{"class":4416},"  planner",[4410,4822,4421],{"class":4420},[4410,4824,4825,4828,4830],{"class":4412,"line":4439},[4410,4826,4827],{"class":4416},"    role",[4410,4829,4432],{"class":4420},[4410,4831,4832],{"class":4435},"\"Product Lead\"\n",[4410,4834,4835,4838,4840],{"class":4412,"line":4450},[4410,4836,4837],{"class":4416},"    goal",[4410,4839,4432],{"class":4420},[4410,4841,4842],{"class":4435},"\"Outline task-tracking app\"\n",[4410,4844,4846,4849,4852,4855],{"class":4412,"line":4845},5,[4410,4847,4848],{"class":4416},"    tools",[4410,4850,4851],{"class":4420},": [",[4410,4853,4854],{"class":4435},"\"search\"",[4410,4856,4857],{"class":4420},"]\n",[4410,4859,4861,4864,4866,4869],{"class":4412,"line":4860},6,[4410,4862,4863],{"class":4416},"    rules",[4410,4865,4851],{"class":4420},[4410,4867,4868],{"class":4435},"\"High-level only; flag risks; no code\"",[4410,4870,4857],{"class":4420},[4410,4872,4874,4877,4879],{"class":4412,"line":4873},7,[4410,4875,4876],{"class":4416},"    output",[4410,4878,4432],{"class":4420},[4410,4880,4881],{"class":4435},"\"Markdown: user stories, features, roadmap\"\n",[4410,4883,4885,4888],{"class":4412,"line":4884},8,[4410,4886,4887],{"class":4416},"  generator",[4410,4889,4421],{"class":4420},[4410,4891,4893,4895,4897],{"class":4412,"line":4892},9,[4410,4894,4827],{"class":4416},[4410,4896,4432],{"class":4420},[4410,4898,4899],{"class":4435},"\"Engineer\"\n",[4410,4901,4903,4905,4907],{"class":4412,"line":4902},10,[4410,4904,4837],{"class":4416},[4410,4906,4432],{"class":4420},[4410,4908,4909],{"class":4435},"\"Implement planner outline\"\n",[4410,4911,4913,4915,4917,4920,4923,4926],{"class":4412,"line":4912},11,[4410,4914,4848],{"class":4416},[4410,4916,4851],{"class":4420},[4410,4918,4919],{"class":4435},"\"git\"",[4410,4921,4922],{"class":4420},", ",[4410,4924,4925],{"class":4435},"\"calc\"",[4410,4927,4857],{"class":4420},[4410,4929,4931,4933,4935,4938],{"class":4412,"line":4930},12,[4410,4932,4863],{"class":4416},[4410,4934,4851],{"class":4420},[4410,4936,4937],{"class":4435},"\"Isolated worktree; commit artifacts\"",[4410,4939,4857],{"class":4420},[4410,4941,4943,4945,4947],{"class":4412,"line":4942},13,[4410,4944,4876],{"class":4416},[4410,4946,4432],{"class":4420},[4410,4948,4949],{"class":4435},"\"Code files + README\"\n",[4410,4951,4953,4956],{"class":4412,"line":4952},14,[4410,4954,4955],{"class":4416},"  evaluator",[4410,4957,4421],{"class":4420},[4410,4959,4961,4963,4965],{"class":4412,"line":4960},15,[4410,4962,4827],{"class":4416},[4410,4964,4432],{"class":4420},[4410,4966,4967],{"class":4435},"\"QA Adversary\"\n",[4410,4969,4971,4973,4975],{"class":4412,"line":4970},16,[4410,4972,4837],{"class":4416},[4410,4974,4432],{"class":4420},[4410,4976,4977],{"class":4435},"\"Score vs rubric\"\n",[4410,4979,4981,4983,4985,4988],{"class":4412,"line":4980},17,[4410,4982,4848],{"class":4416},[4410,4984,4851],{"class":4420},[4410,4986,4987],{"class":4435},"\"playwright\"",[4410,4989,4857],{"class":4420},[4410,4991,4993,4995,4997,5000],{"class":4412,"line":4992},18,[4410,4994,4863],{"class":4416},[4410,4996,4851],{"class":4420},[4410,4998,4999],{"class":4435},"\"Assume flaws; weighted scores\"",[4410,5001,4857],{"class":4420},[4410,5003,5005,5007,5009],{"class":4412,"line":5004},19,[4410,5006,4876],{"class":4416},[4410,5008,4432],{"class":4420},[4410,5010,5011],{"class":4435},"\"JSON: scores, fixes\"\n",[12,5013,5014],{},"Run via GitHub Actions: trigger on issue, parse YAML, invoke Claude sequentially. This beats npm installs—I've shipped PRs weekly this way. We'll detail roles, primitives, build steps, and trade-offs next.",[24,5016,5018],{"id":5017},"why-production-agent-systems-need-a-3-core-agent-harness","Why Production Agent Systems Need a 3-Core Agent Harness",[12,5020,5021,5022,5027],{},"Ditch bloated agent frameworks—a 3-core agent harness with Planner, Generator, and Evaluator outperforms them by playing to LLM strengths like large contexts and autonomy. Anthropic's Claude Opus 4.6 tests show 90% of components in BMAD, GSD, and SpecKit are redundant overhead that propagates errors on long-horizon tasks.",[4084,5023,5024],{},[3983,5025,4092],{"href":4088,"ariaDescribedBy":5026,"dataFootnoteRef":7,"id":4207},[4090]," High-level planning avoids flawed detailed specs, while separate evaluation enforces rigor.",[12,5029,5030],{},"Traditional frameworks compensate for outdated LLM limits: context resets demand sharding, weak coherence needs rigid loops. But 1M-token windows and improved reasoning make micro-tasking counterproductive—it forces premature decisions that cascade failures.",[12,5032,5033,5034],{},"Anthropic's experiments, summarized by AI LABS, tested stripping frameworks layer by layer. Results? Only the planner for product outlines, generator for execution, and evaluator for critique yielded gains. Complex staging in SpecKit or GSD loops adds no value; it bloats token use and invites drift.",[4084,5035,5036],{},[3983,5037,4092],{"href":4088,"ariaDescribedBy":5038,"dataFootnoteRef":7,"id":4232},[4090],[12,5040,5041,5042,5047,5048],{},"Nate B. Jones's analysis of Claude's leaked code echoes this: primitives beat frameworks for scalability.",[4084,5043,5044],{},[3983,5045,4175],{"href":4172,"ariaDescribedBy":5046,"dataFootnoteRef":7,"id":4267},[4090]," Agent Blueprint stresses single-agent mastery first, scaling only for distinct skills.",[4084,5049,5050],{},[3983,5051,4219],{"href":4216,"ariaDescribedBy":5052,"dataFootnoteRef":7,"id":4321},[4090],[12,5054,5055],{},"I've built agents both ways. Frameworks feel safe until production hits—then you're debugging orchestration bugs, not shipping features. The harness cuts that noise.",[24,5057,5059],{"id":5058},"the-planners-role-in-a-3-core-agent-harness","The Planner's Role in a 3-Core Agent Harness",[12,5061,5062,5063,5065,5066],{},"In a ",[16,5064,4759],{},", the Planner generates high-level product outlines, feature breakdowns, and user stories—not micro-tasks—enabling LLMs to autonomously discover optimal paths and avoid error cascades from over-specification. Anthropic's boundary-testing prompts prove Claude Opus 4.6 excels here, generating phased docs without diving into code.",[4084,5067,5068],{},[3983,5069,4092],{"href":4088,"ariaDescribedBy":5070,"dataFootnoteRef":7,"id":4357},[4090],[12,5072,5073,5074,5077],{},"Start prompts with ",[16,5075,5076],{},"Role + Goal + high-level deliverables",". Here's a concrete example for a task-tracking app:",[4402,5079,5084],{"className":5080,"code":5082,"language":5083},[5081],"language-text","You are a product lead with 10+ years shipping SaaS.\n\nGoal: Outline a task-tracking app for indie devs.\n\nDeliverables:\n- 5-10 user stories (As a [user], I want [feature] so [benefit])\n- Key features prioritized by MVP\n- Phased roadmap (Week 1: Core; Week 2: Polish)\n- Risks and assumptions\n\nRules: Stay high-level—no code, tech stacks, or UI mocks. Flag unknowns.\n\nOutput: Markdown sections only.\n","text",[3823,5085,5082],{"__ignoreMap":7},[12,5087,5088,5089],{},"Claude Opus 4.6 generates phased docs like this, iterating on creative paths humans might miss.",[4084,5090,5091],{},[3983,5092,4092],{"href":4088,"ariaDescribedBy":5093,"dataFootnoteRef":7,"id":4519},[4090],[12,5095,5096,5097],{},"Avoid native \"plan\" modes—they fixate on implementation details too early. Archon V3 uses declarative YAML for living workflows, updating plans mid-run.",[4084,5098,5099],{},[3983,5100,4248],{"href":4245,"ariaDescribedBy":5101,"dataFootnoteRef":7,"id":4247},[4090],[12,5103,5104,5105,5108,5109,5114],{},"Agent Blueprint's formula drives reliability: ",[16,5106,5107],{},"Role + Goal + Tools + Rules + Output",".",[4084,5110,5111],{},[3983,5112,4219],{"href":4216,"ariaDescribedBy":5113,"dataFootnoteRef":7,"id":4332},[4090]," For Planner: Tools minimal (search only), Rules (\"Stay high-level; flag risks\"), Output (Markdown sections).",[12,5116,5117],{},"Benefits compound. LLMs outperform humans on detail synthesis—let them handle it post-outline. I've used this for 20+ newsletter outlines; it surfaces non-obvious features like \"AI-suggested subtasks\" I overlooked.",[12,5119,5120,5121,5126],{},"Contrast SpecKit: It stages detailed specs early, locking in assumptions that drift during generation.",[4084,5122,5123],{},[3983,5124,4286],{"href":4283,"ariaDescribedBy":5125,"dataFootnoteRef":7,"id":4285},[4090]," High-level planning iterates faster.",[12,5128,5129],{},"For code integration, pipe output to Generator via file:",[4402,5131,5135],{"className":5132,"code":5133,"language":5134,"meta":7,"style":7},"language-bash shiki shiki-themes github-light github-dark","claude --prompt planner_prompt.md --output planner_outline.md\ngit add planner_outline.md\n","bash",[3823,5136,5137,5156],{"__ignoreMap":7},[4410,5138,5139,5143,5147,5150,5153],{"class":4412,"line":4413},[4410,5140,5142],{"class":5141},"sScJk","claude",[4410,5144,5146],{"class":5145},"sj4cs"," --prompt",[4410,5148,5149],{"class":4435}," planner_prompt.md",[4410,5151,5152],{"class":5145}," --output",[4410,5154,5155],{"class":4435}," planner_outline.md\n",[4410,5157,5158,5161,5164],{"class":4412,"line":144},[4410,5159,5160],{"class":5141},"git",[4410,5162,5163],{"class":4435}," add",[4410,5165,5155],{"class":4435},[12,5167,5168],{},"This keeps plans as artifacts, versioned and reviewable. Scale to repos: Plan entire features from GitHub issues.",[24,5170,5172],{"id":5171},"the-generators-focused-role-in-the-3-core-agent-harness","The Generator's Focused Role in the 3-Core Agent Harness",[12,5174,5062,5175,5177,5178],{},[16,5176,4759],{},", the Generator executes solely on Planner outlines in isolated environments like Git worktrees, producing code, content, or artifacts while avoiding self-evaluation bias and memory bloat. It uses tools sparingly (search, calc) for clean, iterable outputs. Archon V3's Markdown commands make this reusable across tasks.",[4084,5179,5180],{},[3983,5181,4248],{"href":4245,"ariaDescribedBy":5182,"dataFootnoteRef":7,"id":4257},[4090],[12,5184,5185],{},"Core loop: Think, tool if needed, observe, repeat—but single-purpose. No chit-chat; output to files for persistence.",[12,5187,5188],{},"Contrast multi-role agents: Combining generation and eval leads to overconfidence. Generators praise mediocre work; separation forces honesty.",[12,5190,5191],{},"Examples abound. For newsletters: Planner outlines sections, Generator drafts in Markdown. For code: Implement features in fresh worktrees, committing artifacts.",[12,5193,5194,5195,5200],{},"This ties to spec-centric flows like SDD or SpecKit—Generator translates living specs without drift.",[4084,5196,5197],{},[3983,5198,4286],{"href":4283,"ariaDescribedBy":5199,"dataFootnoteRef":7,"id":4295},[4090]," No shared memory; pass via files.",[12,5202,5203],{},"In practice, isolation prevents hallucinations from long contexts. I've generated 50+ PRs weekly this way—far beyond chat-based tinkering.",[24,5205,5207],{"id":5206},"why-a-separate-evaluator-delivers-production-quality","Why a Separate Evaluator Delivers Production Quality",[12,5209,5210,5211,5213,5214],{},"A dedicated Evaluator in the ",[16,5212,4759],{}," scores outputs adversarially against graded rubrics—like UI axes (design: 25%, originality: 25%, craft: 25%, functionality: 25%)—iterating until standards hit and upgrading GSD's pass\u002Ffail to nuanced critique assuming bugs exist. Anthropic stresses holistic excellence over TDD alone.",[4084,5215,5216],{},[3983,5217,4092],{"href":4088,"ariaDescribedBy":5218,"dataFootnoteRef":7,"id":5219},[4090],"user-content-fnref-1-8",[12,5221,5222],{},"Rubrics weight criteria explicitly. UI example: \"Design: Modern, intuitive? Originality: Avoids gradients? Craft: Typography\u002Fspacing precise? Functionality: Playwright-tested?\"",[12,5224,5225],{},"Why separate? Generators optimize for completion, not quality—they hallucinate strengths. Evaluator simulates users, probing edge cases.",[12,5227,5228,5229],{},"Loop: Critique → Regenerate → Rescore until pass. Agent Blueprint pairs evaluator-optimizer for this.",[4084,5230,5231],{},[3983,5232,4219],{"href":4216,"ariaDescribedBy":5233,"dataFootnoteRef":7,"id":4350},[4090],[12,5235,5236],{},"Examples scale to subjective work. UI grading rejects cookie-cutter designs; content rubrics check voice alignment.",[24,5238,5240],{"id":5239},"essential-primitives-for-reliable-3-core-agent-harnesses","Essential Primitives for Reliable 3-Core Agent Harnesses",[12,5242,5243,5244,5247,5248,5253],{},"Production ",[16,5245,5246],{},"3-core agent harnesses"," require \"boring\" primitives like dual tool registries (207+ commands), tiered permissions (18 bash modules), JSON state persistence, token budgeting with projections, structured streaming, and verification. As detailed in Nate B. Jones's analysis of Claude's leaked code, these essentials harden demos into scalable systems handling crashes, controlling costs, and ensuring 24\u002F7 operation.",[4084,5249,5250],{},[3983,5251,4175],{"href":4172,"ariaDescribedBy":5252,"dataFootnoteRef":7,"id":4302},[4090]," Without them, you're prototyping, not producing.",[75,5255,5256,5264,5272,5275,5278,5281],{},[78,5257,5258,5259],{},"Dual tool registries (207+ commands)",[4084,5260,5261],{},[3983,5262,4175],{"href":4172,"ariaDescribedBy":5263,"dataFootnoteRef":7,"id":4374},[4090],[78,5265,5266,5267],{},"Tiered permissions (18 bash modules)",[4084,5268,5269],{},[3983,5270,4175],{"href":4172,"ariaDescribedBy":5271,"dataFootnoteRef":7,"id":4385},[4090],[78,5273,5274],{},"JSON state persistence",[78,5276,5277],{},"Token budgeting with projections",[78,5279,5280],{},"Structured streaming",[78,5282,5283],{},"Verification",[12,5285,5286,5287],{},"Nate B. Jones details 12 keys from the Claude code leak: Registries filter runtime tools dynamically; permissions gate risks (built-in > plugins > user-defined).",[4084,5288,5289],{},[3983,5290,4175],{"href":4172,"ariaDescribedBy":5291,"dataFootnoteRef":7,"id":4490},[4090],[12,5293,5294,5297],{},[16,5295,5296],{},"State Persistence",": Full session JSON (messages, tokens, config) for crash recovery.",[12,5299,5300],{},"Example:",[4402,5302,5306],{"className":5303,"code":5304,"language":5305,"meta":7,"style":7},"language-json shiki shiki-themes github-light github-dark","{\n  \"session\": {\n    \"messages\": [...],\n    \"tokens_used\": 12500,\n    \"config\": {\"model\": \"claude-3.5-sonnet\"}\n  }\n}\n","json",[3823,5307,5308,5313,5321,5335,5348,5367,5372],{"__ignoreMap":7},[4410,5309,5310],{"class":4412,"line":4413},[4410,5311,5312],{"class":4420},"{\n",[4410,5314,5315,5318],{"class":4412,"line":144},[4410,5316,5317],{"class":5145},"  \"session\"",[4410,5319,5320],{"class":4420},": {\n",[4410,5322,5323,5326,5328,5332],{"class":4412,"line":4439},[4410,5324,5325],{"class":5145},"    \"messages\"",[4410,5327,4851],{"class":4420},[4410,5329,5331],{"class":5330},"s7hpK","...",[4410,5333,5334],{"class":4420},"],\n",[4410,5336,5337,5340,5342,5345],{"class":4412,"line":4450},[4410,5338,5339],{"class":5145},"    \"tokens_used\"",[4410,5341,4432],{"class":4420},[4410,5343,5344],{"class":5145},"12500",[4410,5346,5347],{"class":4420},",\n",[4410,5349,5350,5353,5356,5359,5361,5364],{"class":4412,"line":4845},[4410,5351,5352],{"class":5145},"    \"config\"",[4410,5354,5355],{"class":4420},": {",[4410,5357,5358],{"class":5145},"\"model\"",[4410,5360,4432],{"class":4420},[4410,5362,5363],{"class":4435},"\"claude-3.5-sonnet\"",[4410,5365,5366],{"class":4420},"}\n",[4410,5368,5369],{"class":4412,"line":4860},[4410,5370,5371],{"class":4420},"  }\n",[4410,5373,5374],{"class":4412,"line":4873},[4410,5375,5366],{"class":4420},[12,5377,5378],{},"Save on every tool call; resume seamlessly.",[12,5380,5381,5384],{},[16,5382,5383],{},"Budgeting",": Hard limits + projections. Pre-compute: \"This task forecasts 50k input + 20k output tokens.\"",[4402,5386,5390],{"className":5387,"code":5388,"language":5389,"meta":7,"style":7},"language-python shiki shiki-themes github-light github-dark","def project_tokens(prompt_len, steps=10):\n    return prompt_len * 1.2 * steps  # Conservative multiplier\nif project_tokens(len(planner_outline)) > 100000:\n    abort(\"Budget exceeded\")\n","python",[3823,5391,5392,5397,5402,5407],{"__ignoreMap":7},[4410,5393,5394],{"class":4412,"line":4413},[4410,5395,5396],{},"def project_tokens(prompt_len, steps=10):\n",[4410,5398,5399],{"class":4412,"line":144},[4410,5400,5401],{},"    return prompt_len * 1.2 * steps  # Conservative multiplier\n",[4410,5403,5404],{"class":4412,"line":4439},[4410,5405,5406],{},"if project_tokens(len(planner_outline)) > 100000:\n",[4410,5408,5409],{"class":4412,"line":4450},[4410,5410,5411],{},"    abort(\"Budget exceeded\")\n",[12,5413,5414],{},"I've seen major cost savings with budgeting alone on weekly PR batches.",[12,5416,5417,5420,5421],{},[16,5418,5419],{},"Observability",": Typed events\u002Flogs. Stream: ",[3823,5422,5423],{},"{\"event\": \"tool_call\", \"tool\": \"git\", \"result\": \"committed\"}",[12,5425,5426,5429],{},[16,5427,5428],{},"Tool Registry",": Metadata-driven:",[4402,5431,5433],{"className":4404,"code":5432,"language":4406,"meta":7,"style":7},"tools:\n  git:\n    desc: \"Git operations\"\n    perms: \"built-in\"\n    args: [\"commit\", \"push\"]\n  playwright:\n    desc: \"UI tests\"\n    perms: \"plugin\"\n",[3823,5434,5435,5441,5448,5458,5468,5485,5492,5501],{"__ignoreMap":7},[4410,5436,5437,5439],{"class":4412,"line":4413},[4410,5438,4417],{"class":4416},[4410,5440,4421],{"class":4420},[4410,5442,5443,5446],{"class":4412,"line":144},[4410,5444,5445],{"class":4416},"  git",[4410,5447,4421],{"class":4420},[4410,5449,5450,5453,5455],{"class":4412,"line":4439},[4410,5451,5452],{"class":4416},"    desc",[4410,5454,4432],{"class":4420},[4410,5456,5457],{"class":4435},"\"Git operations\"\n",[4410,5459,5460,5463,5465],{"class":4412,"line":4450},[4410,5461,5462],{"class":4416},"    perms",[4410,5464,4432],{"class":4420},[4410,5466,5467],{"class":4435},"\"built-in\"\n",[4410,5469,5470,5473,5475,5478,5480,5483],{"class":4412,"line":4845},[4410,5471,5472],{"class":4416},"    args",[4410,5474,4851],{"class":4420},[4410,5476,5477],{"class":4435},"\"commit\"",[4410,5479,4922],{"class":4420},[4410,5481,5482],{"class":4435},"\"push\"",[4410,5484,4857],{"class":4420},[4410,5486,5487,5490],{"class":4412,"line":4860},[4410,5488,5489],{"class":4416},"  playwright",[4410,5491,4421],{"class":4420},[4410,5493,5494,5496,5498],{"class":4412,"line":4873},[4410,5495,5452],{"class":4416},[4410,5497,4432],{"class":4420},[4410,5499,5500],{"class":4435},"\"UI tests\"\n",[4410,5502,5503,5505,5507],{"class":4412,"line":4884},[4410,5504,5462],{"class":4416},[4410,5506,4432],{"class":4420},[4410,5508,5509],{"class":4435},"\"plugin\"\n",[12,5511,5512,5515,5516,5519],{},[16,5513,5514],{},"Permissions",": State objects—no world access. ",[3823,5517,5518],{},"permissions: {\"bash\": [\"ls\", \"cat\"], \"deny\": [\"rm -rf\"]}",[4084,5520,5521],{},[3983,5522,4175],{"href":4172,"ariaDescribedBy":5523,"dataFootnoteRef":7,"id":5524},[4090],"user-content-fnref-2-7",[12,5526,5527,5529],{},[16,5528,5283],{},": Guardrail tests post-output. Archon V3 adds pre\u002Fpost-tool hooks:",[4402,5531,5533],{"className":4404,"code":5532,"language":4406,"meta":7,"style":7},"hooks:\n  pre-tool: \"validate_args(tool, args)\"\n  post-tool: \"verify_output_schema(result)\"\n",[3823,5534,5535,5542,5552],{"__ignoreMap":7},[4410,5536,5537,5540],{"class":4412,"line":4413},[4410,5538,5539],{"class":4416},"hooks",[4410,5541,4421],{"class":4420},[4410,5543,5544,5547,5549],{"class":4412,"line":144},[4410,5545,5546],{"class":4416},"  pre-tool",[4410,5548,4432],{"class":4420},[4410,5550,5551],{"class":4435},"\"validate_args(tool, args)\"\n",[4410,5553,5554,5557,5559],{"class":4412,"line":4439},[4410,5555,5556],{"class":4416},"  post-tool",[4410,5558,4432],{"class":4420},[4410,5560,5561],{"class":4435},"\"verify_output_schema(result)\"\n",[12,5563,5564,5567,5568],{},[16,5565,5566],{},"Agent Typing",": Modes like explore\u002Fplan\u002Fverify; permissions evolve with state.",[4084,5569,5570],{},[3983,5571,4175],{"href":4172,"ariaDescribedBy":5572,"dataFootnoteRef":7,"id":5573},[4090],"user-content-fnref-2-8",[12,5575,5576],{},"Dynamic pools swap tools mid-run. Skip these, long tasks fail frequently—primitives ensure 24\u002F7 operation.",[24,5578,5580],{"id":5579},"building-and-scaling-your-3-core-agent-harness","Building and Scaling Your 3-Core Agent Harness",[12,5582,5583,5584,5590,5596],{},"Assemble a 3-core agent harness via YAML\u002FDAGs (Archon V3), Claude teams, or SpecKit staging: Define each core with Role+Goal+Tools+Rules+Output, layer primitives, master single-agent first, then scale multi for skills.",[4084,5585,5586],{},[3983,5587,4219],{"href":4216,"ariaDescribedBy":5588,"dataFootnoteRef":7,"id":5589},[4090],"user-content-fnref-3-5",[4084,5591,5592],{},[3983,5593,4248],{"href":4245,"ariaDescribedBy":5594,"dataFootnoteRef":7,"id":5595},[4090],"user-content-fnref-4-3"," GitHub Actions trigger workflows; minimal tools\u002Fmemory.",[12,5598,5599],{},"Steps:",[4115,5601,5602,5612,5617],{},[78,5603,5604,5607,5608,5611],{},[16,5605,5606],{},"Planner Prompt",": \"Role: Product lead. Goal: ",[4410,5609,5610],{},"Task",". Tools: Search. Rules: High-level only. Output: Markdown outline.\"",[78,5613,5614,5616],{},[16,5615,58],{},": \"Role: Engineer. Goal: Implement outline. Tools: Git, calc. Rules: Isolated worktree. Output: Committed artifacts.\"",[78,5618,5619,5621],{},[16,5620,62],{},": \"Role: QA adversary. Goal: Score vs rubric. Tools: Playwright. Rules: Assume flaws. Output: Scores + fixes.\"",[12,5623,5624],{},"Add primitives: Token budgeter, JSON state.",[12,5626,5627,5628],{},"Test on messy inputs. Ready starters: GSD + rubrics; Archon builtins (fix-issue, idea-to-PR).",[4084,5629,5630],{},[3983,5631,4248],{"href":4245,"ariaDescribedBy":5632,"dataFootnoteRef":7,"id":5633},[4090],"user-content-fnref-4-4",[12,5635,5636],{},"Scaling: Orchestrators route; parallelism via DAGs.",[12,5638,5639],{},"Harness over frameworks—I've shipped 10x faster.",[24,5641,5643],{"id":5642},"trade-offs-misconceptions-and-when-to-skip-agents","Trade-offs, Misconceptions, and When to Skip Agents",[12,5645,5646,5647],{},"The 3-core agent harness swaps framework \"safety\" for speed but requires primitive investment; it costs more upfront yet runs leaner long-term, with budgeting taming expenses. Misconceptions: Micro-tasks aren't needed (LLMs obsolete them); always multi-agent (master single first). Skip for deterministic chaining\u002Frouting—use Anthropic's 5 workflows.",[4084,5648,5649],{},[3983,5650,4219],{"href":4216,"ariaDescribedBy":5651,"dataFootnoteRef":7,"id":5652},[4090],"user-content-fnref-3-6",[12,5654,5655],{},"Trade-offs:",[75,5657,5658,5664,5670],{},[78,5659,5660,5663],{},[16,5661,5662],{},"Build Time",": Primitives take days vs. framework npm install.",[78,5665,5666,5669],{},[16,5667,5668],{},"Eval Subjectivity",": Rubrics need tuning for creative work.",[78,5671,5672,5675,5676],{},[16,5673,5674],{},"Costs",": Long tasks hit tokens—mitigate with projections.",[4084,5677,5678],{},[3983,5679,4175],{"href":4172,"ariaDescribedBy":5680,"dataFootnoteRef":7,"id":5681},[4090],"user-content-fnref-2-9",[12,5683,5684,5685,5691],{},"Risks: No permissions = demo, not product.",[4084,5686,5687],{},[3983,5688,4175],{"href":4172,"ariaDescribedBy":5689,"dataFootnoteRef":7,"id":5690},[4090],"user-content-fnref-2-10"," Frameworks aren't future-proof; LLMs evolve.",[12,5693,5694],{},"When to skip: Simple transforms? Chain prompts. Agents shine on open-ended horizons.",[12,5696,5697],{},"Open: Rubric standards? This works today—iterate your own.",[12,5699,5700],{},"Pick a stalled repo project. Strip any agent setup to these three roles using Role+Goal+Tools+Rules+Output. Add token budgeting as your first primitive. Run on one feature, measure output quality and costs before scaling—you'll ship faster than with frameworks.",[4105,5702,5704,5707],{"className":5703,"dataFootnotes":7},[4108],[24,5705,4113],{"className":5706,"id":4090},[4112],[4115,5708,5709,5753,5814,5849,5874],{},[78,5710,5711,5712,4540,5715,4540,5720,4540,5725,4540,5730,4540,5735,4540,5740,4540,5745],{"id":4119},"AI LABS, \"Anthropic: Agent Harnesses Need Only 3 Core Agents\" (YouTube summary). ",[3983,5713,4127],{"href":4123,"ariaLabel":4124,"className":5714,"dataFootnoteBackref":7},[4126],[3983,5716,4127,5718],{"href":4543,"ariaLabel":4544,"className":5717,"dataFootnoteBackref":7},[4126],[4084,5719,4175],{},[3983,5721,4127,5723],{"href":4550,"ariaLabel":4551,"className":5722,"dataFootnoteBackref":7},[4126],[4084,5724,4219],{},[3983,5726,4127,5728],{"href":4557,"ariaLabel":4558,"className":5727,"dataFootnoteBackref":7},[4126],[4084,5729,4248],{},[3983,5731,4127,5733],{"href":4564,"ariaLabel":4565,"className":5732,"dataFootnoteBackref":7},[4126],[4084,5734,4286],{},[3983,5736,4127,5738],{"href":4571,"ariaLabel":4572,"className":5737,"dataFootnoteBackref":7},[4126],[4084,5739,4479],{},[3983,5741,4127,5743],{"href":4578,"ariaLabel":4579,"className":5742,"dataFootnoteBackref":7},[4126],[4084,5744,4583],{},[3983,5746,4127,5750],{"href":5747,"ariaLabel":5748,"className":5749,"dataFootnoteBackref":7},"#user-content-fnref-1-8","Back to reference 1-8",[4126],[4084,5751,5752],{},"8",[78,5754,5755,5756,4540,5759,4540,5764,4540,5769,4540,5774,4540,5779,4540,5784,4540,5791,4540,5798,4540,5806],{"id":4586},"Nate B. Jones, \"Claude Code Leak: 12 Primitives for Production Agents\" (YouTube). ",[3983,5757,4127],{"href":4590,"ariaLabel":4591,"className":5758,"dataFootnoteBackref":7},[4126],[3983,5760,4127,5762],{"href":4595,"ariaLabel":4596,"className":5761,"dataFootnoteBackref":7},[4126],[4084,5763,4175],{},[3983,5765,4127,5767],{"href":4602,"ariaLabel":4603,"className":5766,"dataFootnoteBackref":7},[4126],[4084,5768,4219],{},[3983,5770,4127,5772],{"href":4609,"ariaLabel":4610,"className":5771,"dataFootnoteBackref":7},[4126],[4084,5773,4248],{},[3983,5775,4127,5777],{"href":4616,"ariaLabel":4617,"className":5776,"dataFootnoteBackref":7},[4126],[4084,5778,4286],{},[3983,5780,4127,5782],{"href":4623,"ariaLabel":4624,"className":5781,"dataFootnoteBackref":7},[4126],[4084,5783,4479],{},[3983,5785,4127,5789],{"href":5786,"ariaLabel":5787,"className":5788,"dataFootnoteBackref":7},"#user-content-fnref-2-7","Back to reference 2-7",[4126],[4084,5790,4583],{},[3983,5792,4127,5796],{"href":5793,"ariaLabel":5794,"className":5795,"dataFootnoteBackref":7},"#user-content-fnref-2-8","Back to reference 2-8",[4126],[4084,5797,5752],{},[3983,5799,4127,5803],{"href":5800,"ariaLabel":5801,"className":5802,"dataFootnoteBackref":7},"#user-content-fnref-2-9","Back to reference 2-9",[4126],[4084,5804,5805],{},"9",[3983,5807,4127,5811],{"href":5808,"ariaLabel":5809,"className":5810,"dataFootnoteBackref":7},"#user-content-fnref-2-10","Back to reference 2-10",[4126],[4084,5812,5813],{},"10",[78,5815,5816,5817,4540,5820,4540,5825,4540,5830,4540,5835,4540,5842],{"id":4630},"Lukas Margerie, \"Agent Blueprint: Role + Goal + Tools + Rules + Output\" (YouTube). ",[3983,5818,4127],{"href":4634,"ariaLabel":4635,"className":5819,"dataFootnoteBackref":7},[4126],[3983,5821,4127,5823],{"href":4639,"ariaLabel":4640,"className":5822,"dataFootnoteBackref":7},[4126],[4084,5824,4175],{},[3983,5826,4127,5828],{"href":4646,"ariaLabel":4647,"className":5827,"dataFootnoteBackref":7},[4126],[4084,5829,4219],{},[3983,5831,4127,5833],{"href":4653,"ariaLabel":4654,"className":5832,"dataFootnoteBackref":7},[4126],[4084,5834,4248],{},[3983,5836,4127,5840],{"href":5837,"ariaLabel":5838,"className":5839,"dataFootnoteBackref":7},"#user-content-fnref-3-5","Back to reference 3-5",[4126],[4084,5841,4286],{},[3983,5843,4127,5847],{"href":5844,"ariaLabel":5845,"className":5846,"dataFootnoteBackref":7},"#user-content-fnref-3-6","Back to reference 3-6",[4126],[4084,5848,4479],{},[78,5850,5851,5852,4540,5855,4540,5860,4540,5867],{"id":4660},"DIY Smart Code, \"Archon V3: YAML Harnesses for AI Coding Agents\" (YouTube). ",[3983,5853,4127],{"href":4664,"ariaLabel":4665,"className":5854,"dataFootnoteBackref":7},[4126],[3983,5856,4127,5858],{"href":4669,"ariaLabel":4670,"className":5857,"dataFootnoteBackref":7},[4126],[4084,5859,4175],{},[3983,5861,4127,5865],{"href":5862,"ariaLabel":5863,"className":5864,"dataFootnoteBackref":7},"#user-content-fnref-4-3","Back to reference 4-3",[4126],[4084,5866,4219],{},[3983,5868,4127,5872],{"href":5869,"ariaLabel":5870,"className":5871,"dataFootnoteBackref":7},"#user-content-fnref-4-4","Back to reference 4-4",[4126],[4084,5873,4248],{},[78,5875,5876,5877,4540,5880],{"id":4676},"Level Up Coding, \"SDD Makes Specs the Single Source of Truth via AI Agents.\" ",[3983,5878,4127],{"href":4680,"ariaLabel":4681,"className":5879,"dataFootnoteBackref":7},[4126],[3983,5881,4127,5883],{"href":4685,"ariaLabel":4686,"className":5882,"dataFootnoteBackref":7},[4126],[4084,5884,4175],{},[4714,5886,5887],{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}",{"title":7,"searchDepth":144,"depth":144,"links":5889},[5890,5891,5892,5893,5894,5895,5896,5897],{"id":5017,"depth":144,"text":5018},{"id":5058,"depth":144,"text":5059},{"id":5171,"depth":144,"text":5172},{"id":5206,"depth":144,"text":5207},{"id":5239,"depth":144,"text":5240},{"id":5579,"depth":144,"text":5580},{"id":5642,"depth":144,"text":5643},{"id":4090,"depth":144,"text":4113},"ai-llms","Production AI agent systems thrive with a 3-core agent harness—Planner for high-level outlines, Generator for implementation, Evaluator for adversarial critique using graded rubrics—stripping 90% bloated framework overhead per Anthropic tests.1 This leverages modern LLMs' 1M+ token windows and coherence for reliable, scalable outputs on long-horizon tasks.",[4759,4736,5901,5902,5903,5904,4731,5905],"planner generator evaluator","agent frameworks","Claude Opus","AI agent primitives","minimalist agents",{},"Learn why production AI agents need just Planner, Generator, and Evaluator—not frameworks. Anthropic tests show 90% framework bloat is obsolete. Build scalable harnesses with primitives for reliable outputs in code, UI, and content.","3-Core Agent Harness for Production AI","\u002Farticles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-article",[],{"intro":5912,"why-production-agent-systems-need-a-3-core-agent-harness":5018,"the-planners-role-in-a-3-core-agent-harness":5059,"the-generators-focused-role-in-the-3-core-agent-harness":5172,"why-a-separate-evaluator-delivers-production-quality":5207,"essential-primitives-for-reliable-3-core-agent-harnesses":5240,"building-and-scaling-your-3-core-agent-harness":5580,"trade-offs-misconceptions-and-when-to-skip-agents":5643},"Introduction",{"title":4750,"description":5899},{"loc":5909},"3-core-agent-harness-planner-generator-evaluator-production-ai-agents","articles\u002Fthe-3-core-agent-harness-why-production-agent-systems-need-planner-generator-evaluator-not-frameworks-article","pEqxcDCwoMVirkXg2PYcYkpR4uAFqYg3dO1nMbJGObo"]