diff --git a/CONFIG_GUIDE.md b/CONFIG_GUIDE.md index 4ac1d7a7..1ab23c88 100644 --- a/CONFIG_GUIDE.md +++ b/CONFIG_GUIDE.md @@ -1,6 +1,8 @@ # Configuration Guide -TradingAgents supports configuration through multiple methods with the following priority: +**Copyright Notice:** Litadel is a successor of TradingAgents by TaurusResearch. + +Litadel supports configuration through multiple methods with the following priority: **Priority (highest to lowest):** 1. Environment variables @@ -200,7 +202,7 @@ The `β` lines show values being used from your config, skipping the prompts! ## Troubleshooting **CLI still prompts for everything:** -- Check that `config.ini` exists in the TradingAgents directory +- Check that `config.ini` exists in the Litadel directory - Verify the file has the correct structure (see `config.example.ini`) - Check for typos in section names and keys diff --git a/README.md b/README.md index 7e90c60f..874c54c1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
-
+
-## TradingAgents Package
+## Litadel Package
### Implementation Details
-We built TradingAgents with LangGraph to ensure flexibility and modularity. We utilize `o1-preview` and `gpt-4o` as our deep thinking and fast thinking LLMs for our experiments. However, for testing purposes, we recommend you use `o4-mini` and `gpt-4.1-mini` to save on costs as our framework makes **lots of** API calls.
+We built Litadel with LangGraph to ensure flexibility and modularity. We utilize `o1-preview` and `gpt-4o` as our deep thinking and fast thinking LLMs for our experiments. However, for testing purposes, we recommend you use `o4-mini` and `gpt-4.1-mini` to save on costs as our framework makes **lots of** API calls.
### Python Usage
-To use TradingAgents inside your code, you can import the `tradingagents` module and initialize a `TradingAgentsGraph()` object. The `.propagate()` function will return a decision. You can run `main.py`, here's also a quick example:
+To use Litadel inside your code, you can import the `tradingagents` module and initialize a `TradingAgentsGraph()` object. The `.propagate()` function will return a decision. You can run `main.py`, here's also a quick example:
```python
from tradingagents.graph.trading_graph import TradingAgentsGraph
@@ -204,13 +196,20 @@ print(decision)
You can view the full list of configurations in `tradingagents/default_config.py`.
+## Roadmap
+
+### Upcoming Improvements
+- [ ] **Switch from LangChain/LangGraph to OpenAI Agents SDK** - For better maintainability and parallelization
+
## Contributing
We welcome contributions from the community! Whether it's fixing a bug, improving documentation, or suggesting a new feature, your input helps make this project better. If you are interested in this line of research, please consider joining our open-source financial AI research community [Tauric Research](https://tauric.ai/).
## Citation
-Please reference our work if you find *TradingAgents* provides you with some help :)
+Please reference our work if you find *Litadel* provides you with some help :)
+
+Original TradingAgents citation:
```
@misc{xiao2025tradingagentsmultiagentsllmfinancial,
diff --git a/assets/TauricResearch.png b/assets/TauricResearch.png
deleted file mode 100644
index 3e88994d..00000000
Binary files a/assets/TauricResearch.png and /dev/null differ
diff --git a/assets/litadel.png b/assets/litadel.png
new file mode 100644
index 00000000..0192e0ce
Binary files /dev/null and b/assets/litadel.png differ
diff --git a/cli/file_handlers.py b/cli/file_handlers.py
index 7c77f1a2..bba65fee 100644
--- a/cli/file_handlers.py
+++ b/cli/file_handlers.py
@@ -1,4 +1,4 @@
-"""File handling and logging decorators for the TradingAgents CLI."""
+"""File handling and logging decorators for the Litadel CLI."""
from functools import wraps
from pathlib import Path
diff --git a/cli/llm_config.py b/cli/llm_config.py
index fee6fc92..5890d3d5 100644
--- a/cli/llm_config.py
+++ b/cli/llm_config.py
@@ -1,4 +1,4 @@
-"""LLM provider and model configuration data for the TradingAgents CLI."""
+"""LLM provider and model configuration data for the Litadel CLI."""
# LLM provider base URLs
LLM_PROVIDERS = [
diff --git a/cli/main.py b/cli/main.py
index 9a810b8f..c17ed185 100644
--- a/cli/main.py
+++ b/cli/main.py
@@ -37,8 +37,8 @@ from cli.stream_processor import process_chunk
console = Console()
app = typer.Typer(
- name="TradingAgents",
- help="TradingAgents CLI: Multi-Agents LLM Financial Trading Framework",
+ name="Litadel",
+ help="Litadel CLI: Multi-Agents LLM Financial Trading Framework (successor of TradingAgents)",
add_completion=True, # Enable shell completion
)
@@ -59,7 +59,8 @@ def get_user_selections():
# Create welcome box content
welcome_content = f"{welcome_ascii}\n"
- welcome_content += "[bold green]TradingAgents: Multi-Agents LLM Financial Trading Framework - CLI[/bold green]\n\n"
+ welcome_content += "[bold green]Litadel: Multi-Agents LLM Financial Trading Framework - CLI[/bold green]\n\n"
+ welcome_content += "[dim]Successor of TradingAgents by TaurusResearch[/dim]\n\n"
welcome_content += "[bold]Workflow Steps:[/bold]\n"
welcome_content += "I. Analyst Team β II. Research Team β III. Trader β IV. Risk Management β V. Portfolio Management\n\n"
welcome_content += (
@@ -71,7 +72,7 @@ def get_user_selections():
welcome_content,
border_style="green",
padding=(1, 2),
- title="Welcome to TradingAgents",
+ title="Welcome to Litadel",
subtitle="Multi-Agents LLM Financial Trading Framework",
)
console.print(Align.center(welcome_box))
diff --git a/cli/prompts.py b/cli/prompts.py
index b7175477..4960491f 100644
--- a/cli/prompts.py
+++ b/cli/prompts.py
@@ -1,4 +1,4 @@
-"""Interactive user prompts for the TradingAgents CLI."""
+"""Interactive user prompts for the Litadel CLI."""
import questionary
from typing import List, Optional, Tuple, Dict
diff --git a/cli/report_display.py b/cli/report_display.py
index 80772fe2..741eb962 100644
--- a/cli/report_display.py
+++ b/cli/report_display.py
@@ -1,4 +1,4 @@
-"""Report display functions for the TradingAgents CLI."""
+"""Report display functions for the Litadel CLI."""
from rich.console import Console
from rich.panel import Panel
diff --git a/cli/stream_processor.py b/cli/stream_processor.py
index 6510cc1c..471df3f8 100644
--- a/cli/stream_processor.py
+++ b/cli/stream_processor.py
@@ -1,4 +1,4 @@
-"""Stream processing logic for handling agent analysis chunks in the TradingAgents CLI."""
+"""Stream processing logic for handling agent analysis chunks in the Litadel CLI."""
from cli.helpers import extract_content_string, update_research_team_status
diff --git a/cli/ui_display.py b/cli/ui_display.py
index ef7874bf..54c24f0c 100644
--- a/cli/ui_display.py
+++ b/cli/ui_display.py
@@ -1,4 +1,4 @@
-"""UI display functions for the TradingAgents CLI using Rich library."""
+"""UI display functions for the Litadel CLI using Rich library."""
from rich.panel import Panel
from rich.spinner import Spinner
@@ -30,9 +30,9 @@ def update_display(layout, message_buffer, spinner_text=None):
# Header with welcome message
layout["header"].update(
Panel(
- "[bold green]Welcome to TradingAgents CLI[/bold green]\n"
+ "[bold green]Welcome to Litadel CLI[/bold green]\n"
"[dim]Β© [Tauric Research](https://github.com/TauricResearch)[/dim]",
- title="Welcome to TradingAgents",
+ title="Welcome to Litadel",
border_style="green",
padding=(1, 2),
expand=True,
diff --git a/config.example.ini b/config.example.ini
index 7ccc1eea..ac974893 100644
--- a/config.example.ini
+++ b/config.example.ini
@@ -1,4 +1,5 @@
-# TradingAgents Configuration
+# Litadel Configuration
+# Copyright Notice: Litadel is a successor of TradingAgents by TaurusResearch
# Copy this file to config.ini and customize your settings
[llm]
diff --git a/pyproject.toml b/pyproject.toml
index 63af4721..d4baf564 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,7 +1,7 @@
[project]
-name = "tradingagents"
+name = "litadel"
version = "0.1.0"
-description = "Add your description here"
+description = "Multi-Agents LLM Financial Trading Framework (successor of TradingAgents by TaurusResearch)"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
diff --git a/setup.py b/setup.py
index 793df3e6..ea768d89 100644
--- a/setup.py
+++ b/setup.py
@@ -1,14 +1,17 @@
"""
-Setup script for the TradingAgents package.
+Setup script for the Litadel package.
+
+Copyright Notice: Litadel is a successor of TradingAgents by TaurusResearch.
+This project builds upon and extends the original TradingAgents framework.
"""
from setuptools import setup, find_packages
setup(
- name="tradingagents",
+ name="litadel",
version="0.1.0",
- description="Multi-Agents LLM Financial Trading Framework",
- author="TradingAgents Team",
+ description="Multi-Agents LLM Financial Trading Framework (successor of TradingAgents)",
+ author="Litadel Team",
author_email="yijia.xiao@cs.ucla.edu",
url="https://github.com/TauricResearch",
packages=find_packages(),
@@ -29,7 +32,7 @@ setup(
python_requires=">=3.10",
entry_points={
"console_scripts": [
- "tradingagents=cli.main:app",
+ "litadel=cli.main:app",
],
},
classifiers=[
diff --git a/tradingagents/graph/__init__.py b/tradingagents/graph/__init__.py
index 80982c19..ec99f629 100644
--- a/tradingagents/graph/__init__.py
+++ b/tradingagents/graph/__init__.py
@@ -1,4 +1,6 @@
-# TradingAgents/graph/__init__.py
+# Litadel/graph/__init__.py
+# Copyright Notice: Litadel is a successor of TradingAgents by TaurusResearch.
+# This project builds upon and extends the original TradingAgents framework.
from .trading_graph import TradingAgentsGraph
from .conditional_logic import ConditionalLogic
diff --git a/tradingagents/graph/propagation.py b/tradingagents/graph/propagation.py
index 58ebd0a8..626dac0b 100644
--- a/tradingagents/graph/propagation.py
+++ b/tradingagents/graph/propagation.py
@@ -1,4 +1,6 @@
-# TradingAgents/graph/propagation.py
+# Litadel/graph/propagation.py
+# Copyright Notice: Litadel is a successor of TradingAgents by TaurusResearch.
+# This project builds upon and extends the original TradingAgents framework.
from typing import Dict, Any
from tradingagents.agents.utils.agent_states import (
diff --git a/tradingagents/graph/reflection.py b/tradingagents/graph/reflection.py
index 33303231..79b59f25 100644
--- a/tradingagents/graph/reflection.py
+++ b/tradingagents/graph/reflection.py
@@ -1,4 +1,6 @@
-# TradingAgents/graph/reflection.py
+# Litadel/graph/reflection.py
+# Copyright Notice: Litadel is a successor of TradingAgents by TaurusResearch.
+# This project builds upon and extends the original TradingAgents framework.
from typing import Dict, Any
from langchain_openai import ChatOpenAI
diff --git a/tradingagents/graph/setup.py b/tradingagents/graph/setup.py
index b270ffc0..1718c4d6 100644
--- a/tradingagents/graph/setup.py
+++ b/tradingagents/graph/setup.py
@@ -1,4 +1,6 @@
-# TradingAgents/graph/setup.py
+# Litadel/graph/setup.py
+# Copyright Notice: Litadel is a successor of TradingAgents by TaurusResearch.
+# This project builds upon and extends the original TradingAgents framework.
from typing import Dict, Any
from langchain_openai import ChatOpenAI
diff --git a/tradingagents/graph/signal_processing.py b/tradingagents/graph/signal_processing.py
index 903e8529..16557925 100644
--- a/tradingagents/graph/signal_processing.py
+++ b/tradingagents/graph/signal_processing.py
@@ -1,4 +1,6 @@
-# TradingAgents/graph/signal_processing.py
+# Litadel/graph/signal_processing.py
+# Copyright Notice: Litadel is a successor of TradingAgents by TaurusResearch.
+# This project builds upon and extends the original TradingAgents framework.
from langchain_openai import ChatOpenAI
diff --git a/tradingagents/graph/trading_graph.py b/tradingagents/graph/trading_graph.py
index 40f14c9c..a8d820ff 100644
--- a/tradingagents/graph/trading_graph.py
+++ b/tradingagents/graph/trading_graph.py
@@ -1,4 +1,6 @@
-# TradingAgents/graph/trading_graph.py
+# Litadel/graph/trading_graph.py
+# Copyright Notice: Litadel is a successor of TradingAgents by TaurusResearch.
+# This project builds upon and extends the original TradingAgents framework.
import os
from pathlib import Path
diff --git a/uv.lock b/uv.lock
index e4a5030c..2be7c04d 100644
--- a/uv.lock
+++ b/uv.lock
@@ -1,5 +1,5 @@
version = 1
-revision = 3
+revision = 2
requires-python = ">=3.10"
resolution-markers = [
"python_full_version >= '3.13'",
@@ -1951,6 +1951,71 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/03/a5/866b44697cee47d1cae429ed370281d937ad4439f71af82a6baaa139d26a/Lazify-0.4.0-py2.py3-none-any.whl", hash = "sha256:c2c17a7a33e9406897e3f66fde4cd3f84716218d580330e5af10cfe5a0cd195a", size = 3107, upload-time = "2018-06-14T13:12:22.273Z" },
]
+[[package]]
+name = "litadel"
+version = "0.1.0"
+source = { virtual = "." }
+dependencies = [
+ { name = "akshare" },
+ { name = "backtrader" },
+ { name = "chainlit" },
+ { name = "chromadb" },
+ { name = "eodhd" },
+ { name = "feedparser" },
+ { name = "finnhub-python" },
+ { name = "grip" },
+ { name = "langchain-anthropic" },
+ { name = "langchain-experimental" },
+ { name = "langchain-google-genai" },
+ { name = "langchain-openai" },
+ { name = "langgraph" },
+ { name = "pandas" },
+ { name = "parsel" },
+ { name = "praw" },
+ { name = "pytz" },
+ { name = "questionary" },
+ { name = "redis" },
+ { name = "requests" },
+ { name = "rich" },
+ { name = "setuptools" },
+ { name = "stockstats" },
+ { name = "tqdm" },
+ { name = "tushare" },
+ { name = "typing-extensions" },
+ { name = "yfinance" },
+]
+
+[package.metadata]
+requires-dist = [
+ { name = "akshare", specifier = ">=1.16.98" },
+ { name = "backtrader", specifier = ">=1.9.78.123" },
+ { name = "chainlit", specifier = ">=2.5.5" },
+ { name = "chromadb", specifier = ">=1.0.12" },
+ { name = "eodhd", specifier = ">=1.0.32" },
+ { name = "feedparser", specifier = ">=6.0.11" },
+ { name = "finnhub-python", specifier = ">=2.4.23" },
+ { name = "grip", specifier = ">=4.6.2" },
+ { name = "langchain-anthropic", specifier = ">=0.3.15" },
+ { name = "langchain-experimental", specifier = ">=0.3.4" },
+ { name = "langchain-google-genai", specifier = ">=2.1.5" },
+ { name = "langchain-openai", specifier = ">=0.3.23" },
+ { name = "langgraph", specifier = ">=0.4.8" },
+ { name = "pandas", specifier = ">=2.3.0" },
+ { name = "parsel", specifier = ">=1.10.0" },
+ { name = "praw", specifier = ">=7.8.1" },
+ { name = "pytz", specifier = ">=2025.2" },
+ { name = "questionary", specifier = ">=2.1.0" },
+ { name = "redis", specifier = ">=6.2.0" },
+ { name = "requests", specifier = ">=2.32.4" },
+ { name = "rich", specifier = ">=14.0.0" },
+ { name = "setuptools", specifier = ">=80.9.0" },
+ { name = "stockstats", specifier = ">=0.6.5" },
+ { name = "tqdm", specifier = ">=4.67.1" },
+ { name = "tushare", specifier = ">=1.4.21" },
+ { name = "typing-extensions", specifier = ">=4.14.0" },
+ { name = "yfinance", specifier = ">=0.2.63" },
+]
+
[[package]]
name = "literalai"
version = "0.1.201"
@@ -4762,71 +4827,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/67/53/d840eff3b6cc64f40f115b8de9a17a100973be3679f14b66056ab5a4615e/traceloop_sdk-0.40.9-py3-none-any.whl", hash = "sha256:c061a278f40062986379bc2df76635cb545c3f81301f6b38d51b3a6f9c288f54", size = 31486, upload-time = "2025-06-10T09:55:57.458Z" },
]
-[[package]]
-name = "tradingagents"
-version = "0.1.0"
-source = { virtual = "." }
-dependencies = [
- { name = "akshare" },
- { name = "backtrader" },
- { name = "chainlit" },
- { name = "chromadb" },
- { name = "eodhd" },
- { name = "feedparser" },
- { name = "finnhub-python" },
- { name = "grip" },
- { name = "langchain-anthropic" },
- { name = "langchain-experimental" },
- { name = "langchain-google-genai" },
- { name = "langchain-openai" },
- { name = "langgraph" },
- { name = "pandas" },
- { name = "parsel" },
- { name = "praw" },
- { name = "pytz" },
- { name = "questionary" },
- { name = "redis" },
- { name = "requests" },
- { name = "rich" },
- { name = "setuptools" },
- { name = "stockstats" },
- { name = "tqdm" },
- { name = "tushare" },
- { name = "typing-extensions" },
- { name = "yfinance" },
-]
-
-[package.metadata]
-requires-dist = [
- { name = "akshare", specifier = ">=1.16.98" },
- { name = "backtrader", specifier = ">=1.9.78.123" },
- { name = "chainlit", specifier = ">=2.5.5" },
- { name = "chromadb", specifier = ">=1.0.12" },
- { name = "eodhd", specifier = ">=1.0.32" },
- { name = "feedparser", specifier = ">=6.0.11" },
- { name = "finnhub-python", specifier = ">=2.4.23" },
- { name = "grip", specifier = ">=4.6.2" },
- { name = "langchain-anthropic", specifier = ">=0.3.15" },
- { name = "langchain-experimental", specifier = ">=0.3.4" },
- { name = "langchain-google-genai", specifier = ">=2.1.5" },
- { name = "langchain-openai", specifier = ">=0.3.23" },
- { name = "langgraph", specifier = ">=0.4.8" },
- { name = "pandas", specifier = ">=2.3.0" },
- { name = "parsel", specifier = ">=1.10.0" },
- { name = "praw", specifier = ">=7.8.1" },
- { name = "pytz", specifier = ">=2025.2" },
- { name = "questionary", specifier = ">=2.1.0" },
- { name = "redis", specifier = ">=6.2.0" },
- { name = "requests", specifier = ">=2.32.4" },
- { name = "rich", specifier = ">=14.0.0" },
- { name = "setuptools", specifier = ">=80.9.0" },
- { name = "stockstats", specifier = ">=0.6.5" },
- { name = "tqdm", specifier = ">=4.67.1" },
- { name = "tushare", specifier = ">=1.4.21" },
- { name = "typing-extensions", specifier = ">=4.14.0" },
- { name = "yfinance", specifier = ">=0.2.63" },
-]
-
[[package]]
name = "tushare"
version = "1.4.21"