{"id":25733687,"url":"https://github.com/danfmaia/workflow-forge","last_synced_at":"2026-04-24T21:31:19.572Z","repository":{"id":279463405,"uuid":"938893568","full_name":"danfmaia/workflow-forge","owner":"danfmaia","description":"A business process automation platform using multi-agent orchestration to automate complex workflows. Features a workflow marketplace, self-improvement mechanism, and FastAPI backend. Demonstrates agent-based architecture with specialized roles (Researcher, Processor, Approver, Optimizer) for intelligent workflow execution.","archived":false,"fork":false,"pushed_at":"2025-03-19T02:14:27.000Z","size":178,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-15T04:08:29.532Z","etag":null,"topics":["agent-orchestration","api","business-process","fastapi","langgraph","multi-agent-system","python","self-improvement","workflow-automation","workflow-marketplace"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danfmaia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-25T17:03:43.000Z","updated_at":"2025-03-19T02:14:30.000Z","dependencies_parsed_at":"2025-02-25T18:31:17.054Z","dependency_job_id":"f4c55f7e-34e7-4f5d-b108-7a5021727b1c","html_url":"https://github.com/danfmaia/workflow-forge","commit_stats":null,"previous_names":["danfmaia/workflow-forge"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/danfmaia/workflow-forge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danfmaia%2Fworkflow-forge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danfmaia%2Fworkflow-forge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danfmaia%2Fworkflow-forge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danfmaia%2Fworkflow-forge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danfmaia","download_url":"https://codeload.github.com/danfmaia/workflow-forge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danfmaia%2Fworkflow-forge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32241544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-orchestration","api","business-process","fastapi","langgraph","multi-agent-system","python","self-improvement","workflow-automation","workflow-marketplace"],"created_at":"2025-02-26T04:22:26.219Z","updated_at":"2026-04-24T21:31:19.555Z","avatar_url":"https://github.com/danfmaia.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WorkflowForge\n\n![WorkflowForge - Business Process Automation Platform](docs/images/project-cover.jpeg)\n\nA 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.\n\n## Quick Start\n\nFor the fastest way to get up and running:\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/workflow-forge.git\ncd workflow-forge\n\n# Create a .env file (optional)\ncp backend/.env.sample backend/.env\n\n# Setup and run in one command\nmake setup-and-run\n```\n\nThen access the API documentation at http://localhost:8000/docs\n\n## Features\n\n- ✅ Multi-agent workflow orchestration using LangGraph\n- ✅ Pre-built workflow marketplace\n- ✅ Self-improvement through workflow optimization\n- ✅ RESTful API with FastAPI\n- ✅ Comprehensive test suite\n- ⏳ Modern React dashboard (in progress)\n- ✅ Real-time metrics and monitoring\n- ✅ Document processing with RAG implementation\n\n## System Architecture\n\nSee [Architecture Documentation](docs/architecture.md) for a detailed overview of the system design.\n\n### Agent System\n\n- **Researcher Agent**: Gathers and analyzes information\n- **Processor Agent**: Executes core workflow tasks\n- **Approver Agent**: Validates and approves results\n- **Optimizer Agent**: Improves workflow performance through self-reflection\n\n### Backend\n\n- FastAPI application\n- SQLite database (for demo)\n- LangGraph for agent orchestration\n- RAG implementation for document processing\n\n### API Endpoints\n\n- `GET /` - API information\n- `GET /workflows` - List all workflows\n- `POST /workflows` - Create and execute a workflow\n- `GET /workflows/templates` - List available workflow templates\n- `GET /agents` - List available agents\n- `POST /execute` - Execute a workflow\n- `GET /metrics` - Get performance metrics\n- `GET /health` - Health check endpoint\n\n## Deployment Options\n\n### Local Development\n\n1. Set up the backend environment:\n\n```bash\n# Create and activate the conda environment\nmake create-env\nsource make activate\n```\n\n2. Create a `.env` file:\n\n```bash\ncd backend\ncp .env.sample .env\n# Edit .env with your preferred configuration\n```\n\n3. Initialize the database:\n\n```bash\nmake init-db\n```\n\n4. Start the backend server:\n\n```bash\nmake run-backend\n```\n\n5. Access the API documentation at http://localhost:8000/docs\n\n6. Run the demonstration script:\n\n```bash\nmake run-demo\n```\n\n### Docker Deployment\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/yourusername/workflow-forge.git\ncd workflow-forge\n```\n\n2. Set environment variables (optional):\n\n```bash\n# Create a .env file in the project root\necho \"SECRET_KEY=your_secure_key_here\" \u003e .env\n```\n\n3. Build and start the services:\n\n```bash\nmake docker-build\nmake docker-up\n```\n\n4. Access the API at http://localhost:8000/docs\n\n5. Stop the services:\n\n```bash\nmake docker-down\n```\n\n## Configuration\n\nThe application can be configured using environment variables or a `.env` file. See `.env.sample` for available options.\n\nKey configuration options:\n\n- `ENVIRONMENT` - Set to `development`, `testing`, or `production`\n- `USE_MOCK_WORKFLOW` - Set to `true` to use mock workflow execution\n- `DATABASE_URL` - Path to the SQLite database\n- `LOG_LEVEL` - Logging level (DEBUG, INFO, WARNING, ERROR)\n- `SECRET_KEY` - Secret key for security features (required in production)\n\n## Development\n\n### Makefile Commands\n\nThe project includes a comprehensive Makefile to simplify common development tasks:\n\n| Command              | Description                                                   |\n| -------------------- | ------------------------------------------------------------- |\n| `make create-env`    | Create the conda environment                                  |\n| `make update-env`    | Update the conda environment after changes to environment.yml |\n| `make init-db`       | Initialize the database                                       |\n| `make run-backend`   | Start the backend server                                      |\n| `make run-demo`      | Run the demonstration script                                  |\n| `make test-backend`  | Run all backend tests                                         |\n| `make test-api`      | Run only API tests                                            |\n| `make test-workflow` | Run only workflow orchestrator tests                          |\n| `make format`        | Format code with black and isort                              |\n| `make lint`          | Run linting with flake8                                       |\n| `make clean-backend` | Remove conda environment and clean temporary files            |\n| `make docker-build`  | Build Docker containers                                       |\n| `make docker-up`     | Start Docker containers                                       |\n| `make docker-down`   | Stop Docker containers                                        |\n| `make setup-and-run` | Setup everything and start the backend in one command         |\n\n**Note**: To activate the conda environment, use `source make activate` (this command must be sourced).\n\n### Running Tests\n\n```bash\n# Run all tests\nmake test-backend\n\n# Run only API tests\nmake test-api\n\n# Run only workflow orchestrator tests\nmake test-workflow\n```\n\n### Code Formatting and Linting\n\n```bash\n# Format code with black and isort\nmake format\n\n# Run linting with flake8\nmake lint\n```\n\n### Updating Dependencies\n\nIf you've made changes to the environment.yml file:\n\n```bash\nmake update-env\n```\n\n### Cleaning Up\n\n```bash\n# Remove conda environment and clean temporary files\nmake clean-backend\n```\n\n### Project Structure\n\n```\nworkflow-forge/\n├── backend/\n│   ├── app/\n│   │   ├── agents/         # Agent implementations\n│   │   ├── api/            # API endpoints\n│   │   ├── database/       # Database operations\n│   │   ├── workflow/       # Workflow orchestration\n│   │   ├── config.py       # Configuration management\n│   │   └── main.py         # FastAPI application\n│   ├── tests/              # Test suite\n│   ├── Dockerfile          # Docker configuration\n│   └── environment.yml     # Conda environment\n├── docker-compose.yml      # Docker Compose configuration\n└── frontend/               # React frontend (coming soon)\n```\n\n## Current Status\n\n- ✅ Backend API with all endpoints implemented\n- ✅ Agent system with four specialized agents\n- ✅ Workflow orchestration using LangGraph\n- ✅ Database persistence with SQLite\n- ✅ Comprehensive test suite\n- ✅ Docker deployment configuration\n- ✅ Environment-based configuration\n- ⏳ Frontend development (in progress)\n\n## Known Issues and Solutions\n\n### LangGraph Compatibility\n\nThe 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:\n\n1. By default, the system uses a mock workflow execution that simulates the full agent workflow\n2. For LangGraph-compatible environments, set `USE_MOCK_WORKFLOW=false` to use actual LangGraph execution\n3. The system will automatically fall back to mock execution if LangGraph execution fails\n\n## Production Deployment Considerations\n\nFor production deployments, consider the following:\n\n1. **Database**: Replace SQLite with PostgreSQL or MongoDB\n2. **Environment**: Set `ENVIRONMENT=production` and provide a proper `SECRET_KEY`\n3. **Security**: Configure proper authentication and authorization\n4. **CORS**: Restrict allowed origins in the CORS middleware\n5. **Monitoring**: Implement proper logging and monitoring\n6. **Scaling**: Consider containerization with Kubernetes for horizontal scaling\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanfmaia%2Fworkflow-forge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanfmaia%2Fworkflow-forge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanfmaia%2Fworkflow-forge/lists"}