Reusable AI agent workflow patterns using LangGraph and LangChain
Project description
Agent Patterns
A Python library of reusable AI agent workflow patterns implemented using LangGraph and LangChain. All patterns are synchronous and follow consistent architectural principles.
📚 Full Documentation on Read the Docs
⚠️ Breaking Change in v0.2.0: This version is a complete rewrite from the ground up. The previous 0.1.x version used asyncio extensively, which caused significant reliability issues and made debugging extremely difficult. Version 0.2.0+ eliminates async/await entirely in favor of a synchronous-only architecture. This makes the library more reliable, easier to use, and much simpler to debug. If you were using v0.1.x, please note this is a breaking change - all patterns now use standard synchronous Python.
Features
- 9 Battle-Tested Patterns: ReAct, Plan & Solve, Reflection, Reflexion, LLM Compiler, REWOO, LATS, Self-Discovery, and STORM
- Enterprise-Grade Prompts: 150-300+ line comprehensive system prompts with 9-section structure (Role, Capabilities, Process, Examples, Edge Cases, Quality Standards, etc.) following Anthropic/OpenAI prompt engineering best practices
- Synchronous Design: No async/await complexity - simple, debuggable code
- Flexible Prompt Customization: Three ways to customize prompts - file-based, custom instructions, and programmatic overrides
- Multi-Provider Support: Works with OpenAI, Anthropic, and other LangChain-supported providers
- Type-Safe: Full type hints for better IDE support and fewer bugs
- Extensible: Abstract base classes make it easy to create custom patterns
- Well-Tested: Comprehensive test suite with 156 passing tests covering 58% of the codebase (6 of 9 patterns have >80% coverage)
Installation
From PyPI (Recommended)
pip install agent-patterns
From Source
# Clone the repository
git clone https://github.com/osok/agent-patterns.git
cd agent-patterns
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install in development mode
pip install -e .
# Or install with dev dependencies
pip install -e ".[dev]"
Quick Start
1. Set Up Environment
Copy .env.example to .env and add your API keys:
cp .env.example .env
Edit .env:
OPENAI_API_KEY=your-key-here
THINKING_MODEL_PROVIDER=openai
THINKING_MODEL_NAME=gpt-4-turbo
2. Use a Pattern
ReAct Agent (Reason + Act)
from agent_patterns.patterns import ReActAgent
import os
from dotenv import load_dotenv
load_dotenv()
# Configure LLMs
llm_configs = {
"thinking": {
"provider": "openai",
"model_name": "gpt-4-turbo",
"temperature": 0.7,
}
}
# Define tools
def search_tool(query):
# Your search implementation
return f"Results for: {query}"
tools = {"search": search_tool}
# Create and run agent
agent = ReActAgent(
llm_configs=llm_configs,
tools=tools,
max_iterations=5
)
result = agent.run("What is the weather in Paris?")
print(result)
Reflection Agent
from agent_patterns.patterns import ReflectionAgent
llm_configs = {
"documentation": {
"provider": "openai",
"model_name": "gpt-3.5-turbo",
},
"reflection": {
"provider": "openai",
"model_name": "gpt-4-turbo",
},
}
agent = ReflectionAgent(
llm_configs=llm_configs,
max_reflection_cycles=1
)
result = agent.run("Write a short story about a robot dog")
print(result)
Plan & Solve Agent
from agent_patterns.patterns import PlanAndSolveAgent
llm_configs = {
"planning": {
"provider": "openai",
"model_name": "gpt-4-turbo",
},
"execution": {
"provider": "openai",
"model_name": "gpt-3.5-turbo",
},
"documentation": {
"provider": "openai",
"model_name": "gpt-3.5-turbo",
},
}
agent = PlanAndSolveAgent(llm_configs=llm_configs)
result = agent.run("Write a research report on renewable energy")
print(result)
Available Patterns
All 9 patterns are fully implemented and ready to use:
| Pattern | Description | Use Case |
|---|---|---|
| ReAct | Reason + Act with tool use | Question answering with external tools |
| Plan & Solve | Planning then execution | Tasks requiring structured decomposition |
| Reflection | Generate, critique, refine | High-quality content generation |
| Reflexion | Multi-trial learning with reflection memory | Learning from mistakes across multiple attempts |
| LLM Compiler | DAG-based parallel tool execution | Optimized parallel task execution |
| REWOO | Worker-Solver pattern for cost efficiency | Efficient reasoning with reduced LLM calls |
| LATS | Tree search over reasoning paths | Exploring multiple solution strategies |
| Self-Discovery | Dynamic reasoning module selection | Adaptive problem-solving approach |
| STORM | Multi-perspective research synthesis | Comprehensive research from multiple viewpoints |
Advanced Topics
For detailed information on the following topics, please see the complete documentation:
- Running Examples - Detailed example usage
- Creating Custom Patterns - Extend BaseAgent to build your own patterns
- Customizing Prompts - File-based, custom instructions, and programmatic overrides
- Configuration - LLM roles, environment variables, and settings
- Testing - Running tests and contributing
- API Reference - Complete API documentation
Requirements
- Python 3.10+
- LangGraph >= 0.2.0
- LangChain >= 0.3.0
- python-dotenv >= 1.0.0
Contributing
Contributions are welcome! Please see our contribution guide for details on:
- Setting up your development environment
- Running tests and code quality tools
- Submitting pull requests
- Code style and conventions
Quick start for contributors:
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format and lint
black agent_patterns tests examples
ruff check agent_patterns tests examples
mypy agent_patterns
License
This project is licensed under the MIT License - see the LICENSE file for details.
Documentation
📚 Complete documentation available on Read the Docs
Additional resources in this repository:
- Design Document - Detailed architectural design
- Task List - Development progress tracking
- Implementation Notes - Technical decisions and guidelines
Support
- Documentation: Read the Docs
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- PyPI: agent-patterns on PyPI
Built with ❤️ for the AI agent community
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_patterns-0.2.4.tar.gz.
File metadata
- Download URL: agent_patterns-0.2.4.tar.gz
- Upload date:
- Size: 193.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb3ac7c905b4a3a749fba469fe6bdf85c4dc7663fd4c77f34bb5105d8e07253c
|
|
| MD5 |
e879ed6b9baa09a06650e9fc1a22364b
|
|
| BLAKE2b-256 |
df83753bb4ebf768583305b329148d23180034770b57e4cebcfbae2970ec1eb9
|
Provenance
The following attestation bundles were made for agent_patterns-0.2.4.tar.gz:
Publisher:
pypi.yaml on osok/agent-patterns
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_patterns-0.2.4.tar.gz -
Subject digest:
cb3ac7c905b4a3a749fba469fe6bdf85c4dc7663fd4c77f34bb5105d8e07253c - Sigstore transparency entry: 657222704
- Sigstore integration time:
-
Permalink:
osok/agent-patterns@5429cb65bafd1094dba4eb0e39d20ff7230b3bb2 -
Branch / Tag:
refs/tags/v0.2.4 - Owner: https://github.com/osok
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@5429cb65bafd1094dba4eb0e39d20ff7230b3bb2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file agent_patterns-0.2.4-py3-none-any.whl.
File metadata
- Download URL: agent_patterns-0.2.4-py3-none-any.whl
- Upload date:
- Size: 49.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d908d8e245b89846be2fa12b9313a036b264672ff4c927cb2be73b382f233892
|
|
| MD5 |
24661b7850d39704b5aa6ff5d9325240
|
|
| BLAKE2b-256 |
3a7da71149bb742dbf5a767e7fa92c08c0816cdcff4f41dd556ff12b017aa800
|
Provenance
The following attestation bundles were made for agent_patterns-0.2.4-py3-none-any.whl:
Publisher:
pypi.yaml on osok/agent-patterns
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_patterns-0.2.4-py3-none-any.whl -
Subject digest:
d908d8e245b89846be2fa12b9313a036b264672ff4c927cb2be73b382f233892 - Sigstore transparency entry: 657222713
- Sigstore integration time:
-
Permalink:
osok/agent-patterns@5429cb65bafd1094dba4eb0e39d20ff7230b3bb2 -
Branch / Tag:
refs/tags/v0.2.4 - Owner: https://github.com/osok
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yaml@5429cb65bafd1094dba4eb0e39d20ff7230b3bb2 -
Trigger Event:
release
-
Statement type: