凌晨两点指令只有一句话帮我设计一个能结合锌离子的蛋白用4个骨架每个骨架6条序列。六分钟后屏幕上跳出三个数字88.6、88.2、82.4——全部是高置信度的pLDDT。中间没有人点过一次下一步。RFDiffusion 吐出骨架ProteinMPNN 自动把 24 条候选序列跑了个遍Boltz-2 挨个验证Qwen3.6-27B 挑出前三名并写好了改进建议。整条链路从骨架到结构验证零点击。这不是调用哪家公司的蛋白质设计 API。这是一套完全长在自己内网 HPC 集群里的东西代号 BioTender Assistant是用 Claude Code 一行一行手搓出来的。这篇文章记录它是怎么被搭起来的——包括那些让人半夜想砸键盘的 bug以及最后是怎么被 Claude Code 揪出来的。【图1BioTender Assistant 首页——左侧工具面板右侧对话流】01 先把家底盘清楚三台机器五个模型动手之前先想清楚一件事让语言模型自己设计蛋白质本质上不是训练一个新模型而是把一堆各自独立的专业工具用一个会规划、会调度的大脑串起来。工作台最终长这样——一个大脑四件称手的工具1骨架从头生成RFDiffusion扩散模型生成蛋白骨架→RTX 4090 2序列逆向设计ProteinMPNN基于结构的序列优化→RTX 4090 3结构预测与验证Boltz-2端到端结构预测输出 pLDDT→RTX 4090 4蛋白-配体复合物OpenDDE655M 参数联合结构预测→RTX 4090 自然语言交互Qwen3.6-27B本地部署OpenAI 兼容 API → A100 80GBQwen3.6-27B 在整个系统里的角色很单纯理解用户用中文描述的研究目标规划该调哪个工具、按什么顺序调再把工具吐出来的结果读懂、分析、给建议。四个计算工具各自只做一件事谁都不需要聪明聪明的事交给大脑。02 手搓的第一步把工具翻译成模型看得懂的语言Qwen3.6-27B 本身不知道什么是 RFDiffusion。要让它会用这些工具第一步是把每个工具包装成 OpenAI 格式的 function calling 定义交给模型去挑generate_backboneRFDiffusion 骨架生成支持 unconditional给定残基数量随机生成拓扑和 motif scaffolding围绕已知功能位点设计新骨架两种模式 design_sequencesProteinMPNN 批量序列设计对所有骨架都跑一遍返回全局排序结果 validate_structureBoltz-2 批量结构验证接受一份序列列表返回每条的 pLDDT predict_structureBoltz-2 单序列预测附带 3D 可视化。后端用 FastAPI 撑起一组对应的接口/api/backbone 启动骨架生成、/api/design 启动序列设计并自动遍历所有骨架、/api/validate 跑批量验证、/api/predict 做单条预测。每个任务都扔进 BackgroundTasks 异步执行状态存在内存字典 JOBS 里前端轮询 /api/status/{job_id} 拿进度完事之后用 /api/result/{id} 下载 PDB 文件。整套设计的哲学很朴素后端只管把重活甩给 GPU 节点脏活累活留给大脑去调度。03 让AI自己把链路串起来零点击的野心光有工具还不够真正的难点是让 AI 在拿到一个结果后自己判断接下来该干什么而不是每一步都要人点一下继续。这靠两轮对话接口撑起来/api/chat 负责第一轮Qwen 决定调用哪个工具返回 tool_call 或者纯文本/api/chat/resume 负责把工具结果喂回去让 Qwen 决定是链式调用下一个工具还是收工写总结。一条完整的自动流程长这样。用户发一句帮我设计一个结合锌离子的蛋白Qwen 解析意图先用一两句话说明设计思路随即调用 generate_backbone前端轮询直到骨架生成完成把结果反馈给 QwenQwen 收到骨架后立即调用 design_sequencesProteinMPNN 对所有骨架批量设计完成Qwen 挑出 score 最低的前三条调用 validate_structureBoltz-2 批量验证完成Qwen 生成综合分析——pLDDT 对比、改进建议这条链路能不能真的自动跑下去几乎全靠一份写得够狠的 SYSTEM_PROMPT。三条硬约束缺一不可第一先解释后执行——第一次调用工具前必须先用一两句话说明设计意图和参数选择的理由第二链式自动调用——拿到工具结果之后立刻调下一步不等用户确认第三批量验证指引——明确要求从序列设计结果里挑 score 最低的三条作为列表传进验证工具。没有这三条约束模型要么调用一次就停下来等指令要么一次只验证一条序列整条流水线根本跑不完。04 界面暗色系金色调前端没有用任何框架纯 HTML/CSS/JS 写成单文件 index.html部署起来最省心。视觉上选了深色主题配金色调强调色等宽字体展示序列这类数据符合一个实验台该有的气质。左侧固定侧边栏分三块语言模型区显示 Qwen3.6-27B 的在线状态计算工具区列出 Boltz-2、OpenDDE、ProteinMPNN、RFDiffusion各自标注所在节点工作流区放了几个常用流程的快捷入口。【图2左侧边栏——模型与工具状态面板】首屏还摆了四张功能卡片点一下就把提示词自动填进对话框省去用户想措辞的功夫。【图3首页功能卡片区——结构预测、序列分析、蛋白质工程、从头设计】对于不需要调用计算工具的普通问题AI 直接用结构化中文流式回复支持 Markdown 渲染。【图4AI 普通问答——解释 RFDiffusion 与 ProteinMPNN 的分工】而一旦触发工具调用对话流里会内嵌实时卡片running 状态是旋转动画配进度文字比如骨架生成中……ProteinMPNN 对 2/4 骨架设计完成……success 状态换成绿色钻石图标附结果摘要和下载链接。序列设计面板会把所有候选序列列出来每条标注来自第几个骨架、score 多少批量验证面板则是一张表格pLDDT 数值配上置信度标签。05 Claude Code踩坑记六个让流水线卡死的瞬间把这套系统从能跑通一次改造成零点击全自动中间踩的坑比想象中密集。以下六个是最典型的——每一个都靠 Claude Code 逐层排查日志、对照代码、定位到具体行才解决记下来是因为它们背后的教训比 bug 本身更值钱。▶ Bug 01ESMFold需要的openfold装不上 现象pip 安装到的只是一个占位包真正能用的 openfold 需要现场 CUDA 编译在现有环境里根本装不起来验证工具一调用就报模块找不到的错误。 解法不再纠结装环境直接把验证函数的函数体换成调用 Boltz-2——输出同样是 pLDDT接口完全兼容改一个函数体问题就没了。▶ Bug 02AI明明说了话用户却什么都看不到 现象Qwen 在 thinking 模式下会把调工具前的说明文字写进内部思考标签里而后端在这一段直接硬编码返回了空字符串——结果就是先解释后执行这条约束表面上生效了用户却完全看不到 AI 说了什么。 解法把完整内容取出来用正则去掉思考标签剩下的纯文字部分才是真正要展示的说明。▶ Bug 03零点击承诺被自己的一个按钮打破了 现象骨架生成跑完之后前端会在对话区插入一个下一步ProteinMPNN 设计序列的按钮得等用户手动点一下才会触发下一步——这跟零点击自动流程的设计目标是直接矛盾的。 解法把这个按钮插入逻辑整个删掉骨架生成完成后直接把结果传给下一层处理函数由它自动继续走下一步没有中间商也没有等待。▶ Bug 05四个骨架只有一个被真正设计了序列 现象序列验证工具的参数原本是单数形式AI 只能选得分最低的一条去验证没法对比不同骨架设计出来的质量差异再往上查序列设计函数本身只取了第一个骨架四个骨架跑完 RFDiffusion 之后只有第一个真正被 ProteinMPNN 设计了序列。 解法两处一起改工具参数从单数改成列表后端逐条调用 Boltz-2 并按 pLDDT 降序返回序列设计函数改成遍历所有骨架列表对每个骨架独立跑一遍 ProteinMPNN把结果合并起来每条序列标注来自哪个骨架再全局按 score 排序。一点体会这些 bug 有个共同点——没有一个是模型不够聪明导致的全部出在胶水层CDN 版本、字节编码、依赖安装、字段解析、交互逻辑、参数形状。用 Claude Code 手搓 agent 的大部分时间其实花在这些看起来最不起眼的接缝上调度大脑越聪明越需要胶水层稳一处松动就会让整条链路在用户完全无感的情况下悄悄断掉。06 实测一句话六分钟零次点击改造完成后拿一条真实指令做验收帮我设计一个能结合锌离子的蛋白用4个骨架每个骨架6条序列。全程约 6 分钟AI 自主走完全部流程中间没有一次人工干预骨架生成 · RFDiffusion · 4个100aa骨架PDB · 约90秒 序列设计 · ProteinMPNN · 24条序列4骨架×6条全局按score排序 · 约40秒 批量验证 · Boltz-2 · top-3序列pLDDT88.6/88.2/82.4均高置信· 约3分钟 综合分析 · Qwen3.6-27B · 最优候选推荐Motif Scaffolding改进建议 · 约30秒AI 先用两句话解释设计思路——为什么选这个骨架长度、参数为什么这么定——随即自动触发 RFDiffusion对话区弹出工具卡片标注RFDiffusion · 骨架生成 · 进行中……。【图5AI 自主触发 Pipeline——解释意图后立即调用 generate_backbone】07 接下来打算加什么· Motif Scaffolding 流程预置常见金属结合位点 PDB锌指、铜蓝蛋白等支持 motif 模式一键触发 · 并行验证目前串行跑 Boltz-2可以用 asyncio 配合多 GPU 并行提速 · 历史会话持久化目前存在内存里服务一重启就丢打算换成 SQLite 或 Redis · 3D 结构查看器已经引入了 mol* viewer继续完善骨架生成结果的三维展示 · 接入更多工具AlphaFold3、RoseTTAFold、ESM-2 之类理论上都可以按同一套架构接进来 · 用户认证与配额目前完全没有认证后续要加 JWT 加计算配额管理回头看这套系统最值钱的部分是那条串起来的 SYSTEM_PROMPT和被 Claude Code 一个一个揪出来的胶水层 bug。工具会变——RFDiffusion 换成别的骨架生成模型Boltz-2 换成下一代结构预测器架构本身几乎不用动。这大概就是手搓 agent和调用别人 API最大的区别前者踩完坑之后坑是自己的经验后者出了问题只能等别人发公告。