2.9 KiB
2.9 KiB
Changelog
All notable changes to the TradingAgents project will be documented in this file.
[Unreleased] - 2026-01-09
Added
- Blindfire Protocol Activated: Fully integrated
TickerAnonymizerinto all analyst agents (Market,News,Fundamentals,Social) and data tools. The LLM now only sees "ASSET_XXX" in prompts, preventing data contamination. - Anonymization Middleware: Implemented transparent request interception in
core_stock_tools.pyand other tool files to deanonymize inputs and anonymize outputs automatically. - State Persistence: Added auto-persistence to
TickerAnonymizer(ticker_map.json) to ensure consistent ticker mapping across isolated agent and tool instances. - API Key Verification: Added
verify_google_key.pyscript to isolate and verify Google API Key functionality for embeddings. - Environment Management: Added
load_dotenvtocli/main.pyandverify_google_key.pyto ensure.envvariables are correctly loaded. - Start Script Enhancements: Updated
start.shto check forGOOGLE_API_KEYexistence and warn the user. - Debug Logging: Added temporary debug logging (commented out) in
memory.pyfor API key verification.
Fixed
- Embedding Model Error: Fixed
BadRequestError/404 Not Foundwhen using Google (Gemini) provider by explicitly settingtext-embedding-004and using the Google-compatible OpenAI endpoint (generativelanguage.googleapis.com). - Data Fetching Failure: Resolved
RuntimeError: All vendor implementations failed for method 'get_fundamentals'by implementing a fallback toyfinanceintradingagents/dataflows/y_finance.pyand registering it ininterface.py. - Report Saving Crash: Fixed
TypeError: write() argument must be str, not listincli/main.pyby converting structured list content to string before writing to files. - API Rate Limiting: Added
max_retrieshandling (exponential backoff) to bothChatGoogleGenerativeAI(10 retries) andOpenAIembedding client (5 retries). - Import Errors: Fixed
NameError: name 'tool' is not definedby restoringlangchain_coreimports in data tools that were accidentally removed during Blindfire integration. - Payload Size Error: Implemented input truncation (max 9000 chars) in
memory.py. - Display Layer De-Anonymization: Added
deanonymize_texttoTickerAnonymizerand patchedcli/main.pyto reverse-map "ASSET_XXX" to real company names in the final report, effectively resolving "[Company Name]" placeholders for the user while keeping the internal system blind.
Changed
- LLM Configuration: Updated
tradingagents/default_config.pyandcli/utils.pyto use valid Gemini model names (e.g.,gemini-1.5-flash,gemini-1.5-pro) andgemini-pro. - Vendor Configuration: Updated default
fundamental_datavendor to "alpha_vantage, yfinance" to ensure fallback availability.