自律アナリスト
🧠 概要
Autonomous Analyst は、次のような機能を備えたローカルのエージェント AI パイプラインです。
- 表形式のデータを分析する
- マハラノビス距離で異常を検出
- ローカルLLM(Ollama経由のllama3.2:1b)を使用して解釈要約を生成します。
- セマンティックリコールのために結果をChromaDBに記録する
- モデルコンテキストプロトコル(MCP)を介して完全にオーケストレーションされます
⚙️ 機能
成分 | 説明 |
---|
FastAPI Web UI | 合成データセットまたはアップロードされたデータセット用の使いやすいダッシュボード |
MCPツールオーケストレーション | 各プロセスステップは呼び出し可能なMCPツールとして公開されます |
異常検出 | マハラノビス距離に基づく外れ値検出 |
視覚的な出力 | 保存された正常値と異常値の散布図 |
ローカルLLM要約 | Ollama経由でllama3.2:1b を使用して生成された洞察 |
ベクターストアのログ記録 | 要約は永続メモリとしてChromaDBに保存されます |
エージェントプランニングツール | 専用のLLMツール( autonomous_plan )はデータセットのコンテキストに基づいて次のステップを決定します。 |
エージェントフロー | LLM + 記憶 + ツールの使用 + 自動推論 + 文脈認識 |
🧪 ツールの定義(MCP経由)
ツール名 | 説明 | LLM使用 |
---|
generate_data | 合成表形式データ(ガウス+カテゴリ)を作成する | ❌ |
analyze_outliers | マハラノビス距離を使用して行にラベルを付ける | ❌ |
plot_results | 正常値と異常値を視覚化したプロットを保存する | ❌ |
summarize_results | llama3.2:1b を使用して外れ値分布を解釈および説明する | ✅ |
summarize_data_stats | llama3.2:1b を使用してデータセットの傾向を説明する | ✅ |
log_results_to_vector_store | 将来の参照用に要約を ChromaDB に保存します | ❌ |
search_logs | ベクトル検索を使用して関連する過去のセッションを検索する(LLM の使用はオプション) | ⚠️ |
autonomous_plan | パイプライン全体を実行し、LLM を使用して次のアクションを自動的に推奨します | ✅ |
🤖 エージェント機能
- Autonomy :
autonomous_plan
による LLM ガイド実行パス選択 - ツールの使用: LLM推論を介して登録されたMCPツールを動的に呼び出す
- 推論:データセットの条件と外れ値分析から技術的な洞察を生成します
- メモリ: ChromaDB ベクトル検索を使用して知識を保持および呼び出します
- LLM : Ollama と
llama3.2:1b
を搭載 (温度 = 0.1、決定論的)
🚀 はじめに
1. クローンとセットアップ
git clone https://github.com/MadMando/mcp-autonomous-analyst.git
cd mcp-autonomous-analyst
conda create -n mcp-agentic python=3.11 -y
conda activate mcp-agentic
pip install uv
uv pip install -r requirements.txt
2. MCPサーバーを起動する
mcp run server.py --transport streamable-http
3. Webダッシュボードを起動する
uvicorn web:app --reload --port 8001
次に、 http://localhost:8000にアクセスします。
🌐 ダッシュボードフロー
- **ステップ1:**独自のデータセットをアップロードするか、
Generate Synthetic Data
をクリックします - **ステップ2:**システムは
feature_1
とfeature_2
に対して異常検出を実行します。 - **ステップ3:**外れ値の視覚的なプロットが生成される
- ステップ4: LLMで要約を作成する
- **ステップ5:**結果はオプションでベクトルストアに記録され、リコールされる
📁 プロジェクトレイアウト
📦 autonomous-analyst/
├── server.py # MCP server
├── web.py # FastAPI + MCP client (frontend logic)
├── tools/
│ ├── synthetic_data.py
│ ├── outlier_detection.py
│ ├── plotter.py
│ ├── summarizer.py
│ ├── vector_store.py
├── static/ # Saved plot
├── data/ # Uploaded or generated dataset
├── requirements.txt
├── .gitignore
└── README.md
📚 技術スタック
- MCP SDK:
mcp
- LLM推論:
llama3.2:1b
を実行するOllama - UI サーバー: FastAPI + Uvicorn
- メモリ: ChromaDB ベクターデータベース
- データ:
pandas
、 matplotlib
、 scikit-learn
✅ .gitignore の追加
__pycache__/
*.pyc
*.pkl
.env
static/
data/
🙌 謝辞
このプロジェクトは、オープンソースコミュニティの素晴らしい努力なしには実現できませんでした。特に感謝申し上げます。
💡 このプロジェクトを使用する場合は、スターを付けたり、それを可能にするアップストリームツールに貢献することを検討してください。
このリポジトリは、llama3.2:1b を使用したローカル rag-llm の支援を受けて作成されました。