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-runThen 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
.envfile:
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-downThe application can be configured using environment variables or a .env file. See .env.sample for available options.
Key configuration options:
ENVIRONMENT- Set todevelopment,testing, orproductionUSE_MOCK_WORKFLOW- Set totrueto 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 lintIf you've made changes to the environment.yml file:
make update-env# Remove conda environment and clean temporary files
make clean-backendworkflow-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=falseto 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=productionand 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
