桌面论文阅读工具开发笔记——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 的功能和界面有过不少变化,但我们希望解决的问题一直比较明确:读论文时,可以继续向外探索,也能知道自己为什么走到这里。 我们希望这个工具能帮读者把资料和联系整理好,让更多时间留给阅读本身。

相关推荐
蔚天灿雨3 小时前
Agent 洗冤集录:前缀缓存 —— MCP 排序问题,如何影响模型调用的延迟与成本
人工智能·缓存·agent·harness
智能RPA4 小时前
智能体自动化平台与法务合同管理平台对比评测
大数据·人工智能·自动化·agent·rpa
杨杨杨大侠12 小时前
Jev、Kev、Laya:决策模型怎么选,什么时候需要微调?
人工智能·python·agent
李福春12 小时前
markdown表格标题渲染判定
agent·架构师同盟·腾讯云架构师同盟
白萝卜弟弟14 小时前
【大模型Qwen3.8 27B】llama.cpp 本地大模型部署与使用
ai·大模型·agent·llama·qwen3.8
吃饱了得干活14 小时前
从 LLM 到 Agent:一文彻底搞懂什么是 AI Agent
llm·agent
笑小枫15 小时前
AgentScope 学习系列(开篇):Java 开发者如何搭建企业级智能体
agent·智能体开发·agentscope·java开发智能体
染指111016 小时前
128.Agent-LangChain核心组件-中间件-调用模型的时候
人工智能·windows·中间件·langchain·agent
似梦的苏烟16 小时前
gradio快速入门
agent