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工具交互协议包含三个基本要素:

  1. 规范架构 - 工具自我描述方式

  2. 交互模式 - 如何请求工具执行

  3. 通信方法 - 本地 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"
]

实现方法:

  1. 关键词搜索:结合形态学处理的快速TF-IDF匹配

  2. 基于大型语言模型的搜索:针对复杂查询的上下文推理

  3. 嵌入式搜索:使用微调模型进行语义相似度计算

呼叫工具操作

目的:使用指定参数执行选定的工具

输入:工具名称及结构化参数

输出:工具执行的结构化结果

# 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如何推动现代网络的发展。