Week 3 stretched the agent call into two shapes — multi-agent functions and batches. What changed in how you think about run_sync?
It stopped feeling like one call per function. Now I reach for a list comprehension automatically when I see a list in the arguments — one agent, one expression, a new list out.
That instinct is the whole win of this week. Once you see agents as composable building blocks, pipelines and batches are just Python shapes around them. Which pattern surprised you most?
min(outputs, key=len). I'd used key= on numbers but never on agent outputs. Realizing that strings are strings — whether they come from input() or from an LLM — changed how I read the whole week.
That is the realization Week 3 is built around. Let's close it out.
Week 3 took the pattern you already knew and scaled it in two directions. Horizontally, you built functions with multiple agents in one body — a formal-and-casual rewriter returning a dict, a pipeline that kept both the summary and the urgency classification. Vertically, you learned to batch: list comprehensions running one agent across a list of inputs, producing a list of outputs.
The organizing idea is composition. Agent(model) is a Lego brick. You can build one function that calls two agents in sequence, or one function that calls one agent 100 times — both shapes use the same primitive. The only optimization the batch versions need is creating the agent once, outside the loop, because the object is stateless between calls.
Week 4 adds the two capabilities that upgrade agents into real tools: live web search and custom Python tools. Same Agent, same run_sync, bigger abilities.
Create a free account to get started. Paid plans unlock all tracks.
Week 3 stretched the agent call into two shapes — multi-agent functions and batches. What changed in how you think about run_sync?
It stopped feeling like one call per function. Now I reach for a list comprehension automatically when I see a list in the arguments — one agent, one expression, a new list out.
That instinct is the whole win of this week. Once you see agents as composable building blocks, pipelines and batches are just Python shapes around them. Which pattern surprised you most?
min(outputs, key=len). I'd used key= on numbers but never on agent outputs. Realizing that strings are strings — whether they come from input() or from an LLM — changed how I read the whole week.
That is the realization Week 3 is built around. Let's close it out.
Week 3 took the pattern you already knew and scaled it in two directions. Horizontally, you built functions with multiple agents in one body — a formal-and-casual rewriter returning a dict, a pipeline that kept both the summary and the urgency classification. Vertically, you learned to batch: list comprehensions running one agent across a list of inputs, producing a list of outputs.
The organizing idea is composition. Agent(model) is a Lego brick. You can build one function that calls two agents in sequence, or one function that calls one agent 100 times — both shapes use the same primitive. The only optimization the batch versions need is creating the agent once, outside the loop, because the object is stateless between calls.
Week 4 adds the two capabilities that upgrade agents into real tools: live web search and custom Python tools. Same Agent, same run_sync, bigger abilities.