Flexo is a powerful and flexible agent framework. It provides a FastAPI-based RESTful API for deploying customizable AI agents that can execute Python functions and interact with external services while handling real-time streaming responses.
- Configurable Agent: YAML-based configuration for custom behaviors
- Tool Integration: Execute Python functions and REST API calls
- Streaming Support: Real-time streaming with pattern detection
- Production Ready: Containerized deployment support with logging
- FastAPI Backend: Modern async API with comprehensive docs
-
Fork and clone:
# First, fork the repository on GitHub by clicking the 'Fork' button # Then clone your fork: git clone https://github.com/YOUR_USERNAME/flexo.git cd flexo # Add the upstream repository git remote add upstream https://github.com/ibm/flexo.git
-
Set up the environment:
# Create virtual environment python -m venv venv source venv/bin/activate # or `venv\Scripts\activate` on Windows pip install -r requirements.txt
-
Configure:
- Copy
.env.example
to.env
and add your credentials - Review
src/configs/agent.yaml
for agent settings
- Copy
-
Run the server:
uvicorn src.main:app --reload --host 127.0.0.1 --port 8000
docker build -t flexo-agent .
docker run -p 8000:8000 --env-file .env flexo-agent
- π Documentation
- β‘ Quick Setup Guide
- π§ Agent Configuration
- π Building from Source
- π API Reference
- π€ Agent System
- π οΈ Tools Overview
- π Data Models
- ποΈ Database Integration
- ποΈ Building Images
- π¦ Container Registries
- π Platform Deployment
flexo/
βββ docs/
βββ src/
β βββ agent/ # Agent(s)
β βββ api/ # API endpoints
β βββ configs/ # Configurations
β βββ data_models/ # Data models
β βββ database/ # Database adapters
β βββ llm/ # LLM components
β βββ prompt_builders/ # Core prompt generation
β βββ tools/ # π§ Add your custom tools here!
β β βββ core/ # Core tool components
β β βββ implementations/ # Custom tool implementations
β β βββnotebooks/ # Jupyter notebooks for tool development
β βββ utils/ # Utils/shared code
β βββ main.py # App entry point
βββ ...
- π Documentation
- π Issue Tracker
- π€ Contributing
This project follows Semantic Versioning. See releases for version history.
We welcome contributions! All commits must be signed with DCO (git commit -s
). See our Contributing Guide for details.
We are committed to fostering a welcoming and inclusive community. Please review our Code of Conduct to understand the standards we uphold.
Review our Security Policy for handling vulnerabilities.
Apache 2.0 License - see LICENSE for details.