{"id":"16-parallel","number":16,"slug":"parallel-agents-worktrees","title":"Running agents in parallel","short":"Agents in parallel","module":"Scaling up","summary":"Heavy users run five, ten, even hundreds of agents at once. But your attention doesn't parallelize, and naive parallelism creates conflicts and duplicate work. Learn how to isolate agents with worktrees, pick tasks that don't collide, and keep the orchestration tax under control.","voice":"Eric","scenes":[{"template":"title","chapter":"Intro","narration":"The people who ship the most with agents rarely run just one. But parallelism has a hidden cost, and it's paid in the scarcest resource you have: your attention.","params":{"kicker":"Lesson 16","module":"Module 4 · Scaling up","title":"Running agents in *parallel*","subtitle":"More agents, same you.","bubble":"We are many.","mood":"happy"},"start":0.5,"dur":11.884,"words":[{"text":"The","s":0.8,"e":0.96},{"text":"people","s":1.08,"e":1.2},{"text":"who","s":1.28,"e":1.36},{"text":"ship","s":1.44,"e":1.68},{"text":"the","s":1.72,"e":1.76},{"text":"most","s":1.92,"e":2.16},{"text":"with","s":2.24,"e":2.32},{"text":"agents","s":2.4,"e":2.88},{"text":"rarely","s":3.04,"e":3.44},{"text":"run","s":3.52,"e":3.68},{"text":"just","s":3.76,"e":3.92},{"text":"one.","s":4,"e":4.8},{"text":"But","s":4.92,"e":5.04},{"text":"parallelism","s":5.2,"e":6},{"text":"has","s":6.08,"e":6.16},{"text":"a","s":6.24,"e":6.32},{"text":"hidden","s":6.48,"e":6.64},{"text":"cost,","s":6.88,"e":7.44},{"text":"and","s":7.48,"e":7.52},{"text":"it's","s":7.6,"e":7.76},{"text":"paid","s":7.92,"e":8.08},{"text":"in","s":8.16,"e":8.24},{"text":"the","s":8.32,"e":8.4},{"text":"scarcest","s":8.56,"e":8.96},{"text":"resource","s":9.04,"e":9.52},{"text":"you","s":9.6,"e":9.68},{"text":"have:","s":9.76,"e":10.48},{"text":"your","s":10.56,"e":10.64},{"text":"attention.","s":10.92,"e":11.52}]},{"template":"stat","chapter":"How many?","narration":"How many is normal? Boris Cherny runs five to ten sessions at a time, which between them hold a few hundred agents, and thousands more overnight. Peter Steinberger runs five to ten agents in parallel on his projects. Ben Vinegar keeps about six checkouts going.","params":{"items":[{"value":"5–10","label":"sessions at once","sub":"Boris Cherny, holding a few hundred agents","tone":"agent","at":"Boris"},{"value":"5–10","label":"agents in parallel","sub":"Peter Steinberger","tone":"agent","at":"Steinberger"},{"value":"~6","label":"checkouts going","sub":"Ben Vinegar","tone":"ink","at":"Vinegar"}]},"start":12.384,"dur":18.426,"words":[{"text":"How","s":12.684,"e":12.924},{"text":"many","s":13.004,"e":13.244},{"text":"is","s":13.324,"e":13.404},{"text":"normal?","s":13.484,"e":14.204},{"text":"Boris","s":14.524,"e":14.844},{"text":"Cherny","s":14.924,"e":15.324},{"text":"runs","s":15.484,"e":15.644},{"text":"five","s":15.724,"e":15.884},{"text":"to","s":16.044,"e":16.204},{"text":"ten","s":16.324,"e":16.444},{"text":"sessions","s":16.524,"e":16.924},{"text":"at","s":16.964,"e":17.004},{"text":"a","s":17.044,"e":17.084},{"text":"time,","s":17.164,"e":17.724},{"text":"which","s":17.884,"e":18.044},{"text":"between","s":18.124,"e":18.524},{"text":"them","s":18.604,"e":18.684},{"text":"hold","s":19.004,"e":19.164},{"text":"a","s":19.204,"e":19.244},{"text":"few","s":19.324,"e":19.484},{"text":"hundred","s":19.644,"e":19.964},{"text":"agents,","s":20.044,"e":20.684},{"text":"and","s":20.804,"e":20.924},{"text":"thousands","s":21.004,"e":21.484},{"text":"more","s":21.564,"e":21.724},{"text":"overnight.","s":21.804,"e":22.564},{"text":"Peter","s":22.844,"e":23.084},{"text":"Steinberger","s":23.164,"e":23.804},{"text":"runs","s":23.884,"e":24.124},{"text":"five","s":24.204,"e":24.364},{"text":"to","s":24.524,"e":24.604},{"text":"ten","s":24.684,"e":24.844},{"text":"agents","s":24.924,"e":25.244},{"text":"in","s":25.324,"e":25.404},{"text":"parallel","s":25.484,"e":25.964},{"text":"on","s":26.044,"e":26.124},{"text":"his","s":26.204,"e":26.284},{"text":"projects.","s":26.364,"e":27.004},{"text":"Ben","s":27.484,"e":27.724},{"text":"Vinegar","s":27.804,"e":28.204},{"text":"keeps","s":28.284,"e":28.444},{"text":"about","s":28.524,"e":28.764},{"text":"six","s":28.924,"e":29.084},{"text":"checkouts","s":29.164,"e":29.564},{"text":"going.","s":29.644,"e":30.204}]},{"template":"quote","chapter":"Macro actions","narration":"Karpathy describes the shift as working in macro actions. Not a line of code or a function at a time, but whole pieces of functionality. Here's a new feature, give it to agent one. Here's another that won't interfere with the first, give it to agent two.","params":{"text":"Here's a new functionality and delegate it to agent one. Here's a new functionality that's *not going to interfere* with the other one. Give it agent two.","who":"Andrej Karpathy","role":"on working in macro actions","src":"Skill Issue · No Priors","t":220},"start":30.81,"dur":16.676,"words":[{"text":"Karpathy","s":31.11,"e":31.67},{"text":"describes","s":31.75,"e":32.15},{"text":"the","s":32.19,"e":32.23},{"text":"shift","s":32.31,"e":32.63},{"text":"as","s":32.71,"e":32.79},{"text":"working","s":32.87,"e":33.19},{"text":"in","s":33.27,"e":33.43},{"text":"macro","s":33.51,"e":33.91},{"text":"actions.","s":33.99,"e":34.83},{"text":"Not","s":35.11,"e":35.27},{"text":"a","s":35.35,"e":35.39},{"text":"line","s":35.43,"e":35.59},{"text":"of","s":35.63,"e":35.67},{"text":"code","s":35.83,"e":36.15},{"text":"or","s":36.23,"e":36.31},{"text":"a","s":36.35,"e":36.39},{"text":"function","s":36.47,"e":36.79},{"text":"at","s":36.87,"e":36.95},{"text":"a","s":37.003,"e":37.057},{"text":"time,","s":37.11,"e":37.83},{"text":"but","s":37.91,"e":37.99},{"text":"whole","s":38.15,"e":38.39},{"text":"pieces","s":38.55,"e":38.95},{"text":"of","s":39.03,"e":39.11},{"text":"functionality.","s":39.31,"e":40.19},{"text":"Here's","s":40.47,"e":40.71},{"text":"a","s":40.737,"e":40.763},{"text":"new","s":40.79,"e":40.87},{"text":"feature,","s":40.95,"e":41.59},{"text":"give","s":41.67,"e":41.75},{"text":"it","s":41.79,"e":41.83},{"text":"to","s":41.87,"e":41.91},{"text":"agent","s":41.99,"e":42.23},{"text":"one.","s":42.39,"e":42.87},{"text":"Here's","s":43.11,"e":43.31},{"text":"another","s":43.35,"e":43.75},{"text":"that","s":43.83,"e":43.91},{"text":"won't","s":43.99,"e":44.15},{"text":"interfere","s":44.23,"e":44.55},{"text":"with","s":44.63,"e":44.71},{"text":"the","s":44.79,"e":44.87},{"text":"first,","s":45.07,"e":45.59},{"text":"give","s":45.67,"e":45.75},{"text":"it","s":45.79,"e":45.83},{"text":"to","s":45.87,"e":45.91},{"text":"agent","s":45.99,"e":46.23},{"text":"two.","s":46.31,"e":46.87}]},{"template":"agents","chapter":"Isolation","narration":"The first rule is isolation. Agents can't safely edit the same folder at once. So give each one its own checkout. Git worktrees make this cheap: each agent gets its own folder and branch, and comes back as a pull request. Matt Pocock says he now uses worktrees for everything.","params":{"title":"One agent, one worktree, one branch","lanes":[{"label":"worktree/csv-export → feature branch","at":"own checkout"},{"label":"worktree/fix-login → bugfix branch","at":"worktrees"},{"label":"worktree/upgrade-deps → chore branch","at":"folder and branch"},{"label":"main → untouched","result":"clean","at":"pull request"}],"merge":{"label":"each one returns as a PR","at":"everything"}},"start":47.486,"dur":19.236,"words":[{"text":"The","s":47.786,"e":47.946},{"text":"first","s":48.026,"e":48.266},{"text":"rule","s":48.346,"e":48.666},{"text":"is","s":48.826,"e":48.906},{"text":"isolation.","s":49.066,"e":50.066},{"text":"Agents","s":50.346,"e":50.746},{"text":"can't","s":50.826,"e":50.986},{"text":"safely","s":51.146,"e":51.546},{"text":"edit","s":51.626,"e":51.866},{"text":"the","s":51.946,"e":52.026},{"text":"same","s":52.106,"e":52.266},{"text":"folder","s":52.426,"e":52.666},{"text":"at","s":52.746,"e":52.826},{"text":"once.","s":52.906,"e":53.426},{"text":"So","s":53.626,"e":53.786},{"text":"give","s":53.866,"e":54.026},{"text":"each","s":54.106,"e":54.266},{"text":"one","s":54.426,"e":54.586},{"text":"its","s":54.666,"e":54.906},{"text":"own","s":54.986,"e":55.066},{"text":"checkout.","s":55.226,"e":56.106},{"text":"Git","s":56.186,"e":56.346},{"text":"worktrees","s":56.426,"e":56.906},{"text":"make","s":56.986,"e":57.146},{"text":"this","s":57.226,"e":57.306},{"text":"cheap:","s":57.386,"e":58.106},{"text":"each","s":58.186,"e":58.346},{"text":"agent","s":58.426,"e":58.746},{"text":"gets","s":58.826,"e":58.986},{"text":"its","s":59.106,"e":59.226},{"text":"own","s":59.306,"e":59.386},{"text":"folder","s":59.546,"e":59.866},{"text":"and","s":59.906,"e":59.946},{"text":"branch,","s":60.026,"e":60.586},{"text":"and","s":60.666,"e":60.746},{"text":"comes","s":60.906,"e":61.066},{"text":"back","s":61.186,"e":61.306},{"text":"as","s":61.346,"e":61.386},{"text":"a","s":61.466,"e":61.546},{"text":"pull","s":61.626,"e":61.706},{"text":"request.","s":61.786,"e":62.746},{"text":"Matt","s":62.826,"e":62.986},{"text":"Pocock","s":63.066,"e":63.546},{"text":"says","s":63.666,"e":63.786},{"text":"he","s":63.866,"e":63.946},{"text":"now","s":64.026,"e":64.186},{"text":"uses","s":64.266,"e":64.506},{"text":"worktrees","s":64.586,"e":65.066},{"text":"for","s":65.186,"e":65.306},{"text":"everything.","s":65.386,"e":66.106}]},{"template":"statement","chapter":"Isolation","narration":"Worktrees share your local services, though: the same database, the same caches. Teams running agents at scale, like Cursor and Airbnb, move to cloud sandboxes, where each agent gets its own machine with its own database. More setup, but it scales to hundreds of agents.","params":{"text":"Worktrees share your database. At scale, give each agent its own *sandbox*.","sub":"Cursor and Airbnb run parallel agents in isolated cloud environments.","art":"box","tone":"agent","sync":false},"start":66.722,"dur":19.079,"words":[{"text":"Worktrees","s":67.022,"e":67.582},{"text":"share","s":67.662,"e":67.902},{"text":"your","s":67.982,"e":68.062},{"text":"local","s":68.142,"e":68.382},{"text":"services,","s":68.542,"e":69.102},{"text":"though:","s":69.182,"e":69.662},{"text":"the","s":69.702,"e":69.742},{"text":"same","s":69.822,"e":69.982},{"text":"database,","s":70.062,"e":70.782},{"text":"the","s":70.822,"e":70.862},{"text":"same","s":70.942,"e":71.102},{"text":"caches.","s":71.182,"e":72.062},{"text":"Teams","s":72.382,"e":72.702},{"text":"running","s":72.822,"e":72.942},{"text":"agents","s":73.022,"e":73.342},{"text":"at","s":73.422,"e":73.502},{"text":"scale,","s":73.582,"e":74.062},{"text":"like","s":74.142,"e":74.302},{"text":"Cursor","s":74.462,"e":74.862},{"text":"and","s":74.942,"e":75.022},{"text":"Airbnb,","s":75.102,"e":76.142},{"text":"move","s":76.222,"e":76.382},{"text":"to","s":76.462,"e":76.542},{"text":"cloud","s":76.622,"e":76.942},{"text":"sandboxes,","s":77.022,"e":77.982},{"text":"where","s":78.102,"e":78.222},{"text":"each","s":78.302,"e":78.462},{"text":"agent","s":78.542,"e":78.862},{"text":"gets","s":78.942,"e":79.102},{"text":"its","s":79.222,"e":79.342},{"text":"own","s":79.422,"e":79.502},{"text":"machine","s":79.582,"e":80.062},{"text":"with","s":80.142,"e":80.222},{"text":"its","s":80.302,"e":80.542},{"text":"own","s":80.622,"e":80.702},{"text":"database.","s":80.782,"e":81.902},{"text":"More","s":82.022,"e":82.142},{"text":"setup,","s":82.222,"e":82.782},{"text":"but","s":82.862,"e":83.102},{"text":"it","s":83.182,"e":83.262},{"text":"scales","s":83.342,"e":83.662},{"text":"to","s":83.782,"e":83.902},{"text":"hundreds","s":83.942,"e":84.302},{"text":"of","s":84.342,"e":84.382},{"text":"agents.","s":84.462,"e":85.102}]},{"template":"quote","chapter":"The orchestration tax","narration":"Now the hidden cost. Addy Osmani calls it the orchestration tax. More agents running does not mean there is more of you available. Your cognitive bandwidth does not parallelize. Peter Steinberger says it feels like managing five or ten employees at once, and it's mentally more taxing than writing code.","params":{"text":"More AI agents running does not mean that there is more of you available. Your cognitive bandwidth *does not parallelize*.","who":"Addy Osmani","role":"engineer and author","src":"The engineer of the future · AI Engineer","t":735},"start":85.801,"dur":20.672,"words":[{"text":"Now","s":86.101,"e":86.421},{"text":"the","s":86.501,"e":86.581},{"text":"hidden","s":86.741,"e":86.981},{"text":"cost.","s":87.061,"e":87.541},{"text":"Addy","s":88.101,"e":88.341},{"text":"Osmani","s":88.421,"e":88.901},{"text":"calls","s":89.021,"e":89.141},{"text":"it","s":89.221,"e":89.301},{"text":"the","s":89.381,"e":89.461},{"text":"orchestration","s":89.541,"e":90.341},{"text":"tax.","s":90.421,"e":90.901},{"text":"More","s":91.381,"e":91.621},{"text":"agents","s":91.821,"e":92.021},{"text":"running","s":92.101,"e":92.501},{"text":"does","s":92.621,"e":92.741},{"text":"not","s":92.821,"e":93.061},{"text":"mean","s":93.141,"e":93.301},{"text":"there","s":93.381,"e":93.461},{"text":"is","s":93.501,"e":93.541},{"text":"more","s":93.701,"e":93.861},{"text":"of","s":93.901,"e":93.941},{"text":"you","s":94.021,"e":94.101},{"text":"available.","s":94.181,"e":94.741},{"text":"Your","s":95.141,"e":95.301},{"text":"cognitive","s":95.381,"e":95.781},{"text":"bandwidth","s":95.861,"e":96.341},{"text":"does","s":96.421,"e":96.661},{"text":"not","s":96.741,"e":96.981},{"text":"parallelize.","s":97.061,"e":97.861},{"text":"Peter","s":98.341,"e":98.581},{"text":"Steinberger","s":98.661,"e":99.301},{"text":"says","s":99.461,"e":99.621},{"text":"it","s":99.781,"e":99.861},{"text":"feels","s":99.941,"e":100.181},{"text":"like","s":100.261,"e":100.341},{"text":"managing","s":100.421,"e":100.821},{"text":"five","s":100.981,"e":101.221},{"text":"or","s":101.301,"e":101.461},{"text":"ten","s":101.541,"e":101.621},{"text":"employees","s":101.861,"e":102.101},{"text":"at","s":102.181,"e":102.261},{"text":"once,","s":102.421,"e":103.061},{"text":"and","s":103.141,"e":103.221},{"text":"it's","s":103.261,"e":103.461},{"text":"mentally","s":103.581,"e":103.861},{"text":"more","s":103.941,"e":104.101},{"text":"taxing","s":104.181,"e":104.661},{"text":"than","s":104.741,"e":104.821},{"text":"writing","s":104.981,"e":105.141},{"text":"code.","s":105.221,"e":105.861}]},{"template":"list","chapter":"Naive parallelism","narration":"And naive parallelism backfires in software. Luke Alvoeiro from Factory lists the problems: agents step on each other's changes, duplicate work, and make inconsistent architectural decisions. Matt Pocock warns that sixteen agents on sixteen backlog tasks would be absolute hell, full of merge conflicts and hidden dependencies.","params":{"title":"Why ten agents ≠ ten times faster","style":"warn","items":[{"text":"They step on each other's changes","at":"step on"},{"text":"They duplicate work","at":"duplicate"},{"text":"They make inconsistent design decisions","at":"inconsistent"},{"text":"Merge conflicts and hidden dependencies","at":"merge conflicts"}]},"start":106.473,"dur":23.467,"words":[{"text":"And","s":106.773,"e":106.973},{"text":"naive","s":107.013,"e":107.573},{"text":"parallelism","s":107.653,"e":108.373},{"text":"backfires","s":108.533,"e":109.173},{"text":"in","s":109.253,"e":109.333},{"text":"software.","s":109.613,"e":110.453},{"text":"Luke","s":110.573,"e":110.693},{"text":"Alvoeiro","s":110.773,"e":111.333},{"text":"from","s":111.413,"e":111.493},{"text":"Factory","s":111.573,"e":112.133},{"text":"lists","s":112.213,"e":112.453},{"text":"the","s":112.533,"e":112.613},{"text":"problems:","s":112.893,"e":113.653},{"text":"agents","s":113.893,"e":114.133},{"text":"step","s":114.293,"e":114.453},{"text":"on","s":114.493,"e":114.533},{"text":"each","s":114.613,"e":114.693},{"text":"other's","s":114.773,"e":115.093},{"text":"changes,","s":115.373,"e":115.893},{"text":"duplicate","s":116.133,"e":116.373},{"text":"work,","s":116.453,"e":117.013},{"text":"and","s":117.053,"e":117.093},{"text":"make","s":117.173,"e":117.333},{"text":"inconsistent","s":117.413,"e":118.213},{"text":"architectural","s":118.293,"e":118.933},{"text":"decisions.","s":119.013,"e":120.133},{"text":"Matt","s":120.213,"e":120.373},{"text":"Pocock","s":120.453,"e":120.933},{"text":"warns","s":121.013,"e":121.333},{"text":"that","s":121.413,"e":121.573},{"text":"sixteen","s":121.653,"e":122.133},{"text":"agents","s":122.213,"e":122.613},{"text":"on","s":122.693,"e":122.933},{"text":"sixteen","s":123.013,"e":123.413},{"text":"backlog","s":123.493,"e":123.973},{"text":"tasks","s":124.213,"e":124.453},{"text":"would","s":124.533,"e":124.613},{"text":"be","s":124.733,"e":124.853},{"text":"absolute","s":125.173,"e":125.493},{"text":"hell,","s":125.653,"e":126.373},{"text":"full","s":126.533,"e":126.693},{"text":"of","s":126.773,"e":126.853},{"text":"merge","s":126.933,"e":127.173},{"text":"conflicts","s":127.253,"e":127.733},{"text":"and","s":127.813,"e":127.893},{"text":"hidden","s":127.973,"e":128.213},{"text":"dependencies.","s":128.613,"e":129.333}]},{"template":"compare","chapter":"Reads vs writes","narration":"Factory's answer is surprising. They run feature work serially, one writer at a time, and parallelize only the read-only work: searching code, researching APIs, reviewing. It looks slower on paper, but the error rate drops dramatically. Parallelize reads freely. Parallelize writes only when tasks truly don't overlap.","params":{"left":{"title":"Parallelize freely","tone":"good","items":["Searching the codebase","Researching APIs and docs","Reviews and second opinions"],"at":"read-only"},"right":{"title":"Parallelize carefully","tone":"human","who":"human","items":["Writing code","Only for non-overlapping tasks","Sequence anything that collides"],"at":"Parallelize writes"},"vs":"vs"},"start":129.94,"dur":23.938,"words":[{"text":"Factory's","s":130.24,"e":130.8},{"text":"answer","s":131,"e":131.2},{"text":"is","s":131.28,"e":131.36},{"text":"surprising.","s":131.44,"e":132.08},{"text":"They","s":132.56,"e":132.72},{"text":"run","s":132.8,"e":132.96},{"text":"feature","s":133.04,"e":133.28},{"text":"work","s":133.36,"e":133.6},{"text":"serially,","s":133.68,"e":134.56},{"text":"one","s":134.64,"e":134.8},{"text":"writer","s":134.96,"e":135.12},{"text":"at","s":135.16,"e":135.2},{"text":"a","s":135.28,"e":135.32},{"text":"time,","s":135.36,"e":136},{"text":"and","s":136.08,"e":136.16},{"text":"parallelize","s":136.24,"e":136.96},{"text":"only","s":137.12,"e":137.36},{"text":"the","s":137.44,"e":137.52},{"text":"read-only","s":137.6,"e":138.16},{"text":"work:","s":138.32,"e":138.88},{"text":"searching","s":138.96,"e":139.28},{"text":"code,","s":139.36,"e":140},{"text":"researching","s":140.2,"e":140.48},{"text":"APIs,","s":140.56,"e":141.36},{"text":"reviewing.","s":141.52,"e":142.08},{"text":"It","s":142.72,"e":142.8},{"text":"looks","s":142.92,"e":143.04},{"text":"slower","s":143.12,"e":143.44},{"text":"on","s":143.52,"e":143.6},{"text":"paper,","s":143.68,"e":144.32},{"text":"but","s":144.4,"e":144.48},{"text":"the","s":144.52,"e":144.56},{"text":"error","s":144.72,"e":144.96},{"text":"rate","s":145.04,"e":145.2},{"text":"drops","s":145.28,"e":145.6},{"text":"dramatically.","s":145.64,"e":146.4},{"text":"Parallelize","s":147.04,"e":147.76},{"text":"reads","s":147.84,"e":148.24},{"text":"freely.","s":148.32,"e":149},{"text":"Parallelize","s":149.28,"e":149.92},{"text":"writes","s":150,"e":150.4},{"text":"only","s":150.56,"e":150.8},{"text":"when","s":150.88,"e":150.96},{"text":"tasks","s":151.04,"e":151.52},{"text":"truly","s":151.6,"e":152},{"text":"don't","s":152.16,"e":152.4},{"text":"overlap.","s":152.68,"e":153.28}]},{"template":"list","chapter":"What works","narration":"So what works? Pick tasks that don't touch the same code; you can even ask the agent which tasks will intersect. Make dependencies explicit, so blocked work waits its turn. Prefer longer, self-verifying tasks, so you check in less often. And Lauren Tan's rule: you can't spawn a hundred agents when you don't even trust the output of one.","params":{"title":"What works","items":[{"text":"Non-overlapping tasks","sub":"ask the agent which ones will intersect","at":"intersect"},{"text":"Explicit dependencies","sub":"blocked work waits its turn","at":"dependencies"},{"text":"Longer, self-verifying tasks","sub":"fewer check-ins per agent","at":"self-verifying"},{"text":"Trust one before you run ten","sub":"Lauren Tan","at":"trust"}]},"start":153.878,"dur":23.546,"words":[{"text":"So","s":154.178,"e":154.418},{"text":"what","s":154.498,"e":154.858},{"text":"works?","s":154.898,"e":155.458},{"text":"Pick","s":156.018,"e":156.178},{"text":"tasks","s":156.258,"e":156.738},{"text":"that","s":156.818,"e":156.978},{"text":"don't","s":157.058,"e":157.298},{"text":"touch","s":157.418,"e":157.538},{"text":"the","s":157.618,"e":157.658},{"text":"same","s":157.698,"e":157.938},{"text":"code;","s":158.018,"e":158.738},{"text":"you","s":158.818,"e":158.898},{"text":"can","s":158.938,"e":158.978},{"text":"even","s":159.058,"e":159.218},{"text":"ask","s":159.338,"e":159.458},{"text":"the","s":159.498,"e":159.538},{"text":"agent","s":159.698,"e":160.018},{"text":"which","s":160.098,"e":160.338},{"text":"tasks","s":160.538,"e":160.738},{"text":"will","s":160.818,"e":160.898},{"text":"intersect.","s":160.978,"e":161.618},{"text":"Make","s":162.098,"e":162.338},{"text":"dependencies","s":162.698,"e":163.058},{"text":"explicit,","s":163.138,"e":164.018},{"text":"so","s":164.098,"e":164.258},{"text":"blocked","s":164.338,"e":164.658},{"text":"work","s":164.738,"e":164.978},{"text":"waits","s":165.058,"e":165.298},{"text":"its","s":165.378,"e":165.458},{"text":"turn.","s":165.538,"e":166.098},{"text":"Prefer","s":166.338,"e":166.738},{"text":"longer,","s":166.818,"e":167.458},{"text":"self-verifying","s":167.578,"e":168.258},{"text":"tasks,","s":168.338,"e":168.978},{"text":"so","s":169.058,"e":169.138},{"text":"you","s":169.218,"e":169.298},{"text":"check","s":169.378,"e":169.538},{"text":"in","s":169.618,"e":169.698},{"text":"less","s":169.778,"e":169.938},{"text":"often.","s":170.018,"e":170.578},{"text":"And","s":170.818,"e":171.138},{"text":"Lauren","s":171.298,"e":171.618},{"text":"Tan's","s":171.698,"e":172.018},{"text":"rule:","s":172.138,"e":172.738},{"text":"you","s":172.818,"e":172.898},{"text":"can't","s":172.978,"e":173.138},{"text":"spawn","s":173.218,"e":173.538},{"text":"a","s":173.618,"e":173.698},{"text":"hundred","s":173.778,"e":174.018},{"text":"agents","s":174.098,"e":174.498},{"text":"when","s":174.578,"e":174.658},{"text":"you","s":174.738,"e":174.818},{"text":"don't","s":174.858,"e":174.978},{"text":"even","s":175.058,"e":175.218},{"text":"trust","s":175.298,"e":175.538},{"text":"the","s":175.578,"e":175.618},{"text":"output","s":175.698,"e":176.018},{"text":"of","s":176.098,"e":176.178},{"text":"one.","s":176.258,"e":176.818}]},{"template":"statement","chapter":"Competition mode","narration":"There's also a different way to use parallel agents: competition. When Mitchell Hashimoto has low confidence in a task, he gives the same prompt to different agents in separate checkouts, and keeps the best result.","params":{"text":"Low confidence? Run the same task in parallel and *keep the best*.","sub":"Mitchell Hashimoto's competition mode: same prompt, different agents, separate checkouts.","art":"target","tone":"good","sync":false},"start":177.424,"dur":13.881,"words":[{"text":"There's","s":177.724,"e":177.964},{"text":"also","s":178.044,"e":178.284},{"text":"a","s":178.364,"e":178.444},{"text":"different","s":178.524,"e":178.844},{"text":"way","s":178.924,"e":179.004},{"text":"to","s":179.044,"e":179.084},{"text":"use","s":179.164,"e":179.324},{"text":"parallel","s":179.404,"e":179.804},{"text":"agents:","s":179.884,"e":180.764},{"text":"competition.","s":181.124,"e":181.564},{"text":"When","s":182.204,"e":182.364},{"text":"Mitchell","s":182.484,"e":182.684},{"text":"Hashimoto","s":182.804,"e":183.324},{"text":"has","s":183.404,"e":183.564},{"text":"low","s":183.644,"e":183.804},{"text":"confidence","s":183.884,"e":184.364},{"text":"in","s":184.444,"e":184.484},{"text":"a","s":184.524,"e":184.604},{"text":"task,","s":184.804,"e":185.324},{"text":"he","s":185.404,"e":185.484},{"text":"gives","s":185.524,"e":185.724},{"text":"the","s":185.804,"e":185.964},{"text":"same","s":186.084,"e":186.204},{"text":"prompt","s":186.284,"e":186.684},{"text":"to","s":186.764,"e":186.924},{"text":"different","s":187.004,"e":187.244},{"text":"agents","s":187.324,"e":187.724},{"text":"in","s":187.804,"e":187.964},{"text":"separate","s":188.044,"e":188.364},{"text":"checkouts,","s":188.444,"e":189.084},{"text":"and","s":189.164,"e":189.244},{"text":"keeps","s":189.284,"e":189.484},{"text":"the","s":189.564,"e":189.644},{"text":"best","s":189.724,"e":189.964},{"text":"result.","s":190.204,"e":190.684}]},{"template":"quiz","chapter":"Quick check","narration":"Quick check. You have six backlog tasks, and three of them touch the same checkout module. How should you run them? Tap your answer.","params":{"q":"Six tasks; three touch the same checkout module. How do you run them?","options":["Six agents at once in the same folder","Separate worktrees: the three independent tasks in parallel, the overlapping ones in sequence","One agent, all six tasks, one long session","Six agents at once, then fix the conflicts"],"answer":1,"explain":"Isolate every agent, parallelize what doesn't collide, and sequence what does."},"start":191.305,"dur":13.859,"words":[{"text":"Quick","s":191.605,"e":191.821},{"text":"check.","s":191.845,"e":192.165},{"text":"You","s":192.245,"e":192.765},{"text":"have","s":192.805,"e":193.045},{"text":"six","s":193.125,"e":193.365},{"text":"backlog","s":193.445,"e":193.925},{"text":"tasks,","s":194.205,"e":194.565},{"text":"and","s":194.685,"e":194.805},{"text":"three","s":194.885,"e":195.045},{"text":"of","s":195.125,"e":195.205},{"text":"them","s":195.285,"e":195.365},{"text":"touch","s":195.445,"e":195.685},{"text":"the","s":195.765,"e":195.925},{"text":"same","s":196.045,"e":196.165},{"text":"checkout","s":196.245,"e":196.645},{"text":"module.","s":196.725,"e":197.605},{"text":"How","s":197.685,"e":197.765},{"text":"should","s":197.845,"e":197.925},{"text":"you","s":198.005,"e":198.085},{"text":"run","s":198.165,"e":198.245},{"text":"them?","s":198.325,"e":198.885},{"text":"Tap","s":198.965,"e":199.125},{"text":"your","s":199.205,"e":199.285},{"text":"answer.","s":199.485,"e":200.005}]},{"template":"exercise","chapter":"Try it","narration":"Plan your next batch of work for parallel agents. This prompt finds what can run side by side, what must wait, and starts the first task in its own worktree.","params":{"title":"Try it with your agent","intro":"With your next few tasks:","prompt":"Here are my next tasks: [list them]. Tell me which can run in\nparallel without touching the same files, which depend on each\nother, and a safe order. Then start the first independent one in\na new git worktree on its own branch, and verify it before a PR."},"start":205.164,"dur":10.981,"words":[{"text":"Plan","s":205.464,"e":205.784},{"text":"your","s":205.864,"e":205.944},{"text":"next","s":206.024,"e":206.264},{"text":"batch","s":206.344,"e":206.504},{"text":"of","s":206.584,"e":206.664},{"text":"work","s":206.744,"e":206.904},{"text":"for","s":206.984,"e":207.144},{"text":"parallel","s":207.224,"e":207.624},{"text":"agents.","s":207.704,"e":208.464},{"text":"This","s":208.744,"e":208.984},{"text":"prompt","s":209.064,"e":209.304},{"text":"finds","s":209.384,"e":209.704},{"text":"what","s":209.784,"e":209.944},{"text":"can","s":210.024,"e":210.104},{"text":"run","s":210.184,"e":210.344},{"text":"side","s":210.424,"e":210.584},{"text":"by","s":210.664,"e":210.824},{"text":"side,","s":210.904,"e":211.544},{"text":"what","s":211.624,"e":211.704},{"text":"must","s":211.784,"e":211.944},{"text":"wait,","s":212.024,"e":212.664},{"text":"and","s":212.744,"e":212.824},{"text":"starts","s":212.904,"e":213.224},{"text":"the","s":213.304,"e":213.384},{"text":"first","s":213.464,"e":213.704},{"text":"task","s":213.904,"e":214.104},{"text":"in","s":214.184,"e":214.264},{"text":"its","s":214.384,"e":214.504},{"text":"own","s":214.584,"e":214.744},{"text":"worktree.","s":214.864,"e":215.544}]},{"template":"recap","chapter":"Recap","narration":"Recap. Run agents in parallel on work that doesn't collide. Isolate each one: worktrees locally, sandboxes at scale. Remember your attention doesn't parallelize. Parallelize reads freely and writes carefully. And trust one before you run ten. Next: agents that run for hours on their own.","params":{"items":["Parallel only on *non-overlapping* work","One agent, one worktree (or sandbox)","Your attention doesn't parallelize","Reads freely, writes carefully"],"next":"Long-running agents and loops","next_at":"Next"},"start":216.145,"dur":24.809,"words":[{"text":"Recap.","s":216.445,"e":216.925},{"text":"Run","s":217.005,"e":217.805},{"text":"agents","s":217.885,"e":218.205},{"text":"in","s":218.285,"e":218.365},{"text":"parallel","s":218.445,"e":219.005},{"text":"on","s":219.085,"e":219.165},{"text":"work","s":219.325,"e":219.485},{"text":"that","s":219.565,"e":219.725},{"text":"doesn't","s":219.805,"e":220.125},{"text":"collide.","s":220.205,"e":220.965},{"text":"Isolate","s":221.245,"e":221.725},{"text":"each","s":221.805,"e":221.965},{"text":"one:","s":222.125,"e":222.845},{"text":"worktrees","s":222.965,"e":223.405},{"text":"locally,","s":223.525,"e":224.085},{"text":"sandboxes","s":224.285,"e":225.005},{"text":"at","s":225.085,"e":225.165},{"text":"scale.","s":225.245,"e":225.925},{"text":"Remember","s":226.205,"e":226.605},{"text":"your","s":226.925,"e":227.005},{"text":"attention","s":227.325,"e":227.645},{"text":"doesn't","s":227.805,"e":228.125},{"text":"parallelize.","s":228.205,"e":229.245},{"text":"Parallelize","s":229.485,"e":230.125},{"text":"reads","s":230.285,"e":230.525},{"text":"freely","s":230.605,"e":231.005},{"text":"and","s":231.085,"e":231.245},{"text":"writes","s":231.325,"e":231.645},{"text":"carefully.","s":231.725,"e":232.445},{"text":"And","s":232.685,"e":232.925},{"text":"trust","s":233.325,"e":233.645},{"text":"one","s":233.805,"e":234.125},{"text":"before","s":234.205,"e":234.525},{"text":"you","s":234.605,"e":234.685},{"text":"run","s":234.765,"e":234.925},{"text":"ten.","s":235.005,"e":235.765},{"text":"Next:","s":236.205,"e":236.805},{"text":"agents","s":237.005,"e":237.405},{"text":"that","s":237.485,"e":237.565},{"text":"run","s":237.645,"e":237.805},{"text":"for","s":237.885,"e":237.965},{"text":"hours","s":238.125,"e":238.525},{"text":"on","s":238.565,"e":238.605},{"text":"their","s":238.685,"e":238.845},{"text":"own.","s":238.965,"e":239.405}]}],"total":241.354,"audio":"/audio/16-parallel.mp3"}