@martinfowler: 新文章 我们与拜耳合作使用AI,帮助药物研究人员查询埋藏在PDF报告中数十年积累的信息…
摘要
Martin Fowler 和拜耳分享了构建 PRINCE 的历程,这是一个使用RAG的自主AI系统,帮助研究人员查询数十年来的PDF报告,从而变革了临床前数据检索方式。
查看缓存全文
缓存时间: 2026/06/17 05:49
新文章
我们与拜耳合作,利用AI帮助药物研究人员查询数十年累积在PDF报告中的信息。Sarang Sanjay Kulkarni 描述了从基于关键词的搜索到能够起草监管报告的研究助手的发展历程
https://t.co/Oi74GFzrYL
构建可靠的智能体AI系统
来源:https://martinfowler.com/articles/reliable-llm-bayer.html 临床前药物发现本质上是复杂且数据密集的。研究人员面临着一个重大挑战:如何高效访问和分析这一关键阶段产生的海量信息。传统的基于关键词的搜索方法,通常依赖僵化的布尔逻辑,在面对临床前研究问题的细微和复杂特性时,常常力不从心。
大型语言模型(LLM)的出现带来了变革性的机遇。通过将LLM的生成能力与信息检索系统的精确性相结合,检索增强生成(RAG)已成为一种有前景的技术。这种方法有望彻底改变临床前数据访问方式,使研究人员能够用自然语言提出复杂问题,并基于专有数据获得准确、上下文丰富的答案。
拜耳早期就认识到这一潜力,致力于探索这些技术如何解决临床前研究中的长期挑战。
在这篇文章中,我们分享了这段历程——拜耳对生成式AI的早期投资如何催生了PRINCE,一个基于Agentic RAG构建的智能体AI系统。本案例研究探讨了技术架构、工程决策以及将临床前数据检索从迷宫般的挑战转变为直观对话体验的经验教训。
PRINCE背后的许多工程决策现在可以通过上下文工程和框架工程的视角来理解,尽管在设计系统初期我们并未使用这些术语。上下文工程决定了每个模型接收哪些信息、不接收哪些信息,以及上下文如何在研究、反思和撰写等专门步骤之间流动。框架工程则塑造了模型周围的支撑结构:编排、工具边界、状态持久化、重试、回退、验证、反思循环、可观测性以及人工审核。
本文重点介绍技术架构和工程挑战,我们在《人工智能前沿》期刊上发表的论文则更详细地介绍了产品演进和业务影响。
挑战:在临床前数据迷宫中导航
像许多大型制药组织一样,拜耳的临床前研究领域呈现出多样且广泛的数据特征。这些数据包括来自各种研究的高度结构化数据集,以及嵌入在研究报告、出版物和监管提交等文本文档中的大量非结构化信息。研究人员在有效访问和分析这些信息时经常遇到重大障碍:
- 数据孤岛:信息分散在众多不同的系统和存储库中,使得获取与特定化合物或研究相关的临床前数据的全面、整体视图极为困难。
- 搜索能力有限:传统的基于关键词的搜索引擎难以应对临床前术语和研究问题的复杂性和多变性,常常给出不相关、不完整或繁多的结果。
- 耗时的手动分析:从多个文档中提取特定见解或汇总信息需要大量手动工作,占用了研究人员宝贵的科学工作时间。
这些固有挑战凸显了对更高效、更智能、更集成的临床前数据检索和分析方法的明确需求。
解决方案:PRINCE——一个演进中的平台
为了应对这些挑战,拜耳开发了临床前信息中心(PRINCE)平台。PRINCE被设想为临床前数据的统一门户,最初专注于整合先前孤岛化的结构化研究元数据,并以“可搜索”的方式呈现。这一初始阶段允许用户应用高级过滤器,主要从结构化研究元数据中检索信息。
然而,拜耳大量有价值的临床前知识蕴藏在数十年积累的非结构化PDF研究报告之中。由于多年来众多的系统迁移,这些报告相关的结构化元数据可能不完整、缺失,甚至包含错误的注释。关键在于,权威的“黄金标准”信息始终存在于已批准的研究报告PDF中。
生成式AI的出现,特别是RAG,为解锁这些丰富的非结构化数据提供了关键。通过集成RAG能力,PRINCE开始将范式从基于过滤器的“搜索”工具转变为自然语言“询问”系统,使研究人员能够直接查询这些研究报告的内容。
这一演进反映了PRINCE经历的三个不同阶段:
- 搜索:初始阶段侧重于创建一个统一的门户,汇集数千份非临床研究报告,将来自多个临床前领域的不同内部数据孤岛整合为可搜索格式,主要利用结构化元数据。
- 询问:该阶段引入了一个基于检索增强生成(RAG)的AI问答系统。这使得研究人员能够通过自然语言提问,直接从非结构化数据(包括历史报告中的扫描PDF)中获取见解。
- 执行:当前阶段将PRINCE定位为一个能够执行复杂任务的主动研究助手。通过集成多智能体系统,该平台可以处理复杂查询、编排工作流程,并支持起草监管文件等活动。
这种从“搜索”到“询问”再到“执行”的有意演进,是对行业在临床前开发中追求更高效率和创新需求的战略响应。通过为研究人员提供日益强大的工具来访问、分析和利用临床前数据,PRINCE旨在实现更快速的数据驱动决策,减少不必要的实验需求,并最终加速更安全、更有效疗法的开发。
系统架构:构建可靠的智能体RAG系统
该系统作为一个交互式对话UI运行,由强大的后端基础设施支持。其架构旨在处理复杂查询并提供准确、上下文丰富的答案,采用LangGraph进行编排,并通过FastAPI应用提供服务。
图1提供了系统上下文——UI、后端、数据存储、LLM回退和可观测性——而图2则深入展示了系统如何协调其专门的智能体。
图1:系统上下文和支持平台。
- 用户请求:流程始于用户通过使用React构建的对话式UI提交请求。
- 编排:用户请求被路由到后端的LangGraph编排层。这个工作流引擎协调一个多阶段过程,包括澄清用户意图、思考和规划、进行研究(使用RAG和Text-to-SQL)、验证数据完整性,最后通过Writer智能体生成响应。工作流包含有意的暂停点和反馈循环,以确保在继续之前数据完整。(我们将在后续专门章节中探讨此智能体工作流的细节。)
- 数据检索与状态管理:Researcher智能体与一个全面的分布式数据生态系统交互:
- 系统利用内部GenAI平台,这些平台托管来自OpenAI、Anthropic、Google和开源提供商的模型。这些平台通过统一的OpenAI兼容端点暴露所有模型,使得轻松切换模型并为每个任务选择最佳工具成为可能。它们还管理控制平面,实施速率限制和其他防护措施以防止滥用。
- 弹性与错误处理:鲁棒性是一个关键设计原则,系统配置了多种回退机制:
- 可观测性与评估:整个系统受到性能与可靠性监控:
- 最终响应:一旦智能体处理完请求并生成满意的响应,该响应将被发送回对话式UI呈现给用户。
贯穿此架构的一个设计原则是上下文纪律。更大的上下文窗口并没有消除对每个智能体所见内容进行选择的需求。在早期迭代中,将过多信息放入上下文使得系统难以引导和评估。因此,PRINCE避免将提示视为容纳所有可用信息的一个大容器。相反,不同阶段接收不同的上下文:“思考与规划”阶段的规划上下文、“检索智能体”阶段的检索上下文、“反思智能体”阶段的证据上下文以及“撰写智能体”阶段的综合上下文。这减少了上下文污染,并使系统更易于调试、评估和改进。
这些步骤确保系统能够通过利用复杂的多智能体架构以及多样化的强大工具和数据源,为广泛的复杂查询提供可靠且上下文相关的答案。
智能体RAG系统
PRINCE整合了一个智能体RAG系统(图2)来处理需要多步骤、推理以及与不同工具或数据源交互的复杂用户请求。这个使用LangGraph实现的设置编排整体工作流,并利用Researcher智能体、Writer智能体和Reflection智能体执行特定任务。该系统设计得健壮可靠,内置多种回退机制,确保即使某些组件发生故障,系统也能继续运行。
图2:研究工作流。
澄清用户意图
澄清用户意图步骤是防止歧义的第一道防线。随着系统扩展到包括毒理学和药理学等不同领域,简单的用户查询常常变得模糊,使得自动选择正确工具变得困难。与其在所有数据源上进行昂贵的试错,系统主动提出澄清性问题,以确定具体的领域或数据类型。
这确保系统为查询增加必要的约束,以定位正确的工具。我们也在优化这一点,通过在UI中开发领域级选择,允许用户预先过滤有效工具。为了进一步减少摩擦,系统还提供AI辅助的源推荐:当用户未选择任何数据源,或选择了多个但缺乏明确焦点时,模型会分析用户查询背后的意图,并建议最相关的来源。用户保留完全控制权,可以接受、调整或覆盖推荐,确保领域专业知识始终拥有最终决定权。这种“快速失败”机制防止了对模糊查询的无效执行,而仔细的调整确保当意图已经明确时,系统保持不显突兀。
从上下文工程的角度来看,此步骤是工作流中的第一个组装决策:在任何检索开始之前,它限制了哪些工具、领域和数据源将在范围内,确保后续智能体收到的是一个聚焦的问题,而不是一个开放式的问题。
思考与规划:过程反思
思考与规划步骤负责制定满足用户请求的策略。这个关键组件为系统提供了一个专用空间,用于在采取行动之前推理后续步骤——这是一种受Anthropic的“Think“工具启发而产生的技术。重要的是,此步骤执行过程反思:评估智能体是否朝着最终目标正确前进,以及是否处于正确的轨迹上,而不是评估数据本身。
在多步骤的智能体工作流中,尤其是那些涉及许多顺序操作的工作流中,过程反思是必不可少的。考虑一个场景:系统需要执行50步才能完成一个复杂任务。在每一步,系统都必须问自己:我是否以正确的方式执行这些步骤?我是否取得了预期的进展?当前的轨迹是否导向用户的目标?思考与规划步骤提供了这种元认知能力,使系统能够反思自己的工作流并相应地调整策略。
这种“思考空间”在涉及多个工具调用的场景中尤其有价值。PRINCE最初开发时只有几个工具:一个用于基于RAG的检索,另一个用于Text-to-SQL查询。然而,随着我们集成更多数据源以扩展系统能力,可用工具的数量显著增长。随着工具的激增,一个固有的挑战随之而来:不同工具之间的重叠关注点和领域边界。
例如,多个工具可能服务于相似但略有不同的目的——查询结构化元数据与非结构化报告,或者检索研究摘要与详细的实验数据。当呈现属于相似领域但处理略有不同数据的工具时,LLM有时会难以针对给定查询选择最合适的工具。通过引入一个专门的思考步骤,系统可以明确地推理哪个工具最符合用户的意图,评估每个可用工具的特性,并做出更明智的决策。这种方法显著提高了工具选择的准确性。
除了工具选择,思考与规划步骤对于编排多步骤流程至关重要。PRINCE中的许多复杂查询需要一系列工具调用,其中必须分析一个工具的输出后再决定下一步行动。例如,系统可能首先查询结构化元数据以识别相关研究,然后使用这些研究ID从非结构化报告中检索详细信息,最后综合发现。如果没有一个专用的过程反思空间,系统会试图线性地执行这些步骤,而不评估每一步是否使其更接近目标。有了思考步骤,系统可以暂停、评估其在工作流中的进展,并智能地规划完成用户请求所需的后续工具调用。
检索智能体
检索智能体充当系统的主要信息收集器。随着我们将新的科学领域接入PRINCE,我们一致观察到数据分为两类:结构化和非结构化。尽管各领域的具体实现技术可能有所不同——例如,在药理学查询中使用Snowflake Cortex Analyst进行Text-to-SQL,而不是毒理学中其他更定制的方法——这些检索策略背后的基本原理是一致的。
随着PRINCE
相似文章
构建了一个基于波你尼语法的检索增强生成(PRAG)框架,用于更安全的医疗AI——寻求反馈
PRAG框架将传统RAG与波你尼规则引擎相结合,用于更安全的医疗AI,在MedQA上实现了不安全答案减少71%。它提供可审计的规则追踪,并且是开源的。
@rwayne: https://x.com/rwayne/status/2052597727163232690
The author uses an AI agent to analyze 8 years of his mother's hypertension records, identifying morning surges and drug interactions that were missed during brief hospital visits, highlighting AI's role in bridging gaps in chronic care continuity.
AI智能体团队加速研究速度
使用智能体团队的AI系统,如谷歌的Co-Scientist和FutureHouse的Robin,可以在数小时内而不是数月内加速药物再利用研究,通过提出假设、设计实验和分析数据。
@rohanpaul_ai: Anthropic新研究表明,AI智能体在代码方面可能表现卓越,但在生物学领域,它们可能在科学工作开始之前就失败……
Anthropic的研究揭示,AI智能体在生物学数据库方面存在困难,对同一个查询会产生高度差异的答案(例如,埃博拉序列计数范围从5到106,而预期为266),但添加一个可重复的检索工具能显著提高一致性和准确性。
用于改进临床试验工作流程准确性和效率的AI辅助协议信息提取
Banting Health AI的研究人员展示了一个利用生成式大语言模型和检索增强生成(RAG)技术进行临床试验协议信息自动提取的AI系统,准确率达89%,相比独立LLM的62.6%有显著提升,AI辅助工作流程任务完成速度快40%,并降低认知负荷。