Protenix ToolUniverse 远程工具用于在本地部署 Protenix 的远程服务,并可选通过 ToolUniverse Connect 中继。已验证 Protenix 1.1.0 在 NVIDIA GB10(aarch64, cc 12.1)上以优化套件关闭模式运行;35 残基折叠耗时 4.4-5.1 秒,峰值显存约 1.9 GiB(100 残基)至 9.65 GiB(800 残基)。公开分发、跨用户隔离、并发、恢复和结构准确性尚未测试,建议保持私有部署。
前置条件:从 ToolUniverse 仓库根目录运行,Linux + Python 3.12.3;需要 CUDA GPU,模型常驻内存;提供者数据、权重、缓存和凭证应放在 Git 之外;绑定回环地址,非回环绑定需设置 TOOLUNIVERSE_API_TOKEN。首次使用前运行标准库契约检查脚本(setup_skill_preflight.py --implementation protenix_v1),启动后可加 --live 验证 MCP 工具集。
创建两个环境:MCP 服务器运行在 ToolUniverse 环境中,模型运行在独立环境(由锁文件构建)。模型环境路径由 TOOLUNIVERSE_PROTENIX_V1_PYTHON 指定;另一个 CPU 环境运行 AF3 特征化器和 mmCIF 写入器,路径由 PROTENIX_V1_JAX_PYTHON 与 PROTENIX_V1_JAX_REPO 指定。模型权重由转换器生成,非直接下载。使用 tu remote setup protenix_v1 执行 preflight、environment、kit、weights、smoke 五个步骤,各步骤失败会明确报错并给出修复方法。
启动与验证:运行 python -m tooluniverse.remote.protenix_v1.protenix_v1_tool,Streamable HTTP 端点为 http://127.0.0.1:8046/mcp。使用 FastMCP 客户端列出工具,确认包含 protenix_v1_fold。首次请求会构建模型,后续请求复用常驻模型。
连接 ToolUniverse Connect:安装已审核的 tuplatform-connect 0.3.0 轮子(含 SHA-256 校验),使用 tu doctor 和 tu serve --share 进行验证与共享。交互式共享使用浏览器设备授权,无需复制密钥。CI 或迁移场景可通过受保护环境变量或 tu remote login --manual-key 提供 TOOLUNIVERSE_SERVICE_KEY,切勿将密钥放入命令行参数。
示例:调用 protenix_v1_fold,参数为 {"chains":[{"molecule_type":"protein","sequence":"LSDEDFKAVFGMTRSAFANLPLWKQQNLKKEKGLF"}]}。成功时返回 n_structures 大于 0 的 scores 对象,包含每个样本的置信度 JSON(如 avg_plddt);调用者需对五个扩散样本进行排序。输入失败会返回带上游原始信息的错误,与工作进程不可用不同。
GPU 与并发:使用单个工作进程,常驻工作进程一次只处理一个请求,并发请求会排队。调整前读取提供者清单中的 vram_budget_gb 和实测文件。测试冷启动、至少四次连续相同请求、混合形状序列,以及并行级别 1、2、4、8(内存允许时到 16),记录成功/错误、p50/p95、峰值内存/显存、利用率、排队、取消清理和恢复情况。
故障排查:每个步骤的错误会明确说明问题和修复方法;工作进程日志位于 ~/.cache/tooluniverse/remote-logs/protenix_v1-resident.log;模型失败日志位于 /tmp/protenix_v1-resident-*/logs/predict_err_rank0.log。模型环境导入失败可重新运行 --only environment;权重哈希不符时手动删除文件后重跑 --only weights。使用 Ctrl-C 停止服务器/中继,必要时运行 tuplatform-service uninstall。确认后仅删除 .venvs/protenix_v1 和提供者缓存目录,避免宽泛递归删除。使用 tu remote logout --revoke 撤销临时密钥。