用途:ToolUniverse Python SDK 面向科研场景,用于构建 AI 科学家系统,通过统一接口调用多种科学数据库与模型工具,覆盖蛋白质、药物、基因组、疾病、文献、通路和机器学习预测等类别。
主要能力:提供三种调用模式,推荐从字典 API 开始:tu.run({"name": ..., "arguments": ...}) 最便携;tu.tools.ToolName(param=value) 适合交互使用;直接实例化类为高级用法,会绕过缓存与钩子。支持批量执行 tu.run_batch(calls),可组合成科研工作流,例如先查疾病相关靶点,再检索化合物活性。内置工具查找(Tool_Finder_Keyword)、缓存统计与清理、钩子(可自动摘要大输出)以及按类别加载工具。
安装与配置:pip install tooluniverse 为标准安装;pip install tooluniverse[embedding] 支持嵌入搜索(GPU);pip install tooluniverse[all] 安装全部功能。使用 LLM 工具搜索需设置 export OPENAI_API_KEY="sk-...",NCBI_API_KEY 为可选。
使用方式:先 from tooluniverse import ToolUniverse 创建实例,必须调用 tu.load_tools() 后才能调用任何工具。可用 tu.run 查找或执行工具,也可用 tu.tools.X 函数式调用。缓存需按调用开启,如 tu.tools.some_tool(param="value", use_cache=True),并通过 tu.get_cache_stats()、tu.clear_cache() 管理。可按类别加载,如 tu.load_tools(categories=["proteins", "drugs"])。
限制与注意:工具名区分大小写;Tool Finder 返回嵌套结构,需在 isinstance 判断后通过 tools['tools'] 访问;调用前应检查必填参数,如 tu.all_tool_dict["ToolName"]['parameter'].get('required', []);确定性调用可缓存,实时数据不宜缓存;异常处理可导入 ToolError、ToolUnavailableError、ToolValidationError。文档见 https://zitniklab.hms.harvard.edu/ToolUniverse/,代码见 https://github.com/mims-harvard/ToolUniverse。