mirror of
https://github.com/TauricResearch/TradingAgents.git
synced 2026-05-01 14:33:10 +03:00
Long analyses can take many minutes; a crash or interruption forced users to re-run from scratch and re-pay every LLM call. This adds an opt-in checkpoint layer backed by per-ticker SQLite databases so the graph resumes from the last successful node. How to use: - CLI: tradingagents analyze --checkpoint - CLI: tradingagents analyze --clear-checkpoints - Python: config["checkpoint_enabled"] = True Lifecycle: - propagate() recompiles the graph with a SqliteSaver when enabled and injects a deterministic thread_id derived from ticker+date so the same ticker+date resumes while a different date starts fresh. - On successful completion the per-thread checkpoint rows are cleared. - The context manager is closed in a try/finally so a crash never leaks the SQLite connection or leaves the graph in checkpoint mode. Storage: ~/.tradingagents/cache/checkpoints/<TICKER>.db (override via TRADINGAGENTS_CACHE_DIR). The checkpointer module is new (tradingagents/graph/checkpointer.py) and the GraphSetup now returns the uncompiled workflow so it can be recompiled with a saver when needed. Adds langgraph-checkpoint-sqlite>=2.0.0 dependency. 3 new tests verify the crash/resume cycle and that a different date starts fresh.
55 lines
1.3 KiB
TOML
55 lines
1.3 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61.0"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "tradingagents"
|
|
version = "0.2.3"
|
|
description = "TradingAgents: Multi-Agents LLM Financial Trading Framework"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"langchain-core>=0.3.81",
|
|
"backtrader>=1.9.78.123",
|
|
"langchain-anthropic>=0.3.15",
|
|
"langchain-experimental>=0.3.4",
|
|
"langchain-google-genai>=4.0.0",
|
|
"langchain-openai>=0.3.23",
|
|
"langgraph>=0.4.8",
|
|
"langgraph-checkpoint-sqlite>=2.0.0",
|
|
"pandas>=2.3.0",
|
|
"parsel>=1.10.0",
|
|
"pytz>=2025.2",
|
|
"questionary>=2.1.0",
|
|
"redis>=6.2.0",
|
|
"requests>=2.32.4",
|
|
"rich>=14.0.0",
|
|
"typer>=0.21.0",
|
|
"setuptools>=80.9.0",
|
|
"stockstats>=0.6.5",
|
|
"tqdm>=4.67.1",
|
|
"typing-extensions>=4.14.0",
|
|
"yfinance>=0.2.63",
|
|
]
|
|
|
|
[project.scripts]
|
|
tradingagents = "cli.main:app"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["tradingagents*", "cli*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
cli = ["static/*"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
addopts = "-ra --strict-markers"
|
|
markers = [
|
|
"unit: fast isolated unit tests",
|
|
"integration: tests requiring external services",
|
|
"smoke: quick sanity-check tests",
|
|
]
|
|
filterwarnings = [
|
|
"ignore::DeprecationWarning",
|
|
]
|