A business process automation platform that uses multi-agent orchestration to automate complex workflows. The platform includes a marketplace of pre-built workflows that can be customized, a self-improvement mechanism, and a modern React dashboard for configuration and monitoring.
For the fastest way to get up and running:
# Clone the repository
git clone https://github.com/yourusername/workflow-forge.git
cd workflow-forge
# Create a .env file (optional)
cp backend/.env.sample backend/.env
# Setup and run in one command
make setup-and-run
Then access the API documentation at http://localhost:8000/docs
- ✅ Multi-agent workflow orchestration using LangGraph
- ✅ Pre-built workflow marketplace
- ✅ Self-improvement through workflow optimization
- ✅ RESTful API with FastAPI
- ✅ Comprehensive test suite
- ⏳ Modern React dashboard (in progress)
- ✅ Real-time metrics and monitoring
- ✅ Document processing with RAG implementation
See Architecture Documentation for a detailed overview of the system design.
- Researcher Agent: Gathers and analyzes information
- Processor Agent: Executes core workflow tasks
- Approver Agent: Validates and approves results
- Optimizer Agent: Improves workflow performance through self-reflection
- FastAPI application
- SQLite database (for demo)
- LangGraph for agent orchestration
- RAG implementation for document processing
GET /
- API informationGET /workflows
- List all workflowsPOST /workflows
- Create and execute a workflowGET /workflows/templates
- List available workflow templatesGET /agents
- List available agentsPOST /execute
- Execute a workflowGET /metrics
- Get performance metricsGET /health
- Health check endpoint
- Set up the backend environment:
# Create and activate the conda environment
make create-env
source make activate
- Create a
.env
file:
cd backend
cp .env.sample .env
# Edit .env with your preferred configuration
- Initialize the database:
make init-db
- Start the backend server:
make run-backend
-
Access the API documentation at http://localhost:8000/docs
-
Run the demonstration script:
make run-demo
- Clone the repository:
git clone https://github.com/yourusername/workflow-forge.git
cd workflow-forge
- Set environment variables (optional):
# Create a .env file in the project root
echo "SECRET_KEY=your_secure_key_here" > .env
- Build and start the services:
make docker-build
make docker-up
-
Access the API at http://localhost:8000/docs
-
Stop the services:
make docker-down
The application can be configured using environment variables or a .env
file. See .env.sample
for available options.
Key configuration options:
ENVIRONMENT
- Set todevelopment
,testing
, orproduction
USE_MOCK_WORKFLOW
- Set totrue
to use mock workflow executionDATABASE_URL
- Path to the SQLite databaseLOG_LEVEL
- Logging level (DEBUG, INFO, WARNING, ERROR)SECRET_KEY
- Secret key for security features (required in production)
The project includes a comprehensive Makefile to simplify common development tasks:
Command | Description |
---|---|
make create-env |
Create the conda environment |
make update-env |
Update the conda environment after changes to environment.yml |
make init-db |
Initialize the database |
make run-backend |
Start the backend server |
make run-demo |
Run the demonstration script |
make test-backend |
Run all backend tests |
make test-api |
Run only API tests |
make test-workflow |
Run only workflow orchestrator tests |
make format |
Format code with black and isort |
make lint |
Run linting with flake8 |
make clean-backend |
Remove conda environment and clean temporary files |
make docker-build |
Build Docker containers |
make docker-up |
Start Docker containers |
make docker-down |
Stop Docker containers |
make setup-and-run |
Setup everything and start the backend in one command |
Note: To activate the conda environment, use source make activate
(this command must be sourced).
# Run all tests
make test-backend
# Run only API tests
make test-api
# Run only workflow orchestrator tests
make test-workflow
# Format code with black and isort
make format
# Run linting with flake8
make lint
If you've made changes to the environment.yml file:
make update-env
# Remove conda environment and clean temporary files
make clean-backend
workflow-forge/
├── backend/
│ ├── app/
│ │ ├── agents/ # Agent implementations
│ │ ├── api/ # API endpoints
│ │ ├── database/ # Database operations
│ │ ├── workflow/ # Workflow orchestration
│ │ ├── config.py # Configuration management
│ │ └── main.py # FastAPI application
│ ├── tests/ # Test suite
│ ├── Dockerfile # Docker configuration
│ └── environment.yml # Conda environment
├── docker-compose.yml # Docker Compose configuration
└── frontend/ # React frontend (coming soon)
- ✅ Backend API with all endpoints implemented
- ✅ Agent system with four specialized agents
- ✅ Workflow orchestration using LangGraph
- ✅ Database persistence with SQLite
- ✅ Comprehensive test suite
- ✅ Docker deployment configuration
- ✅ Environment-based configuration
- ⏳ Frontend development (in progress)
The project initially encountered an issue with LangGraph compatibility, specifically the error 'Pregel' object has no attribute 'arun'
. This has been resolved with a configurable approach:
- By default, the system uses a mock workflow execution that simulates the full agent workflow
- For LangGraph-compatible environments, set
USE_MOCK_WORKFLOW=false
to use actual LangGraph execution - The system will automatically fall back to mock execution if LangGraph execution fails
For production deployments, consider the following:
- Database: Replace SQLite with PostgreSQL or MongoDB
- Environment: Set
ENVIRONMENT=production
and provide a properSECRET_KEY
- Security: Configure proper authentication and authorization
- CORS: Restrict allowed origins in the CORS middleware
- Monitoring: Implement proper logging and monitoring
- Scaling: Consider containerization with Kubernetes for horizontal scaling
MIT