Skill|基于 PaSaMaster 的文献检索 Skill 设计与优化

阅读提醒:本篇基于个人理解以及想法来展开,原始制作的skill不会公开,如有兴趣,请邮箱📮联系笔者,欢迎任何建议。祝食用愉快~😳

导言

“ 近年来,文献调研正在从“搜索框 + 关键词”的模式,转向由 LLM 参与的自动化检索、阅读、筛选和解释流程。这个变化背后的核心矛盾很明确:传统检索系统可靠,但很难理解复杂研究意图;通用 LLM 能理解复杂问题,但容易生成不存在或不准确的引用。如何在“复杂意图理解”和“可验证文献来源”之间取得平衡,成为最近文献调研自动化系统开发中的一个关键方向。 ”

图 1 文献检索架构一览

交大论文Towards Self-Evolving Agentic Literature Retrieval 正是在这个背景下提出了 PaSaMaster。它试图把文献检索从一次性的 query-document matching,改造成一个会根据检索证据不断修正意图、重新检索和排序的 agentic retrieval 系统。

本文并不把 PaSaMaster 当成可以直接复制的系统,而是把它作为一个思想来源:吸收其中对检索范式、意图分解、证据约束排序和评估协议的设计,再改造成一个适合 Web 文献检索场景的 Codex/Claude-style skill,我将其命名为iterative-research-lit。

交大原始论文 PaSaMaster

论文试图解决什么问题

Towards Self-Evolving Agentic Literature Retrieval 的核心问题是:科学文献检索不能只看关键词匹配,也不能直接让 LLM “生成论文列表”。真实研究需求往往包含主题、方法、时间、领域、排除条件和隐含背景知识,普通关键词搜索会压缩这些意图;而纯生成式 LLM 即使能理解复杂需求,也容易产生不存在的文献、错误作者、错误年份或错误链接。

PaSaMaster 因此提出一个中间路线:让 LLM 主要负责理解和规划,让检索、验证和排序落在可验证语料与轻量模型上。论文将文献检索范式划分为五层:

这一范式分析是这篇论文最值得借鉴的部分。它指出了文献检索系统的关键不只是“能搜到多少”,而是能否在复杂意图下保持可靠的来源和稳定的排序逻辑。

PaSaMaster 的核心架构

“ PaSaMaster 的整体架构可以概括为三块:Navigator、Librarian Swarm 和 Evidence-Ranked Results。 ”

图 2 架构示意图

Navigator 是规划者,负责从自然语言问题中解析检索意图、生成搜索策略和验证清单,并在后续轮次里根据已排序结果发现缺口。Librarian Swarm 是并行执行者,负责检索候选论文、定位证据、检查 checklist 满足度、计算 intent-paper relevance score。最终系统输出的是带分数、证据和 checkpoint 级理由的论文排序。

论文把这个流程写成了较形式化的结构:

  1. PLAN(q):从用户查询生成检索策略 S 和验证清单 C。
  2. RETRIEVE(S; D, T):在自定义语料 D 和工具 T 上生成候选池。
  3. VERIFY(Pinit, C):对候选论文逐条验证是否满足 checklist。
  4. RERANK(Pscored):基于单篇得分和全局排序得到最终清单。
  5. REFLECT(q, S, C, Pscored):根据已检索证据更新下一轮策略。

它的三项核心设计是:

评估方式

图 3 评估Bench设计

PaSaMaster-Bench 是论文提出的多学科 benchmark。论文称其包含 244 个复杂自然语言检索任务,覆盖 38 个科学学科。每个任务由领域专家给出自然语言查询、约束 checklist、候选论文池和 ground-truth target set。系统返回 top-K 论文后,用 Recall@20、Precision@20、F1@20、NDCG@20、hallucination rate 和 token cost 评估。

从论文报告的结果看,PaSaMaster 在 F1、NDCG 和 hallucination 控制上优于 Google Scholar、OpenScholar、Bohrium Navigator、多个通用 LLM 和 Google Scholar Labs。论文还强调 PaSaMaster 对比 GPT-5.2 有更低成本,并保持 0% source hallucination。

笔者对原论文的保留意见

“ 这篇论文有清晰的思想价值,但我不认为它可以被直接当成一个完整可复现的工程方案。 ”

因此,我最终借鉴的不是 PaSaMaster 的完整系统,而是其中的范式思想:复杂意图要先结构化,候选论文要先验证,相关性判断要拆成多维 checklist,检索迭代要由证据触发,最终排序要服务于阅读清单而不是单篇相似度。

iterative-research-lit Skill

Skill 原则

按照 skills的的原则,skill 不是普通文档,也不是把一堆命令写给模型看。skill 的价值在于:当模型在某类任务中会反复出错,且这种错误可以通过稳定的行为约束改善时,把这种行为约束封装成可按需加载的上下文。

复杂文献检索正是这样的任务。没有 skill 时,模型容易出现几类问题:

“ 因此,iterative-research-lit 的定位不是一个普通文献搜索器,而是一个复杂研究意图的 ranking controller。它负责把用户需求转成结构化检索约束、评分清单和最终可解释的阅读列表。 ”

Skill 的目录结构

“ 当前 skill 遵循“中心节点 + 条件 reference + 可执行脚本”的结构: ”

skills/iterative-research-lit/
├── SKILL.md
├── agents/
│ └── openai.yaml
├── references/
│ ├── query_patterns.md
│ ├── verification_policy.md
│ ├── failure_learning.md
│ ├── evaluation_protocol.md
│ └── phenotype_alignment_patterns.md
└── scripts/
└── aggregate_checklist_score.py

这种结构符合 skill 编写守则里的几个关键原则:

原始 skill 文件中的关键内容

“ 笔者会展示下面 SKILL.md 中最关键的几段,能体现这个 skill 的路由边界和工作流思想: ”

---
name: iterative-research-lit
description: Load when the user asks for literature search with multiple constraints, exclusions, recency or authority preferences, or wants verified papers plus a clear justification for why each paper matches.
---

# Iterative Research Lit

Search literature as iterative retrieval plus verification, not one-shot citation generation. Use web results for discovery, then canonicalize and rank only against verifiable paper records.

这段 frontmatter 的重点不是“功能介绍”,而是“何时加载”。它明确把触发边界放在多约束、排除条件、时间或权威偏好、需要解释为什么入选的文献检索任务上。这样的描述比“帮助搜索论文”更符合 skill 守则,因为它降低了错误路由的概率。

再看核心流程里的意图结构化:

### 1. Build an Intent Spec

Create a short `IntentSpec` before searching:

- `objective`
- `domain`
- `must_have`
- `exclude`
- `freshness`
- `evidence_needs`
- `acceptance_rule`

这一步来自 PaSaMaster 的 intent-aware planning,但被压缩成适合 skill 的轻量结构。它的作用是把用户的自然语言需求固定成可检查条件,避免后续搜索中悄悄放宽约束。

最核心的 scoring 逻辑在这一段:

### 2. Convert the Query into a Checklist

Produce 4-8 checkpoints.

- Mark each checkpoint as `critical`, `important`, or `nice_to_have`.
- Phrase each checkpoint so it can be checked from metadata, abstract, or full text.
- Split compound constraints into separate checkpoints.
- Keep checkpoints that need deeper reading, but mark them as requiring additional evidence.

这就是我们对 PaSaMaster checklist 思想的主要复用。它把“相关性”从单一分数拆成多个可检查条件:主题是否对、方法是否对、是否满足排除条件、是否满足时间条件、是否足够权威、是否有用户需要的证据类型。这个设计也是后续 benchmark 中 iterative-research-lit 表现稳定的主要原因。

检索策略部分则保留了多通道思想:

### 3. Build Query Families

Generate 3-6 non-duplicate query families. Include at least:

- One precision-oriented family for must-have constraints
- One recall-oriented family for synonyms and alternate terminology
- One expansion-oriented family for authors, labs, datasets, benchmarks, or citations
- One exclusion-aware family when the user forbids a method, venue, or subline

这对应 PaSaMaster 的 multi-channel retrieval,但我们把它改造成 Web 场景下更实用的 query family:精准检索、召回扩展、引用/作者/数据集扩展、排除条件感知检索。它不假设有内部 corpus,而是适配 Semantic Scholar、OpenAlex、Crossref、arXiv、PubMed 和 Web 搜索等入口。

最后是迭代部分:

### 7. Reflect and Iterate

Do not iterate by default just because the skill is named `iterative`.

Run one additional round only when reflection shows missing terminology, repeated near-misses, or a clear expansion target. Stop after that round unless the user explicitly asks for exhaustive search.

这段很重要。它避免把“迭代”变成无限循环。原论文强调 self-evolving retrieval,但 skill 场景中上下文和时间成本都更敏感,所以我们把迭代条件收紧为 evidence-triggered reflection:只有当已有结果暴露出明确缺口时才加一轮。

各个组件分别负责什么

SKILL.md 是控制面,定义何时使用、如何分解意图、如何构造 checklist、如何检索候选、如何验证、如何评分、如何输出结果。

query_patterns.md 是查询模式库,负责在复杂约束、排除条件、benchmark 词汇、同义词扩展等场景中辅助生成互补 query family。

verification_policy.md 是反幻觉边界,要求 raw web snippet 不能直接当 citation,优先使用 DOI、arXiv ID、OpenAlex、Semantic Scholar 等稳定标识,未验证候选只能作为 lead。

aggregate_checklist_score.py 是确定性评分器。它把 checkpoint score、权重、信息充分性和 verification level 聚合成一个 final score,并对 critical checkpoint 失败的论文触发 hard fail。这样可以避免“期刊很强但不符合任务”的论文被错误排到前面。

failure_learning.md 负责维护迭代纪律。它要求失败后先区分是 routing、retrieval、verification、ranking 还是 presentation 的问题,再决定是否修改 core skill、reference 或 evaluation harness。

evaluation_protocol.md 定义评估方法。它要求固定搜索日期,记录 query、checklist、query families、候选数量、验证状态和最终 checkpoint scores,并把失败按 query type 分析。

phenotype_alignment_patterns.md 是一个领域 addon。它服务于专门的任务,但它不是主流程的一部分。这也是当前 skill 的真实状态:核心是通用的复杂文献检索主干,附带一个 phenotype 领域扩展。

设计初衷

“ 这个 skill 的设计初衷不是追求“所有文献都搜全”,而是解决复杂任务中最常见、也最影响体验的问题:用户真正想要的是一组能支撑研究决策的论文,而不是一堆看起来相关的 citation。 ”

所以它优先优化的是:

这也是它和普通 literature search skill 的核心差别。

简单评估流程与结果

评估流程

我们的评估不是黑盒线上系统对测,而是简单、可复核的 controlled benchmark。基本流程如下:

  1. 对每个用户任务建立共享候选论文池。
  2. 为每个任务建立统一 checklist,区分 critical、important 和 nice_to_have。
  3. 让不同 skill 风格产生各自的 top-k 排序结果。
  4. 对每个结果按同一 rubric 计算指标。
  5. 输出 raw、scored、metrics 和 report 文件,保留人工对照空间。

使用的主要指标包括:

这个评估方式确实有主观性,也对 checklist-style skill 有一定偏好。但这正符合我们的测试目的:我们要验证的不是“谁拥有最强搜索引擎”,而是“在相同候选池和相同 judging rubric 下,哪种 skill 更能维护复杂用户意图”。

术语对齐任务

第一个核心任务来自用户真实需求:用 gene-grounded 的方式做术语对齐,补充单本体中细粒度过粗的缺失信息(由于涉及课题信息,不予公开,只限模糊表述),优先高水平、新近或权威文献,不走传统纯语义匹配路线。

在 benchmark v2 中,结果如下:

Skill VerifiedPrecision@15 CriticalSatisfactionMean@15 PreferenceAlignment@15 WeightedChecklistScore@15
iterative-research-lit 1.00 0.89 0.78 87.39
aris-research-lit 0.73 0.84 0.82 85.82
k-dense-literature-review 0.67 0.82 0.83 80.11
research-lit 0.67 0.82 0.80 80.11
davila7-literature-review 0.67 0.82 0.79 79.87
aperivue-search-lit 0.53 0.81 0.81 76.89

iterative-research-lit 排名第一,主要原因是它能把直接 相关论文放在前列,同时避免让纯资源论文、纯语义历史 baseline 或 downstream 应用论文挤占主榜。

两个跨域泛化任务

“ 第二轮泛化任务包括: ”

总榜如下:

Skill MeanVerifiedPrecision@10 MeanWeightedChecklistScore@10
iterative-research-lit 0.75 87.18
k-dense-literature-review 0.70 84.86
davila7-literature-review 0.65 82.72
aperivue-search-lit 0.55 80.44
aris-research-lit 0.55 80.44
research-lit 0.55 78.67

这轮说明它不是只靠 phenotype addon 取胜。在 KG 和 neuro-inspired memory 任务中,主要发挥作用的是通用主干:复杂意图拆解、checklist ranking 和 set-level output control。

四个多学科泛化任务

第三轮任务进一步扩展到: (笔者在这里动用了自己的人脉获得了一些小的文献课题内容~😊)

总榜如下:

Skill MeanVerifiedPrecision@10 MeanWeightedChecklistScore@10 MinWeightedChecklistScore@10
iterative-research-lit 0.95 85.72 84.73
k-dense-literature-review 0.93 85.00 83.64
aperivue-search-lit 0.93 84.45 82.55
davila7-literature-review 0.88 83.05 81.82
aris-research-lit 0.80 81.36 77.90
research-lit 0.80 80.36 76.99

这轮最有价值的是第四个任务。它把“智能小店建设”和“Z 世代谷子消费认同维度”混在一起,要求 skill 同时覆盖智能零售、社群认同、自我认同和情感价值。iterative-research-lit 在这一题上明显领先,说明它的集合级平衡能力比单纯广搜更强。

综合评估结论

综合四轮评估,iterative-research-lit 在我们选择的主评估任务中均达到 rank 1 或并列 rank 1。更准确地说:

重要补充‼️:同时,由笔者本人以及相关课题的朋友进行了人工检查,发现主观效果也是该skills召回的文献效果最好

“ 这说明该 skill 的优势并不是某一次任务偶然命中,而是来自稳定的流程设计。它最擅长的不是简单召回,而是复杂约束下的候选过滤、验证、解释和最终阅读清单结构控制。 ”

Skill 与 Agent 的关系

这个案例能说明 skill 和 agent 的一个重要区别。

Agent 更像运行时的执行主体,负责调用工具、搜索、读文件、写报告、进行多步推理。Skill 则更像一段可加载的行为规范,它不替代 agent,而是改变 agent 在某类任务中的默认策略。对于文献检索这种任务,agent 本身通常已经会搜索、总结和列引用;skill 的价值在于让 agent 以更稳定的方式做这些事。

iterative-research-lit 改造后表现更好,是因为它把 PaSaMaster 的系统级思想压缩成了 agent 可执行的局部规则:

换句话说,PaSaMaster 是一个完整系统;iterative-research-lit 是把这个系统里最有迁移价值的控制逻辑,变成一个可复用的 agent skill。

适用任务与边界

这个 skill 最适合以下任务:

它不适合以下任务:

它的主要风险也很清楚:

小结

PaSaMaster 的价值在于提出了一个更接近真实科研检索需求的方向:复杂意图不是关键词,文献推荐不能靠生成,检索应该能从证据中修正自己。但这篇论文也有明显问题,包括对内部语料和系统工程的依赖、benchmark 对自身范式的偏好、真实 Web 搜索适配不足,以及开源完整性不足。

iterative-research-lit 的工作不算复刻 PaSaMaster,而是把它可迁移的思想改造成一个轻量、可维护、可评估的 skill。这个 skill 按照 skill 守则把主流程留在 SKILL.md,把条件知识放入 references/,把确定性评分放入 scripts/,并通过多轮受控 benchmark 检查是否真的改善了复杂文献检索任务。

从当前结果看,它最稳定的优势是复杂约束保真和集合级排序。主要定位是:面向复杂研究意图的、验证优先、checklist 驱动、结果集结构优先的文献检索 skill。

参考资料

原始论文

Skill 相关