ResearchStudio项目实战体会

ai助手
ResearchStudio项目实战体会-1786269600340.webp

最近在gpt-5.6-sol的协助下,弄了一个知识库工具(Research Studio),顺带也是真正深入学习了下AI智能体。收获很多,这里快速记录一下。

WeClipper与网页收藏

先介绍下这个Research Studio的诞生过程。最开始我只是想弄一个网页收藏工具,其作用就是帮我把微信公众号文章给收藏到自己的数据库中,方便有空的时候进行集中地主题阅读。后来觉得不能光看不写啊,所以批注功能就加起来了。再后来发现批注只能针对一篇文章上面批注,我还想跨多个素材,边看边写边引用呢!所以又把写字板侧边栏搞起来了。到这儿只是第一阶段,这会儿我给这个工具起的名字还是weclipper,we就是wechat的前缀,clipper就是剪藏工具的意思。

weclipper用起来很舒服,我平均每天都能收藏二三十篇微信公众号文章,内容以相关研究领域科技进展为主,包括小方向,大方向,相关领域。但也有不少其它感兴趣的方向,比如人工智能、生物医学甚至科技科普、经验常识。然后我发现过一段时间之后,素材库积累的东西变多了,找东西就比较费劲了,所以很自然的我把经典的一套分类、标签、评级等简单的东西弄了进来,方便后续快速找回已收藏的素材。

分类和标签系统是好用的,但需要注意方式方法,否则也是一团糟。一个通用的建议就是:分类这个东西,是根据自己的认知系统构建的顶级入口,不要太多,不然就起不到作用。最好的分类,就是让素材内容积累到一定阶段之后,根据实际情况有分类的需求,才给分类。而标签的作用,是为了日后自己能够通过标签快速搜索到这个素材,所以标签也是要根据自己的认知和需求给。总而言之,分类和标签都是要长到用户脑子里的才算作数。如果不是想重复经历一下背单词的痛苦,那么就要非常克制的给分类和打标签。

RAG与混合搜索

标签和分类系统虽然经典,但是治标不治本。因为人的记忆就是非常不可靠,时间长了啥都容易忘。再一个就是因为现在人们要处理的信息太多了,简单的标签和分类系统已经难以支撑,特别是对于我这种脑容量不够的人来说,博闻强识是不可能的。而且如果只是针对一些无足轻重的网页讯息来强迫自己记住这么多和本职工作不相干的东西,太不划算了。

经过上述思考和与AI的讨论,我觉得还是把知识库搞起来。前两年我曾尝试部署体验RAG Flow,但是很快就放弃了,因为这个工具太复杂了,很多功能我其实用不上。现在有了非常强大的 gpt-5.6-sol,我都可以尝试实现简单的RAG1,并顺带学习一下。

知识库本质上就是向量数据库。以一篇文章为例,首先要把素材转换为纯文本,我采取的方案就是自我约束两种input,一个是网页,一个是文献pdf。对于网页,用playwright从DOM提取结构树,然后转换为markdown。对于pdf,我是用MinerU来进行PDF解析,同样能够生成结构树和markdown。

然后要按照语义进行切片。有了文档结构树,这个事情会相对简单一点,就是直接基于结构树来切片。如果素材来源质量比较高(也就是作者写作能力强),标题段落语义自然而言就是分好的,文档切片就很简单。不然的话,就得自己阅读一遍之后,根据自己的理解进行切片。所以科技论文八股文的好处就充分体现出来了。

切片之后就得到了一堆chunk。一般来说一篇普通的科技论文文章大概也就是10-30个chunk差不多了。这些chunk接下来要建立索引,这个就是通过嵌入模型(embedding)来实现的。所谓嵌入,就是把输入的文本映射为一个高维向量。而所谓的向量搜索,就是计算向量的某种距离。两个向量距离近,代表着其语义接近。我选用的是qwen3-embedding-4B模型,中英文友好(意味着你搜索肠道菌群,它甚至可以把E.coli的chunk返回),速度也不错。

建立好索引之后,就可以搜索了。而所谓混合搜索,就是结合了各种精确的数据库搜索,还有基于向量检索的模糊语义搜索,得到一堆候选的搜索结果。为了保证召回率,这个搜索结果列表通常包含了相关的不相干的大量结果,然后就要把query和候选结果送给精排模型(ReRanker)处理,最终得到打分最多(topK)的前面几个答案,返回给用户。在AI的推荐下,我用的是 qwen3-ReRanker-4B 模型做精排,搜索结果准确率很高。

做完了这些,基本上就已经拥有了一个支持模糊搜索的基础。比如我前面说的,你搜索肠道菌群,它可以把包含E.coli的结果返回。这个时候就已经能够很好降低查找历史素材的耗时2。当然在这一块,还有更牛的,现在流行叫做AI记忆系统3 4,但是我觉得简单的知识库对我来说足够了,后面遇到问题再说。

AI助手

构建了知识库之后,还是会存在一个问题:我到底应该搜什么?很多时候,我们的问题都是很模糊的,意图也不太明确,所谓Research,就是存在一个反复搜索思考的loop,最终不断逼近真正的问题和真正的答案。

如果是素材刚收录的短期内,脑海中还有些印象,那么模糊语义搜索还是OK的,可如果时间长了(对我来说一个星期之后可能就没啥印象了),即便数据库已经支持模糊搜索,用起来也比较困难。这个时候就需要一个AI助手,来理解用户的意图,采取一些检索策略来协助search的过程。

知识库加上AI助手,这就是所谓了RAG(检索增强生成)了。RAG也出现好多年了,现在更是有不少各种Agentic RAG,具有各种聪明的策略1。但是我觉得这些都是工程实现,为了降低复杂程度,我选择了最简单直接的策略,就是采取限域搜索的方式(指定各种检索过滤条件),以及指定任务类型(skill)尽可能减少LLM的搜索空间和猜测空间,来提高效率和质量。

这种策略我估计目前简单用用足够了。如果后面不行,我也不会去做AI Agent。因为在见识了 Claude Code 和 ChatGPT/Codex 这类Agent之后,我觉得完全没有必要自己再去做一个,大不了后面弄个MCP,让这些不断进化的顶级Agent直接去用我的知识库就好了。

写在后面

感触很多,概括地说几条:

  1. 后面要想用好AI智能体,每个人都需要有自己的知识库
  2. AI辅助虽然能提高效率,但还是要坚持自己阅读写作思考,体验一切真实5
  3. AI时代,品味和判断变得比什么都重要6

参考资料

Footnotes

  1. RAG 进化简史:从“无脑切片”到“AI 自己找答案” 2

  2. Hermes(爱马仕):搭建个人知识管理RAG检索

  3. 腾讯把 Agent 记忆系统开源了,TencentDB Agent Memory 实测!

  4. 清华唐杰团队揭示大模型记忆全景

  5. Writing is thinking 写作即思考

  6. AI让科研变成“科学自动机”,副作用是什么?