This project implements a small multi agent workflow that generates a short research report from a topic. It shows how to combine planning, tool based research, writing, and editing in one end to end flow.
Given a topic, the system runs a simple pipeline:
- A planner agent creates a short plan as a list of steps
- An executor agent reads each step and chooses the right agent to run it
- A research agent gathers external info using tools (arXiv, web search, Wikipedia)
- A writer agent drafts parts of the report
- An editor agent critiques and improves the draft
- The final output is a Markdown research report
The goal is to build an agentic workflow that is reliable and easy to extend.
This includes:
- writing prompts for different agent roles
- enabling tool use for research
- orchestrating multiple steps with shared context
- using feedback to improve a draft
Many real ML and data products need more than one single model call. This project is a simple example of how to structure multi step LLM work so it can:
- run repeatably
- keep a history of what happened at each step
- produce a final output that can be reviewed and improved
Agentic_Workflows.ipynbplanner_agentgenerates a plan as a Python listresearch_agentuses tool calls to gather sourceswriter_agentdrafts technical texteditor_agentrevises and improves draftsexecutor_agentcoordinates the workflow (the orchestrator)
Unit tests are included in the notebook to validate each agent function.
You need:
- Python 3.x
- Jupyter Notebook
aisuite- the local modules used by the notebook:
research_toolsunittests
If your research_tools uses external APIs (example Tavily), you may need the related API key in your environment variables.
- Open
Agentic_Workflows.ipynb - Run the cells in order
- Run the unit test cells to confirm each agent works
- Run the final example that calls
executor_agent(topic)
The executor limits the plan to a maximum of 4 steps by default to keep runtime reasonable.
The final step returns a Markdown research report for the chosen topic, with references gathered by the research tools.