桌面论文阅读工具开发笔记——DGX Spark 黑客松十日谈

最近,我和同学一起组队参加了 NVIDIA DGX Spark 黑客松,做了一款名叫 Paper Tree 的桌面论文阅读工具。它可以帮助读者从论文中的一个概念或引用出发,查找相关文献,并把后续阅读形成的关联保存在同一个工作区里。这篇文章记录了我们为什么想做这个工具,以及它在开发过程中经历的一些调整。

我和队友都是软件工程专业的研究生,平时有不少时间需要阅读论文。Paper Tree 的想法,就来自我们在日常学习中反复遇到的一个问题。

开始了解一个新的研究领域时,我们通常会找几篇综述作为入口。但阅读过程中,总会遇到一些之前没有接触过的概念。为了理解这些概念,我们需要继续查找资料、阅读其他论文,而新的论文里又会出现更多陌生的内容。

这样的探索是学习的一部分,但随着阅读范围不断扩大,我们也容易偏离最初的问题。打开的文章越来越多,有时却记不清某篇论文为什么会出现在这里,它与前面读过的内容有什么联系。

我们希望在研究过程中把这些关系整理下来,让自己知道目前读到了哪里,也能随时回到原来的主线。我们平时使用 Zotero 等工具管理文献,但针对一次具体阅读形成的探索路径,仍然需要自己另外组织。于是,我们想从这个身边的小问题开始,做一个自己会用的工具。

从阅读器开始,逐渐明确它应该做什么

最初,我们对 Paper Tree 的设想,是在日常论文阅读器的基础上增加关联能力。用户导入一篇论文,在阅读时提出疑问,找到相关文献,然后继续探索。这个过程会被保存在工作区里,方便之后回看。

一开始讨论的功能比现在多,包括 AI 答疑、翻译和总结。后来我们逐渐把这些功能从当前版本中拿掉了,将重点放在检索与关联上。

这个选择与我们自己的学习习惯有关。阅读论文时,理解作者的问题、方法和论证过程,需要读者自己投入时间。我们希望 AI 帮忙寻找资料、减少切换工具的操作,而阅读、判断和吸收仍然由人完成。 因此,Paper Tree 保留了比较直接的使用方式:用户在原始 PDF 中阅读,遇到需要了解的内容时,再让 AI 协助查找相关论文。我们更关心的是,工具能否帮助人继续读下去,以及能否把这次阅读的过程保存清楚。

让检索围绕当前阅读内容展开

实际测试以后,我们发现,从选区到相关论文之间,还需要做不少处理。 首先,选框中的内容必须被准确识别。我们最终采用截取选区图片、交给视觉模型识别的方式,并让用户在搜索前核对和修改文字。 其次,论文原文不一定适合直接作为查询词。一段话可能很长,其中只有少数术语真正决定检索方向;有些内容则需要结合引用编号,才能确定它指向哪篇文章。 因此,应用会先缓存论文主题和参考文献。发起检索时,模型结合这些信息整理选区内容,保留方法名称、缩写和学术术语,形成更明确的查询。对于能够对应到参考文献的内容,系统会利用文献标题等线索查找;同时,也会搜索与该概念相关的其他研究。 候选结果的处理也经过了调整。测试中,我们遇到过正在阅读的论文反复出现在结果中,以及相关候选被过滤得过少的情况。后来,我们明确了处理原则:排除当前论文本身、合并重复结果,再按照与选区的相关性排序。结果数量由实际检索决定,最后读哪一篇,由用户选择。

NVIDIA 技术在其中承担的工作

研究流程中,我们接入了 NVIDIA 官方的 aiq-research Agent Skill,通过它提供的 helper 调用本机 NVIDIA AI-Q 后台。AI-Q 使用基于 NeMo Agent Toolkit 配置的研究流程,调用我们接入的论文检索工具,从 OpenAlex、Crossref 和 arXiv 等来源寻找资料,并整理带有来源链接的研究报告。

这份报告会参与后续候选整理。其中的论文线索需要再核对学术元数据,与直接检索获得的结果汇合后进行排序。研究报告也会随探索记录保存,用户可以在界面中查看它提供的来源和依据。

我们希望这部分能力能融入阅读操作。用户从一个选区发起检索,后台完成查询组织、工具调用和来源整理,最终仍然回到候选论文列表,由用户决定如何继续。

模型部署则采用 NVIDIA DGX Spark 与 TensorRT-LLM 的方案。我们通过 NVIDIA 官方容器加载开放模型权重,以 OpenAI 兼容接口向桌面应用和 AI-Q 提供推理服务。部署配置以 Qwen3.8-27B 为主,同时保留较小模型的切换入口。

开发时,应用交互和本地模型部署可以分别推进:先通过云端 API 调整阅读与检索流程,再接入 Spark 上的推理服务。接口保持一致,也让我们能够在切换模型时复用已有的 Agent 流程。围绕单用户阅读场景,我们对上下文长度、批大小、缓存和生成方式进行了配置,并通过复用论文索引、并行执行研究与检索,减少重复处理。

结尾

从最初的想法到现在,Paper Tree 的功能和界面有过不少变化,但我们希望解决的问题一直比较明确:读论文时,可以继续向外探索,也能知道自己为什么走到这里。 我们希望这个工具能帮读者把资料和联系整理好,让更多时间留给阅读本身。

相关推荐
去伪存真4 分钟前
稠密检索负责脑补,稀疏检索负责兜底:拆解 RAG 倒排索引的“查字典”艺术
前端·agent
喵个咪3 小时前
GoWind Admin 拆解:AI 能力层——工具循环、pgvector 知识库与机器凭证
人工智能·后端·agent
用户2018792831673 小时前
失忆顾问的会前资料袋:扒开四大 Coding Agent 的 Context,看 LLM 到底"看见"了什么
agent
走心哦4 小时前
多模型研讨 Agent 实战:让 GPT、Claude 互相挑错(附 3 个坑)
agent
泯泷4 小时前
大模型会吃掉 Harness 吗?Agent 天空上的“两朵乌云”
人工智能·llm·agent
狂师6 小时前
Agent评测工具链大全:Promptfoo、DeepEval 与 LangSmith
人工智能·agent·测试
前进的李工6 小时前
Agent 学习笔记 12:Agent 的工具应该怎么设计
人工智能·笔记·学习·agent·工具调用·skill·工具设计
king王一帅6 小时前
当 DSH 适配了 Quirekit md-editor: 你的笔记软件为何不能是 DSH(MIT开源)
agent·markdown·deepseek
hpoenixf7 小时前
聊天记录、上下文、记忆、检查点,Agent 怎样接上过去?
agent
hpoenixf7 小时前
Prompt、Context、RAG、Memory,模型的输入从哪里来?
agent