Skip to content

A FastAPI-powered workflow orchestration system that integrates LangGraph to design, run, and manage AI Agents workflows

Notifications You must be signed in to change notification settings

samirpatil2000/agentic-template

Repository files navigation

FastAPI + LangGraph Workflow Orchestration Template

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.

Features

  • 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

Prerequisites

  • Python 3.11 or higher
  • PostgreSQL database

Installation

  1. Clone the repository:
git clone <repository-url>
cd agentic-template
  1. Install dependencies:
pip install -r requirements.txt
  1. Set up environment variables:
  • Copy the example environment file:
cp .env.example .env
  • Update values in .env to match your local setup (database URL, host, port, etc.).

Usage

  1. 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 $HOST

🧩 API Endpoints

GET /

Description:
Retrieve API information and a list of available endpoints.

Response Example:

{
  "version": "1.0",
  "endpoints": [
    "/workflows/{workflow_name}",
    "/workflows/{workflow_name}/{thread_id}"
  ]
}

POST /workflows/{workflow_name}

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"
}

POST /workflows/{workflow_name}/{thread_id}

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"
}

GET /workflows/{workflow_name}/{thread_id}

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"
  }
}

Roadmap

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)

Notes

  • 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.

About

A FastAPI-powered workflow orchestration system that integrates LangGraph to design, run, and manage AI Agents workflows

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •