自分専用のAI投資顧問軍団(ローカルLLM)を作ってみた

更新日: 2026-03-05 | カテゴリ:

概要と背景

なんとなく、ローカルLLMを使ってお金を稼ぐことは可能なのか?ということが気になり、暗号通貨(仮想通貨)の取引を管理、アドバイスするシステムを構築することを目標に、AntiGravity(アンチグラビティ)と格闘しながら1日半くらいである程度のところまで行ったので記事にします。

暗号通貨は流動性が高い認識で、LLMによる推論とは相性が悪い気がしますが、 相性が良さそうな株をやろうにもミスったときの懐へのダメージが大きいので、まずは宝くじ感覚で暗号通貨で試してみることにしました。

当面の目標は投機的ではなく中期的(1~3ヶ月)で資産を増やせるアドバイスをしてもらい、資産を増やせるか評価してみます。

取引所は数年前に使用し、お金ごと塩漬けにしていたCoincheckを使用します。

今回はシステム構築してみた編として、1~3ヶ月後に資産が増えているか検証するまでの道のりを別途記事にしたいと思います。

システム構成:5人のAIの「合議制」

本システムは、LangGraphを用いたマルチエージェント・アーキテクチャを採用しています。 一つの巨大なプロンプトですべてを解決するのではなく、役割分担された「仮想的な専門家たち」がバケツリレー方式で審議を進めます。

  • Research Node (Llama 3.2): 市場ニュースを検索し、中期的なセンチメント(強気・弱気)を分析。

  • Technical Node (Qwen 2.5-Coder): 最新の資産表を元に、ポートフォリオの偏りやリスクを抽出。

  • Strategy Node (DeepSeek-R1): 余剰資金や市場リスクを考慮し、具体的かつ行動可能な「3つの投資プラン」を立案。

#DeepSeek-R1がかなり動作が重く、プロンプトが悪いのか指示を聞かないことがままありました。改善の余地あり。

  • Validator Node (Phi-4): 提案されたプランの論理矛盾を厳しくチェック。
  • Persona Report Node (Hermes 3): 最終結果を、親しみやすく分かりやすいレポートとして日本語で集約。

実行環境は Ollama を使用。資産データという極めてプライベートな情報を守るため、すべてローカル環境で完結させています。

出力されるレポート(サンプル)

プログラムを実行すると、現在のポートフォリオに対する分析と、リスク許容度A~Cの3パターンで以下のようなレポートが出力されます。

### 現在のポートフォリオ分析
### 【現在のポートフォリオ要約】  
総資産XXXXXX円で、AAA(50%)とBBB(31%)が過度に集中しており、リスクが高まっています。AAAとBBBの売却を推奨し、CCCやDDDなど低リスク資産への分散を提案します(AAA売却:90%、BBB売却:85%、CCC買い増し:70%、DDD買い増し:65%)。現金比率は適切ですが、より多様化が望ましいです。  

---

### 【評価結果】  
- **時価評価**:AAAAとBBBが正の損益を示しているが、高配分によるリスクが顕在化。  
- **リスク**:AAAAの集中が市場変動に強く影響されやすく、分散投資の必要性が高まっている。  
- **戦略的示唆**:現金を¥10,000増やすことで分散投資の準備を整え、AAAAの一部をBBB/CCCに再投資。XXX/YYYYなど成長性銘柄への追加購入も検討。  

→各判断に対するAIの自信度がパーセンテージで表示される。  ただし出力されるされないは不安定。

### プランB(分散): リスク分散型
- **投資行動**: AAAAの割合を大幅に減らし、複数の通貨に分散。AAAA比率を80%に、残りの20%を新規でBBBとCCCに投資。XXXは維持。
- **金額**: 総残高xxxxxx円から、AAAAを80%に(残高xxxxx円)、BBBを5%に(残高xxxxx円)、CCCを5%に(残高xxxxx円)。DDDとCCCは維持。
- **理由**: テクニカル分析に基づく。AAAAの過剰なリスクを除去し、AAAとBBBの長期的な安定性(AAAAの価格推移やBBBのスマートコントラクト利便性)を強化。分散投資により市場変動への耐性を高める。

| 通貨名 | 購入割合(金額) | 選定理由 | 今後の見通し |
| :--- | :--- | :--- | :--- |
| AAAA | 80%(xxxxx円) | AAAAの過剰なリスクを除去し、AAAとBBBの長期的な安定性(ビットコインの価格推移やETHのスマートコントラクト利便性)を強化 | 市場の流動性と技術的指標に基づく上昇期待 |
| BBB | 5%(xxxxx円) | AAAAの価格推移に基づく長期的な安定性 | 技術的指標と市場動向に注目 |
| CCC | 5%(xxxxx円) | AAAAのスマートコントラクト利便性 | 技術的指標と市場動向に注目 |
| DDD | 0%(未記載) | DDDは維持 | 現在の価格水準での安定性を維持 |
| CCC | 0%(未記載) | CCCは維持 | 現在の価格水準での安定性を維持 |

プランBを統括したコメント  
AAAAのリスクを大幅に削減し、AAAとBBBの長期的な安定性を活用する分散型アプローチ。

詳細解説

課題:ハルシネーション(数値誤認)との戦い

開発当初、AIは「現在のビットコイン保有額は ¥1,000,000 です」といった嘘を平気でつくことがありました。これは、APIから取得した純粋な数値をAIが読み取る際に、桁数を見誤ったり単位を混同したりするためです。

解決策:Pythonによる「計算の外部化」

「AIに計算させる」のではなく、**「Pythonが計算した結果をAIに見せる」**戦略をとりました。 APIから取得した履歴をPythonの堅牢なコードでパースし、平均取得単価や資産比率を正確に算出。整形済みのMarkdownテーブルとして各エージェントに配布することで、AIは「状況判断」という得意分野に専念できるようになりました。

解決策・手順

実録・修羅場:「レポートの形式を守ってくれない!」

大まかな実装は初回実装で完了したのですが、最も苦戦したのは、AIが指定した出力フォーマットを無視することでした。 「必ずこのテーブル形式で出力して」と指示しても、AIが勝手に余計な解説を付け加えたり、テーブルの列を削ったりしてしまい、後続のエージェント(Validator)がデータを読み取れずエラーになる...というループに何度も陥りました。

最終的には、プロンプトの厳密化に加え、Validatorエージェントによる「形式チェック専用のフェーズ」を設け、NGなら3回まで差し戻しをするループ機構を作りました。

それでもなお上述のレポートの通り、現段階では出力フォーマットにばらつきがある状態です。

可視化:ダッシュボードによる直感的な把握

アドバイスだけでなく、現在の状況を直感的に把握するためのダッシュボードも実装しました。 理由はCoincheckでは全資産の推移は確認できるものの、各通貨ごとの資産推移や平均取得単価が確認できなく不便だと感じたからです。

資産推移やポートフォリオ分布を視覚化したダッシュボードのイメージ(数値はサンプルです)

残念ながらCoincheckのAPIでは過去の値を取得できない(※2026年3月時点)ため、 プログラムを動作させるたびに内部にデータを保持し、それをグラフ化することにしました。

時価評価額の推移やポートフォリオの分布がグラフ化され、AIのアドバイスと照らし合わせながら確認ができるようになっています。

今後の展望

・あまりにも出力フォーマットにばらつきがあるため一定の品質を保つための改善。

・LLMの柔軟な推論と、現代ポートフォリオ理論などの既存の数学的ロジックを組み合わせた「ハイブリッド・モデル」を作成。 → 今回作成したいわばプロトタイプと資産の推移で競わせてみたい。

・暗号通貨の自動売買。 →都度ローカルLLMに推論させていてはキリが無い気がするので、しきい値などを決めさせるとか・・・?

開発秘話とおまけ

マルチエージェントに聞いてみた! —— 彼らの「本音」と苦労話

システムの完成を祝して、日々審議を重ねているエージェントたちにインタビューしてみました。

  • Research Node (Llama 3.2): 「私はインターネットの海から最新情報を拾ってくるのが仕事ですが、最近のSNSはノイズが多くて。特定の通貨に関するポジショントークと真のニュースを見分けるのが、このプロジェクトで一番の試練でした。」
  • Technical Node (Qwen 2.5-Coder): 「Python様が正確なテーブルを用意してくれるのは助かりますが、それでも人間の『なんとなくこれくらい投資したい』という感覚を技術的に正当化するのはなかなかの難着陸でしたね。」
  • Strategy Node (DeepSeek-R1): 「『毛利モデル』といったネーミングには自信があったのですが、ValidatorのPhi-4くんが厳しくて。論理の飛躍を一切許してくれないので、何度も戦略を練り直させられましたよ。」
  • Validator Node (Phi-4): 「みんな自由すぎます!特にStrategyくんのプランは、比率を足すと105%になっていたことが何度あったか。私がガードレールにならなければ、この投資レポートは破綻していました(笑)」

よくある質問(FAQ)

Q1. なぜクラウドのAIではなくローカルLLMを使うのですか?

資産状況や取引履歴といった極めてプライベートなデータを扱うため、情報漏洩のリスクをゼロにできるローカルLLM環境(Ollama等)を採用しています。

Q2. 複数のAIを動かすには高性能なPCが必要ですか?

本システムでは各エージェントを順次実行(シーケンシャル)するため、メモリ16GB程度の一般的なPCでも動作可能です。ただし、同時に推論を行う場合は、VRAMの多いGPUがあると快適です。

Q3. AIのアドバイス通りに投資すれば必ず儲かりますか?

いいえ。AIのアドバイスはあくまでデータに基づいた分析結果であり、将来の利益を保証するものではありません。最終的な投資判断は、必ずご自身の責任で行ってください。

Q4. 計算エラーは本当に起きませんか?

主要な計算(資産合計や平均取得価格など)はPythonの標準ライブラリで行い、AIにはその結果のみを渡しているため、AI特有の計算ミスは発生しません。

Q5. 対応している取引所はどこですか?

現在はCoincheckのAPIに対応していますが、Pythonの各取引所用ライブラリを拡張することで、他の取引所との連携も可能です。

🔧 この記事に関連するおすすめアイテム:

Ollama
ローカル環境でLLMを実行できる強力なツール。プライバシーを重視する開発に最適です。

Amazonで関連商品を探す