当Agent的脚手架开始自己进化:DrugHarness怎么让药物发现Agent越用越聪明

想象你是一位药物化学家,正在设计一个 HPK1 抑制剂。你有四个已知有效的参考分子,最好的一个 IC50 是 37.47 nM。你的目标是设计一个更好的分子——活性更高,同时保持骨架不变、双键构型不变,只改末端酰胺氮上的取代基。

目录
  1. 当 Agent 的"脚手架"开始自己进化:DrugHarness 怎么让药物发现 Agent 越用越聪明
  2. 一个药物化学家的早晨
  3. 核心问题:工具会变多,但经验不会自动变成能力
  4. DrugHarness 的架构:执行器 + 学习器 + 审查器
  5. 第一层:可组合的科学执行环境
  6. 第二层:条件化技能的归纳
  7. 第三层:独立审查与三值准入
  8. 任务执行时:三值适用性评估
  9. 数据说话:从基准测试到实验验证
  10. 基准测试:全面超越现有系统
  11. 技能进化:经验真的有用
  12. 前瞻性验证:合成了真实分子
  13. 工程洞察:为什么"脚手架进化"比"模型进化"更重要
  14. 1. 经验的载体是技能,不是参数
  15. 2. 审查器的独立性是设计核心
  16. 3. 三值准入比二元判断更诚实
  17. 4. 拒绝也是一种学习
  18. 对 Agent 工程的启示
  19. 局限与未解问题
  20. 结语

当 Agent 的"脚手架"开始自己进化:DrugHarness 怎么让药物发现 Agent 越用越聪明

一个药物化学家的早晨

想象你是一位药物化学家,正在设计一个 HPK1 抑制剂。你有四个已知有效的参考分子,最好的一个 IC50 是 37.47 nM。你的目标是设计一个更好的分子——活性更高,同时保持骨架不变、双键构型不变,只改末端酰胺氮上的取代基。

你面前有 80 多个工具:BindingDB 查活性数据、RDKit 处理分子结构、ADMET-AI 预测药代性质、Boltz-2 做结构预测。你需要在这些工具之间穿梭——先查证据,再选候选,再算性质,再改结构,再评估。每一步的决策都依赖上一步的结果。

这不是一个模型够不够强的问题。这是一个编排问题:怎么把 80 个工具、多种数据源、一个 Python 环境、以及你自己过去的经验,组织成一条可靠的工作流?

DrugHarness 的回答是:让脚手架(harness)自己进化。

核心问题:工具会变多,但经验不会自动变成能力

过去几年的科学 Agent 走过了三个阶段:

1. 工具集成:ChemCrow、Biomni、ToolUniverse 把科学工具变成 Agent 可调用的接口 2. 流程编排:PharmAgents、TRACE 用领域技能和专家协作组织多步骤工作流 3. 经验复用:DrugSAGE、SciToolAgent-Evo 从历史轨迹中提取可复用的经验

但这里有一个被忽略的裂缝:经验不会自动变成可靠的行为指导。

论文提出了三个"耦合挑战"——它们不是三个独立问题,而是三个互相绑定的约束:

挑战一:推荐要扎根在正确的证据里。 一个活性测量值、一个预测的性质、Agent 自己的解读、最终的任务得分——它们回答的是不同的问题。一个 IC50 数据支持的是"这个分子有活性",但不一定支持"应该在这个位置做取代"。如果你把来源和对象搞混了,推荐就成了噪音。

挑战二:适用性要跨任务保持。 一个在任务 A 里有效的策略,到任务 B 可能就是错的。比如一组分子性质已经达标但多样性不够——这时候需要的不是继续优化同类候选,而是扩大结构探索范围。同一个建议,在不同状态下含义相反。

挑战三:指导要可执行、可修正。 一个看起来合理的推荐,可能建立在一个未经检验的科学前提上,或者依赖一个行为和描述不一致的工具。你需要能主动检查它,然后在后续反馈到来时修正它。

这三个挑战指向同一个结论:你需要一个学习过程,把科学证据、可观测条件、主动审查,和技能的持续使用绑定在一起。

DrugHarness 的架构:执行器 + 学习器 + 审查器

DrugHarness 的设计像一个有三层制衡的科学实验室:

第一层:可组合的科学执行环境

80+ 个科学操作,横跨 10 个能力类别——证据检索、靶点准备、分子设计、计算评估。BindingDB、RDKit、ADMET-AI、Boltz-2 和一个完整的 Python 环境并排工作。

关键设计:共享科学工作区。Agent 调用工具时,候选分子、计算条件、数据来源、输出结果之间的关联被保留下来。不同工具对同一个分子的评估结果不会丢失关联。返回的结构或数据集可以直接作为下一步分析的输入。

这听起来简单,但它是后续一切的基础。如果工具调用之间是孤立的——每次调用的上下文都从零开始——那经验就无处生长。

第二层:条件化技能的归纳

学习器从执行轨迹中提取经验。每条经验的形式化定义是:

\[e_i = (x_i, \tau_i, y_i, f_i)\]

其中 \(x_i\) 是任务目标与约束,\(\tau_i\) 是 \(T_i\) 步的(动作,观测)序列,\(y_i\) 是交付物,\(f_i\) 是允许的反馈。

学习器从一批经验中识别反复出现的决策问题,比较相关的科学对象、终点、方法和证据状态,然后生成一个条件化行为假设:

\[h = (g, c, a_0, a, R_h, U_h)\]
  • \(g\):目标
  • \(c\):执行器可观测的条件
  • \(a_0\):当前动作,\(a\):推荐动作
  • \(R_h\):支持或限制这个假设的来源
  • \(U_h\):未解决的信息
这不是"当遇到 X 就做 Y"的简单规则,而是"在条件 C 下,为了目标 G,从 A0 改为 A,依据是 R,但还有 U 没搞清楚"。

举个例子:当一组分子的性质已经达标但多样性不足时,假设会建议"优先扩大结构来源,而不是继续优化相似候选"。条件是"性质达标 + 多样性不足",目标是"提高整体质量",依据是"优化相似候选的边际收益递减"。

第三层:独立审查与三值准入

候选技能生成后,一个独立的审查 Agent 检查三件事:

1. 证据是否支持推荐? 审查器可以检索原始来源、检查接口 2. 执行器能否评估条件? 如果条件依赖执行器看不到的信息,技能就是空中楼阁 3. 指令能否被执行? 如果推荐的操作在环境中跑不通,技能就是死代码

审查器有一个特殊权力:当科学或操作问题需要计算验证时,它可以在同一个科学工作区里做定向试验——跑一个小实验来验证假设。

审查结果不是二元的是/否,而是三值:

  • admit(采纳):技能进入技能库,后续任务可用
  • reject(拒绝):与关键事实或约束冲突,拒绝
  • defer(搁置):证据不足,搁置但保留记录
被拒绝和被搁置的提案不会消失——它们的审查记录、试验发现、未解决问题都会进入下一轮学习。这很重要:一个"现在还不行"的技能,可能在积累了更多证据后变成"现在可以了"。

任务执行时:三值适用性评估

技能被采纳后,执行器在任务中发现相关技能时,会评估其适用性条件:

\[\hat{\chi}_j(h) = \text{Assess}(c; s_j) \in \{\text{supported}, \text{contradicted}, \text{unknown}\}\]
  • supported:条件被当前状态支持,推荐可以指导动作选择
  • contradicted:条件与当前状态矛盾,执行器转向其他依据
  • unknown:关键条件未知,执行器决定是否需要进一步获取信息
三值而不是二值,这是 DrugHarness 的一个关键设计选择。在科学推理中,"我不知道现在是否满足条件"和"条件不满足"是完全不同的状态——前者意味着你需要去查,后者意味着你应该换路走。

数据说话:从基准测试到实验验证

基准测试:全面超越现有系统

在 MolBench 上(190 个分子决策任务):

指标MolClaw-CCCAiDrugHarness
亲和力比较准确率81.1%54.1%91.9%
平均 Hits@30.800.761.24
筛选准确率98.0%18.0%98.0%
分子编辑整体97.4%87.2%100%
优化成功率—48.7%94.9%
在 SMDD-Bench 上(40 个先导优化任务):DrugHarness 达到 60% 成功率,原 SMDD harness 只有 50%。更值得注意的是交互点发现(IP)——DrugHarness 28.0%,原 harness 0.0%。

技能进化:经验真的有用

回顾性评估中,使用冻结的领域技能后:

  • 筛选准确率:96.0% → 100%
  • 亲和力比较准确率:62.2% → 81.1%
  • 优化成功率:79.5% → 87.2%
  • 有效 JSON 提交:87.2% → 100%
一个具体案例:在亲和力任务 ms2-029 中,两个版本的技能都引导执行器检索了同样的 933 条记录。早期技能提示文本搜索和结构推理;修订后的技能提示用 RDKit 做结构匹配,区分 \(K_i\) 和 IC50。决策从错误变成正确。

前瞻性验证:合成了真实分子

HPK1 设计任务中,DrugHarness 设计的分子被真实合成并实验验证:

  • Jurkat p-SLP76 IC50 = 14.19 nM
  • 四个参考分子的 IC50 范围:37.47–227.77 nM
  • 1 nM 浓度下 HPK1 抑制率:96.92%
  • 与两位五年以上经验的药物化学家独立设计的分子活性相当
这不是在基准上刷分——这是一个 Agent 设计的分子在湿实验里打败了所有参考分子。

工程洞察:为什么"脚手架进化"比"模型进化"更重要

1. 经验的载体是技能,不是参数

大多数 Agent 系统的经验复用方式是:把历史轨迹塞进上下文,或者微调模型参数。DrugHarness 选择了第三条路:把经验固化成有条件、有依据、可审查的技能。

技能不是一段自然语言提示词。它有结构化的目标、条件、推荐动作、证据来源、未解决问题。这意味着技能可以被独立审查、可以被拒绝、可以在后续证据到来时修订。

2. 审查器的独立性是设计核心

审查器和执行器使用同一个科学工作区,但它们是独立的。审查器可以跑试验来验证假设——这不是一个"读一读然后打分"的审查器,而是一个"会做实验的审查器"。

这解决了一个深层问题:Agent 自己生成的经验可能有幻觉。如果一个技能建立在错误的前提上,执行器用它会失败,但失败只会在后续任务中暴露。审查器的定向试验把这个问题前移到了技能准入阶段。

3. 三值准入比二元判断更诚实

admit / reject / defer 的三值设计,承认了一个事实:有时候你没有足够的信息做决定。defer 不是"拒绝"的委婉说法——它是一个明确的状态:"这个问题现在无法回答,但保留记录,等更多证据来了再说"。

这和人类科学家的决策方式一致。论文评审不是"接收/拒绝"二选一——还有"大修后重投",本质上是 defer。

4. 拒绝也是一种学习

被拒绝的技能提案不会消失。审查记录、试验发现、未解决问题都会进入下一轮学习。这意味着拒绝不是浪费,而是一种信息收集——你花了一次审查的成本,但知道了"这条路走不通"以及"为什么走不通"。

对 Agent 工程的启示

DrugHarness 的核心洞察可以推广到药物发现之外:

"可进化脚手架"是一个新的架构范式。 传统的 Agent 架构是:模型 + 工具 + 固定流程。DrugHarness 提出的是:模型 + 工具 + 会进化的流程。流程本身会从执行经验中学习,生成有条件的技能,经过独立审查后进入技能库。

这和步子哥之前关注的 Harness/Loop/Graph 三层架构形成呼应:Harness 不是静态的管道,它自己应该是一个学习系统。Loop 不只是"观察-思考-行动"的循环,还应该包括"归纳-审查-修订"的元循环。

条件化技能比通用指南更有用。 很多 Agent 框架的"经验"是一堆自然语言 tips——"遇到 X 可以试试 Y"。DrugHarness 的技能是结构化的:在什么条件下、为了什么目标、从什么动作改成什么动作、依据是什么、还有什么没搞清楚。这种结构让技能可以被机器评估、被独立审查、被精确修订。

独立审查 + 定向试验是 Agent 自我进化的安全网。 任何自我进化的系统都面临一个风险:自己生成的改进可能有幻觉。DrugHarness 的审查器不是打分模型,而是会做实验的独立 Agent——它用同一个环境验证假设,而不是只看文本合理性。

局限与未解问题

论文诚实地列出了局限:

  • 技能进化只在单一基准上做了回顾性评估,大规模泛化能力未知
  • 和其他 Agent 框架的系统化成本对比缺失
  • 实验验证规模有限,可开发性性质覆盖不全
  • HPK1 的四个抑制终点是事后选择的——DrugHarness 中位数更低,但 hERG 抑制更高、QED 更低
最后一点值得展开:事后选择指标是药物发现中的常见问题。DrugHarness 在四个抑制终点上优于 Biomni,但在 hERG(心脏毒性指标)和 QED(类药性)上更差。这意味着 Agent 的"优化目标"定义需要非常小心——你优化什么,Agent 就会在什么上变强,但可能在你看不到的维度上变弱。

结语

DrugHarness 做了一件很难的事:它让一个 Agent 系统从"能执行任务"进化到"能从执行中学习,并且学习过程本身是可信的"。

关键不是 80 个工具,不是 91.9% 的准确率,甚至不是 14.19 nM 的 IC50。关键是它展示了一种可能性:脚手架可以进化,进化可以被审查,审查可以做实验,实验结果可以反馈到下一轮进化。

这是一个闭环。而闭环,是所有自我改进系统的终极目标。


论文:arxiv.org/abs/2610.23791

代码:论文声明将释放实现、工具接口和环境配置,目前尚未公开。

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens