ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

做科研智能体时,我为什么不让大模型包办全部工作?

做科研智能体时,我为什么不让大模型包办全部工作? 很多人第一次开发智能体时都会有一个很自然的想法把用户的问题、文档和工具都交给大模型让它自己判断下一步该做什么最后直接生成结果。这个思路做演示很快做真正要使用的平台却容易出问题。特别是科研场景结果里经常有文献、数字、引用和判断。如果这些内容都由模型自由生成报告看起来可能很完整但不一定经得起复核。我在开发科技文献智能服务平台时里面有智能选题智能体和创新性评估智能体。两个智能体都需要理解长材料、整理研究脉络、解释文献之间的关系但我没有让大模型包办全部工作而是把模型和程序各自擅长的事情分开。这篇文章就结合这个平台讲一下我在开发科研智能体时是怎么做分工的。这里不重点讲某个框架主要把开发思路说清楚方便刚开始做 Agent 的开发人员参考。一、先看一个最容易出错的例子假设用户上传一份项目申报书然后问系统“这个项目有没有创新性”如果只调用一次大模型模型一般可以很快回答项目提出了什么方法、有什么应用价值、和已有研究相比有什么优势甚至还会给出一个分数。但是这里面至少有几个问题没有解决模型比较的是哪些文献项目里的指标是已经完成还是计划完成报告中的百分比是算出来的还是模型自己写的引用的论文是否真的支持这句话所以我在设计时先把这类问题拆成两部分。一部分是需要理解上下文、处理自然语言的工作另一部分是有明确规则、应该稳定重复的工作。二、大模型适合负责什么大模型最适合的事情是把人写的内容理解清楚再用人容易读懂的方式表达出来。在创新性评估智能体里模型可以帮助系统从几十页材料中找出项目目标、技术路线、创新点和指标也可以判断两段文字说的是不是相近的事情。比如材料里写着“首次将某算法应用到科技文献主题发现中”模型可以识别出这是一条需要核对的主张。它还可以进一步判断这句话涉及方法、应用场景和“首次”这个强结论。在智能选题智能体里模型则更适合做主题拆解、关键词扩展、文献摘要归纳和研究空白解释。用户输入一个比较宽泛的研究方向模型可以帮助把它拆成几个更容易检索和比较的问题。简单说凡是需要结合上下文来理解意思或者需要把复杂内容讲清楚的地方都可以优先考虑交给模型。三、程序适合负责什么普通程序的优势是稳定、可重复而且不会因为换一个说法就改变计算结果。文献检索、结果去重、时间范围过滤、引用编号、状态管理和报告导出这些工作都更适合由程序负责。模型可以帮助生成检索词但真正去调用检索接口、保存返回结果应该有确定的代码流程。再比如系统要判断一个指标是否比基准值高百分之十这不是语言理解问题而是计算问题。把两个数字交给模型让它心算结果有可能出错交给程序计算结果就可以稳定复现。下面这些内容我一般不会让模型直接生成文献总数和去重后的数量统计图表中的数字文章或项目的引用编号任务当前处于哪个阶段文件是否已经解析完成某个链接是否能够正常打开。模型可以解释这些结果但不应该成为这些结果唯一的来源。四、在平台里是怎么分工的以创新性评估智能体为例我把它的工作拆成了几个比较清楚的阶段。首先是材料解析。程序负责接收文件、保存文件信息、提取文本并记录页码、段落或表格位置。模型在这个基础上识别项目目标和创新主张但不会把原文位置丢掉。然后是证据检索。模型可以根据主张生成更合适的检索表达程序负责真正执行检索、保存文献结果、去掉重复内容并记录检索时间、关键词和来源。接下来是主张和证据的比较。模型负责回答“这两段内容在技术方法上有什么相同和不同”程序负责把主张、证据、文献编号和原文位置关联起来。最后生成报告时模型负责把判断写成自然语言程序负责把引用插入正确位置、检查链接和生成固定格式的报告。这样做以后一条结果就不只是“模型认为有创新”而是可以整理成下面这个结构内容记录什么项目主张项目材料具体说了什么原文位置来自哪份文件、哪一页或哪一段外部证据找到了哪些相关文献比较结果方法、数据或场景有哪些相同和不同当前判断证据支持到什么程度是否需要人工确认用户看到结论后还可以继续往回查看依据这比只给一个总分更有用。五、为什么引用不能让模型自由发挥科研智能体最需要控制的地方之一就是引用。如果让模型直接生成参考文献很容易出现标题相近但并不存在的论文或者论文确实存在但正文并没有支持报告中的那句话。我的做法是文献先由检索程序获得再给每篇文献分配内部编号保存标题、作者、年份、来源和详情链接。模型只能在这个证据池里选择和解释不能凭空增加一篇文献。报告里的引用也不能只保存一个[1]。系统还要知道[1]对应哪篇文献文献来自哪次检索正文中的哪条判断使用了它。这样后面发现引用不合适时才能定位到具体结果。还有一点需要特别注意没有检索到相似文献不等于证明项目绝对原创。报告应该说明本次使用的数据库、关键词和时间范围而不是直接写成“全球首创”。“首次”“唯一”“填补空白”这类表述最好自动标记出来交给用户或专家确认。六、模型不可用时系统也要能继续工作智能体不是只有“成功”和“失败”两种状态。真实运行时模型接口可能超时检索服务可能暂时不可用上传的文件也可能无法解析。如果所有阶段都必须等待模型返回完整答案任何一个环节出问题整条链路就会中断。更稳妥的方式是给不同环节准备降级结果。例如模型暂时不可用时程序仍然可以保存用户上传的材料、保留已经检索到的文献和任务进度文档解析失败时系统可以告诉用户是哪一个文件出了问题而不是生成一份看似完整的报告证据不足时可以输出“当前无法判断”并列出需要补充的材料。这里的关键不是让系统无论如何都给出答案而是让它在不能确定时把原因说清楚。科研场景里一个有依据的“暂时不能判断”通常比一个没有依据的肯定结论更可靠。七、第一版开发时怎么把这件事做简单如果刚开始做科研智能体我不建议一上来就实现特别复杂的自主规划。可以先做一条最小但完整的链路上传一份材料提取三到五条主张为每条主张检索相关文献最后生成一张“主张—证据—判断”对照表。这条链路里模型主要负责提取和解释程序负责文件、检索、编号和状态。只要每条结果都能回到原文和文献哪怕功能还不多也已经具备了基本价值。等这条链路稳定以后再逐步增加趋势分析、指标对比、人工复核、网页报告和 Word 导出。每增加一个功能都要先想清楚它是需要模型理解还是可以用程序稳定完成。我在平台开发中也采用了这个思路。智能选题智能体重点处理方向拆解、趋势归纳和候选题解释创新性评估智能体重点处理材料解析、主张提取和证据比对。至于检索记录、任务状态、引用关系和报告导出则尽量交给确定的程序流程。最后开发智能体时模型越强并不意味着越应该把所有事情都交给模型。真正决定系统能不能长期使用的往往是边界有没有划清楚。我的理解是模型负责理解、比较和表达程序负责保存、计算、校验和追踪。两者结合起来既能处理自然语言中的复杂问题也能让数字、引用和流程状态保持稳定。对于科研智能体来说最重要的不是让报告看起来特别聪明而是让用户知道这句话从哪里来、这个数字怎么算出来、这个结论目前能确定到什么程度。做到这些智能体才真正像一个可以协助工作的工具而不是一个只会生成长文本的聊天页面。
返回列表