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 daily30 14 * * 1- 2:30 PM every Monday0 */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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25830f04b7dda3f86ce4a6431de38da29d71957233b1a23be2bc71778450e82a
|
|
| MD5 |
65fab6a7c4c19d0173d0944383468250
|
|
| BLAKE2b-256 |
44ac93d3d908410c2574395530ea947946535a94804ced1276ef053a5085c9fc
|
File details
Details for the file langgraph_lite_cron-0.0.2-py3-none-any.whl.
File metadata
- Download URL: langgraph_lite_cron-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be770c675405cc82977509d9b0ef3c665b6c9b2a86e618f6a1b9b23e0ea22665
|
|
| MD5 |
7dd4806e440ef486763740f1d93c1c21
|
|
| BLAKE2b-256 |
bb120188fc0b51f06525bf12731a3c76bc3046bc30d8f7fa52f4c52fd910f867
|