diff --git a/README.md b/README.md
index a4450d69..7ec5a70a 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
-# TradingAgentsX - 多代理交易分析系統
+# TradingAgentsX - 多代理智能交易分析系統
-**基於 LangGraph 的智能股票交易分析平台,結合多個 AI 代理進行協作決策**
+**基於 LangGraph 的 AI 股票交易分析平台,結合多個專業 AI 代理進行協作決策**
[](https://github.com/MarkLo127/TradingAgentsX)
[](https://www.python.org/)
@@ -14,228 +14,121 @@
+---
+
## 📖 簡介
**TradingAgentsX** 是一個先進的多代理 AI 交易分析系統,模擬真實世界的交易公司運作模式。透過 LangGraph 編排多個專業化的 AI 代理(分析師、研究員、交易員、風險管理者),系統能夠從不同角度分析股票市場,並通過結構化的辯論與協作流程產生高質量的交易決策。
-> 💡 **致敬原作**: 本專案基於 [TauricResearch/TradingAgents](https://github.com/TauricResearch/TradingAgents) 進行改進和擴展,加入了完整的 Web 前端介面、RESTful API、Docker 部署支援等功能。並且支援台股上市櫃資料,感謝原作者的卓越工作和開源貢獻!
+> 💡 **致敬原作**: 本專案基於 [TauricResearch/TradingAgents](https://github.com/TauricResearch/TradingAgents) 進行改進和擴展。
### 🎯 核心特色
-- 🤖 **多代理協作架構** - 專業化的 AI 代理團隊協同工作
-- 🌐 **多模型靈活支援** - 支援 OpenAI、Anthropic、Gemini、Grok、DeepSeek、Qwen 等多家 LLM 提供商
-- 🔧 **自訂端點配置** - 完整支援自訂 API 端點,可連接任何 OpenAI 兼容的服務
-- 📊 **全方位市場分析** - 完整支援**美股**與**台股**(FinMind)技術面、基本面、情緒面、新聞面分析
-- 🔄 **結構化決策流程** - 透過看漲/看跌辯論機制減少偏見
-- 🧠 **長期記憶系統** - 使用 ChromaDB 向量數據庫儲存歷史決策
-- 🎨 **現代化 Web 介面** - 基於 Next.js 16 的響應式 UI
-- 🔌 **RESTful API** - 完整的後端 API 支援
-- 🐳 **一鍵部署** - 支援 Docker Compose 部署
-- 🔑 **BYOK (Bring Your Own Key)** - 使用者自帶 API 金鑰,保障隱私與成本控制
-- 💰 **JSON 轉 Toon 優化** - 將 JSON 數據轉換為 Toon 格式,大幅降低 API 調用開支 [TOON](https://github.com/toon-format/toon)
-- ⬇️ **一鍵下載報告** - 支援將分析結果匯出為 JSON 檔案,方便保存與分享
-
----
-
-## 🤖 LLM 模型支援
-
-TradingAgentsX 支援業界領先的多家 LLM 提供商,並為每個模型配置**獨立的 API Key 和 Base URL**,實現最大靈活性。
-
-
-
-### 📋 支援的 LLM 提供商矩陣
-
-| 提供商 | 支援模型 | Base URL | 是否支援自訂端點 |
-| ------------------ | ------------------------------------------------------------------------------------------------ | --------------------------------------------------------- | ---------------- |
-| **OpenAI** | GPT-5.1, GPT-5 Mini/Nano, GPT-4.1 Mini/Nano, o4-mini | `https://api.openai.com/v1` | ✅ 是 |
-| **Anthropic** | Claude Haiku 4.5, Claude Sonnet 4.5/4.0, Claude 3.5 Haiku, Claude 3 Haiku | `https://api.anthropic.com/v1` | ✅ 是 |
-| **Gemini** | Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite, Gemini 2.0 Flash, Gemini 2.0 Flash Lite | `https://generativelanguage.googleapis.com/v1beta/openai` | ✅ 是 |
-| **Grok (xAI)** | Grok-4.1 Fast, Grok-4 Fast, Grok-4, Grok-3, Grok-3 Mini | `https://api.x.ai/v1` | ✅ 是 |
-| **DeepSeek** | DeepSeek Reasoner, DeepSeek Chat | `https://api.deepseek.com/v1` | ✅ 是 |
-| **Qwen (Alibaba)** | Qwen3-Max, Qwen-Plus, Qwen Flash | `https://dashscope-intl.aliyuncs.com/compatible-mode/v1` | ✅ 是 |
-| **自訂端點** | 上述列表中的模型 | 使用者自訂 | ✅ 完全支援 |
-
-### 🔧 三層獨立配置
-
-系統支援**三個獨立的 LLM 配置點**,每個都可使用不同的提供商和 API Key:
-
-#### 1️⃣ 快速思維模型 (Quick Thinking)
-
-用於快速分析和即時回應(市場分析師、情緒分析師等)
-
-#### 2️⃣ 深層思維模型 (Deep Thinking)
-
-用於複雜推理和深度分析(研究團隊辯論、風險管理等)
-
-#### 3️⃣ 嵌入模型 (Embedding)
-
-用於向量記憶體系統(ChromaDB 嵌入生成)
-
-**配置示例:**
-
-```yaml
-快速思維: OpenAI GPT-5 Mini @ api.openai.com
-深層思維: Anthropic Claude Sonnet 4.5 @ api.anthropic.com/v1
-嵌入模型: 自訂端點 @ your-custom-endpoint.com
-```
-
-### 🌍 自訂端點支援
-
-**完整支援自訂 API 端點**,任何實現 OpenAI Chat Completions API 規範的服務都可以使用:
-
-✅ **支援場景:**
-
-- 私有化部署的 LLM 服務
-- 第三方 OpenAI 兼容代理
-
-**配置方式:**
-
-1. 在前端表單的 Base URL 輸入框直接輸入自訂 URL
-2. 填入對應的 API Key
-3. 系統自動使用您的端點進行推理
+| 功能 | 說明 |
+|------|------|
+| 🤖 **多代理協作架構** | 12 個專業化 AI 代理(分析師、研究員、交易員、風險管理)協同工作 |
+| 🌐 **多模型支援** | OpenAI、Anthropic、Gemini、Grok、DeepSeek、Qwen 等 LLM 提供商 |
+| 🔒 **Google OAuth 登入** | 雲端同步 API 設定與歷史報告,支援多裝置同步 |
+| 📊 **美股與台股支援** | 完整支援美股(Yahoo Finance)與台股(FinMind)資料 |
+| 🔑 **BYOK 模式** | 使用者自帶 API 金鑰,前端加密儲存,保障隱私 |
+| 🛡️ **安全防護** | Rate Limiting、Security Headers、API Key 遮罩 |
+| 📱 **響應式設計** | 支援桌面與手機瀏覽器 |
+| 🐳 **Docker 部署** | 一鍵啟動前後端服務 |
---
## 🏗️ 系統架構
-TradingAgentsX 採用前後端分離架構,後端使用 FastAPI 提供 RESTful API,前端使用 Next.js 打造現代化的使用者介面。
-
-### 📂 專案結構概覽
-
```
TradingAgentsX/
-├── backend/ # FastAPI 後端服務
-│ ├── __main__.py # 後端應用入口
-│ ├── requirements.txt # Python 依賴列表
-│ └── app/
-│ ├── main.py # FastAPI 應用主程式
-│ ├── api/ # API 路由層
-│ │ ├── routes.py # API 端點定義
-│ │ └── dependencies.py # 依賴注入
-│ ├── core/ # 核心配置
-│ │ ├──config.py # 環境變數與設定
-│ │ └── cors.py # CORS 中間件配置
-│ ├── models/ # 資料模型
-│ │ └── schemas.py # Pydantic 資料結構
-│ └── services/ # 業務邏輯層
-│ ├── trading_service.py # TradingAgentsX 核心整合
-│ └── task_manager.py # 異步任務管理
-
-├── frontend/ # Next.js 前端應用
-│ ├── app/ # Next.js App Router
-│ │ ├── layout.tsx # 根佈局組件
+├── frontend/ # Next.js 16 前端應用
+│ ├── app/ # App Router 頁面
│ │ ├── page.tsx # 首頁
-│ │ └── analysis/ # 分析功能模組
-│ │ ├── page.tsx # 分析配置頁面
-│ │ └── results/ # 分析結果展示頁面
-│ ├── components/ # React 組件庫
+│ │ ├── analysis/ # 分析功能
+│ │ ├── history/ # 歷史報告
+│ │ ├── auth/ # OAuth 回調
+│ │ └── api/ # API 路由(config, auth)
+│ ├── components/ # React 組件
│ │ ├── analysis/ # 分析相關組件
-│ │ │ ├── AnalysisForm.tsx # 參數配置表單
-│ │ │ ├── TradingDecision.tsx # 交易決策卡片
-│ │ │ ├── AnalystReport.tsx # 分析師報告展示
-│ │ │ └── PriceChart.tsx # 股價圖表組件
-│ │ ├── layout/ # 佈局組件
-│ │ │ ├── Header.tsx # 頂部導航欄
-│ │ │ └── Footer.tsx # 頁腳
+│ │ ├── auth/ # 登入按鈕、登入提示
+│ │ ├── layout/ # Header、Footer
+│ │ ├── settings/ # API 設定對話框
│ │ └── ui/ # shadcn/ui 基礎組件
-│ ├── hooks/ # 自定義 React Hooks
-│ │ ├── useAnalysis.ts # 分析請求管理
-│ │ └── useConfig.ts # 配置資料獲取
-│ └── lib/ # 工具函式庫
-│ ├── api.ts # API 客戶端封裝
-│ ├── types.ts # TypeScript 型別定義
-│ └── utils.ts # 通用輔助函式
-
-└── tradingagents/ # 核心 Python 套件
+│ ├── contexts/ # React Context(認證狀態)
+│ ├── hooks/ # 自定義 Hooks
+│ └── lib/ # 工具函式(API、加密、儲存)
+│
+├── backend/ # FastAPI 後端服務
+│ └── app/
+│ ├── main.py # 應用入口(中間件、路由)
+│ ├── api/ # API 路由
+│ │ ├── routes.py # 分析 API
+│ │ ├── auth.py # Google OAuth
+│ │ └── user.py # 使用者資料同步
+│ ├── core/ # 配置、CORS
+│ ├── db/ # PostgreSQL 資料庫
+│ ├── models/ # Pydantic 模型
+│ └── services/ # 業務邏輯
+│
+└── tradingagents/ # 核心 AI 代理套件
├── agents/ # AI 代理定義
- ├── dataflows/ # 資料流處理
+ │ ├── analysts/ # 分析師團隊
+ │ ├── researchers/ # 研究團隊
+ │ ├── trader/ # 交易員
+ │ ├── risk_mgmt/ # 風險管理團隊
+ │ └── managers/ # 經理決策者
+ ├── dataflows/ # 資料獲取與處理
├── graph/ # LangGraph 工作流
└── default_config.py # 預設配置
```
-### 🔧 後端技術棧
+---
-| 技術 | 用途 | 版本 |
-| ----------------- | ---------------------- | -------- |
-| **FastAPI** | 現代化異步 Web 框架 | ≥0.104.0 |
-| **Pydantic** | 資料驗證與序列化 | ≥2.9.0 |
-| **LangGraph** | 多代理工作流編排引擎 | ≥0.4.8 |
-| **LangChain** | LLM 應用開發框架 | Latest |
-| **ChromaDB** | 向量資料庫(記憶系統) | ≥1.0.12 |
-| **yfinance** | 股票市場資料獲取 | ≥0.2.63 |
-| **Uvicorn** | ASGI 伺服器 | ≥0.24.0 |
-| **python-dotenv** | 環境變數管理 | 1.0.0 |
-| **Redis** | 任務隊列與緩存 | Latest |
+## 🤖 AI 代理團隊
-#### 其他整合
+### 分析師團隊 (4 位)
+| 代理 | 職責 | 輸出 |
+|------|------|------|
+| 市場分析師 | 技術分析 | RSI、MACD、布林通道、支撐阻力位 |
+| 社群媒體分析師 | 情緒評估 | Reddit/Twitter 情緒指標、投資者信心 |
+| 新聞分析師 | 新聞分析 | 最新新聞摘要、事件影響評估 |
+| 基本面分析師 | 財務分析 | 財報數據、P/E、P/B、盈利能力 |
-- **stockstats**: 技術指標計算
-- **feedparser**: RSS 新聞抓取
-- **praw**: Reddit 社群情緒分析
-- **finnhub-python**: 金融資料 API
-- **beautifulsoup4**: 網頁內容解析
+### 研究團隊 (3 位)
+| 代理 | 職責 |
+|------|------|
+| 看漲研究員 | 多頭觀點論證、上漲催化劑分析 |
+| 看跌研究員 | 空頭觀點論證、下跌風險警告 |
+| 研究經理 | 綜合看漲與看跌觀點的決策 |
-### 🎨 前端技術棧
-
-| 技術 | 用途 | 版本 |
-| ------------------- | -------------------------- | ------ |
-| **Next.js** | React 全端框架 | 16.x |
-| **TypeScript** | 靜態型別檢查 | Latest |
-| **Tailwind CSS** | 實用優先的 CSS 框架 | Latest |
-| **shadcn/ui** | 可高度客製化的 UI 組件庫 | Latest |
-| **React Hook Form** | 高效能表單管理 | Latest |
-| **Zod** | TypeScript 優先的結構驗證 | Latest |
-| **Recharts** | 資料視覺化圖表庫 | Latest |
-| **Axios** | Promise 基礎的 HTTP 客戶端 | Latest |
-| **react-markdown** | Markdown 內容渲染 | Latest |
+### 交易與風險團隊 (5 位)
+| 代理 | 職責 |
+|------|------|
+| 交易員 | 整合所有報告,制定交易計劃 |
+| 激進分析師 | 高風險高回報策略分析 |
+| 保守分析師 | 穩健保守策略與風險控制 |
+| 中立分析師 | 中立平衡策略評估 |
+| 風險經理 | 風險管理綜合決策與最終建議 |
---
## 🚀 快速開始
-### 📋 前置要求
+### 前置要求
-在開始之前,請確保您的系統已安裝以下軟體:
+- **Python** 3.10+
+- **Node.js** 18.x+
+- **pnpm** 或 npm
-- **Python** 3.10 或更高版本
-- **Node.js** 18.x 或更高版本
-- **pnpm** 最新版本(推薦)或 npm
-- **Conda** (可選,但強烈推薦用於 Python 環境管理)
-- **Git** 用於克隆專案
+### 必要的 API 金鑰
-#### 必要的 API 金鑰
+| API | 用途 | 申請網址 |
+|-----|------|----------|
+| OpenAI | GPT 模型 | https://platform.openai.com/api-keys |
+| Alpha Vantage(選填) | 美股基本面資料 | https://www.alphavantage.co/support/#api-key |
+| FinMind(選填) | 台股資料 | https://finmindtrade.com/ |
-根據您選擇的 LLM 提供商,準備相應的 API 金鑰:
-
-- **OpenAI API Key** - GPT 系列模型
- - 申請網址: https://platform.openai.com/api-keys
-- **Anthropic API Key** - Claude 系列模型
- - 申請網址: https://console.anthropic.com
-- **Grok API Key** - Grok 系列模型
- - 申請網址: https://console.x.ai
-- **DeepSeek API Key** - DeepSeek 系列模型
- - 申請網址: https://platform.deepseek.com
-- **Qwen API Key** - Qwen 系列模型
- - 申請網址: https://www.alibabacloud.com
-- **Alpha Vantage API Key** (必需) - 美股基本面資料
- - 申請網址: https://www.alphavantage.co/support/#api-key
-- **FinMind API Key** (選填) - 台股上市櫃資料
- - 申請網址: https://finmindtrade.com/
-
-> 💡 **提示**: 本系統採用 BYOK (Bring Your Own Key) 模式,您可以在前端介面直接輸入 API 金鑰,無需設定環境變數(適合快速測試)。
-
-### 📥 安裝步驟
+### 安裝步驟
#### 1️⃣ 克隆專案
@@ -246,449 +139,175 @@ cd TradingAgentsX
#### 2️⃣ 後端設置
-##### 2.1 創建 Python 虛擬環境
-
-**使用 Conda (推薦)**
-
```bash
+# 創建虛擬環境
conda create -n tradingagents python=3.13
conda activate tradingagents
-```
-**或使用 venv**
-
-```bash
-python3 -m venv tradingagents
-source tradingagents/bin/activate # macOS/Linux
-# 或
-tradingagents\Scripts\activate # Windows
-```
-
-##### 2.2 安裝 Python 依賴
-
-```bash
-# 安裝 TradingAgentsX 核心套件
+# 安裝依賴
pip install -e .
-
-# 安裝後端 API 依賴
pip install -r backend/requirements.txt
-```
-##### 2.3 配置環境變數(可選)
-
-複製範例環境變數檔案並編輯:
-
-```bash
+# 配置環境變數
cp .env.example .env
-```
+# 編輯 .env 填入 API 金鑰
-編輯 `.env` 檔案,填入您的 API 金鑰:
-
-```bash
-# ============ LLM API 金鑰配置 ============
-# OpenAI (可選 - 可在前端直接輸入)
-OPENAI_API_KEY=sk-your-openai-api-key-here
-
-# Anthropic Claude (可選)
-ANTHROPIC_API_KEY=sk-ant-your-claude-key
-
-# Grok / xAI (可選)
-XAI_API_KEY=your-grok-key
-
-# DeepSeek (可選)
-DEEPSEEK_API_KEY=your-deepseek-key
-
-# Qwen / Alibaba Cloud (可選)
-DASHSCOPE_API_KEY=your-qwen-key
-
-# Alpha Vantage (建議配置)
-ALPHA_VANTAGE_API_KEY=
-
-# FinMind (選填 - 用於台股)
-FINMIND_API_KEY=
-
-# ============ 後端服務配置 ============
-BACKEND_HOST=0.0.0.0
-BACKEND_PORT=8000
-
-# ============ CORS 配置 ============
-CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
-
-# ============ 資料儲存配置 ============
-TRADINGAGENTS_RESULTS_DIR=./results
-```
-
-> 📝 **注意**: 環境變數中的 API Key 為可選配置。您可以在前端表單中直接輸入,系統會優先使用前端輸入的 Key。
-
-##### 2.4 啟動後端服務
-
-```bash
-# 從專案根目錄執行(開發模式,啟用 hot reload)
+# 啟動後端
python -m backend
-
-# 生產模式(停用 hot reload,避免任務丟失)
-python -m backend --reload false
```
-✅ 後端服務成功啟動後,您可以訪問:
-
-- **應用根目錄**: http://localhost:8000
-- **API 互動式文檔 (Swagger UI)**: http://localhost:8000/docs
-- **API 文檔 (ReDoc)**: http://localhost:8000/redoc
-- **健康檢查端點**: http://localhost:8000/api/health
+後端服務:
+- API: http://localhost:8000
+- Swagger 文檔: http://localhost:8000/docs
#### 3️⃣ 前端設置
-##### 3.1 安裝前端依賴
-
```bash
-# 使用 pnpm (推薦)
+# 安裝依賴
pnpm -C frontend install
-# 或使用 npm
-npm --prefix frontend install
-```
-
-##### 3.2 配置前端環境變數 (可選)
-
-如果您需要自訂 API 端點,可以建立 `frontend/.env.local`:
-
-```bash
-NEXT_PUBLIC_API_URL=http://localhost:8000
-```
-
-> 💡 預設情況下,前端會自動連接到 `http://localhost:8000`
-
-##### 3.3 啟動前端開發伺服器
-
-```bash
-# 使用 pnpm (推薦)
+# 啟動開發伺服器
pnpm -C frontend dev
-
-# 或使用 npm
-npm --prefix frontend run dev
```
-✅ 前端應用成功啟動後,訪問:
-
-- **應用首頁**: http://localhost:3000
+前端應用: http://localhost:3000
---
-## 🐳 部署方案
-
-### Docker Compose 本地部署
-
-最簡單的部署方式,一鍵啟動前後端服務:
-
-**前置要求:**
-
-- Docker Engine 20.10+
-- Docker Compose V2
-
-**部署步驟:**
+## 🐳 Docker 部署
```bash
-# 1. 確保 .env 文件已配置(至少包含 Alpha Vantage API Key)
+# 配置環境變數
cp .env.example .env
-# 編輯 .env,填入必要的 API 金鑰
-# 2. 啟動所有服務(首次執行會自動構建映像)
+# 啟動服務
docker compose up -d --build
-# 3. 查看服務運行狀態
-docker compose ps
-
-# 4. 查看即時日誌
+# 查看日誌
docker compose logs -f
-
-# 5. 查看特定服務日誌
-docker compose logs -f backend
-docker compose logs -f frontend
-
-# 停止服務
-docker compose down
-
-# 停止服務並清除資料卷
-docker compose down -v
```
-**Docker Compose 配置說明**:
+服務端口:
+- 後端: http://localhost:8000
+- 前端: http://localhost:3000
-- 後端服務運行於: `http://localhost:8000`
-- 前端服務運行於: `http://localhost:3000`
-- 分析結果會持久化儲存在 `./results` 目錄
-- 環境變數從 `.env` 文件自動載入
+---
+
+## 🔒 安全特性
+
+### 本地開發 vs 生產環境
+
+| 功能 | 本地開發 (localhost) | 生產環境 (Railway 等) |
+|------|----------------------|----------------------|
+| Google 登入 | 選用(可不設定) | 建議啟用 |
+| 資料自動清除 | ❌ 不會清除 | ✅ 未登入時離開會清除 |
+| PostgreSQL | 選用 | 必需 |
+| API 設定儲存 | 永久保留 | 登入後雲端同步 |
+| 歷史報告儲存 | 永久保留 | 登入後雲端同步 |
+
+### 前端安全
+
+- **API Key 加密儲存** - 使用 AES-GCM 加密 localStorage 中的敏感資料
+- **自動清除(僅生產環境)** - 未登入用戶離開頁面時自動清除本地資料
+- **Safari 觸控優化** - 修復 iOS Safari 的觸控事件問題
+
+### 後端安全
+- **Rate Limiting** - 每分鐘 30 次請求限制
+- **Security Headers** - X-Content-Type-Options、X-Frame-Options 等
+- **敏感資料遮罩** - API Key 在日誌中自動遮罩
+- **CORS 配置** - 限制跨域請求來源
+
+### 雲端同步
+- **Google OAuth 2.0** - 安全的第三方登入
+- **JWT Token** - 無狀態認證
+- **雲端備份** - API 設定與歷史報告同步到伺服器
---
## 📱 使用指南
-### 基本工作流程
+### 1. 配置 API 金鑰
+點擊右上角「設定」按鈕,輸入您的 API 金鑰。
-1. **訪問首頁**
+### 2. 選擇分析參數
+- **市場類型**: 美股 / 台股上市 / 台股上櫃
+- **股票代碼**: 如 NVDA、2330
+- **分析師團隊**: 選擇需要的分析師
+- **研究深度**: 淺層(快速)/ 中等 / 深層(詳細)
+- **LLM 模型**: 快速思維模型 + 深層思維模型
- - 開啟瀏覽器,訪問 http://localhost:3000
- - 查看系統介紹與功能說明
+### 3. 執行分析
+點擊「執行分析」,等待 1-5 分鐘(依研究深度而定)。
-2. **進入分析頁面**
+### 4. 查看結果
+- **交易決策摘要** - BUY / SELL / HOLD 建議
+- **股價走勢圖** - 折線圖 / K 線圖切換
+- **12 位代理報告** - 點擊標籤查看詳細分析
- - 點擊首頁的「開始分析」按鈕
- - 或直接訪問 http://localhost:3000/analysis
-
-3. **配置分析參數**
-
- #### 📊 基本設定
-
- - **選擇分析師團隊**: 勾選您需要的分析師類型
-
- - ✅ 市場分析師 (Market Analyst) - 技術分析與價格走勢
- - ✅ 情緒分析師 (Sentiment Analyst) - 社交媒體情緒評估
- - ✅ 新聞分析師 (News Analyst) - 新聞事件影響分析
- - ✅ 基本面分析師 (Fundamental Analyst) - 財務數據與估值分析
-
- - **輸入股票代碼**: 例如 `NVDA`, `AAPL`, `TSLA`, `GOOGL`
-
- - 支援美股股票代號
-
- - **選擇分析日期**: 選擇要分析的特定日期
-
- - 預設為當前日期
-
- - **設定研究深度**:
- - 🟢 **淺層 (Shallow)**: 快速分析,適合即時決策
- - 🟡 **中等 (Medium)**: 平衡速度與深度
- - 🔴 **深層 (Deep)**: 全面深入分析,耗時較長
-
- #### 🤖 LLM 模型配置
-
- 系統提供**三個獨立的 LLM 配置選項**,每個都可使用不同的提供商:
-
- **1. 快速思維模型配置**
-
- - **模型選擇**: 從下拉選單選擇模型(OpenAI, Anthropic, Grok, DeepSeek, Qwen)
- - **Base URL**: 直接輸入自訂端點 URL(例如:`https://api.your-custom-endpoint.com/v1`)
- - **API Key**: 輸入對應的 API 金鑰
-
- **2. 深層思維模型配置**
-
- - **模型選擇**: 可選擇與快速思維不同的模型
- - **Base URL**: 支援不同的端點
- - **API Key**: 支援不同的金鑰
-
- **3. 嵌入模型配置**
-
- - **Base URL**: 下拉選擇 OpenAI 或自訂端點
- - **API Key**: 若留空則使用環境變數 `OPENAI_API_KEY`
-
- **配置示例:**
-
- ```
- 快速思維模型: gpt-5-mini
- 快速思維 Base URL: https://api.openai.com/v1
- 快速思維 API Key: sk-your-openai-key
-
- 深層思維模型: claude-sonnet-4-5
- 深層思維 Base URL: https://api.anthropic.com/v1
- 深層思維 API Key: sk-ant-your-claude-key
-
- 嵌入模型 Base URL: 自訂 → https://api.your-embedding-service.com/v1
- 嵌入模型 API Key: your-embedding-key
- ```
-
- > 💡 **靈活性**: 您可以混合使用不同提供商的模型,例如用 OpenAI 做快速分析,用 Claude 做深度推理,用自訂端點做嵌入生成。
-
- #### 🔑 API 金鑰配置
-
- - **Alpha Vantage API Key** (必填): 用於獲取美股基本面數據
- - **FinMind API Key** (選填): 用於獲取台股數據
- - 如未在環境變數中配置 LLM API Key,需在此填入
-
-4. **執行分析**
-
- - 檢查所有參數無誤後,點擊「執行分析」按鈕
- - 系統會顯示載入動畫,處理時間依研究深度而定(1-5 分鐘)
-
-5. **查看分析結果**
-
- - 分析完成後自動跳轉至結果頁面
- - 結果包含以下內容:
-
- **📊 交易決策摘要**
-
- - 最終決策: BUY / SELL / HOLD
- - 建議倉位大小
- - 風險等級評估
- - 核心理由總結
-
- **📈 股價走勢圖表**
-
- - 互動式價格圖表(支援折線圖/K 線圖切換)
- - 交易量變化
- - 關鍵技術指標
-
- **📄 各分析師詳細報告**
-
- 系統提供 **12 個專業代理** 的完整分析報告,分為四大團隊:
-
- **分析師團隊 (4)**
-
- - 市場分析師: 技術面分析與趨勢判斷
- - 社群媒體分析師: 社群媒體情緒指標
- - 新聞分析師: 最新新聞事件影響評估
- - 基本面分析師: 財務健康度與估值分析
-
- **研究團隊 (3)**
-
- - 看漲研究員: 多頭觀點論證與上漲催化劑分析
- - 看跌研究員: 空頭觀點論證與下跌風險警告
- - 研究經理: 綜合看漲與看跌觀點的研究決策
-
- **交易團隊 (1)**
-
- - 交易員: 整合所有報告的交易執行計劃
-
- **風險管理團隊 (4)**
-
- - 激進分析師: 高風險高回報策略分析
- - 保守分析師: 穩健保守策略與風險控制
- - 中立分析師: 中立平衡策略評估
- - 風險經理: 風險管理綜合決策與最終建議
-
-### API 使用範例
-
-如果您想要透過 API 整合 TradingAgentsX,可以參考以下範例:
-
-#### 健康檢查
-
-```bash
-curl http://localhost:8000/api/health
-```
-
-#### 執行股票分析(使用自訂端點)
-
-```bash
-curl -X POST http://localhost:8000/api/analyze \
- -H "Content-Type: application/json" \
- -d '{
- "ticker": "NVDA",
- "analysis_date": "2024-01-15",
- "research_depth": 2,
- "deep_think_llm": "claude-sonnet-4-5",
- "quick_think_llm": "gpt-5-mini",
- "analysts": ["market", "sentiment", "news", "fundamental"],
- "quick_think_base_url": "https://api.openai.com/v1",
- "deep_think_base_url": "https://api.anthropic.com/v1",
- "embedding_base_url": "https://api.openai.com/v1",
- "quick_think_api_key": "sk-your-openai-key",
- "deep_think_api_key": "sk-ant-your-claude-key",
- "embedding_api_key": "sk-your-embedding-key",
- "alpha_vantage_api_key": "your-alpha-vantage-key"
- }'
-```
-
-#### 獲取股價資料
-
-```bash
-curl "http://localhost:8000/api/price-data/NVDA?start_date=2024-01-01&end_date=2024-01-31"
-```
-
-完整的 API 文檔請訪問: http://localhost:8000/docs
+### 5. 儲存與下載
+- **儲存報告** - 保存到本地 / 雲端
+- **下載報告** - 匯出為 JSON 檔案
---
-## 🧠 核心功能詳解
+## 🔌 API 文檔
-### 多代理協作系統
-
-TradingAgentsX 模擬真實交易公司的組織架構,每個代理都有其專業職責:
-
-| 代理角色 | 主要職責 | 輸出內容 |
-| ---------------- | -------- | ----------------------------------------------------- |
-| **市場分析師** | 技術分析 | 技術指標(RSI, MACD, 布林通道)、價格走勢、支撐阻力位 |
-| **情緒分析師** | 情緒評估 | Reddit/Twitter 情緒指標、熱度趨勢、投資者信心指數 |
-| **新聞分析師** | 新聞分析 | 最新新聞摘要、事件影響評估、市場反應預測 |
-| **基本面分析師** | 財務分析 | 財報數據、估值指標(P/E, P/B)、盈利能力評估 |
-| **看漲研究員** | 多頭論證 | 看漲理由、上漲催化劑、目標價位 |
-| **看跌研究員** | 空頭論證 | 看跌理由、下跌風險、防守策略 |
-| **交易員** | 決策整合 | 綜合所有報告,制定交易計劃 |
-| **風險管理** | 風險控制 | 風險評估、倉位建議、止損止盈設定 |
-| **投資組合經理** | 最終決策 | 最終交易決定(批准/拒絕),執行指令 |
-
-### 工作流程圖
-
-```
-┌─────────────────┐
-│ 使用者輸入參數 │
-└────────┬────────┘
- │
- ▼
-┌─────────────────┐
-│ 資料收集階段 │ ◄── yfinance, Reddit, RSS
-└────────┬────────┘
- │
- ▼
-┌──────────────────────────────┐
-│ 分析師團隊平行分析 │
-│ ┌────┬────┬────┬────────┐ │
-│ │市場│情緒│新聞│基本面│ │
-│ └────┴────┴────┴────────┘ │
-└────────┬─────────────────────┘
- │
- ▼
-┌─────────────────┐
-│ 研究團隊辯論 │
-│ 看漲 vs 看跌 │
-└────────┬────────┘
- │
- ▼
-┌─────────────────┐
-│ 交易員整合分析 │
-└────────┬────────┘
- │
- ▼
-┌─────────────────┐
-│ 風險管理評估 │
-└────────┬────────┘
- │
- ▼
-┌─────────────────┐
-│ 投資組合經理決策 │
-└────────┬────────┘
- │
- ▼
-┌─────────────────┐
-│ 輸出最終報告 │
-└─────────────────┘
+### 健康檢查
+```bash
+GET /api/health
```
-### 智能特性
+### 執行分析
+```bash
+POST /api/analyze
+Content-Type: application/json
-#### 1. 動態研究深度調整
+{
+ "ticker": "NVDA",
+ "market_type": "us",
+ "analysis_date": "2024-01-15",
+ "research_depth": 2,
+ "analysts": ["market", "social", "news", "fundamentals"],
+ "quick_think_llm": "gpt-5-mini",
+ "deep_think_llm": "claude-sonnet-4-5",
+ "quick_think_api_key": "sk-...",
+ "deep_think_api_key": "sk-ant-...",
+ "embedding_api_key": "sk-...",
+ "alpha_vantage_api_key": "..."
+}
+```
-- **Shallow (1)**: 每個代理進行 1 輪分析,適合快速決策
-- **Medium (2)**: 每個代理進行 2 輪分析,平衡深度與速度
-- **Deep (3+)**: 每個代理進行 3+ 輪分析,全面深入研究
+### 查詢任務狀態
+```bash
+GET /api/task/{task_id}
+```
-#### 2. 長期記憶系統
+完整文檔: http://localhost:8000/docs
-- 使用 ChromaDB 向量資料庫儲存歷史決策
-- 代理可以參考過去類似情況的決策
-- 持續學習與改進分析品質
+---
-#### 3. 結構化輸出
+## 🛠️ 技術棧
-- 所有報告均採用 Markdown 格式
-- 清晰的章節結構
-- 支援表格、列表、程式碼區塊等豐富格式
+### 後端
+| 技術 | 用途 |
+|------|------|
+| FastAPI | 異步 Web 框架 |
+| LangGraph | 多代理工作流編排 |
+| LangChain | LLM 應用開發 |
+| ChromaDB | 向量資料庫(記憶系統)|
+| PostgreSQL | 使用者資料儲存 |
+| SQLAlchemy + asyncpg | 異步資料庫 ORM |
+| Pydantic | 資料驗證 |
-#### 4. 實時資料整合
-
-- yfinance: 即時股價與歷史資料
-- Reddit API: 社群情緒分析
-- RSS Feeds: 財經新聞抓取
-- Alpha Vantage: 美股詳細財務資料(必需)
-- FinMind: 台股上市櫃資料 integration (https://finmindtrade.com)
+### 前端
+| 技術 | 用途 |
+|------|------|
+| Next.js 16 | React 全端框架 |
+| TypeScript | 靜態型別 |
+| Tailwind CSS | 樣式框架 |
+| shadcn/ui | UI 組件庫 |
+| Dexie.js | IndexedDB 封裝 |
+| Recharts | 資料視覺化 |
---
@@ -843,21 +462,12 @@ TradingAgentsX 模擬真實交易公司的組織架構,每個代理都有其
## 🙏 致謝
-### 特別感謝
-
-本專案基於 [TauricResearch/TradingAgents](https://github.com/TauricResearch/TradingAgents) 的原始專案進行改進和擴展。衷心感謝原作者創建了如此優秀的多代理交易分析框架,為我們提供了堅實的基礎。
-
-### 使用的開源專案
-
-本專案使用了以下優秀的開源專案:
-
-- [LangChain](https://github.com/langchain-ai/langchain) - LLM 應用開發框架
-- [LangGraph](https://github.com/langchain-ai/langgraph) - 多代理工作流編排
-- [FastAPI](https://github.com/tiangolo/fastapi) - 現代化 Python Web 框架
-- [Next.js](https://github.com/vercel/next.js) - React 全端框架
-- [shadcn/ui](https://github.com/shadcn/ui) - 精美的 React 組件庫
-- [ChromaDB](https://github.com/chroma-core/chroma) - AI 原生向量資料庫
-- [yfinance](https://github.com/ranaroussi/yfinance) - Yahoo Finance 資料下載工具
+- [TauricResearch/TradingAgents](https://github.com/TauricResearch/TradingAgents) - 原始專案
+- [LangChain](https://github.com/langchain-ai/langchain) - LLM 應用框架
+- [LangGraph](https://github.com/langchain-ai/langgraph) - 多代理編排
+- [FastAPI](https://github.com/tiangolo/fastapi) - Web 框架
+- [Next.js](https://github.com/vercel/next.js) - React 框架
+- [shadcn/ui](https://github.com/shadcn/ui) - UI 組件庫
---
diff --git a/backend/app/main.py b/backend/app/main.py
index 69c13e00..20322a47 100644
--- a/backend/app/main.py
+++ b/backend/app/main.py
@@ -165,13 +165,9 @@ async def startup_event():
@app.get("/")
async def root():
- """Root endpoint"""
- return {
- "message": "Welcome to TradingAgentsX API",
- "version": settings.app_version,
- "docs": "/docs",
- "health": "/api/health",
- }
+ """Root endpoint - redirect to API documentation"""
+ from fastapi.responses import RedirectResponse
+ return RedirectResponse(url="/docs")
@app.exception_handler(Exception)
diff --git a/frontend/contexts/auth-context.tsx b/frontend/contexts/auth-context.tsx
index 88f8cdd2..da16acaf 100644
--- a/frontend/contexts/auth-context.tsx
+++ b/frontend/contexts/auth-context.tsx
@@ -111,11 +111,25 @@ export function AuthProvider({ children }: { children: ReactNode }) {
}, [parseToken, isTokenExpired]);
// Auto-clear local data when unauthenticated user leaves the page
+ // Only applies in production environment (not localhost)
useEffect(() => {
if (typeof window === "undefined") return;
+ // Check if running in local development mode
+ const isLocalDevelopment =
+ window.location.hostname === "localhost" ||
+ window.location.hostname === "127.0.0.1" ||
+ window.location.hostname.startsWith("192.168.") ||
+ window.location.hostname.startsWith("10.");
+
+ // Skip auto-clear in local development to preserve data
+ if (isLocalDevelopment) {
+ console.log("Local development mode: data will be preserved on page leave");
+ return;
+ }
+
const handleBeforeUnload = () => {
- // Only clear data if user is not authenticated
+ // Only clear data if user is not authenticated (production only)
const currentToken = localStorage.getItem(TOKEN_KEY);
if (!currentToken) {
// Clear API settings (synchronous)