Files
microsoft--agent-lightning/pyproject.toml
T
wehub-resource-sync 85742ab165
Deploy Documentation / deploy (push) Has been cancelled
CPU Test / Test (Utilities, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (LLM proxy, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (Others, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (Store, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (Utilities, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (Weave, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (AgentOps, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (LLM proxy, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (Others, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (Weave, latest, Python 3.13) (push) Has been cancelled
Dashboard / Chromatic (push) Has been cancelled
CPU Test / Lint - fast (push) Has been cancelled
CPU Test / Lint - next (push) Has been cancelled
CPU Test / Lint - slow (push) Has been cancelled
CPU Test / Lint - JavaScript (push) Has been cancelled
CPU Test / Build documentation (push) Has been cancelled
CPU Test / Test (AgentOps, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (LLM proxy, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (Others, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (Store, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (Weave, legacy, Python 3.10) (push) Has been cancelled
CPU Test / Test (AgentOps, stable, Python 3.11) (push) Has been cancelled
CPU Test / Test (Store, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (Utilities, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (Weave, stable, Python 3.12) (push) Has been cancelled
CPU Test / Test (AgentOps, latest, Python 3.13) (push) Has been cancelled
CPU Test / Test (LLM proxy, latest, Python 3.13) (push) Has been cancelled
CPU Test / Test (Others, latest, Python 3.13) (push) Has been cancelled
CPU Test / Test (Store, latest, Python 3.13) (push) Has been cancelled
CPU Test / Test (Utilities, latest, Python 3.13) (push) Has been cancelled
CPU Test / Test (JavaScript) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:44:17 +08:00

384 lines
8.5 KiB
TOML

[project]
name = "agentlightning"
version = "0.3.1"
description = "Agent-lightning is the absolute trainer to light up AI agents."
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"graphviz",
"psutil",
"gpustat",
"setproctitle",
"flask",
"agentops>=0.4.13",
"uvicorn",
"fastapi",
"aiohttp",
"opentelemetry-api>=1.35",
"opentelemetry-sdk>=1.35",
"opentelemetry-exporter-otlp>=1.35",
"litellm[proxy]>=1.74",
"pydantic>=2.11",
"openai",
"rich",
"portpicker",
"gunicorn",
"uvicorn_worker",
"aiologic",
]
[project.optional-dependencies]
apo = [
"poml",
]
# It's not recommended to use agentlightning[verl] to install VERL and its dependencies.
# though it's listed here for completeness.
verl = [
"verl>=0.5.0",
"vllm>=0.8.4", # Due to interface change of ExternalZeroMQDistributedExecutor
]
weave = [
"weave>=0.52.22",
]
# Store-related dependencies.
mongo = [
"pymongo",
]
[project.scripts]
agl = "agentlightning.cli:main"
[dependency-groups]
dev = [
"flake8",
"pytest",
"hatch",
"pytest-asyncio",
"pre-commit",
"pytest-rerunfailures",
"black",
"isort",
"pyright",
"mkdocs",
"mkdocs-material",
"mkdocstrings[python]",
"mike",
"mkdocs-git-revision-date-localized-plugin",
"mkdocs-git-authors-plugin",
"mkdocs-macros-plugin",
"mkdocs-autorefs",
"prometheus-client",
]
experiment = [
"random-word",
"gdown",
]
core-legacy = [
"agentops<=0.4.18",
"openai<2.0.0",
]
core-stable = [
"agentops>=0.4.21",
"openai>=2.0.0",
]
# For PyTorch.
# CPU and GPU groups.
torch-cpu = [
"torch",
"torchvision",
]
torch-cu128 = [
"torch",
"torchvision",
]
# Training-heavy dependencies.
torch-stable = [
{include-group = "core-stable"},
# This can work for both CPU and GPU.
"torch>=2.8.0",
"torchvision>=0.23.0",
# https://github.com/huggingface/transformers/issues/42369
"transformers>=4.55.0,!=4.57.2",
# vLLM 0.11.1 requires PyTorch 2.9.0, which is incompatible with flash-attn
# https://github.com/Dao-AILab/flash-attention/issues/1967
# Similar issues with vLLM 0.11.2 and 0.12.0
"vllm>=0.10.2,!=0.11.1,!=0.11.2,!=0.12.0",
# LiteLLM can then be upgraded with new vLLM
"litellm[proxy]>=1.78",
]
torch-legacy = [
{include-group = "core-legacy"},
# This can work for both CPU and GPU.
"torch==2.7.0",
"torchvision==0.22.0",
"transformers==4.53.3",
"tokenizers>=0.21,<0.22",
"vllm==0.9.2",
"litellm[proxy]==1.74.15",
]
# Specific vllm versions for compatibility testing or workarounds.
# Use these when you need a pinned vllm version separate from torch groups.
vllm-0-10-2 = [
{include-group = "torch-stable"},
"vllm==0.10.2",
]
vllm-0-11-0 = [
{include-group = "torch-stable"},
"vllm==0.11.0",
]
# Flash-attention must build with CUDA toolkit.
# Use this instead of --group torch-stable --group torch-gpu
torch-gpu-stable = [
{include-group = "torch-stable"},
{include-group = "torch-cu128"},
"flash-attn>=2.8.3",
"tensordict>=0.9.1",
"verl>=0.6.0",
]
# Use this instead of --group torch-legacy --group torch-gpu
torch-gpu-legacy = [
{include-group = "torch-legacy"},
{include-group = "torch-cu128"},
"flash-attn==2.8.1",
"verl==0.5.0",
]
# For the TRL/Unsloth example.
trl = [
# Only work with PyTorch 2.8.0+.
{include-group = "torch-stable"},
# https://github.com/unslothai/unsloth/issues/3451
"unsloth>=2025.10.1,!=2025.10.2,!=2025.10.3,!=2025.10.4,!=2025.10.5,!=2025.10.6,!=2025.10.7,!=2025.10.8",
"unsloth_zoo>=2025.10.1,!=2025.10.2,!=2025.10.3,!=2025.10.4,!=2025.10.5,!=2025.10.6,!=2025.10.7,!=2025.10.8",
"bitsandbytes",
"peft",
"datasets",
"transformers",
"trl",
"kernels",
"vllm",
]
# For Tinker integration.
tinker = [
{include-group = "torch-stable"},
"tinker>=0.2.2",
"tinker_cookbook>=0.1.0",
"wandb",
]
# For Multi-modality supports.
image = [
# NOTE: It's tied to vLLM 0.10.2 but it will blow the uv.lock file if we include it.
# {include-group = "vllm-0-10-2"},
"datasets",
"Pillow",
"pandas",
"pyarrow",
"qwen-vl-utils",
]
# Agent-related dependencies.
autogen = [
"autogen-agentchat",
"autogen-ext[openai]",
"mcp>=1.10.0",
# UV is required now by default.
# No need to include UV here.
# "uv",
]
openai-agents = [
"openai-agents",
"openai",
# Compatibility issues with the latest version of OpenAI, temporarily fixed version
# Issue: https://github.com/openai/openai-agents-python/issues/2038
"mcp",
# Required by AOAI FT example.
"pandas",
]
anthropic = [
"anthropic",
]
langchain = [
"langgraph>=1.0.0",
"langchain[openai]>=1.0.0",
"langchain-community>=0.4.0",
"langchain-text-splitters>=1.0.0",
]
sql = [
"sqlparse",
"nltk",
]
rag = [
"fastmcp>=2.13.1",
"faiss-cpu>=1.11.0",
"sentence-transformers>=4.1.0",
]
crewai = [
# https://github.com/crewAIInc/crewAI/issues/3959
"crewai[tools]>=1.2.0,!=1.2.1,!=1.3.0,!=1.4.0,!=1.4.1,!=1.5.0",
]
swebench = [
"swebench",
]
# Summarize into large installable groups.
# Note: langchain is excluded from agents to avoid conflicts with torch-legacy.
# Use --group langchain explicitly when needed.
agents = [
{include-group = "autogen"},
{include-group = "openai-agents"},
{include-group = "sql"},
{include-group = "anthropic"},
{include-group = "crewai"},
{include-group = "swebench"},
]
[tool.uv]
required-version = ">=0.9.9"
conflicts = [
[
{ group = "core-legacy" },
{ group = "core-stable" },
],
[
{ group = "torch-cpu" },
{ group = "torch-cu128" },
],
[
{ group = "torch-stable" },
{ group = "torch-legacy" },
],
[
{ group = "vllm-0-10-2" },
{ group = "vllm-0-11-0" },
],
# langchain >= 1.0 requires openai >= 1.109.1 (via langchain-openai),
# but torch-legacy uses vllm==0.9.2 which requires openai<=1.90.0
[
{ group = "langchain" },
{ group = "torch-legacy" },
],
]
environments = [
"sys_platform == 'linux'",
]
dependency-metadata = [
# Patch the dependencies of instructor to unpin "openai".
# This is a workaround for https://github.com/567-labs/instructor/issues/1852
{ name = "instructor", version = "1.11.3", requires-dist = ["openai", "pydantic", "docstring-parser", "typer", "rich", "aiohttp", "tenacity", "pydantic-core", "jiter", "jinja2", "requests", "diskcache"] },
]
override-dependencies = [
# A conflict between the dependency of litellm[proxy] and crewai[tools]
"mcp>=1.19.0",
"uvicorn>=0.38.0",
# Conflicts between packaging dependency of pyvers (dependency of tensordict) and agentops.
"packaging>=24.0",
# Conflicts between litellm and fastmcp
"websockets>=15.0.1",
"rich>=13.9.4",
# verl's numpy<2.0.0 constraint is related to Docker images, not code incompatibility
# Lock to 2.3.0 because numba relies on numpy 2.2
"numpy>=2.0.0,<2.3.0",
# vllm relies on setuptools<80, but polyfile-weave depends on setuptools>=80.9.0
"setuptools>=80.9.0",
]
[tool.uv.sources]
torch = [
{ index = "pytorch-cu128", group = "torch-cu128" },
{ index = "pytorch-cpu", group = "torch-cpu" },
]
[[tool.uv.index]]
name = "pypi"
url = "https://pypi.org/simple"
[[tool.uv.index]]
name = "pytorch-cu128"
url = "https://download.pytorch.org/whl/cu128"
[[tool.uv.index]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
[tool.uv.extra-build-dependencies]
flash-attn = [
{ requirement = "torch", match-runtime = true },
]
[tool.uv.dependency-groups]
tinker = {requires-python = ">=3.11"}
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["agentlightning"]
include = [
"agentlightning/**/*.yaml",
"agentlightning/**/*.yml",
"agentlightning/**/*.poml",
]
artifacts = [
"agentlightning/dashboard/**",
]
[tool.hatch.build.targets.sdist]
exclude = [
"/examples/**",
"/tests/**",
"/docs/**",
"/scripts/**",
"/dashboard/**",
"/docker/**",
"/contrib/**",
"/.github/**",
]
artifacts = [
"agentlightning/dashboard/**",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
markers = [
"openai: tests that require OpenAI API",
"gpu: tests that require GPU",
"agentops: tests that require AgentOps",
"weave: tests that require Weave",
"llmproxy: tests that require LiteLLM",
"mongo: tests that require MongoDB",
"store: tests for agentlightning.store module",
"prometheus: tests that require Prometheus",
"utils: tests for utility functions",
"langchain: tests that require LangChain",
]
[tool.black]
line-length = 120
target-version = ['py312']
include = '\.pyi?$'
extend-exclude = '''
/(
_version\.py
)
'''
[tool.isort]
profile = "black"
line_length = 120
known_first_party = ["agentlightning"]
extend_skip_glob = [
"data/**",
"_version.py",
]