Buckets:

download
raw
28.2 kB
import{s as Ml,a as il,n as pl,o as rl}from"../chunks/scheduler.4048030c.js";import{S as yl,i as wl,e as M,s as n,c as r,h as Tl,a as i,d as l,b as a,f as Bt,j as y,g as p,k as ce,l as Ul,m as s,n as w,t as T,o as U,p as J}from"../chunks/index.5d0b9360.js";import{C as Jl,H as u,E as ul}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.99c2e6c8.js";import{C as m}from"../chunks/CodeBlock.ff2a3276.js";function ml(kt){let o,fe,be,Ce,j,Ie,c,he,b,Zt="Multi-agent workflows tend to fall into a handful of shapes. We will go over 4 of them that cover almost anything you would build.",$e,d,Et,Be,g,ke,f,Wt="<strong>What it is:</strong> Spawn multiple subagents in parallel for independent subtasks, then aggregate results.",Ze,C,vt="<strong>When to use:</strong> Independent tasks with no dependencies between them.",Ee,I,Ft="<strong>Example:</strong> Evaluate 5 models on the same benchmark.",We,h,ve,$,St="<strong>Pseudocode:</strong>",Fe,B,Se,k,Qt="<strong>Pros:</strong> Fully parallel, max speed, easy to scale",Qe,Z,At="<strong>Cons:</strong> Total time = slowest subagent",Ae,E,Ne,W,Nt="<strong>What it is:</strong> Chain subagents where output of one becomes input to the next.",Re,v,Rt="<strong>When to use:</strong> Sequential processing with data flowing through stages.",Ve,F,Vt="<strong>Example:</strong> Data processing: extract → clean → analyze → report",Ge,S,He,Q,Gt="<strong>Pseudocode:</strong>",Xe,A,ze,N,Ht="<strong>Pros:</strong> Clear stages, easy to track progress, failures are local",Ye,R,Xt="<strong>Cons:</strong> No parallelism—each stage waits for previous",xe,V,_e,G,zt="<strong>What it is:</strong> Parent agent directs multiple specialized subagents, each with different tools and expertise.",Pe,H,Yt="<strong>When to use:</strong> Complex tasks requiring multiple specialist agents.",qe,X,xt="<strong>Example:</strong> Product launch report needs sales, engineering, and marketing data.",Le,z,Ke,Y,_t="<strong>Pseudocode:</strong>",Oe,x,De,_,Pt="<strong>Pros:</strong> Specialized agents, clean separation of tools, parallel execution",et,P,qt="<strong>Cons:</strong> More complex coordination",tt,q,lt,L,Lt="<strong>What it is:</strong> Multiple subagents work on the same problem, comparing approaches and converging on best solution.",st,K,Kt="<strong>When to use:</strong> Complex problems where multiple perspectives improve quality.",nt,O,Ot="<strong>Example:</strong> Design review with architect, security, and performance subagents.",at,D,Mt,ee,Dt="<strong>Pseudocode:</strong>",it,te,pt,le,el="<strong>Pros:</strong> Multiple perspectives improve quality, catches blind spots",rt,se,tl="<strong>Cons:</strong> Can be slow (requires multiple rounds)",yt,ne,wt,ae,ll="<thead><tr><th>Pattern</th> <th>Use Case</th> <th>Parallelism</th> <th>Coordination</th></tr></thead> <tbody><tr><td><strong>Fan-Out/Fan-In</strong></td> <td>Independent tasks</td> <td>High</td> <td>Low</td></tr> <tr><td><strong>Pipeline</strong></td> <td>Sequential stages</td> <td>None</td> <td>Medium</td></tr> <tr><td><strong>Supervisor</strong></td> <td>Multiple specialists</td> <td>Medium-High</td> <td>Medium-High</td></tr> <tr><td><strong>Swarm</strong></td> <td>Collaborative design</td> <td>Low-Medium</td> <td>High</td></tr></tbody>",Tt,Me,Ut,ie,sl="We covered the high-level guidance in the unit introduction. Here’s how it plays out in practice with code examples.",Jt,pe,ut,re,mt,ye,dt,we,ot,Te,jt,Ue,ct,Je,bt,ue,gt,me,ft,de,nl="Fan-out/fan-in parallelises independent work, pipeline chains stages, supervisor coordinates specialists, and swarm cross-reviews a single artefact. Reach for subagents when you have many files or several independent tasks; stick with a single agent for small jobs and tightly coupled workflows.",Ct,oe,al="Next, how to actually invoke subagents in Claude Code and Codex.",It,je,ht,ge,$t;return j=new Jl({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),c=new u({props:{title:"Subagent Patterns",local:"subagent-patterns",headingTag:"h1"}}),g=new u({props:{title:"Pattern 1: Fan-Out / Fan-In",local:"pattern-1-fan-out--fan-in",headingTag:"h2"}}),h=new m({props:{code:"UGFyZW50JTNBJTIwJTIyQ29tcGFyZSUyMG1vZGVscyUyMiUwQSVFMiU5NCU5QyVFMiU5NCU4MCUyMFN1YmFnZW50JTIwMSUzQSUyMEV2YWx1YXRlJTIwTW9kZWwlMjBBJTIwJUUyJTg2JTkyJTIwU2NvcmUlM0ElMjA5MiUyNSUwQSVFMiU5NCU5QyVFMiU5NCU4MCUyMFN1YmFnZW50JTIwMiUzQSUyMEV2YWx1YXRlJTIwTW9kZWwlMjBCJTIwJUUyJTg2JTkyJTIwU2NvcmUlM0ElMjA4OSUyNSUwQSVFMiU5NCU5QyVFMiU5NCU4MCUyMFN1YmFnZW50JTIwMyUzQSUyMEV2YWx1YXRlJTIwTW9kZWwlMjBDJTIwJUUyJTg2JTkyJTIwU2NvcmUlM0ElMjA5NCUyNSUwQSVFMiU5NCU5QyVFMiU5NCU4MCUyMFN1YmFnZW50JTIwNCUzQSUyMEV2YWx1YXRlJTIwTW9kZWwlMjBEJTIwJUUyJTg2JTkyJTIwU2NvcmUlM0ElMjA4OCUyNSUwQSVFMiU5NCU5NCVFMiU5NCU4MCUyMFN1YmFnZW50JTIwNSUzQSUyMEV2YWx1YXRlJTIwTW9kZWwlMjBFJTIwJUUyJTg2JTkyJTIwU2NvcmUlM0ElMjA5MSUyNSUwQSUwQVBhcmVudCUzQSUyMEFnZ3JlZ2F0ZSUyMCVFMiU4NiU5MiUyMFJhbmtpbmclMjByZXBvcnQ=",highlighted:`<span class="hljs-symbol">Parent:</span> <span class="hljs-string">&quot;Compare models&quot;</span>
├─ <span class="hljs-keyword">Subagent </span><span class="hljs-number">1</span>: Evaluate Model A → <span class="hljs-keyword">Score: </span><span class="hljs-number">92</span>%
├─ <span class="hljs-keyword">Subagent </span><span class="hljs-number">2</span>: Evaluate Model <span class="hljs-keyword">B </span>→ <span class="hljs-keyword">Score: </span><span class="hljs-number">89</span>%
├─ <span class="hljs-keyword">Subagent </span><span class="hljs-number">3</span>: Evaluate Model C → <span class="hljs-keyword">Score: </span><span class="hljs-number">94</span>%
├─ <span class="hljs-keyword">Subagent </span><span class="hljs-number">4</span>: Evaluate Model D → <span class="hljs-keyword">Score: </span><span class="hljs-number">88</span>%
└─ <span class="hljs-keyword">Subagent </span><span class="hljs-number">5</span>: Evaluate Model E → <span class="hljs-keyword">Score: </span><span class="hljs-number">91</span>%
<span class="hljs-symbol">
Parent:</span> Aggregate → Ranking report`,wrap:!1}}),B=new m({props:{code:"cGFyZW50X2FnZW50JTNBJTBBJTIwJTIwJTIwJTIwc3ViYWdlbnRzJTIwJTNEJTIwJTVCJTVEJTBBJTIwJTIwJTIwJTIwZm9yJTIwbW9kZWwlMjBpbiUyMCU1QkElMkMlMjBCJTJDJTIwQyUyQyUyMEQlMkMlMjBFJTVEJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3ViYWdlbnQlMjAlM0QlMjBzcGF3biglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0YXNrJTNEZiUyMkV2YWx1YXRlJTIwJTdCbW9kZWwlN0QlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjb250ZXh0JTNEJTdCbW9kZWwlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjApJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3ViYWdlbnRzLmFwcGVuZChzdWJhZ2VudCklMEElMjAlMjAlMjAlMjAlMEElMjAlMjAlMjAlMjByZXN1bHRzJTIwJTNEJTIwd2FpdF9hbGwoc3ViYWdlbnRzKSUwQSUyMCUyMCUyMCUyMHJlcG9ydCUyMCUzRCUyMGFnZ3JlZ2F0ZShyZXN1bHRzKSUwQSUyMCUyMCUyMCUyMHJldHVybiUyMHJlcG9ydA==",highlighted:`parent_agent:
subagents = []
for model in [A, B, C, D, E]:
subagent = spawn(
task=f&quot;Evaluate {model}&quot;,
context={model}
)
subagents.append(subagent)
results = wait_all(subagents)
report = aggregate(results)
return report`,wrap:!1}}),E=new u({props:{title:"Pattern 2: Pipeline",local:"pattern-2-pipeline",headingTag:"h2"}}),S=new m({props:{code:"UmF3JTIwRGF0YSUwQSUyMCUyMCVFMiU4NiU5MyUwQSU1QlN1YmFnZW50JTIwMSUzQSUyMEV4dHJhY3QlNUQlMEElMjAlMjAlRTIlODYlOTMlMEFFeHRyYWN0ZWQlMjBEYXRhJTBBJTIwJTIwJUUyJTg2JTkzJTBBJTVCU3ViYWdlbnQlMjAyJTNBJTIwQ2xlYW4lNUQlMEElMjAlMjAlRTIlODYlOTMlMEFDbGVhbiUyMERhdGElMEElMjAlMjAlRTIlODYlOTMlMEElNUJTdWJhZ2VudCUyMDMlM0ElMjBBbmFseXplJTVEJTBBJTIwJTIwJUUyJTg2JTkzJTBBUmVzdWx0cyUwQSUyMCUyMCVFMiU4NiU5MyUwQSU1QlN1YmFnZW50JTIwNCUzQSUyMFJlcG9ydCU1RCUwQSUyMCUyMCVFMiU4NiU5MyUwQUZpbmFsJTIwUmVwb3J0",highlighted:`Raw Data
[<span class="hljs-keyword">Subagent </span><span class="hljs-number">1</span>: <span class="hljs-keyword">Extract]
</span> ↓
<span class="hljs-keyword">Extracted </span>Data
[<span class="hljs-keyword">Subagent </span><span class="hljs-number">2</span>: Clean]
Clean Data
[<span class="hljs-keyword">Subagent </span><span class="hljs-number">3</span>: Analyze]
Results
[<span class="hljs-keyword">Subagent </span><span class="hljs-number">4</span>: Report]
Final Report`,wrap:!1}}),A=new m({props:{code:"cGFyZW50X2FnZW50JTNBJTBBJTIwJTIwJTIwJTIwZGF0YSUyMCUzRCUyMGxvYWRfcmF3X2RhdGEoKSUwQSUyMCUyMCUyMCUyMCUwQSUyMCUyMCUyMCUyMGV4dHJhY3RlZCUyMCUzRCUyMHNwYXduKHRhc2slM0QlMjJFeHRyYWN0JTIyJTJDJTIwaW5wdXQlM0RkYXRhKS53YWl0KCklMEElMjAlMjAlMjAlMjBjbGVhbmVkJTIwJTNEJTIwc3Bhd24odGFzayUzRCUyMkNsZWFuJTIyJTJDJTIwaW5wdXQlM0RleHRyYWN0ZWQpLndhaXQoKSUwQSUyMCUyMCUyMCUyMGFuYWx5emVkJTIwJTNEJTIwc3Bhd24odGFzayUzRCUyMkFuYWx5emUlMjIlMkMlMjBpbnB1dCUzRGNsZWFuZWQpLndhaXQoKSUwQSUyMCUyMCUyMCUyMHJlcG9ydCUyMCUzRCUyMHNwYXduKHRhc2slM0QlMjJSZXBvcnQlMjIlMkMlMjBpbnB1dCUzRGFuYWx5emVkKS53YWl0KCklMEElMjAlMjAlMjAlMjAlMEElMjAlMjAlMjAlMjByZXR1cm4lMjByZXBvcnQ=",highlighted:`parent_agent:
data = load_raw_data()
extracted = spawn(task=&quot;Extract&quot;, input=data).wait()
cleaned = spawn(task=&quot;Clean&quot;, input=extracted).wait()
analyzed = spawn(task=&quot;Analyze&quot;, input=cleaned).wait()
report = spawn(task=&quot;Report&quot;, input=analyzed).wait()
return report`,wrap:!1}}),V=new u({props:{title:"Pattern 3: Supervisor (Hierarchical)",local:"pattern-3-supervisor-hierarchical",headingTag:"h2"}}),z=new m({props:{code:"UGFyZW50JTIwQWdlbnQlMjAoT3JjaGVzdHJhdG9yKSUwQSVFMiU5NCU5QyVFMiU5NCU4MCUyMFNhbGVzJTIwU3ViYWdlbnQlMjAoaGFzJTNBJTIwQ1JNJTIwdG9vbHMlMkMlMjByZXZlbnVlJTIwbWV0cmljcyklMEElRTIlOTQlOUMlRTIlOTQlODAlMjBFbmdpbmVlcmluZyUyMFN1YmFnZW50JTIwKGhhcyUzQSUyMEdpdEh1YiUyMEFQSSUyQyUyMGRlcGxveW1lbnQlMjB0b29scyklMEElRTIlOTQlOTQlRTIlOTQlODAlMjBNYXJrZXRpbmclMjBTdWJhZ2VudCUyMChoYXMlM0ElMjBhbmFseXRpY3MlMkMlMjBzb2NpYWwlMjB0b29scyklMEElMEFQYXJlbnQlMjBhZ2dyZWdhdGVzJTIwJUUyJTg2JTkyJTIwTGF1bmNoJTIwUmVwb3J0",highlighted:`Parent <span class="hljs-title function_">Agent</span> <span class="hljs-params">(Orchestrator)</span>
├─ Sales <span class="hljs-title function_">Subagent</span> <span class="hljs-params">(has: CRM tools, revenue metrics)</span>
├─ Engineering <span class="hljs-title function_">Subagent</span> <span class="hljs-params">(has: GitHub API, deployment tools)</span>
└─ Marketing <span class="hljs-title function_">Subagent</span> <span class="hljs-params">(has: analytics, social tools)</span>
Parent aggregates → Launch Report`,wrap:!1}}),x=new m({props:{code:"cGFyZW50X2FnZW50JTNBJTBBJTIwJTIwJTIwJTIwc2FsZXMlMjAlM0QlMjBzcGF3biglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0YXNrJTNEJTIyR2V0JTIwc2FsZXMlMjBtZXRyaWNzJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdG9vbHMlM0QlNUJjcm0lMkMlMjByZXZlbnVlX2RiJTVEJTBBJTIwJTIwJTIwJTIwKSUwQSUyMCUyMCUyMCUyMGVuZ2luZWVyaW5nJTIwJTNEJTIwc3Bhd24oJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGFzayUzRCUyMkdldCUyMGZlYXR1cmUlMjBzdGF0dXMlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0b29scyUzRCU1QmdpdGh1YiUyQyUyMGNpX2NkJTVEJTBBJTIwJTIwJTIwJTIwKSUwQSUyMCUyMCUyMCUyMG1hcmtldGluZyUyMCUzRCUyMHNwYXduKCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRhc2slM0QlMjJHZXQlMjBtYXJrZXQlMjBzZW50aW1lbnQlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0b29scyUzRCU1QmFuYWx5dGljcyUyQyUyMHNvY2lhbCU1RCUwQSUyMCUyMCUyMCUyMCklMEElMjAlMjAlMjAlMjAlMEElMjAlMjAlMjAlMjByZXN1bHRzJTIwJTNEJTIwd2FpdF9hbGwoJTVCc2FsZXMlMkMlMjBlbmdpbmVlcmluZyUyQyUyMG1hcmtldGluZyU1RCklMEElMjAlMjAlMjAlMjByZXBvcnQlMjAlM0QlMjBjb21iaW5lKHJlc3VsdHMpJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwcmVwb3J0",highlighted:`parent_agent:
sales = spawn(
task=&quot;Get sales metrics&quot;,
tools=[crm, revenue_db]
)
engineering = spawn(
task=&quot;Get feature status&quot;,
tools=[github, ci_cd]
)
marketing = spawn(
task=&quot;Get market sentiment&quot;,
tools=[analytics, social]
)
results = wait_all([sales, engineering, marketing])
report = combine(results)
return report`,wrap:!1}}),q=new u({props:{title:"Pattern 4: Swarm (Collaborative)",local:"pattern-4-swarm-collaborative",headingTag:"h2"}}),D=new m({props:{code:"UGFyZW50JTNBJTIwJTIyRGVzaWduJTIwbmV3JTIwQVBJJTIyJTBBJUUyJTk0JTlDJUUyJTk0JTgwJTIwU3ViYWdlbnQlMjAxJTIwKEFyY2hpdGVjdCklM0ElMjBSZXZpZXclMjBzdHJ1Y3R1cmUlMEElRTIlOTQlOUMlRTIlOTQlODAlMjBTdWJhZ2VudCUyMDIlMjAoU2VjdXJpdHkpJTNBJTIwUmV2aWV3JTIwZm9yJTIwdnVsbmVyYWJpbGl0aWVzJTBBJUUyJTk0JTlDJUUyJTk0JTgwJTIwU3ViYWdlbnQlMjAzJTIwKFBlcmZvcm1hbmNlKSUzQSUyMFJldmlldyUyMGZvciUyMGJvdHRsZW5lY2tzJTBBJTBBUGFyZW50JTNBJTIwSW5jb3Jwb3JhdGUlMjBmZWVkYmFjayUyMCVFMiU4NiU5MiUyMEZpbmFsJTIwZGVzaWdu",highlighted:`<span class="hljs-symbol">Parent:</span> <span class="hljs-string">&quot;Design new API&quot;</span>
├─ <span class="hljs-keyword">Subagent </span><span class="hljs-number">1</span> (Architect): Review structure
├─ <span class="hljs-keyword">Subagent </span><span class="hljs-number">2</span> (Security): Review for vulnerabilities
├─ <span class="hljs-keyword">Subagent </span><span class="hljs-number">3</span> (Performance): Review for <span class="hljs-keyword">bottlenecks
</span><span class="hljs-symbol">
Parent:</span> Incorporate feedback → Final design`,wrap:!1}}),te=new m({props:{code:"cGFyZW50X2FnZW50JTNBJTBBJTIwJTIwJTIwJTIwZGVzaWduJTIwJTNEJTIwJTIySW5pdGlhbCUyMEFQSSUyMGRlc2lnbi4uLiUyMiUwQSUyMCUyMCUyMCUyMCUwQSUyMCUyMCUyMCUyMCUyMyUyMFJvdW5kJTIwMSUzQSUyMEluZGVwZW5kZW50JTIwcmV2aWV3cyUwQSUyMCUyMCUyMCUyMGFyY2hpdGVjdF9yZXZpZXclMjAlM0QlMjBzcGF3bih0YXNrJTNEZiUyMlJldmlldyUyMGRlc2lnbiUyMGFzJTIwYXJjaGl0ZWN0JTIyJTJDJTIwaW5wdXQlM0RkZXNpZ24pLndhaXQoKSUwQSUyMCUyMCUyMCUyMHNlY3VyaXR5X3JldmlldyUyMCUzRCUyMHNwYXduKHRhc2slM0RmJTIyUmV2aWV3JTIwZGVzaWduJTIwZm9yJTIwc2VjdXJpdHklMjIlMkMlMjBpbnB1dCUzRGRlc2lnbikud2FpdCgpJTBBJTIwJTIwJTIwJTIwcGVyZl9yZXZpZXclMjAlM0QlMjBzcGF3bih0YXNrJTNEZiUyMlJldmlldyUyMGRlc2lnbiUyMGZvciUyMHBlcmZvcm1hbmNlJTIyJTJDJTIwaW5wdXQlM0RkZXNpZ24pLndhaXQoKSUwQSUyMCUyMCUyMCUyMCUwQSUyMCUyMCUyMCUyMCUyMyUyMEluY29ycG9yYXRlJTIwZmVlZGJhY2slMEElMjAlMjAlMjAlMjBpbXByb3ZlZF9kZXNpZ24lMjAlM0QlMjBjb21iaW5lKGRlc2lnbiUyQyUyMGFyY2hpdGVjdF9yZXZpZXclMkMlMjBzZWN1cml0eV9yZXZpZXclMkMlMjBwZXJmX3JldmlldyklMEElMjAlMjAlMjAlMjAlMEElMjAlMjAlMjAlMjByZXR1cm4lMjBpbXByb3ZlZF9kZXNpZ24=",highlighted:`parent_agent:
design = &quot;Initial API design...&quot;
# Round 1: Independent reviews
architect_review = spawn(task=f&quot;Review design as architect&quot;, input=design).wait()
security_review = spawn(task=f&quot;Review design for security&quot;, input=design).wait()
perf_review = spawn(task=f&quot;Review design for performance&quot;, input=design).wait()
# Incorporate feedback
improved_design = combine(design, architect_review, security_review, perf_review)
return improved_design`,wrap:!1}}),ne=new u({props:{title:"Pattern Comparison",local:"pattern-comparison",headingTag:"h2"}}),Me=new u({props:{title:"When NOT to Use Subagents",local:"when-not-to-use-subagents",headingTag:"h2"}}),pe=new u({props:{title:"1. Sequential Dependent Work",local:"1-sequential-dependent-work",headingTag:"h3"}}),re=new m({props:{code:"JTIzJTIwRE9OJ1QlMjBkbyUyMHRoaXMlMEFzdWJhZ2VudF9hJTIwJTNEJTIwc3Bhd24odGFzayUzRCUyMlN0ZXAlMjAxJTNBJTIwU2V0JTIwdXAlMjBlbnZpcm9ubWVudCUyMikud2FpdCgpJTBBc3ViYWdlbnRfYiUyMCUzRCUyMHNwYXduKHRhc2slM0QlMjJTdGVwJTIwMiUzQSUyMERlcGxveSUyMGNvZGUlMjIlMkMlMjBpbnB1dCUzRHN1YmFnZW50X2EpLndhaXQoKSUwQSUwQSUyMyUyMEJFVFRFUiUzQSUyMFNpbmdsZSUyMGFnZW50JTIwZm9yJTIwc2VxdWVudGlhbCUyMHdvcmslMEFzaW5nbGVfYWdlbnQodGFzayUzRCUyMlNldCUyMHVwJTIwZW52aXJvbm1lbnQlMkMlMjB0aGVuJTIwZGVwbG95JTIyKQ==",highlighted:`# DON&#x27;T do this
subagent_a = spawn(task=&quot;Step 1: Set up environment&quot;).wait()
subagent_b = spawn(task=&quot;Step 2: Deploy code&quot;, input=subagent_a).wait()
# BETTER: Single agent for sequential work
single_agent(task=&quot;Set up environment, then deploy&quot;)`,wrap:!1}}),ye=new u({props:{title:"2. Same-File Parallel Edits",local:"2-same-file-parallel-edits",headingTag:"h3"}}),we=new m({props:{code:"JTIzJTIwRE9OJ1QlMjBkbyUyMHRoaXMlMEFzdWJhZ2VudF9hJTIwJTNEJTIwc3Bhd24odGFzayUzRCUyMkFkZCUyMGZlYXR1cmUlMjBBJTIwdG8lMjBhcHAucHklMjIpJTBBc3ViYWdlbnRfYiUyMCUzRCUyMHNwYXduKHRhc2slM0QlMjJBZGQlMjBmZWF0dXJlJTIwQiUyMHRvJTIwYXBwLnB5JTIyKSUyMCUyMCUyMyUyMENvbmZsaWN0ISUwQSUwQSUyMyUyMEJFVFRFUiUzQSUyMEZhbi1vdXQlMjBvbiUyMGRpZmZlcmVudCUyMGZpbGVzJTBBc3ViYWdlbnRfYSUyMCUzRCUyMHNwYXduKHRhc2slM0QlMjJXcml0ZSUyMGZlYXR1cmUlMjBBJTIwaW4lMjBmZWF0dXJlX2EucHklMjIpJTBBc3ViYWdlbnRfYiUyMCUzRCUyMHNwYXduKHRhc2slM0QlMjJXcml0ZSUyMGZlYXR1cmUlMjBCJTIwaW4lMjBmZWF0dXJlX2IucHklMjIp",highlighted:`# DON&#x27;T do this
subagent_a = spawn(task=&quot;Add feature A to app.py&quot;)
subagent_b = spawn(task=&quot;Add feature B to app.py&quot;) # Conflict!
# BETTER: Fan-out on different files
subagent_a = spawn(task=&quot;Write feature A in feature_a.py&quot;)
subagent_b = spawn(task=&quot;Write feature B in feature_b.py&quot;)`,wrap:!1}}),Te=new u({props:{title:"3. Small Quick Tasks",local:"3-small-quick-tasks",headingTag:"h3"}}),Ue=new m({props:{code:"JTIzJTIwRE9OJ1QlMjBkbyUyMHRoaXMlMjBmb3IlMjBzaW1wbGUlMjB0YXNrcyUwQXN1YmFnZW50JTIwJTNEJTIwc3Bhd24odGFzayUzRCUyMkZvcm1hdCUyMHRoaXMlMjBKU09OJTIyKSUyMCUyMCUyMyUyME92ZXJoZWFkJTNBJTIwMS0ycyUyQyUyMHRhc2slM0ElMjAwLjFzJTBBJTBBJTIzJTIwQkVUVEVSJTNBJTIwRG8lMjBpdCUyMGluJTIwcGFyZW50JTBBZm9ybWF0dGVkJTIwJTNEJTIwanNvbi5kdW1wcyhkYXRhKQ==",highlighted:`# DON&#x27;T do this for simple tasks
subagent = spawn(task=&quot;Format this JSON&quot;) # Overhead: 1-2s, task: 0.1s
# BETTER: Do it in parent
formatted = json.dumps(data)`,wrap:!1}}),Je=new u({props:{title:"4. Too Many Specialist Agents",local:"4-too-many-specialist-agents",headingTag:"h3"}}),ue=new m({props:{code:"JTIzJTIwRE9OJ1QlMjBkbyUyMHRoaXMlMEFmb3IlMjBpJTIwaW4lMjByYW5nZSgyMCklM0ElMjAlMjAlMjMlMjAyMCUyMHNwZWNpYWxpc3QlMjBzdWJhZ2VudHMlMEElMjAlMjAlMjAlMjBzdWJhZ2VudCUyMCUzRCUyMHNwYXduKHRhc2slM0RmJTIyU3BlY2lhbGlzdCUyMCU3QmklN0QlMjB0YXNrJTIyKSUwQSUwQSUyMyUyMEJFVFRFUiUzQSUyMEdyb3VwJTIwc3BlY2lhbGlzdHMlMEFzZW5pb3JfYXJjaGl0ZWN0JTIwJTNEJTIwc3Bhd24odGFzayUzRCUyMkxlYWQlMjBhcmNoaXRlY3R1cmUlMjBkZXNpZ24lMjIpJTBBaW1wbGVtZW50YXRpb25fdGVhbSUyMCUzRCUyMHNwYXduKHRhc2slM0QlMjJJbXBsZW1lbnQlMjBiYXNlZCUyMG9uJTIwZGVzaWduJTIyKQ==",highlighted:`# DON&#x27;T do this
for i in range(20): # 20 specialist subagents
subagent = spawn(task=f&quot;Specialist {i} task&quot;)
# BETTER: Group specialists
senior_architect = spawn(task=&quot;Lead architecture design&quot;)
implementation_team = spawn(task=&quot;Implement based on design&quot;)`,wrap:!1}}),me=new u({props:{title:"Key Takeaways",local:"key-takeaways",headingTag:"h2"}}),je=new ul({props:{source:"https://github.com/huggingface/context-course/blob/main/units/en/unit4/patterns.mdx"}}),{c(){o=M("meta"),fe=n(),be=M("p"),Ce=n(),r(j.$$.fragment),Ie=n(),r(c.$$.fragment),he=n(),b=M("p"),b.textContent=Zt,$e=n(),d=M("iframe"),Be=n(),r(g.$$.fragment),ke=n(),f=M("p"),f.innerHTML=Wt,Ze=n(),C=M("p"),C.innerHTML=vt,Ee=n(),I=M("p"),I.innerHTML=Ft,We=n(),r(h.$$.fragment),ve=n(),$=M("p"),$.innerHTML=St,Fe=n(),r(B.$$.fragment),Se=n(),k=M("p"),k.innerHTML=Qt,Qe=n(),Z=M("p"),Z.innerHTML=At,Ae=n(),r(E.$$.fragment),Ne=n(),W=M("p"),W.innerHTML=Nt,Re=n(),v=M("p"),v.innerHTML=Rt,Ve=n(),F=M("p"),F.innerHTML=Vt,Ge=n(),r(S.$$.fragment),He=n(),Q=M("p"),Q.innerHTML=Gt,Xe=n(),r(A.$$.fragment),ze=n(),N=M("p"),N.innerHTML=Ht,Ye=n(),R=M("p"),R.innerHTML=Xt,xe=n(),r(V.$$.fragment),_e=n(),G=M("p"),G.innerHTML=zt,Pe=n(),H=M("p"),H.innerHTML=Yt,qe=n(),X=M("p"),X.innerHTML=xt,Le=n(),r(z.$$.fragment),Ke=n(),Y=M("p"),Y.innerHTML=_t,Oe=n(),r(x.$$.fragment),De=n(),_=M("p"),_.innerHTML=Pt,et=n(),P=M("p"),P.innerHTML=qt,tt=n(),r(q.$$.fragment),lt=n(),L=M("p"),L.innerHTML=Lt,st=n(),K=M("p"),K.innerHTML=Kt,nt=n(),O=M("p"),O.innerHTML=Ot,at=n(),r(D.$$.fragment),Mt=n(),ee=M("p"),ee.innerHTML=Dt,it=n(),r(te.$$.fragment),pt=n(),le=M("p"),le.innerHTML=el,rt=n(),se=M("p"),se.innerHTML=tl,yt=n(),r(ne.$$.fragment),wt=n(),ae=M("table"),ae.innerHTML=ll,Tt=n(),r(Me.$$.fragment),Ut=n(),ie=M("p"),ie.textContent=sl,Jt=n(),r(pe.$$.fragment),ut=n(),r(re.$$.fragment),mt=n(),r(ye.$$.fragment),dt=n(),r(we.$$.fragment),ot=n(),r(Te.$$.fragment),jt=n(),r(Ue.$$.fragment),ct=n(),r(Je.$$.fragment),bt=n(),r(ue.$$.fragment),gt=n(),r(me.$$.fragment),ft=n(),de=M("p"),de.textContent=nl,Ct=n(),oe=M("p"),oe.textContent=al,It=n(),r(je.$$.fragment),ht=n(),ge=M("p"),this.h()},l(e){const t=Tl("svelte-u9bgzb",document.head);o=i(t,"META",{name:!0,content:!0}),t.forEach(l),fe=a(e),be=i(e,"P",{}),Bt(be).forEach(l),Ce=a(e),y(j.$$.fragment,e),Ie=a(e),y(c.$$.fragment,e),he=a(e),b=i(e,"P",{"data-svelte-h":!0}),p(b)!=="svelte-1vp4i5d"&&(b.textContent=Zt),$e=a(e),d=i(e,"IFRAME",{src:!0,frameborder:!0,width:!0,height:!0}),Bt(d).forEach(l),Be=a(e),y(g.$$.fragment,e),ke=a(e),f=i(e,"P",{"data-svelte-h":!0}),p(f)!=="svelte-yzrkim"&&(f.innerHTML=Wt),Ze=a(e),C=i(e,"P",{"data-svelte-h":!0}),p(C)!=="svelte-19f9em1"&&(C.innerHTML=vt),Ee=a(e),I=i(e,"P",{"data-svelte-h":!0}),p(I)!=="svelte-ckg9pu"&&(I.innerHTML=Ft),We=a(e),y(h.$$.fragment,e),ve=a(e),$=i(e,"P",{"data-svelte-h":!0}),p($)!=="svelte-12ozbb6"&&($.innerHTML=St),Fe=a(e),y(B.$$.fragment,e),Se=a(e),k=i(e,"P",{"data-svelte-h":!0}),p(k)!=="svelte-1rex2c6"&&(k.innerHTML=Qt),Qe=a(e),Z=i(e,"P",{"data-svelte-h":!0}),p(Z)!=="svelte-18d55we"&&(Z.innerHTML=At),Ae=a(e),y(E.$$.fragment,e),Ne=a(e),W=i(e,"P",{"data-svelte-h":!0}),p(W)!=="svelte-1psysa9"&&(W.innerHTML=Nt),Re=a(e),v=i(e,"P",{"data-svelte-h":!0}),p(v)!=="svelte-qkzpr5"&&(v.innerHTML=Rt),Ve=a(e),F=i(e,"P",{"data-svelte-h":!0}),p(F)!=="svelte-d9c73s"&&(F.innerHTML=Vt),Ge=a(e),y(S.$$.fragment,e),He=a(e),Q=i(e,"P",{"data-svelte-h":!0}),p(Q)!=="svelte-12ozbb6"&&(Q.innerHTML=Gt),Xe=a(e),y(A.$$.fragment,e),ze=a(e),N=i(e,"P",{"data-svelte-h":!0}),p(N)!=="svelte-1k2u8vu"&&(N.innerHTML=Ht),Ye=a(e),R=i(e,"P",{"data-svelte-h":!0}),p(R)!=="svelte-1p7b54e"&&(R.innerHTML=Xt),xe=a(e),y(V.$$.fragment,e),_e=a(e),G=i(e,"P",{"data-svelte-h":!0}),p(G)!=="svelte-mlh15d"&&(G.innerHTML=zt),Pe=a(e),H=i(e,"P",{"data-svelte-h":!0}),p(H)!=="svelte-33g06y"&&(H.innerHTML=Yt),qe=a(e),X=i(e,"P",{"data-svelte-h":!0}),p(X)!=="svelte-1en9q2q"&&(X.innerHTML=xt),Le=a(e),y(z.$$.fragment,e),Ke=a(e),Y=i(e,"P",{"data-svelte-h":!0}),p(Y)!=="svelte-12ozbb6"&&(Y.innerHTML=_t),Oe=a(e),y(x.$$.fragment,e),De=a(e),_=i(e,"P",{"data-svelte-h":!0}),p(_)!=="svelte-1xvmrv4"&&(_.innerHTML=Pt),et=a(e),P=i(e,"P",{"data-svelte-h":!0}),p(P)!=="svelte-w2p7io"&&(P.innerHTML=qt),tt=a(e),y(q.$$.fragment,e),lt=a(e),L=i(e,"P",{"data-svelte-h":!0}),p(L)!=="svelte-18cu9xt"&&(L.innerHTML=Lt),st=a(e),K=i(e,"P",{"data-svelte-h":!0}),p(K)!=="svelte-ak39ak"&&(K.innerHTML=Kt),nt=a(e),O=i(e,"P",{"data-svelte-h":!0}),p(O)!=="svelte-1r41uox"&&(O.innerHTML=Ot),at=a(e),y(D.$$.fragment,e),Mt=a(e),ee=i(e,"P",{"data-svelte-h":!0}),p(ee)!=="svelte-12ozbb6"&&(ee.innerHTML=Dt),it=a(e),y(te.$$.fragment,e),pt=a(e),le=i(e,"P",{"data-svelte-h":!0}),p(le)!=="svelte-vpdg2s"&&(le.innerHTML=el),rt=a(e),se=i(e,"P",{"data-svelte-h":!0}),p(se)!=="svelte-1o8udmk"&&(se.innerHTML=tl),yt=a(e),y(ne.$$.fragment,e),wt=a(e),ae=i(e,"TABLE",{"data-svelte-h":!0}),p(ae)!=="svelte-733v5v"&&(ae.innerHTML=ll),Tt=a(e),y(Me.$$.fragment,e),Ut=a(e),ie=i(e,"P",{"data-svelte-h":!0}),p(ie)!=="svelte-1pyqcn6"&&(ie.textContent=sl),Jt=a(e),y(pe.$$.fragment,e),ut=a(e),y(re.$$.fragment,e),mt=a(e),y(ye.$$.fragment,e),dt=a(e),y(we.$$.fragment,e),ot=a(e),y(Te.$$.fragment,e),jt=a(e),y(Ue.$$.fragment,e),ct=a(e),y(Je.$$.fragment,e),bt=a(e),y(ue.$$.fragment,e),gt=a(e),y(me.$$.fragment,e),ft=a(e),de=i(e,"P",{"data-svelte-h":!0}),p(de)!=="svelte-1ynnkh7"&&(de.textContent=nl),Ct=a(e),oe=i(e,"P",{"data-svelte-h":!0}),p(oe)!=="svelte-1x3j4tr"&&(oe.textContent=al),It=a(e),y(je.$$.fragment,e),ht=a(e),ge=i(e,"P",{}),Bt(ge).forEach(l),this.h()},h(){ce(o,"name","hf:doc:metadata"),ce(o,"content",dl),il(d.src,Et="https://context-course-subagent-patterns.static.hf.space")||ce(d,"src",Et),ce(d,"frameborder","0"),ce(d,"width","850"),ce(d,"height","450")},m(e,t){Ul(document.head,o),s(e,fe,t),s(e,be,t),s(e,Ce,t),w(j,e,t),s(e,Ie,t),w(c,e,t),s(e,he,t),s(e,b,t),s(e,$e,t),s(e,d,t),s(e,Be,t),w(g,e,t),s(e,ke,t),s(e,f,t),s(e,Ze,t),s(e,C,t),s(e,Ee,t),s(e,I,t),s(e,We,t),w(h,e,t),s(e,ve,t),s(e,$,t),s(e,Fe,t),w(B,e,t),s(e,Se,t),s(e,k,t),s(e,Qe,t),s(e,Z,t),s(e,Ae,t),w(E,e,t),s(e,Ne,t),s(e,W,t),s(e,Re,t),s(e,v,t),s(e,Ve,t),s(e,F,t),s(e,Ge,t),w(S,e,t),s(e,He,t),s(e,Q,t),s(e,Xe,t),w(A,e,t),s(e,ze,t),s(e,N,t),s(e,Ye,t),s(e,R,t),s(e,xe,t),w(V,e,t),s(e,_e,t),s(e,G,t),s(e,Pe,t),s(e,H,t),s(e,qe,t),s(e,X,t),s(e,Le,t),w(z,e,t),s(e,Ke,t),s(e,Y,t),s(e,Oe,t),w(x,e,t),s(e,De,t),s(e,_,t),s(e,et,t),s(e,P,t),s(e,tt,t),w(q,e,t),s(e,lt,t),s(e,L,t),s(e,st,t),s(e,K,t),s(e,nt,t),s(e,O,t),s(e,at,t),w(D,e,t),s(e,Mt,t),s(e,ee,t),s(e,it,t),w(te,e,t),s(e,pt,t),s(e,le,t),s(e,rt,t),s(e,se,t),s(e,yt,t),w(ne,e,t),s(e,wt,t),s(e,ae,t),s(e,Tt,t),w(Me,e,t),s(e,Ut,t),s(e,ie,t),s(e,Jt,t),w(pe,e,t),s(e,ut,t),w(re,e,t),s(e,mt,t),w(ye,e,t),s(e,dt,t),w(we,e,t),s(e,ot,t),w(Te,e,t),s(e,jt,t),w(Ue,e,t),s(e,ct,t),w(Je,e,t),s(e,bt,t),w(ue,e,t),s(e,gt,t),w(me,e,t),s(e,ft,t),s(e,de,t),s(e,Ct,t),s(e,oe,t),s(e,It,t),w(je,e,t),s(e,ht,t),s(e,ge,t),$t=!0},p:pl,i(e){$t||(T(j.$$.fragment,e),T(c.$$.fragment,e),T(g.$$.fragment,e),T(h.$$.fragment,e),T(B.$$.fragment,e),T(E.$$.fragment,e),T(S.$$.fragment,e),T(A.$$.fragment,e),T(V.$$.fragment,e),T(z.$$.fragment,e),T(x.$$.fragment,e),T(q.$$.fragment,e),T(D.$$.fragment,e),T(te.$$.fragment,e),T(ne.$$.fragment,e),T(Me.$$.fragment,e),T(pe.$$.fragment,e),T(re.$$.fragment,e),T(ye.$$.fragment,e),T(we.$$.fragment,e),T(Te.$$.fragment,e),T(Ue.$$.fragment,e),T(Je.$$.fragment,e),T(ue.$$.fragment,e),T(me.$$.fragment,e),T(je.$$.fragment,e),$t=!0)},o(e){U(j.$$.fragment,e),U(c.$$.fragment,e),U(g.$$.fragment,e),U(h.$$.fragment,e),U(B.$$.fragment,e),U(E.$$.fragment,e),U(S.$$.fragment,e),U(A.$$.fragment,e),U(V.$$.fragment,e),U(z.$$.fragment,e),U(x.$$.fragment,e),U(q.$$.fragment,e),U(D.$$.fragment,e),U(te.$$.fragment,e),U(ne.$$.fragment,e),U(Me.$$.fragment,e),U(pe.$$.fragment,e),U(re.$$.fragment,e),U(ye.$$.fragment,e),U(we.$$.fragment,e),U(Te.$$.fragment,e),U(Ue.$$.fragment,e),U(Je.$$.fragment,e),U(ue.$$.fragment,e),U(me.$$.fragment,e),U(je.$$.fragment,e),$t=!1},d(e){e&&(l(fe),l(be),l(Ce),l(Ie),l(he),l(b),l($e),l(d),l(Be),l(ke),l(f),l(Ze),l(C),l(Ee),l(I),l(We),l(ve),l($),l(Fe),l(Se),l(k),l(Qe),l(Z),l(Ae),l(Ne),l(W),l(Re),l(v),l(Ve),l(F),l(Ge),l(He),l(Q),l(Xe),l(ze),l(N),l(Ye),l(R),l(xe),l(_e),l(G),l(Pe),l(H),l(qe),l(X),l(Le),l(Ke),l(Y),l(Oe),l(De),l(_),l(et),l(P),l(tt),l(lt),l(L),l(st),l(K),l(nt),l(O),l(at),l(Mt),l(ee),l(it),l(pt),l(le),l(rt),l(se),l(yt),l(wt),l(ae),l(Tt),l(Ut),l(ie),l(Jt),l(ut),l(mt),l(dt),l(ot),l(jt),l(ct),l(bt),l(gt),l(ft),l(de),l(Ct),l(oe),l(It),l(ht),l(ge)),l(o),J(j,e),J(c,e),J(g,e),J(h,e),J(B,e),J(E,e),J(S,e),J(A,e),J(V,e),J(z,e),J(x,e),J(q,e),J(D,e),J(te,e),J(ne,e),J(Me,e),J(pe,e),J(re,e),J(ye,e),J(we,e),J(Te,e),J(Ue,e),J(Je,e),J(ue,e),J(me,e),J(je,e)}}}const dl='{"title":"Subagent Patterns","local":"subagent-patterns","sections":[{"title":"Pattern 1: Fan-Out / Fan-In","local":"pattern-1-fan-out--fan-in","sections":[],"depth":2},{"title":"Pattern 2: Pipeline","local":"pattern-2-pipeline","sections":[],"depth":2},{"title":"Pattern 3: Supervisor (Hierarchical)","local":"pattern-3-supervisor-hierarchical","sections":[],"depth":2},{"title":"Pattern 4: Swarm (Collaborative)","local":"pattern-4-swarm-collaborative","sections":[],"depth":2},{"title":"Pattern Comparison","local":"pattern-comparison","sections":[],"depth":2},{"title":"When NOT to Use Subagents","local":"when-not-to-use-subagents","sections":[{"title":"1. Sequential Dependent Work","local":"1-sequential-dependent-work","sections":[],"depth":3},{"title":"2. Same-File Parallel Edits","local":"2-same-file-parallel-edits","sections":[],"depth":3},{"title":"3. Small Quick Tasks","local":"3-small-quick-tasks","sections":[],"depth":3},{"title":"4. Too Many Specialist Agents","local":"4-too-many-specialist-agents","sections":[],"depth":3}],"depth":2},{"title":"Key Takeaways","local":"key-takeaways","sections":[],"depth":2}],"depth":1}';function ol(kt){return rl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class fl extends yl{constructor(o){super(),wl(this,o,ol,ml,Ml,{})}}export{fl as component};

Xet Storage Details

Size:
28.2 kB
·
Xet hash:
4787cf602ad271889da07b547a00266e2f6cf55224e2955f30084773cd7d3e32

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.