MCPcopy
hub / github.com/guy-hartstein/company-research-agent

github.com/guy-hartstein/company-research-agent @2.0.1 sqlite

repository ↗ · DeepWiki ↗ · release 2.0.1 ↗
144 symbols 494 edges 45 files 61 documented · 42%
README

en zh fr es jp kr

企業調査エージェント 🔍

web ui

包括的な企業調査レポートを生成するマルチエージェントツール。このプラットフォームは、AIエージェントのパイプラインを使用して、あらゆる企業に関する情報を収集、整理、統合します。

✨オンラインで試してみてください! https://companyresearcher.tavily.com ✨

https://github.com/user-attachments/assets/0e373146-26a7-4391-b973-224ded3182a9

機能

  • マルチソース調査:企業ウェブサイト、ニュース記事、財務報告書、業界分析など、様々なソースからデータを取得
  • AIによるコンテンツフィルタリング:Tavilyの関連性スコアを使用したコンテンツキュレーション
  • 非同期処理:調査の進捗を追跡するための効率的なポーリングベースアーキテクチャ
  • デュアルモデルアーキテクチャ
  • 大規模コンテキスト調査統合のためのGemini 3 Flash
  • 精密なレポート書式設定と編集のためのGPT-5.1
  • モダンなReactフロントエンド:進捗追跡とダウンロードオプションを備えたレスポンシブインターフェース
  • モジュラーアーキテクチャ:専門的な調査・処理ノードのパイプラインを中心に構築

エージェントフレームワーク

調査パイプライン

このプラットフォームは、データを順次処理する専門ノードを持つエージェントフレームワークに従います:

  1. 調査ノード
  2. CompanyAnalyzer:主要な企業情報を調査
  3. IndustryAnalyzer:市場ポジションとトレンドを分析
  4. FinancialAnalyst:財務指標とパフォーマンスデータを取得
  5. NewsScanner:最新のニュースと動向を収集

  6. 処理ノード

  7. Collector:すべてのアナライザーから調査データを集約
  8. Curator:コンテンツフィルタリングと関連性スコアリングを実装
  9. Briefing:Gemini 3 Flashを使用してカテゴリ別の要約を生成
  10. Editor:GPT-5.1で要約を最終レポートにコンパイル・書式設定

web ui

コンテンツ生成アーキテクチャ

このプラットフォームは最適なパフォーマンスのために異なるモデルを活用します:

  1. Gemini 3 Flash (briefing.py):
  2. 大規模コンテキスト調査統合を処理
  3. 大量データの処理と要約に優れる
  4. カテゴリ別の初期要約生成に使用
  5. 複数文書にわたるコンテキスト維持に効率的

  6. GPT-5.1 (editor.py):

  7. 精密な書式設定と編集に特化
  8. Markdown構造と一貫性を処理
  9. 正確な書式設定指示の遵守に優れる
  10. 以下に使用:
    • 最終レポートのコンパイル
    • コンテンツの重複除去
    • Markdown書式設定
    • リアルタイムレポートストリーミング

このアプローチは、Geminiの大規模コンテキストウィンドウ処理能力とGPT-5.1の書式設定指示精度を組み合わせます。

コンテンツキュレーションシステム

このプラットフォームはcurator.pyでコンテンツフィルタリングシステムを使用します:

  1. 関連性スコアリング
  2. 文書はTavilyのAI検索によってスコア付けされます
  3. 継続するには最小閾値(デフォルト0.4)が必要
  4. スコアは検索クエリとの関連性を反映
  5. 高スコアは検索意図とのより良い一致を示す

  6. 文書処理

  7. コンテンツは正規化・クリーニングされます
  8. URLは重複除去・標準化されます
  9. 文書は関連性スコアでソートされます
  10. 調査はバックグラウンドで非同期実行されます

バックエンドアーキテクチャ

プラットフォームはポーリングベースのシンプルな通信システムを実装します:

web ui

  1. バックエンド実装
  2. 非同期サポート付きのFastAPIを使用
  3. 調査タスクはバックグラウンドで実行
  4. 結果はRESTエンドポイント経由で保存・アクセス
  5. シンプルなジョブステータス追跡

  6. フロントエンド統合

  7. Reactフロントエンドが調査リクエストを送信
  8. 追跡用のjob_idを受信
  9. /research/{job_id}/reportエンドポイントをポーリング
  10. 完了時に最終レポートを表示

  11. APIエンドポイント

  12. POST /research:新しい調査リクエストの送信
  13. GET /research/{job_id}/report:完了したレポートのポーリング
  14. POST /generate-pdf:レポートコンテンツからPDFを生成

セットアップ

クイックセットアップ(推奨)

最も簡単な開始方法はセットアップスクリプトを使用することです。このスクリプトは自動的にuvを検出し、利用可能な場合はより高速なPythonパッケージインストールに使用します:

  1. リポジトリをクローン:
git clone https://github.com/guy-hartstein/tavily-company-research.git
cd tavily-company-research
  1. セットアップスクリプトを実行可能にして実行:
chmod +x setup.sh
./setup.sh

セットアップスクリプトは以下を行います:

  • uvを検出してより高速なPythonパッケージインストールに使用(利用可能な場合)
  • 必要なPythonとNode.jsのバージョンを確認
  • Python仮想環境を作成(推奨)
  • すべての依存関係をインストール(PythonとNode.js)
  • 環境変数の設定をガイド
  • バックエンドとフロントエンドサーバーを起動(オプション)

💡 プロのヒント: uvをインストールすることで、Pythonパッケージの大幅に高速なインストールが可能になります:

bash curl -LsSf https://astral.sh/uv/install.sh | sh

以下のAPIキーが必要です: - Tavily APIキー - Google Gemini APIキー - OpenAI APIキー - Google Maps APIキー - MongoDB URI(オプション)

手動セットアップ

手動でセットアップしたい場合は、以下の手順に従ってください:

  1. リポジトリをクローン:
git clone https://github.com/guy-hartstein/tavily-company-research.git
cd tavily-company-research
  1. バックエンド依存関係をインストール:
# オプション:仮想環境を作成・アクティベート
# uv使用(より高速 - 利用可能な場合は推奨):
uv venv .venv
source .venv/bin/activate

# または標準Python:
# python -m venv .venv
# source .venv/bin/activate

# Python依存関係をインストール
# uv使用(より高速):
uv pip install -r requirements.txt

# またはpip使用:
# pip install -r requirements.txt
  1. フロントエンド依存関係をインストール:
cd ui
npm install
  1. 環境変数の設定

このプロジェクトはバックエンドとフロントエンド用に2つの個別の.envファイルが必要です。

バックエンド設定:

プロジェクトのルートディレクトリに.envファイルを作成し、バックエンドAPIキーを追加します:

TAVILY_API_KEY=your_tavily_key
GEMINI_API_KEY=your_gemini_key
OPENAI_API_KEY=your_openai_key

# オプション:MongoDB永続化を有効化
# MONGODB_URI=your_mongodb_connection_string

フロントエンド設定:

uiディレクトリ内に.envファイルを作成します。最初にサンプルファイルをコピーできます:

cp ui/.env.development.example ui/.env

次に、ui/.envを開いてフロントエンド環境変数を追加します:

VITE_API_URL=http://localhost:8000
VITE_GOOGLE_MAPS_API_KEY=your_google_maps_api_key_here

Dockerセットアップ

アプリケーションはDockerとDocker Composeを使用して実行できます:

  1. リポジトリをクローン:
git clone https://github.com/guy-hartstein/tavily-company-research.git
cd tavily-company-research
  1. 環境変数の設定

Docker設定は2つの個別の.envファイルを使用します。

バックエンド設定:

プロジェクトのルートディレクトリに.envファイルを作成し、バックエンドAPIキーを追加します:

TAVILY_API_KEY=your_tavily_key
GEMINI_API_KEY=your_gemini_key
OPENAI_API_KEY=your_openai_key

# オプション:MongoDB永続化を有効化
# MONGODB_URI=your_mongodb_connection_string

フロントエンド設定:

uiディレクトリ内に.envファイルを作成します。最初にサンプルファイルをコピーできます:

cp ui/.env.development.example ui/.env

次に、ui/.envを開いてフロントエンド環境変数を追加します:

VITE_API_URL=http://localhost:8000
VITE_GOOGLE_MAPS_API_KEY=your_google_maps_api_key_here
  1. コンテナをビルド・起動:
docker compose up --build

これによりバックエンドとフロントエンドサービスが起動します: - バックエンドAPIはhttp://localhost:8000で利用可能 - フロントエンドはhttp://localhost:5174で利用可能

サービスを停止するには:

docker compose down

注意:.envの環境変数を更新する際は、コンテナを再起動する必要があります:

docker compose down && docker compose up

アプリケーションの実行

  1. バックエンドサーバーを起動(オプションを選択):
# オプション1:直接Pythonモジュール
python -m application.py

# オプション2:UvicornでFastAPI
uvicorn application:app --reload --port 8000
  1. 新しいターミナルでフロントエンドを起動:
cd ui
npm run dev
  1. http://localhost:5173でアプリケーションにアクセス

使用方法

ローカル開発

  1. バックエンドサーバーを起動(オプションを選択):

オプション1:直接Pythonモジュール bash python -m application.py

オプション2:UvicornでFastAPI ```bash # uvicornがインストールされていない場合はインストール # uv使用(より高速): uv pip install uvicorn # またはpip使用: # pip install uvicorn

# ホットリロード付きでFastAPIアプリケーションを実行 uvicorn application:app --reload --port 8000 ```

バックエンドは以下で利用可能: - APIエンドポイント:http://localhost:8000

  1. フロントエンド開発サーバーを起動: bash cd ui npm run dev

  2. http://localhost:5173でアプリケーションにアクセス

⚡ パフォーマンス注意: セットアップ時にuvを使用した場合、大幅に高速なパッケージインストールと依存関係解決の恩恵を受けられます。uvはRustで書かれた現代的なPythonパッケージマネージャーで、pipより10〜100倍高速です。

デプロイメントオプション

アプリケーションは様々なクラウドプラットフォームにデプロイできます。一般的なオプションをいくつか紹介します:

AWS Elastic Beanstalk

  1. EB CLIをインストール: bash pip install awsebcli

  2. EBアプリケーションを初期化: bash eb init -p python-3.11 tavily-research

  3. 作成・デプロイ: bash eb create tavily-research-prod

その他のデプロイメントオプション

  • Docker:アプリケーションにはコンテナ化デプロイメント用のDockerfileが含まれています
  • Heroku:PythonビルドパックでGitHubから直接デプロイ
  • Google Cloud Run:自動スケーリング付きコンテナ化デプロイメントに適しています

ニーズに最も適したプラットフォームを選択してください。アプリケーションはプラットフォーム非依存で、Pythonウェブアプリケーションがサポートされているどこでもホストできます。

貢献

  1. リポジトリをフォーク
  2. 機能ブランチを作成(git checkout -b feature/amazing-feature
  3. 変更をコミット(git commit -m 'Add some amazing feature'
  4. ブランチにプッシュ(git push origin feature/amazing-feature
  5. プルリクエストを開く

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています - 詳細はLICENSEファイルを参照してください。

謝辞

  • 検索APIを提供するTavily
  • その他すべてのオープンソースライブラリとその貢献者

Extension points exported contracts — how you extend this code

ImportMetaEnv (Interface)
(no doc)
ui/src/env.d.ts
ImportMeta (Interface)
(no doc)
ui/src/env.d.ts
ExamplePopupProps (Interface)
(no doc)
ui/src/components/ExamplePopup.tsx
HeaderProps (Interface)
(no doc)
ui/src/components/Header.tsx
LocationInputProps (Interface)
(no doc)
ui/src/components/LocationInput.tsx

Core symbols most depended-on inside this repo

clean_title
called by 8
backend/utils/references.py
generate_queries
called by 4
backend/nodes/researchers/base.py
search_documents
called by 4
backend/nodes/researchers/base.py
scrollToStatus
called by 4
ui/src/App.tsx
extract_domain_name
called by 3
backend/utils/references.py
extract_link_info
called by 3
backend/utils/references.py
run
called by 2
backend/graph.py
compile
called by 2
backend/graph.py

Shape

Method 62
Function 46
Class 18
Interface 11
Route 7

Languages

Python77%
TypeScript23%

Modules by API surface

application.py19 symbols
backend/utils/references.py9 symbols
ui/src/App.tsx8 symbols
backend/nodes/enricher.py8 symbols
backend/nodes/briefing.py8 symbols
backend/services/mongodb.py7 symbols
backend/nodes/researchers/base.py7 symbols
backend/nodes/editor.py7 symbols
backend/graph.py6 symbols
ui/src/components/ResearchForm.tsx5 symbols
ui/src/components/LocationInput.tsx5 symbols
backend/utils/utils.py5 symbols

Dependencies from manifests, versioned

@types/google.maps3.58.1 · 1×
@types/node22.13.9 · 1×
@types/react18.2.56 · 1×
@types/react-dom18.2.19 · 1×
@typescript-eslint/eslint-plugin7.0.2 · 1×
@typescript-eslint/parser7.0.2 · 1×
@vitejs/plugin-react4.2.1 · 1×
autoprefixer10.4.17 · 1×
eslint8.56.0 · 1×
eslint-plugin-react-hooks4.6.0 · 1×
eslint-plugin-react-refresh0.4.5 · 1×
lucide-react0.344.0 · 1×

Datastores touched

(mongodb)Database · 1 repos
tavily_researchDatabase · 1 repos

For agents

$ claude mcp add company-research-agent \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact