Comprehensive FAQ¶
This page contains detailed answers to frequently asked questions about ToolUniverse.
小技巧
Need a quick answer?
For brief answers to the most common questions, see Comprehensive FAQ. This page provides comprehensive information with detailed explanations, troubleshooting tips, and advanced topics.
常见问题¶
什么是 ToolUniverse?¶
ToolUniverse 是一个面向自主智能体的综合科学工具集合,支持与多种科学数据库和服务的集成。它提供统一的界面,便于访问 FDA、OpenTargets、ChEMBL、PubTator 及众多其他来源的数据。
将 ToolUniverse 作为 Python 库使用:
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()
通过MCP使用配备AI助手的ToolUniverse:
tooluniverse-smcp
直接工具执行:
tooluniverse-cli run FAERS_count_reactions_by_drug_event
支持哪些数据库?¶
ToolUniverse 集成了20多个科学数据库:
药物信息:FDA FAERS、ChEMBL、PubChem、DrugBank
基因/蛋白质数据:UniProt、Ensembl、Human Protein Atlas
疾病信息:OpenTargets、DisGeNET、OMIM
文献:PubMed,PubTator
临床数据:ClinicalTrials.gov,英国生物银行
路径分析:Enrichr、KEGG、Reactome
安装与设置¶
如何安装ToolUniverse?¶
pip install tooluniverse
git clone https://github.com/mims-harvard/ToolUniverse
cd tooluniverse
pip install -e .
pip install tooluniverse[all]
我是否需要 API 密钥?¶
Most tools work without API keys! However, some tools require authentication or provide higher rate limits with API keys.
Quick answer:
No API keys needed for most tools (PubMed, UniProt, ChEMBL, OpenTargets, etc.)
Recommended for better performance: NCBI, FDA (3-10x faster rate limits)
Required for specific features: NVIDIA NIM (structure prediction), USPTO (patents), DisGeNET, OMIM
For complete details, see API Keys and Authentication which covers all API keys, how to obtain them, rate limits, and configuration methods.
常见问题¶
为什么会出现速率限制错误?¶
许多科学API设有速率限制。ToolUniverse 实现了自动速率限制,但您仍可能遇到限制:
注册 API 密钥以获取更高的访问速率限制:
# Higher limits with API key
os.environ['NCBI_API_KEY'] = 'your_key'
使用批处理处理多个查询:
# Process in batches
for batch in batches(gene_list, batch_size=10):
results = tu.run(batch, use_cache=True, max_workers=8)
time.sleep(1) # Add delay between batches
启用缓存以避免重复请求:
# Caching is enabled by default
tu = ToolUniverse()
result = tu.run(..., use_cache=True)
工具返回空结果?¶
检查以下常见问题:
正确的标识符:确保您使用的是正确的 ID 格式
API 连接性:测试您的互联网连接
服务状态:检查外部服务是否可用
查询参数:请确认您的搜索参数有效
# Example: Retrieve UniProt function by accession
query = {
"name": "UniProt_get_function_by_accession",
"arguments": {"accession": "P38398"} # BRCA1 accession
}
MCP 集成¶
我如何将 ToolUniverse 与 Claude 一起使用?¶
启动 MCP 服务器:
tooluniverse-smcp配置 Claude 桌面版:
将以下内容添加到您的 Claude 配置中:
{ "mcpServers": { "tooluniverse": { "command": "tooluniverse-smcp-stdio", "args": ["--compact-mode"] } } }
测试连接:
询问 Claude:“ToolUniverse 提供了哪些工具?”
我可以使用多个 MCP 服务器吗?¶
是的!您可以运行多个 ToolUniverse 实例,或与其他 MCP 服务器结合使用:
{
"mcpServers": {
"tooluniverse-main": {
"command": "tooluniverse-smcp",
"args": ["--port", "3000", "--compact-mode"]
},
"tooluniverse-dev": {
"command": "tooluniverse-smcp",
"args": ["--port", "3001", "--compact-mode", "--load", "community/dev-tools"]
}
}
}
开发¶
如何添加新工具?¶
创建工具类:
from tooluniverse.base_tool import BaseTool class MyNewTool(BaseTool): def __init__(self): super().__init__( name="my_new_tool", description="Description of what it does" ) def run(self, **kwargs): # Implementation here return results
注册工具:
from tooluniverse import ToolRegistry registry = ToolRegistry() registry.register_tool(MyNewTool)
添加测试:
def test_my_new_tool(): tool = MyNewTool() result = tool.run(test_parameter="test_value") assert result is not None
我如何贡献?¶
派生该代码库
创建功能分支
添加带有测试的更改
提交拉取请求
See our 为ToolUniverse做贡献 Tutorial for detailed instructions.
性能¶
如何加快查询速度?¶
import os
os.environ["TOOLUNIVERSE_CACHE_DEFAULT_TTL"] = "3600" # 1 hour
tu = ToolUniverse()
result = tu.run(..., use_cache=True)
# Process multiple queries at once
queries = [
{"name": "tool1", "arguments": {"id": "1"}},
{"name": "tool1", "arguments": {"id": "2"}},
]
results = tu.run(queries, max_workers=4)
import asyncio
async def main():
results = await tu.run(query) # run() is context-aware
asyncio.run(main())
为什么第一次查询速度较慢?¶
第一次查询通常耗时较长,原因如下:
工具加载:工具在首次使用时加载
API 连接:初始连接设置
认证:API 密钥验证
后续查询将大幅加快。
故障排除¶
遇到导入错误?¶
常见解决方案:
pip install tooluniverse[all]
确保已安装 Python 3.8 及以上版本:
python --version
使用干净的虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\Scripts\activate # Windows
pip install tooluniverse
网络连接问题?¶
检查互联网连接
如果处于企业防火墙后,请验证智能体设置
测试特定端点:
import requests response = requests.get('https://platform-api.opentargets.org/api/v4/graphql') print(response.status_code)
配置超时:
tu = ToolUniverse() # timeout is set per HTTP request, not at the ToolUniverse level
仍然遇到问题?¶
如果您在此处找不到答案:
Check the documentation: 教程导航
搜索现有问题:GitHub Issues
向社区提问:加入我们的 Discord 服务器
报告错误:创建一个包含详细信息的新 GitHub 问题单
备注
报告问题时,请包括:
ToolUniverse 版本
Python 版本
操作系统
完整错误信息
最简代码示例