A starter template for building AI-driven workflow orchestration systems using FastAPI and LangGraph. This project provides a modular foundation with state management, persistence, and REST APIs so you can quickly prototype and extend your own workflows.
- FastAPI-based REST API endpoints for workflow management
- LangGraph integration for AI workflow orchestration
- Modular, extensible workflow architecture
- Built-in state management and checkpointing
- PostgreSQL-backed workflow persistence
- Support for workflow interrupts and continuations
- Non-blocking concurrent workflow execution using ThreadPoolExecutor
- LLM response validation and retry utilities with LiteLLM integration
- Added langfuse for observability and tracing
- Python 3.11 or higher
- PostgreSQL database
- Clone the repository:
git clone <repository-url>
cd agentic-template- Install dependencies:
pip install -r requirements.txt- Set up environment variables:
- Copy the example environment file:
cp .env.example .env- Update values in
.envto match your local setup (database URL, host, port, etc.).
- Start the server:
- Default port (8000):
uvicorn app:app --reload- Custom port:
uvicorn app:app --reload --port 8080- Using environment variables (defined in
.env):
uvicorn app:app --reload --port $PORT --host $HOSTDescription:
Retrieve API information and a list of available endpoints.
Response Example:
{
"version": "1.0",
"endpoints": [
"/workflows/{workflow_name}",
"/workflows/{workflow_name}/{thread_id}"
]
}Description:
Start a new workflow.
Request Body:
{
"content": "{\"company_url\": \"https://www.github.com/\"}",
"type": "text",
"role": "user"
}Response Example:
{
"thread_id": "abc123",
"status": "started",
"workflow_name": "example_workflow"
}Description:
Continue an existing workflow.
Request Body:
{
"content": "{\"company_url\": \"https://www.github.com/\"}",
"type": "text",
"role": "user"
}Response Example:
{
"thread_id": "abc123",
"status": "in_progress",
"message": "Workflow updated successfully"
}Description:
Retrieve the current state of a workflow thread.
Response Example:
{
"thread_id": "abc123",
"workflow_name": "example_workflow",
"status": "completed",
"result": {
"summary": "Workflow execution finished successfully"
}
}Planned features and improvements:
- Add logging and log rotation in file
- Add authentication
- Add Prometheus metrics
- Add tool calling example
- Add rate limiting
- Replace sample agent with production-ready agent/chatbot (e.g., email agent)
- This repository is a template intended for customization. Replace example workflows, models, and configuration with your own domain logic.
- Consider adding authentication, rate limiting, and observability for production deployments.