Chaining
Run agents in sequence. Output of each agent feeds into the next.
Basic usage
from pure_agents import Agent, chain
researcher = Agent(template="researcher")
summariser = Agent(system_prompt="Summarise the following text concisely.")
formatter = Agent(system_prompt="Format as bullet points.")
result = await chain(
[researcher, summariser, formatter],
"The history of machine learning"
)
How it works
prompt → Agent 1 → output → Agent 2 → output → Agent 3 → final result
Each agent receives the previous agent's output as its prompt.
Use cases
Research pipeline:
gatherer = Agent(system_prompt="Find information about the topic.")
analyser = Agent(system_prompt="Analyse the information critically.")
writer = Agent(system_prompt="Write a report based on the analysis.")
report = await chain([gatherer, analyser, writer], "Climate change in 2024")
Content pipeline:
drafter = Agent(system_prompt="Write a first draft.")
editor = Agent(system_prompt="Improve clarity and fix errors.")
formatter = Agent(system_prompt="Format for publication.")
article = await chain([drafter, editor, formatter], "AI in healthcare")
Code pipeline:
planner = Agent(system_prompt="Plan the implementation approach.")
coder = Agent(template="coder")
reviewer = Agent(system_prompt="Review the code for bugs and improvements.")
code = await chain([planner, coder, reviewer], "REST API for user management")
Sync version
from pure_agents import chain_sync
result = chain_sync([agent1, agent2], "Your prompt")
Tips
- Keep each agent focused on one task
- Order matters: think about what each agent needs as input
- Use
debug=Trueon agents to see intermediate outputs