AI工具交互协议¶
使ToolUniverse的600多种工具可被任何AI系统普遍访问的基础
概述¶
正如 HTTP 标准化了整个网络中的客户端与服务器通信,ToolUniverse 实现了一种**AI工具交互协议**,标准化了 AI 模型与科学工具之间的交互方式。该协议将 600 多种异构工具(包括机器学习模型、数据库、API、机器人系统)的复杂性抽象为一个统一接口。
┌─────────────────┐
│ AI Model │ ← Your LLM, Agent, or Reasoning Model
│ (GPT, Claude, │
│ Gemini, etc.) │
└─────────┬───────┘
│ AI-Tool Interaction Protocol
│
┌─────────▼───────┐
│ ToolUniverse │ ← Protocol Implementation
│ Ecosystem │
└─────────┬───────┘
│
┌─────────▼───────┐
│ 1000+ Tools │ ← ML Models, APIs, Databases, etc.
│ (Heterogeneous │
│ Backends) │
└─────────────────┘
协议组件¶
AI工具交互协议包含三个基本要素:
规范架构 - 工具自我描述方式
交互模式 - 如何请求工具执行
通信方法 - 本地 Python 与远程 MCP
1. 工具规格架构¶
ToolUniverse中的每个工具都通过标准化规范进行呈现:
{
"name": "UniProt_get_entry_by_accession",
"description": "Get complete JSON entry for a UniProtKB accession",
"parameters": {
"type": "object",
"properties": {
"accession": {
"type": "string",
"description": "UniProtKB accession (e.g., P05067)",
"required": true
}
}
},
"return_schema": {
"type": "object",
"description": "Complete UniProtKB entry with protein information"
}
}
架构组件:
名称:遵循 Database_action_description 格式的唯一工具标识符
描述:清晰说明工具的用途和功能
参数:详细的参数规范,包括类型和要求
返回模式:预期输出数据的结构
2. 交互架构¶
所有工具交互均遵循统一的请求格式:
{
"name": "Tool_identifier",
"arguments": {
"parameter1": "value1",
"parameter2": "value2"
}
}
示例请求:
# Protein information request
{
"name": "UniProt_get_entry_by_accession",
"arguments": {
"accession": "P05067"
}
}
# Drug safety analysis request
{
"name": "FAERS_count_reactions_by_drug_event",
"arguments": {
"medicinalproduct": "aspirin"
}
}
# ML model prediction request
{
"name": "boltz2_docking",
"arguments": {
"protein_id": "1ABC",
"ligand_smiles": "CCO"
}
}
3. 通信方式¶
**本地通信**(Python):
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()
# Direct tool execution
result = tu.run({
"name": "OpenTargets_get_associated_targets_by_disease_efoId",
"arguments": {"efoId": "EFO_0000537"} # hypertension
})
**远程通信**(MCP):
# Start MCP server
tooluniverse-smcp --port 8000
# AI assistants connect via MCP
# Tools become available in Claude, ChatGPT, etc.
核心操作¶
该协议定义了人工智能系统用于与 ToolUniverse 交互的两项基本操作:
查找工具操作¶
目的:根据自然语言描述发现相关工具
输入:描述所需功能的自然语言查询
输出:相关工具规格列表
# How AI models discover tools
query = "predict protein binding affinity"
# Protocol returns relevant tools:
tools_found = [
"boltz2_docking",
"ADMETAI_predict_properties",
"ChEMBL_search_similar_molecules"
]
实现方法:
关键词搜索:结合形态学处理的快速TF-IDF匹配
基于大型语言模型的搜索:针对复杂查询的上下文推理
嵌入式搜索:使用微调模型进行语义相似度计算
呼叫工具操作¶
目的:使用指定参数执行选定的工具
输入:工具名称及结构化参数
输出:工具执行的结构化结果
# Standardized execution across all tool types
request = {
"name": "boltz2_docking",
"arguments": {
"protein_id": "P05067",
"ligand_smiles": "CC(=O)OC1=CC=CC=C1C(=O)O"
}
}
result = tu.run(request)
# Consistent result structure
{
"binding_affinity": -8.2,
"binding_probability": 0.85,
"confidence_score": 0.92,
"metadata": {
"model_version": "boltz-2",
"execution_time": "2.3s"
}
}
工具类型与后端抽象¶
该协议成功抽象了多种工具后端:
机器学习模型¶
# Protein structure prediction
{
"name": "boltz2_docking",
"arguments": {"protein_id": "1ABC", "ligand_smiles": "CCO"}
}
# ADMET property prediction
{
"name": "ADMETAI_predict_admet_properties",
"arguments": {"smiles": "CCO", "properties": ["BBB_penetrance"]}
}
数据库 API¶
# GraphQL database (OpenTargets)
{
"name": "OpenTargets_get_associated_targets_by_disease_efoId",
"arguments": {"efoId": "EFO_0000537"} # hypertension
}
# REST API (UniProt)
{
"name": "UniProt_get_entry_by_accession",
"arguments": {"accession": "P05067"}
}
科学软件包¶
# Bioinformatics tools
{
"name": "get_biopython_info",
"arguments": {"package": "Bio.SeqIO"}
}
# Analysis packages
{
"name": "Enrichr_analyze_gene_list",
"arguments": {"genes": ["BRCA1", "BRCA2"], "library": "KEGG_2021_Human"}
}
AI 智能体与工具¶
# Literature review agent
{
"name": "conduct_literature_review_and_summarize",
"arguments": {"topic": "HMG-CoA reductase inhibitors"}
}
# Hypothesis generation
{
"name": "HypothesisGenerator",
"arguments": {"context": "Alzheimer's disease treatment"}
}
错误处理与验证¶
该协议包括完善的错误处理机制:
输入验证¶
# Automatic parameter validation
request = {
"name": "UniProt_get_entry_by_accession",
"arguments": {
"accession": "INVALID_ID" # Invalid format
}
}
# Protocol returns structured error
{
"status": "error",
"error_type": "ValidationError",
"message": "Invalid UniProt accession format",
"details": {
"parameter": "accession",
"expected_format": "P12345 or Q9Y261",
"received": "INVALID_ID"
}
}
协议扩展¶
工具组成¶
该协议支持工具链的组合,以实现复杂的工作流程:
# Composed workflow example
workflow = {
"name": "drug_discovery_pipeline",
"arguments": {
"disease": "hypercholesterolemia",
"steps": [
"target_identification",
"compound_screening",
"ADMET_prediction",
"patent_analysis"
]
}
}
人机交互环节¶
通过该协议整合专家反馈:
# Request human expert consultation
{
"name": "consult_human_expert",
"arguments": {
"question": "Which HMG-CoA reductase inhibitor shows best safety profile?",
"context": {"compounds": ["lovastatin", "pravastatin", "simvastatin"]},
"expertise_required": "pharmacology"
}
}
远程工具集成¶
基于MCP的远程工具注册:
# Register external MCP server tools
{
"name": "register_mcp_tools",
"arguments": {
"server_url": "mcp://expert-system.company.com:8080",
"tool_categories": ["proprietary_ml_models", "private_databases"]
}
}
协议优势¶
针对 AI 开发者: - 单一界面,支持 600 多种多样工具 - 无需针对特定工具的集成工作 - 自动错误处理与校验 - 响应格式统一一致
面向科学家: - 关注研究逻辑,而非技术实现 - 跨不同工具的可复现工作流程 - 便捷的工具发现与实验 - 需要时整合人工专业知识
针对工具创建者: - 标准化功能暴露方式 - 自动支持 AI 兼容性 - 内置文档与验证 - 社区可发现性
实现细节¶
该协议通过 ToolUniverse 的核心组件实现:
工具注册表:将工具名称映射到实现类
工具调用器:负责协议解析与执行
工具查找器:实现三种发现策略
工具管理器:管理本地和远程工具的注册
验证引擎:确保请求/响应的合规性
小技巧
该协议使ToolUniverse独树一帜:虽然其他框架提供工具编排功能,ToolUniverse却创造了一种用于AI与工具交互的通用语言,类似于HTTP如何推动现代网络的发展。