ResearchTwin について
ResearchTwin は、研究者の論文、データセット、コードリポジトリを対話型デジタルツインにまとめるオープンソースの連合型プラットフォームです。研究者やAIエージェント向けに、複数ソースの探索、S-Index指標、機械可読な研究者プロフィールを提供します。
主な機能
- 01連合型の研究者デジタルツイン
- 02論文、データセット、リポジトリのコネクター
- 03リアルタイムのS-Index指標
- 04対話型の研究探索
- 05Schema.org対応の探索API
- 06ローカルノードとホスト型エッジ
活用シーン
- 01チャットで研究者の成果を調べる
- 02研究者プロフィールを横断して論文を検索する
- 03研究成果の影響指標を確認する
- 04研究者プロフィールのローカルノードを運用する
MCP 対応
READMEでは、エージェント間の探索用MCPサーバーは現在の機能ではなく、今後の貢献案として記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ResearchTwin:研究知識のフェデレーション型エージェントWeb
ResearchTwinは、研究者の論文、データセット、コードリポジトリを対話型のデジタルツインに変換する、オープンソースのフェデレーション型プラットフォームです。Bimodal Glial-Neural Optimization(BGNO)アーキテクチャを基盤とし、人間とAIエージェントが協力して科学的発見を加速する、双方向の発見を可能にします。
公開サイト:researchtwin.net | ネットワークに参加 | 論文を読む(arXiv)
プロジェクトのビジョン
科学的成果の指数関数的な増加により、「発見のボトルネック」が生じています。従来の静的なPDFやサイロ化されたリポジトリでは、知識の統合や再利用が制限されます。ResearchTwinは、以下の方法でこの課題に対処します。
- Semantic Scholar、Google Scholar、GitHub、Figshareのマルチモーダルな研究成果物を統合
- すべての成果物タイプを対象に、リアルタイムの**S-Index**指標(品質 × インパクト × コラボレーション)を算出
- インタラクティブな研究探索のための、対話型チャットボットインターフェースを提供
- マシン間の研究発見に対応するSchema.orgタイプを備えたエージェント間発見APIを公開
- ローカルノード、ハブ、ホスト型エッジに対応する、Discordのようなフェデレーション型アーキテクチャを実現
アーキテクチャの概要
BGNO(Bimodal Glial-Neural Optimization)
Data Sources Glial Layer Neural Layer Interface
┌──────────────┐ ┌─────────────┐ ┌──────────────┐ ┌────────────┐
│Semantic Scholar│───▶│ │ │ │ │ Web Chat │
│Google Scholar │───▶│ SQLite │───▶│ RAG with │───▶│ Discord │
│GitHub API │───▶│ Cache + │ │ Claude API │ │ Agent API │
│Figshare API │───▶│ Rate Limit │ │ │ │ Embed │
└──────────────┘ └─────────────┘ └──────────────┘ └────────────┘
- コネクターレイヤー:論文(重複排除を伴うS2+GS)、リポジトリ(GitHub)、データセット(Figshare)、ORCIDメタデータを取得
- グリアレイヤー:24時間TTLのSQLiteキャッシュ、レート制限、S2+GSのタイトル類似度による統合(しきい値0.85)
- ニューラルレイヤー:Claudeを用いたRAG — コンテキストの組み立て、プロンプトエンジニアリング、対話型の統合
- インターフェースレイヤー:D3.jsナレッジグラフ、チャットウィジェット、Discordボット、REST API
フェデレーション型ネットワークの階層
| 階層 | 名前 | 説明 | ステータス |
|---|---|---|---|
| Tier 1 | ローカルノード | 研究者がローカルでpython run_node.pyを実行 | 稼働中 |
| Tier 2 | ハブ | 複数のノードをフェデレーションするラボのアグリゲーター | 計画中 |
| Tier 3 | ホスト型エッジ | researchtwin.netでクラウドホスト | 稼働中 |
エージェント間発見API
Schema.orgの@type注釈を備えた、機械可読なエンドポイント:
| エンドポイント | Schema.orgタイプ | 用途 |
|---|---|---|
GET /api/researcher/{slug}/profile | Person | HATEOASリンクを含む研究者プロフィール |
GET /api/researcher/{slug}/papers | ItemList of ScholarlyArticle | 引用情報付きの論文 |
GET /api/researcher/{slug}/datasets | ItemList of Dataset | QICスコア付きのデータセット |
GET /api/researcher/{slug}/repos | ItemList of SoftwareSourceCode | QICスコア付きのリポジトリ |
GET /api/discover?q=keyword&type=paper | SearchResultSet | 研究者横断検索 |
はじめに
ホスト型(Tier 3)— セットアップ不要
- researchtwin.net/join.htmlにアクセスします
- 氏名、メールアドレス、研究者識別子を登録します
- デジタルツインがすぐに利用可能になります
ローカルノード(Tier 1)— 完全な制御
git clone https://github.com/martinfrasch/researchtwin.git
cd researchtwin
pip install -r backend/requirements.txt
cp node_config.json.example node_config.json
# Edit node_config.json with your details
python run_node.py --config node_config.json
Dockerでのデプロイ
cp .env.example .env # Add your API keys
docker-compose up -d --build
必須のAPIキー:ANTHROPIC_API_KEY(Claude RAG用)
任意:S2_API_KEY、GITHUB_TOKEN、DISCORD_BOT_TOKEN、SMTP認証情報
リポジトリ構成
researchtwin/
├── backend/
│ ├── main.py # FastAPI endpoints (REST + Discovery API)
│ ├── researchers.py # SQLite researcher CRUD + token management
│ ├── database.py # SQLite schema, WAL mode, migrations
│ ├── models.py # Pydantic models for all endpoints
│ ├── rag.py # RAG context assembly for Claude
│ ├── qic_index.py # S-Index / QIC computation engine
│ ├── email_service.py # SMTP service for profile update codes
│ ├── connectors/ # Data source connectors
│ │ ├── semantic_scholar.py
│ │ ├── scholarly_lib.py # Google Scholar via scholarly
│ │ ├── github_connector.py
│ │ └── figshare.py
│ └── discord_bot/ # Discord bot with /research and /sindex
├── frontend/
│ ├── index.html # Main dashboard with D3.js knowledge graph
│ ├── join.html # Self-registration page
│ ├── update.html # Email-verified profile updates
│ ├── privacy.html # Privacy policy
│ └── widget-loader.js # Embeddable chat widget
├── run_node.py # Tier 1 local node launcher
├── node_config.json.example # Local node configuration template
├── docker-compose.yml # Docker orchestration
├── nginx/ # Nginx reverse proxy + SSL
└── whitepaper.tex # LaTeX manuscript
エコシステム
このリポジトリは、ResearchTwin エコシステム プロジェクトの一部です。
| リポジトリ | 説明 |
|---|---|
| researchtwin | フェデレーションプラットフォーム(このリポジトリ) |
| s-index | S-Index の正式仕様とリファレンス実装 |
埋め込み可能な S-Index ウィジェット
研究室のウェブサイト、Google Sites のページ、または個人のホームページに S-Index を表示できます。
<iframe
src="https://researchtwin.net/embed.html?slug=YOUR-SLUG"
width="440" height="180"
style="border:none; border-radius:12px;"
loading="lazy">
</iframe>
YOUR-SLUG を研究者のスラッグ(例:martin-frasch)に置き換えてください。
Google Sites:ページを編集 > 挿入 > 埋め込み >「URL」タブ > https://researchtwin.net/embed.html?slug=YOUR-SLUG を貼り付けます。
WordPress:カスタム HTML ブロックを追加し、iframe コードを貼り付けます。
このウィジェットには、研究者の名前、S-Index スコア、h-index、引用数、論文数が表示されます。データはライブ API ソースから自動的に更新されます。
ドキュメント
| ドキュメント | 説明 |
|---|---|
| API リファレンス | スキーマと例を含む REST API ドキュメントの全文 |
| セルフホスティングガイド | Tier 1 ローカルノードのセットアップと設定 |
| ハブフェデレーションガイド | Tier 2 ハブのアーキテクチャとセットアップ(予定) |
| セキュリティポリシー | 脆弱性の報告とセキュリティのベストプラクティス |
貢献
貢献を歓迎します!追跡中の課題については、プロジェクトボードをご覧ください。
- 新しいコネクター(ORCID の情報補完、PubMed、OpenAlex)
- 所属機関に基づく地理的マッピング
- エージェント間の情報発見のための MCP サーバー
- UI/UX の改善
- バグ修正と最適化
ライセンス
MIT ライセンス。LICENSEをご覧ください。
お問い合わせ
- プラットフォーム:researchtwin.net
- メール:[email protected]
- 課題:GitHub Issues
研究者と AI エージェントがともに発見し、協力し、革新できるよう支援します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。