SuperAPI AI 工具集

setup-openfold3_ob0-remote-tool

智能体与模型

查看项目

更新于 10-20 04:55

技能介绍

用途

该技能用于在 ToolUniverse 框架下,将 OpenFold3(OpenBind-0 参数)作为远程工具进行搭建、启动、验证和故障排查;也可选择通过 ToolUniverse Connect 中继共享。

主要能力

  • 提供五步设置流程:preflight、environment、kit、weights、smoke,可用 tu remote setup openfold3_ob0 一次执行,或通过 --only 分步执行。
  • 创建两个隔离环境:MCP 服务器运行在 ToolUniverse 环境中,模型运行在独立环境中(由 TOOLUNIVERSE_OPENFOLD3_OB0_PYTHON 指定路径)。
  • 自动下载并校验权重(OpenBind-0 的 of3-ob-2025-06-30-174k.pt,注册名 openbind-2025-06-30-174k)。
  • 提供本地启动与验证方式,MCP Streamable HTTP 端点默认 http://127.0.0.1:8052/mcp。
  • 支持通过 tu remote share 将服务私有共享至 ToolUniverse Connect。
  • 包含性能调优建议:单 worker、VRAM 预算检查、冷启动与连续请求测试、并发级别测试等。
  • 包含故障排查指引:拒绝信息解读、日志位置、常见错误处理等。

使用方式

前置条件

  • 从 ToolUniverse 仓库根目录运行,Linux 系统,Python 3.12.3。
  • 需要 CUDA GPU;该 provider 模型常驻内存,非 CPU 目标。
  • 将 provider 数据、权重、缓存和凭证放在 Git 之外。
  • 绑定回环地址;非回环绑定需要 TOOLUNIVERSE_API_TOKEN。

设置流程

  1. 运行标准库契约检查:
    python scripts/remote_validation/setup_skill_preflight.py --implementation openfold3_ob0
    
  2. 创建两个虚拟环境:
    • ToolUniverse 环境(MCP 服务器):
      python3 -m venv .venvs/openfold3_ob0
      . .venvs/openfold3_ob0/bin/activate
      python -m pip install --upgrade pip
      python -m pip install -e .
      python -m pip install fastmcp
      
    • 模型环境(使用标准库 venv,避免 uv venv):
      "$(uv python find --managed-python 3.11)" -m venv ~/openfold3_ob0-venv
      export TOOLUNIVERSE_OPENFOLD3_OB0_PYTHON=~/openfold3_ob0-venv/bin/python
      
  3. 执行设置(五步):
    tu remote setup openfold3_ob0
    
    可逐步执行,例如 --only smoke 验证模型可运行并记录 VRAM 峰值到 ~/.cache/tooluniverse/measured/openfold3_ob0.json。

本地启动与验证

python -m tooluniverse.remote.openfold3_ob0.openfold3_ob0_tool

在另一 shell 中验证工具发现:

import asyncio
from fastmcp import Client

async def main():
    async with Client("http://127.0.0.1:8052/mcp") as client:
        print([tool.name for tool in await client.list_tools()])

asyncio.run(main())

确认发现包含 openfold3_ob0_fold。

调用示例:

import asyncio
import json
from fastmcp import Client

async def main():
    arguments = json.loads(r'{"chains":[{"molecule_type":"protein","sequence":"LSDEDFKAVFGMTRSAFANLPLWKQQNLKKEKGLF"}]}')
    async with Client("http://127.0.0.1:8052/mcp") as client:
        result = await client.call_tool("openfold3_ob0_fold", arguments)
        print(result)

asyncio.run(main())

成功时返回 n_structures 大于零及 scores 对象,包含每个样本的 *_confidences_aggregated.json(avg_plddt、ptm、iptm、sample_ranking_score、has_clash)。五个扩散样本需调用方自行排序。per-residue 的 *_confidences.json 仅在小于 64 KiB 时返回,否则在 scores_omitted 中给出路径。

共享至 ToolUniverse Connect

安装中继 SDK:

python -m pip install fastmcp pyyaml "tuplatform-connect @ https://connect.aiscientist.tools/downloads/tuplatform_connect-0.3.0-py3-none-any.whl#sha256=3fad5eee5ecf7887a693d93ccd1aa112dc0955617a885d1fc3daded0030f9ae0"

登录(每台机器一次):

tu remote login
# 或从受保护的 0600 文件导入:
tu remote login --env-file /path/to/tooluniverse-service.env

共享:

tu remote share openfold3_ob0

可选参数:--name、--workers。

调优与排查

  • 使用单个 worker;常驻 worker 设计上一次处理一个请求。
  • 参考 vram_budget_gb 和测量文件;VRAM 峰值随输入规模呈 N² 增长,超出预算的查询会被拒绝。
  • 测试应包含冷启动、至少四次连续相同请求、混合形状序列、并发级别 1/2/4/8(谨慎 16)。
  • 日志:~/.cache/tooluniverse/remote-logs/openfold3_ob0-resident.log;traceback 在 /tmp/openfold3_ob0-resident-*/logs/predict_err_rank0.log。
  • 退出码 3 表示拒绝,1 表示失败;拒绝信息会指明问题及修复方法。

适用场景

  • 需要在本地 GPU 上私有部署 OpenFold3(OpenBind-0)结构预测服务。
  • 需要通过 ToolUniverse Connect 将服务私有共享给授权用户。
  • 需要验证模型运行、记录 VRAM 峰值、进行性能调优。

限制

  • 需要 Linux + CUDA GPU,CPU 非目标。
  • 必须使用 OpenBind-0 参数;与 openfold3 provider(0.4.1 / preview-2)不兼容,两者需独立环境和端口。
  • 权重来自公开 S3 桶,无许可证接受;上游未对参数本身声明许可证,代码为 Apache-2.0。
  • 公共发布、跨用户隔离、并发、恢复和生物学准确性未测试;建议保持私有部署。
  • 该实现未通过 Platform 矩阵测试;证据仅为单卡本地回环端点。
  • 中继 SDK 未发布至 PyPI,需从指定 URL 安装。
  • 不提供模型精度保证;用户需自行检查科学意义、输出边界和无效输入行为。