本地科研助理
去年年底我就开始关注龙虾类应用,自己也折腾了一段时间,热度过去基本就闲置了,更多时候还是用自然语言编程。后来仔细回忆了一下,我其实不排斥搞一个个人助理,真正没放开用是因为不了解其实现过程,担心出错跟信息泄露。那解决方案就很简单了,自己搭一个。
我的核心诉求很简单,就是要一个能在 Telegram 和 QQ 里对话的科研助理。这里面有几个要素需要保证:
-
要能调用本地qwen3.5的小模型做翻译、总结等重体力轻脑力的活,也要能调用云端的模型做复杂推理,需要一个模型路由设计,有自动切换,也要可以指定性切换
-
要能接入各种文献检索工具,至少要能接入 Zotero MCP、PubMed、Semantic Scholar 这几个,查文献方便
-
要能部署在本地,数据全在本地 markdown,没有数据库,随时能迁移
-
要自带mcp来做PDF信息提取、OCR提取、音频提取这些任务
-
有记忆文档且要有压缩功能,因为这个文档会跟着每次对话提交,不控制账单会爆
-
对话时可按需调用我的个人研究兴趣文档,方便给出相关推荐
-
要能接上即时聊天工具,telegram或QQ,随时说随时存,顺带自动打上 wikilink 关联到相关页面
可能你会说,这些龙虾都能做,模型路由配一个litellm就行了,文献检索接个插件就行了,很多coding plan里都送一个mcp服务器,部署上也不难啊。没错,我也认同如果你已经构建好了一个个人助理体系,那自己折腾纯属找事,我真正做的反而是对其能力做了收缩,你只能把这玩意当成科研助理用,mcp也只有你自己给配置的几个,但实话说我就需要这些功能,别的有需要时按需添加就是了。龙虾类应用确实会给人很大的想象空间,但真实的生活里需求是可预期的,所以我卸载了之前安装的龙虾类应用,目前自用自己设计的这个笔记系统。其实这算是个复杂度比较高的项目了,我是全程用opus构建,加入启动项后算是常驻进程了。部署上选择了 uv tool install scinotes,填一个 .env 文件,scinotes run,就跑起来了。VPS 上也能跑,配 OLLAMA_DISABLE=1 就切全云端。
代码在这里:https://github.com/yufree/scinotes
如果你对一个科研助理感兴趣,或者想自己搭一个,可以来看看这个项目,源码不长大概2000行,能读懂的,但因为是自用的,在功能添加上会按我需求走,你要是有更适合自己的需求,可以直接在这个项目基础上让大语言模型给你加功能。另外,这跟我之前的《现代科研指北》的skill并不冲突,那本书主要是提供一些科研观点,这个是给一个科研助理性质的笔记系统,算是知行合一。
这里重复强调一下,作为一个老登,我做这个还要接zotero的mcp其实是因为之前十几年的文献库存在zotero,所以我也允许添加修改zotero的文件库。你要是基本一张白纸,那用这个笔记系统其实也合适,它会去保存你扔过去的文献,也会自动做信息提取并按你要求选择是否保存到特定笔记,这样其实更简单直观。因为存在模型路由调度,我当前的建议是本地模型做可重复性的事,但最好有在sonnet这个档位云端模型做复杂文献调研与笔记管理,opus这个档位做科研助理性能过剩。
另外如果你不知道啥是markdown式的笔记系统或基本构架如何搭,可以去看看我那个基本不更新的自用wiki: