关于 ResearchTwin
ResearchTwin 是一个开源联邦平台,可将研究者的论文、数据集和代码仓库整合为可对话的数字孪生。它面向研究者和 AI Agent,支持跨来源发现、S-Index 指标及机器可读的研究者资料。
主要功能
- 01联邦式研究者数字孪生
- 02论文、数据集和代码仓库连接器
- 03实时 S-Index 指标
- 04对话式研究探索
- 05Schema.org 发现 API
- 06本地节点与托管边缘节点
适用场景
- 01通过对话探索研究者成果
- 02跨研究者资料搜索论文
- 03查看研究成果的影响指标
- 04为研究者资料运行本地节点
MCP 相关
README 将用于 Agent 间发现的 MCP 服务列为计划中的贡献,并非当前功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ResearchTwin:研究知识的联邦式智能 Agent 网络
ResearchTwin 是一个开源的联邦式平台,可将研究人员的出版物、数据集和代码仓库转化为可对话的数字孪生。它基于双模胶质—神经优化(BGNO)架构构建,支持双向发现,让人类和 AI Agent 协作加速科学发现。
访问 researchtwin.net | 加入网络 | 阅读论文(arXiv)
项目愿景
科学成果的指数级增长造成了“发现瓶颈”。传统的静态 PDF 和彼此孤立的存储库限制了知识综合与再利用。ResearchTwin 通过以下方式应对这一问题:
- 整合来自 Semantic Scholar、Google Scholar、GitHub 和 Figshare 的多模态研究成果
- 针对所有成果类型计算实时 S-Index 指标(质量 × 影响力 × 协作)
- 提供可交互探索研究内容的对话式聊天机器人界面
- 提供带有 Schema.org 类型的智能体间发现 API,支持机器对机器的研究发现
- 支持联邦式、类似 Discord 的架构,可连接本地节点、中心和托管边缘节点
架构概览
BGNO(双模胶质—神经优化)
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 元数据
- 胶质层:使用 24h 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 Ecosystem 项目的一部分:
| 仓库 | 描述 |
|---|---|
| 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 替换为您的研究者 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 本地节点的设置与配置 |
| Hub 联邦指南 | Tier 2 Hub 架构与设置(计划中) |
| 安全策略 | 漏洞报告与安全最佳实践 |
贡献
欢迎贡献!请查看项目看板,了解已跟踪的问题。
- 新连接器(ORCID 信息补充、PubMed、OpenAlex)
- 基于所属机构的地理映射
- 用于 Agent 间发现的 MCP 服务
- UI/UX 改进
- Bug 修复与优化
许可证
MIT 许可证。请参阅 LICENSE。
联系方式
- 平台:researchtwin.net
- 电子邮件:[email protected]
- 问题反馈:GitHub Issues
助力研究者与 AI Agent 发现、协作并携手创新。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。