把论文丢给三个AI轮流看,我花两天搭了个简化版药企研究助理
先说背景。这两天刷到 AstraZeneca 发在 arXiv 上的论文,讲他们用多 agent 系统做药物研发助手。点进去看了一下,核心是从单个 agent 进化成了多个 agent 分工协作,跑在 Amazon Bedrock 上,给临床、监管、患者支持这些不同部门共用。看完最大感受是:药企都在搞的东西,我们实验室其实也能用个简化版。
先解释两个词。agent 就是一个能自己干活、有记忆、能调工具的 AI 程序,不是聊天窗口那种你问一句它答一句。多个 agent 就是拆成不同角色,比如一个查文献、一个写摘要、一个审稿,各干各的。HITL 就是 human-in-the-loop,人在回路里,意思每一步 AI 干完活都有个人检查一下再放行。
我的做法是在本地搭了三个 agent 来模拟临床数据论文的研读流程,全程用了我之前写过的那套本地模型配合网关工具。如果你们是零基础,可以把我用的东西换成任何支持 agent 的在线平台,核心思路一样。
第一步,把任务拆成三个角色。我把一个 agent 设成「文献检索员」,负责从一个文件夹里抓 PDF 并提取关键字段,比如入组人数、用药组、对照组。第二个设成「摘要员」,拿到检索员的输出后,读全文写成一段结构化摘要。第三个是「复核员」,负责挑毛病,比如「摘要里说纳入了 500 人,但表 2 里只有 480 人完成试验,这个差异标注了吗」。
第三步,写角色提示词。提示词就是告诉 AI 它是谁、要干什么、输出什么格式。我这里贴一个经典的写法,你们复制就能用。检索员的提示词我写的:你是临床数据检索员,只提取论文中与试验设计相关的数值,不总结。如果同一数据在正文和表格中冲突,两处都列出并标注页码。摘要员的提示词:把检索员的结果和论文关键段落改写成 300 字以内的摘要,必须保留入组人数和主要终点。复核员的提示词:你负责挑刺,检查摘要中每个数值是否能在检索结果中找到依据,找不到就标记问题。
接着把这三个 agent 用网关串起来,数据流向是:检索员输出保存成 JSON 文件,摘要员读取这个文件再写摘要,复核员读取摘要和历史数据做校验。网关在这里的作用是把每一步的输入输出都存了日志,出了问题能回看是哪一步改了数据。
第四步,跑一遍测试。我拿了一个公开的二期临床试验 PDF,共 42 页,跑了大概四十分钟。摘要员写的初稿大部分能直接用,复核员挑出了三个数值不一致的地方,其中一个是正文的入组人数和图表里的入组人数差了 6 个人,这种问题人眼核对要半天,它五分钟就找出来了。
踩坑环节。最大的坑是 agent 之间的上下文会互相污染。第一个 agent 输出的 JSON 里带了「备注」字段,摘要员把这个备注当成正文内容写进了摘要,导致数据来源错乱。解决方法是每个 agent 的任务里明确写「只读取指定输入文件,文件格式为 JSON,字段说明如下」,不要让它自由发挥。
另一个坑是复核员会过于严格。我这边测下来,复核员会把「摘要中未提及」当成「数据错误」来报,产生很多误报。后来给复核员加了一条规则:只标记「两个数据来源之间互相矛盾」的项,不标记「仅有一个出处」的项,误报率立刻降了大概一半还多。
最后说结论。这套东西适合我吗?文献综述多、跨论文做对比的组,值得搭。但如果只是偶尔看一两篇论文,手动摘要就够了,不值得花这个时间。至于药企那种几百个 agent 并存的大系统,我这个三个角色的骨架,算是把核心流程走通了。有个问题留给你们讨论:这类系统如果跑得越来越顺,摘要员和复核员会不会变成摆设,人只会在最后点头,那时候 HITL 还是真的吗。
本文编译自 Arxiv AI,原文:[2608.12395] Research Assistant: AstraZeneca's Agentic System for R&D
版权归原作者所有,本文为基于公开报道的编译与独立分析。
物界前沿