An AI-powered multi-agent content pipeline that autonomously writes and reviews educational content β section by section, with full consistency tracking.
LLMQuill is a multi-agent LLM pipeline built on CrewAI that generates high-quality, structured educational content using a write β review agentic flow.
Two specialized AI agents collaborate on every section:
| Agent | Role | Responsibility |
|---|---|---|
| βοΈ Content Writer | Educational Content Writer | Drafts 500β800 word Markdown sections with examples, structure, and summaries |
| π Content Reviewer | Content Reviewer & Editor | Polishes drafts for grammar, clarity, accuracy, and cross-section consistency |
Each section is aware of previously written content, ensuring the final output reads as a cohesive, well-structured guide.
Input: section_title + section_description
β
βΌ
ββββββββββββββββββββββββ
β write_section_task β β Content Writer Agent
β (500β800 words, β
β Markdown format) β
ββββββββββββ¬ββββββββββββ
β draft_content
βΌ
ββββββββββββββββββββββββ
β review_section_task β β Content Reviewer Agent
β (polish, fix, refine)β
β context: write_task β
ββββββββββββ¬ββββββββββββ
β
βΌ
β
Final Polished Section
(saved to output/)
role: Educational Content Writer
goal: >
Create engaging, informative content that thoroughly explains
the assigned topic and provides valuable insights to the reader
llm: openai/gpt-4o-miniSpecializes in breaking down complex concepts into accessible language. Each section includes:
- Brief topic introduction
- Key concepts with examples
- Practical applications or exercises
- Summary of key points
role: Educational Content Reviewer and Editor
goal: >
Ensure content is accurate, comprehensive, well-structured,
and maintains consistency with previously written sections
llm: openai/gpt-4o-miniActs as a meticulous editor ensuring:
- Grammar and spelling corrections
- Improved clarity and readability
- Factual accuracy and completeness
- Consistency with prior sections
- Better structure and flow
- Python
>=3.13 - uv for dependency management
git clone https://github.com/your-username/LLMQuill.git
cd LLMQuillpip install uvcrewai installOr directly with uv:
uv syncCreate a .env file in the root directory:
OPENAI_API_KEY=your_openai_api_key_here
MODEL=gpt-4o-mini
β οΈ Never commit your.envfile. It is already listed in.gitignore.
crewai runThe output will be saved to output/post.md.
LLMQuill/
βββ src/
β βββ creator_flow/
β βββ config/
β β βββ agents.yaml # Agent roles, goals & LLM config
β β βββ tasks.yaml # Task definitions & context wiring
β βββ crew.py # Crew assembly logic
β βββ main.py # Entry points (kickoff, plot, etc.)
βββ output/ # Generated content saved here
βββ .env # API keys (never commit)
βββ .gitignore
βββ .python-version # Python 3.13
βββ pyproject.toml # Project metadata & dependencies
βββ uv.lock # Locked dependency versions
βββ AGENTS.md # CrewAI reference for AI coding assistants
| Command | Description |
|---|---|
crewai run |
Run the full content generation flow |
crewai flow kickoff |
Alternative flow execution |
crewai flow plot |
Visualize the agent flow as an HTML diagram |
crewai test |
Run crew tests (default: 2 iterations) |
crewai train -n 5 |
Train the crew over N iterations |
crewai replay -t <id> |
Replay from a specific task |
crewai reset-memories -a |
Reset all agent memories |
Edit src/creator_flow/config/agents.yaml to change agent roles, goals, backstories, or switch LLM models.
Edit src/creator_flow/config/tasks.yaml to change task descriptions, expected outputs, or context dependencies.
Update the llm field in agents.yaml:
content_writer:
llm: openai/gpt-4o # Upgrade to GPT-4o
# llm: anthropic/claude-3-5-sonnet # Or use Clauderequires-python = ">=3.13"
dependencies = [
"crewai[tools]==1.14.3"
]llm ai-agents multi-agent crewai content-generation gpt-4o-mini educational-content agentic-ai openai automation python
- π CrewAI Documentation
- π¬ Join the CrewAI Discord
- π Report Issues
- β If you find this useful, give it a star on GitHub!
Built with β€οΈ using CrewAI and OpenAI's GPT-4o-mini.