TradingAgents/CHANGELOG.md

11 KiB

Changelog

All notable changes to TradingAgents will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • Test fixtures directory with centralized mock data (Issue #51)
  • DeepSeek API support for LLM provider integration (Issue #41)
    • DeepSeek provider integration using ChatOpenAI with base_url pointing to DeepSeek API file:tradingagents/graph/trading_graph.py:105-145
    • DEEPSEEK_API_KEY environment variable handling with validation and helpful error messages
    • Support for DeepSeek models: deepseek-chat and deepseek-reasoner with custom attribution headers
    • Embedding fallback chain for providers without native embeddings (OpenAI -> HuggingFace -> disable memory) file:tradingagents/agents/utils/memory.py:16-57
    • Optional HuggingFace sentence-transformers integration (all-MiniLM-L6-v2 model) for offline embeddings
    • Graceful degradation with informative warnings when embedding backends unavailable
    • Comprehensive test suite for DeepSeek integration file:tests/integration/test_deepseek.py
  • Test directory restructuring into unit/integration/e2e (Issue #50)
    • Organized tests into unit/, integration/, and e2e/ subdirectories by test type
    • Unit tests (5 files) - Fast, isolated tests: conftest_hierarchy, documentation_structure, exceptions, logging_config, report_exporter
    • Integration tests (3 files) - Component interaction tests: akshare, cli_error_handling, openrouter
    • End-to-end tests - Complete workflow tests with dedicated e2e/README.md guidelines
    • Hierarchical conftest.py structure for each test directory with type-specific fixtures
    • Updated pytest.ini with test discovery paths (tests, tests/unit, tests/integration, tests/e2e)
    • Custom markers registered: unit, integration, e2e, llm, chromadb, slow, requires_api_key
    • Updated docs/testing/README.md with new directory structure diagram and fixture organization
    • Improved test isolation with directory-specific fixtures and configurations
  • pytest conftest.py hierarchy for organized test fixtures (Issue #49)
    • Root-level conftest.py with shared fixtures (environment variables, LangChain/ChromaDB mocking, configuration)
    • Unit-level conftest.py with data vendor mocking (akshare, yfinance, sample DataFrames)
    • Integration-level conftest.py with live ChromaDB and temporary directory fixtures
    • Fixture scope management (function, session, module) for test isolation and performance
    • Comprehensive docstrings for all fixtures with usage examples and scope documentation
    • pytest.ini configuration with custom markers (unit, integration, e2e, llm, chromadb, slow, requires_api_key)
    • Test suite validating fixture accessibility across test directories file:tests/test_conftest_hierarchy.py
    • Updated testing documentation with conftest.py hierarchy section file:docs/testing/README.md
    • Fixture usage examples in writing-tests.md file:docs/testing/writing-tests.md
  • Comprehensive documentation structure (Issue #52)
    • Organized docs/ directory with structured documentation sections
    • Quick start guide at docs/QUICKSTART.md
    • Architecture documentation in docs/architecture/ (multi-agent-system, data-flow, llm-integration)
    • API reference documentation in docs/api/ (trading-graph, agents, dataflows)
    • Developer guides in docs/guides/ (adding-new-analyst, adding-llm-provider, adding-data-vendor, configuration)
    • Testing documentation in docs/testing/ (README, running-tests, writing-tests)
    • Development setup guide in docs/development/
    • Central documentation index at docs/README.md with navigation and key concepts
    • Updated PROJECT.md DOCUMENTATION MAP section to reference new docs/ structure
    • Added Documentation section to README.md with links to key guides
  • Export reports to file with metadata (Issue #21)
  • Rate limit error handling for LLM APIs (Issue #39)
  • AKShare data vendor integration for US and Chinese stock market data (Issue #16)
  • OpenRouter API provider support for unified access to multiple LLM models
    • Support for provider/model-name format (e.g., anthropic/claude-sonnet-4.5)
    • Proper API key handling with OPENROUTER_API_KEY environment variable
    • Custom headers for OpenRouter attribution (HTTP-Referer, X-Title)
    • Embedding fallback to OpenAI when using OpenRouter (since OpenRouter lacks embeddings)
    • Comprehensive test suite for OpenRouter provider integration file:tests/test_openrouter.py
  • Expanded .env.example with all supported LLM provider API keys
  • Detailed LLM Provider Options section in README.md with examples for:
    • OpenAI (default)
    • Anthropic
    • OpenRouter (new)
    • Google Generative AI
    • Ollama (local)
  • OpenRouter configuration example in Python usage section
  • Documentation updates in PROJECT.md for OpenRouter support

Changed

Fixed

  • ChromaDB collection persistence issue by using get_or_create_collection() instead of create_collection() to prevent "collection already exists" errors and enable persistent memory across application restarts file:tradingagents/agents/utils/memory.py:29 (Issue #30)
  • Improved error messages for missing OPENROUTER_API_KEY when using openrouter provider
  • Better embedding client initialization for different LLM providers

[1.0.0] - 2025-01-01 (Example - Update with actual release date)

Added

  • Initial multi-agent trading framework release
  • Support for multiple LLM providers
  • Analyst team (fundamental, sentiment, news, technical)
  • Researcher debate mechanism
  • Risk management workflow
  • CLI interface
  • Integration with financial data APIs