从此处而来(https://linux.do/t/topic/544511)
这个demo非常的差,全是幻觉
因此我用业余时间重新开发了一遍,整体感觉已经非常可用,以下是我的结果示例:
主要逻辑:用关键词在pubmed上获取摘要,并检索部分提供全文的高分文章(通过PMC),然后利用摘要和全文写综述
AI模型
- grok3-beta(主AI)
- gemini 2.5 pro(用于后续综述的撰写)
MCP工具
- filesystem(cherry自带的)
- pubmed_awesome_mcp_server(我自己开发的python脚本类MCP server,相比于市面已有的工具,速度更快、获得的摘要更完整、还能获取PMC全文)
交互:cherry studio
其他文件(可选):高分杂志列表,用于筛选文章
对话窗口的提示词:
你在扮演一个生命科学教授的助手。现在教授会发给你一个研究主题,接收后你将执行以下步骤:
步骤一:利用search_pubmed函数在pubmed检索研究主题,以英文的形式。sort_by参数设定为best match,然后返还最相关的前30个结果,剔除重复的项目,展示所有文章的标题、pmid、doi、杂志、PMCID(如果有的话)和完整摘要。你必须完整地展示所有的文章,并且不要擅自归纳;不要被篇幅所限制
步骤二:读取本地文件,并调用函数read_file读取本地文件/your_path/medical_related_Q1andIF5_final.csv。
这是一份JCR Q1分区且影响因子大于5的杂志名单。步骤三,根据步骤二提供的杂志名单,筛选步骤一中的高分文献,保留其标题、杂志、impactfactor、pmcid(如果有的话)并按照impactfactor由高到低排列
步骤四,用pmcid_to_full_article函数批量检索前一步获得的前几个PMCID(数量最多为5),并将获得的标题和全文内容以json的形式整理,展示给教授。
最后,将所有的文章的摘要(来自于步骤一)和全文(如果有的话,来自于步骤五)的内容整理为综述。综述的主题即为第一步的研究主题。要求综述:1)整体尽可能详尽,充分利用检索的内容;2)尽可能分点叙述,每个要点彼此间互不重复但无遗漏;3)以尾注的形式标注引文,只需要保留标题、杂志、doi即可;还需要注明哪些文章引用了其全文内容,哪些仅引用了摘要内容。
在每个步骤执行前,检查一下你所有的函数工具,然后在执行教授的指令时尽可能使用它们。
在每个步骤执行后,你需要完整复述一遍下一步的指令,并询问教授是否执行,得到允许的答复后再继续。
单次耗时很久,限速步骤在于第四部获取pdf,很耗费token(我限定了5篇,大概耗费80k的token)
优势:
- 丰俭由人:可以在检索过程中额外增加筛选条件,如杂志影响因子、文章发表时间等
劣势:
- 对LLM的上下文长度要求较高,例如deepseek就不太适合。但gemini 2.5 pro会频繁截断,grok3反而意外地又快又好
- 无法一次性运行,只能分步进行(每次都要手动说“继续”才能继续执行下去)——这个是cherry studio的固有问题,即一次对话最好只能调用一个MCP工具——毕竟不是专门的agent工具
- 主要利用摘要信息,难以输入较多的pdf全文——事实上我还重写了其他mcp工具,包括调用sci-hub下载pdf原文的代码,但是发现如果pdf多了,上传给AI很容易出错,且消耗巨大的token,耗时长,容易截断
总之我觉得是一个很有前景的思路,用autogen优化流程也许会有真正的生产力。
而且我在过程中自己还开发了很多python类MCP工具,包括sci-hub快速批量下载、网页pdf批量读取、快速活动pmc全文等等,应该支持各个AI前端,且配合autogen等agent工具如虎添翼
快速自问自答:
Q:为什么不用autogen等多agent工具?
A:显然agent工具更适合,但我日常对cherry studio更依赖,暂时不太想为一个不常用的功能(深度搜索)专门支付学习成本和习惯改变
Q:这个“学术深度搜索”有什么实际应用场景?
A:低成本地进入新领域并了解其大致知识;不适合撰写正规论文、标书等高级用途
后续我会逐步分享实现的方式