Skip to main content

langgraph lite cron

Project description

⏰ LangGraph Lite Cron

  • A free, self-hosted alternative to LangGraph Platform's Cron Jobs with the same API interface (compatible with langgraph-sdk).
  • Designed for use with ambient agents to enable scheduled and recurring tasks.

Requirements: Python 3.9+, PostgreSQL, Redis

⚠️ Warning: Early development. Not for production use.

⚡ Quick Start

1. Install

pip install langgraph-lite-cron

2. Add Custom Routes

Add cron routes to your FastAPI app (e.g., ./src/agent/webapp.py):

from collections.abc import AsyncGenerator
from contextlib import asynccontextmanager

from fastapi import FastAPI

from langgraph_lite_cron import crons
from langgraph_lite_cron.scheduler import create_scheduler


@asynccontextmanager
async def lifespan(app: FastAPI) -> AsyncGenerator[None]:
    async with create_scheduler() as scheduler:
        await scheduler.start_in_background()
        app.state.scheduler = scheduler

        yield

        await scheduler.stop()
        await scheduler.wait_until_stopped()


app = FastAPI(lifespan=lifespan)
app.include_router(crons.router)

3. Configure langgraph.json

Update your langgraph.json to include the custom app:

{
    "dependencies": [
        "."
    ],
    "graphs": {
        "agent": "./src/react_agent/graph.py:graph"
    },
    "env": ".env",
    "image_distro": "wolfi",
    "http": {
        "app": "./src/agent/webapp.py:app"
    },
    "dockerfile_lines": [
        "ENV UV_PRERELEASE=allow"
    ]
}

4. Deploy

Deploy using Self-hosted Standalone Server with Kubernetes, Docker and Docker Compose.

5. Use Cron API

from langgraph_sdk import get_client

client = get_client(url="http://localhost:8123")

# Create thread
thread = await client.threads.create()

# Schedule job for thread (stateful)
cron_job = await client.crons.create_for_thread(
    thread["thread_id"],
    "agent",
    schedule="27 15 * * *",
    input={"messages": [{"role": "user", "content": "What time is it?"}]},
)

# Schedule job without thread (stateless)
cron_job_stateless = await client.crons.create(
    "agent",
    schedule="0 9 * * *",
    input={"messages": [{"role": "user", "content": "Good morning!"}]},
)

# List all cron jobs
crons = await client.crons.search(assistant_id="agent")

# Delete a specific job
await client.crons.delete(cron_job["cron_id"])

# Delete all jobs
for cron in crons:
    await client.crons.delete(cron["cron_id"])

⏱️ Cron Format

Standard cron format: minute hour day month weekday

  • 0 9 * * * - 9:00 AM daily
  • 30 14 * * 1 - 2:30 PM every Monday
  • 0 */4 * * * - Every 4 hours

💡 Example Use Cases

  • executive-ai-assistant – An AI agent acting as an Executive Assistant
  • social-media-agent – Generates Twitter and LinkedIn posts from a given URL with human-in-the-loop approval
  • agents-from-scratch – Step-by-step tutorial for building an email agent with Gmail API, HITL, and memory
  • ff-take-bot – A “Take Bot” agent that runs in the background to keep a fantasy football league active
  • ambient-agent-101 – Learn LangGraph basics by building an ambient agent that manages Gmail
  • reddit-radar – AI agent for detecting or analyzing Reddit posts
  • daily-brew – Automates publishing daily reflection content to a Slack channel

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langgraph_lite_cron-0.0.2.tar.gz (65.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langgraph_lite_cron-0.0.2-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file langgraph_lite_cron-0.0.2.tar.gz.

File metadata

  • Download URL: langgraph_lite_cron-0.0.2.tar.gz
  • Upload date:
  • Size: 65.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for langgraph_lite_cron-0.0.2.tar.gz
Algorithm Hash digest
SHA256 25830f04b7dda3f86ce4a6431de38da29d71957233b1a23be2bc71778450e82a
MD5 65fab6a7c4c19d0173d0944383468250
BLAKE2b-256 44ac93d3d908410c2574395530ea947946535a94804ced1276ef053a5085c9fc

See more details on using hashes here.

File details

Details for the file langgraph_lite_cron-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for langgraph_lite_cron-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 be770c675405cc82977509d9b0ef3c665b6c9b2a86e618f6a1b9b23e0ea22665
MD5 7dd4806e440ef486763740f1d93c1c21
BLAKE2b-256 bb120188fc0b51f06525bf12731a3c76bc3046bc30d8f7fa52f4c52fd910f867

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page