diff --git a/.kiro/steering/product.md b/.kiro/steering/product.md new file mode 100644 index 00000000..626084a6 --- /dev/null +++ b/.kiro/steering/product.md @@ -0,0 +1,29 @@ + +# 製品概要: TradingAgents + +## 1. 製品説明 +TradingAgentsは、金融取引の研究用に設計されたマルチエージェント大規模言語モデル(LLM)フレームワークです。専門のAIエージェントチームを展開し、現実のトレーディング会社の構造とダイナミクスをシミュレートします。これらのエージェントが協力して市場状況を分析し、取引の意思決定を行います。 + +このフレームワークは、エージェントベースの金融分析と戦略実行の研究を可能にするため、モジュール式で拡張可能に構築されています。 + +## 2. 主要な機能 +- **マルチエージェント連携**: それぞれが異なる役割を持つ専門エージェントのチームを展開し、市場を分析して取引戦略を策定します。 +- **アナリストチーム**: ファンダメンタル、センチメント、ニュース、テクニカル分析を行うエージェントが含まれます。 +- **リサーチャーチーム**: 強気(ブル)と弱気(ベア)のリサーチャーがアナリストの調査結果について議論し、リスクと機会を特定します。 +- **トレーダーエージェント**: 全チームからの情報を統合し、具体的な取引行動(買い、売り、保留)を策定・提案します。 +- **リスク管理チーム**: トレーダーの計画を異なるリスク観点(積極的、中立、保守的)から評価する専門エージェントチームです。 +- **ポートフォリオマネージャー**: 包括的な分析とリスク評価に基づき、取引を承認または拒否する最終意思決定エージェントです。 +- **対話型CLI**: 特定の株式や日付に関する分析を実行するためのコマンドラインインターフェースです。 +- **Pythonパッケージ**: ライブラリとして他のPythonアプリケーションに統合できます。 +- **設定可能なデータソース**: 複数のデータベンダー(例:Alpha Vantage, yfinance)をサポートし、ユーザーが設定可能です。 + +## 3. 対象となるユースケース +TradingAgentsの主なユースケースは**金融AI研究**です。以下のためのサンドボックスを提供します: +- 金融分析のためのマルチエージェントシステムアーキテクチャの開発とテスト。 +- 複雑な意思決定ワークフローにおけるLLMの有効性の評価。 +- 協調的な取引戦略のシミュレーションと分析。 + +**これは金融、投資、または取引に関するアドバイスを目的としたものではありません。** + +## 4. 主要な価値提案 +TradingAgentsの主要な価値は、**複雑な取引タスクを専門的で協調的な役割に分解すること**です。これは人間の専門家チームを模倣しており、自動化された市場分析と意思決定研究に対して、より堅牢でスケーラブル、かつ透明性の高いアプローチを可能にします。 \ No newline at end of file diff --git a/.kiro/steering/structure.md b/.kiro/steering/structure.md new file mode 100644 index 00000000..4de99417 --- /dev/null +++ b/.kiro/steering/structure.md @@ -0,0 +1,49 @@ + +# プロジェクト構造: TradingAgents + +## 1. ルートディレクトリの構成 +プロジェクトのルートには、メインのアプリケーションパッケージ、CLI、ドキュメント、および設定ファイルが含まれています。 + +- **`tradingagents/`**: フレームワークのコアとなるPythonソースコードで、インストール可能なパッケージとして構成されています。 +- **`cli/`**: 対話型のコマンドラインインターフェースのソースコードが含まれています。 +- **`main.py`**: `tradingagents`パッケージをプログラム的に使用する方法を示す簡単なスクリプトです。 +- **`test.py`**: 特定の機能をテストするためのスクリプトです。 +- **`assets/`**: `README.md`やドキュメントで使用される画像、スキーマ、その他の静的アセットが含まれています。 +- **`.kiro/`**: Kiroのスペック駆動開発用のファイルディレクトリで、ステアリングドキュメントや仕様書が含まれます。 +- **`.gemini/`**: Gemini CLIのコマンド定義用ディレクトリです。 +- **`requirements.txt` / `pyproject.toml`**: Pythonの依存関係管理ファイルです。 +- **`README.md`**: プロジェクトのメインドキュメントです。 + +## 2. サブディレクトリの構造 + +### `tradingagents/` +これがメインのパッケージディレクトリです。 +- **`agents/`**: すべての個別のAIエージェントのロジックが含まれています。 + - `analysts/`: 特定の種類のデータ(市場、ニュースなど)を収集・分析するエージェント。 + - `researchers/`: アナリストの調査結果について議論するエージェント(ブルとベア)。 + - `managers/`: 議論を進行させ、高レベルの意思決定を行うエージェント(リサーチマネージャー、リスクマネージャー)。 + - `trader/`: 最終的な取引計画を策定するエージェント。 + - `risk_mgmt/`: トレーダーの計画を異なるリスク観点から分析するエージェント。 + - `utils/`: エージェント用の共有ユーティリティ。状態定義(`agent_states.py`)、メモリ(`memory.py`)、ツール定義など。 +- **`dataflows/`**: 外部およびローカルのデータソースとのすべてのやり取りを管理します。 + - `interface.py`: プロジェクトの設定に基づいてデータリクエストを適切なベンダー(例:Alpha Vantage, yfinance, local)にルーティングする重要なファイル。これにより、データバックエンドの構成が非常に柔軟になります。 + - `alpha_vantage.py`, `y_finance.py`など: ベンダー固有のデータ取得実装。 + - `config.py`: データベンダーの設定を管理します。 +- **`graph/`**: LangGraphワークフローの構造とロジックを定義します。 + - `trading_graph.py`: エージェントグラフ全体を構築し、オーケストレーションするメインファイル。 + - `setup.py`: グラフのノードとエッジの設定を処理します。 + - `conditional_logic.py`: グラフ内の条件付きエッジのルーティングロジックを定義します(例:議論をいつ終了するかを決定する)。 + - `propagation.py`: グラフの初期状態の作成を管理します。 + - `reflection.py`: エージェントが過去の決定を振り返るためのロジックを実装します。 + +### `cli/` +- **`main.py`**: `typer`で構築されたコマンドラインアプリケーションのエントリーポイント。 +- **`utils.py`**: CLIのヘルパー関数。対話型プロンプト(`questionary`)など。 +- **`models.py`**: CLIで使用されるPydanticモデルやEnum。 +- **`static/`**: ウェルカムメッセージなどの静的テキストファイル。 + +## 3. 主要なアーキテクチャ原則 +- **モジュール性と関心の分離**: プロジェクトは、エージェントのロジック(`agents/`)、データアクセス(`dataflows/`)、オーケストレーション(`graph/`)を分離するように構成されています。これにより、他の部分に影響を与えることなく、単一の部分を簡単に修正または拡張できます。 +- **状態駆動のワークフロー**: プロセス全体が状態グラフ(`AgentState`)によって管理され、各ステップが次のノードに渡される状態を変更します。これにより、明確で追跡可能な実行フローが提供されます。 +- **設定可能なデータ抽象化**: `dataflows/interface.py`は、エージェントを特定のデータベンダーから切り離す強力な抽象化レイヤーを提供します。これにより、ユーザーはバックテストやコスト削減のために、ライブAPIとローカルデータを簡単に切り替えることができます。 +- **リフレクティブメモリ**: エージェントは、過去のパフォーマンスから学ぶためにリフレクション(振り返り)メカニズムを通じて設計されています。これにより、将来の参照のためにベクトルデータベース(`chromadb`)に洞察が保存されます。 \ No newline at end of file diff --git a/.kiro/steering/tech.md b/.kiro/steering/tech.md new file mode 100644 index 00000000..4a52c871 --- /dev/null +++ b/.kiro/steering/tech.md @@ -0,0 +1,49 @@ + +# 技術スタック: TradingAgents + +## 1. アーキテクチャ +TradingAgentsフレームワークは、**LangGraph**を使用したステートフルなグラフアーキテクチャ上に構築された**マルチエージェントシステム**です。これにより、異なるエージェントを簡単に追加、削除、または再設定できる柔軟でモジュール式のワークフローが可能になります。情報と制御の流れはグラフによって管理され、エージェントノード間で状態が渡されます。 + +## 2. バックエンドとコアロジック +- **言語**: Python (バージョン 3.10) +- **コアフレームワーク**: エージェントの作成とオーケストレーションのための`langchain`および`langgraph`。 +- **LLMプロバイダー**: このフレームワークは複数のLLMプロバイダーと連携できるように設計されています。主な統合先は以下の通りです: + - OpenAI (`langchain-openai`) + - Anthropic (`langchain-anthropic`) + - Google Gemini (`langchain-google-genai`) +- **CLI**: コマンドラインインターフェースは、対話的な使用と整形された出力のために`typer`と`rich`を使用して構築されています。 +- **データハンドリング**: データ操作には`pandas`が使用されます。 +- **ベクトルストア**: エージェントの記憶・リフレクション機構には`chromadb`が使用されます。 + +## 3. データソースとAPI +このフレームワークは、いくつかの金融データAPIと統合されています。各カテゴリのデータソースは設定可能です。 +- **主要なデータAPI**: + - **Alpha Vantage**: ファンダメンタルデータ、ニュース、テクニカル指標に使用されます。 + - **yfinance**: 主要な株価データ(OHLCV)およびテクニカル指標に使用されます。 +- **その他のデータソース**: + - `praw` (Reddit API) + - `feedparser` (RSSフィード) + +## 4. 開発環境 +- **Pythonバージョン**: 3.10(`.python-version`で指定)。 +- **依存関係**: `pip`を介して管理され、パッケージは`requirements.txt`および`pyproject.toml`にリストされています。 +- **仮想環境**: 仮想環境(例:`conda`や`venv`)の使用が推奨されます。 + +## 5. 一般的なコマンド +- **依存関係のインストール**: + ```bash + pip install -r requirements.txt + ``` +- **CLIアプリケーションの実行**: + ```bash + python -m cli.main + ``` +- **パッケージ例の実行**: + ```bash + python main.py + ``` + +## 6. 環境変数 +アプリケーションは、通常プロジェクトルートの`.env`ファイルで設定されるAPIキーを必要とします。 +- `OPENAI_API_KEY`: OpenAIサービス(または互換エンドポイント)用のAPIキー。 +- `ALPHA_VANTAGE_API_KEY`: Alpha Vantageデータサービス用のAPIキー。 \ No newline at end of file diff --git a/GEMINI.md b/GEMINI.md index 57edc579..014e4a71 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -17,6 +17,7 @@ Kiro-style Spec Driven Development implementation using gemini cli slash command ### Active Specifications - Check `.kiro/specs/` for active specifications - Use `/kiro:spec-status [feature-name]` to check progress +- `gemini-api-integration`: Google Gemini APIの統合 ## Development Guidelines - Think in English, but generate responses in Japanese (思考は英語、回答の生成は日本語で行うように)