关于 find-literature
用于按查询检索相关学术论文的技能,适合研究与文献探索工作流。提供快速单次搜索,以及支持迭代调整和保留对话状态的交互式 Agent 流程。
主要功能
- 01按相关度排列论文
- 02提供评分、摘要和文本片段
- 03交互式调整查询
- 04通过线程延续多轮搜索
- 05查询 Semantic Scholar 论文与引用
适用场景
- 01探索某研究主题的论文
- 02跨多轮细化搜索
- 03获取论文详情与引用
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ allenai/ asta-plugins --skill find-literature安装后在 Claude Code 中输入/find-literature确认已加载。
详细介绍
查找文献
搜索与查询相关的学术文献。搜索将返回按相关性排序的论文列表,其中包含相关性评分、摘要和佐证摘录。
这是一项高级搜索,因此查询可以很长、很复杂。运行搜索前,你可以向用户提问,以澄清主题并优化查询。
选择 find 还是 interactive
有两个入口可选。两者运行相同的检索流程(提取标准、检索候选论文、重新排序)。主要区别在于检索流程之外的处理方式——正确的选择主要取决于整个会话的主题,而不是某个查询本身的复杂程度:
-
asta literature interactive— 文献相关会话的默认选择。当会话中的首次交互与文献搜索或探索有关,或整个会话都聚焦于文献时,请使用此命令。它会运行完整的 Asta 论文查找 Agent:针对复杂或多方面的查询,规划能力更强(分解查询、采用迭代搜索策略);同时还提供推理和结果验证循环,如果初始结果不符合标准,就会重新运行或优化搜索。它还通过thread_id维护对话状态,因此后续操作可以基于先前结果继续:筛选(“现在缩小范围,只保留 2023 年及之后的综述”)、聚合(“按发表场所分组”)、追踪关联(“展开第三篇论文的引文”)或迭代优化。 -
asta literature find— 仅尝试一次,不含 Agent 循环。主要用于文献搜索是其他多步骤流程中的一个子步骤的情况(数据分析、代码生成、更广泛的研究工作流等);同一流程可能会执行许多彼此无关的搜索,而对每次搜索运行完整的 Agent 循环会带来不必要的延迟。质量较低,但速度快得多。不要仅仅因为某个查询“看起来简单”就选择find——如果会话以文献为中心,请优先使用interactive。
**继续对话——推荐模式(--thread-dir):**对于任何多轮搜索会话,请选择名为 .asta/literature/threads/<YYYY-MM-DD>-<slug>/ 的目录(带日期前缀的 slug,符合其他 Agent 使用的约定),并在每一轮都传入该目录。CLI 会自动恢复对话,为每一轮写入一个带有 .NNN 索引后缀的产物,并维护一个 DIR/index.json,记录轮次顺序、查询、叙述文本、论文数量和 thread_id。每一轮使用有意义的 -o 基础名称——CLI 会自动为你插入轮次索引。
# Turn 1 — picks a thread dir; CLI creates DIR/index.json and DIR/transformer-survey.001.json
asta literature interactive "transformer architecture survey" \
--thread-dir .asta/literature/threads/2026-05-04-transformer-architectures \
-o transformer-survey.json
# Turn 2 — same dir; thread_id auto-resumes from index.json.
# Writes DIR/narrow-2023.002.json and appends a turn entry to DIR/index.json.
asta literature interactive "narrow to 2023+ long-context surveys" \
--thread-dir .asta/literature/threads/2026-05-04-transformer-architectures \
-o narrow-2023.json
当主题发生重大变化时,请开始一段新对话:选择新的 --thread-dir。查看对话内容很简单——用 jq 查询 DIR/index.json 中的轮次列表,然后打开 turns[].file 引用的各轮 JSON 文件。
如果不使用 --thread-dir,每次调用都只执行单次查询,不会延续之前的对话。临时的单次查询可以使用这种方式;任何多轮会话都应始终传入 --thread-dir。
与 find 相比的输出差异:interactive JSON 会增加 thread_id 和 narrative(Agent 的终端响应文本)。目前不会为每篇论文填充 citationContexts 或 publicationDate;如需这些字段,请使用 find 或 asta papers 命令。
可用工具
论文查找器
在后台运行以进行全面搜索(30–60 秒):
# Save to a temporary file with explicit -o parameter (required)
Bash(command="asta literature find 'query' -o /tmp/literature-search-result.json --timeout 300", run_in_background=true)
搜索完成后,将文件移至 .asta/documents/literature/find/ 并为其建立索引:
# Create directory if it doesn't exist
mkdir -p .asta/documents/literature/find
# Move the result file to the documents directory
mv /tmp/literature-search-result.json .asta/documents/literature/find/
# Index the file using asta-documents
Bash(command="asta documents add file://.asta/documents/literature/find/literature-search-result.json --name='Literature Search: <query>' --summary='Search results for: <query>'")
使用 jq 浏览结果:
jq '[.results | sort_by(-.relevanceScore) | .[0:10][] | {title, year, venue, corpusId, score: .relevanceScore, summary: .relevanceJudgement.relevanceSummary}]' <filename>
逐一查看所有高度相关的论文,提取每篇论文的相关性标准、摘录和引文上下文。
Semantic Scholar CLI(快速定向搜索)
# Get paper details
asta papers get ARXIV:2005.14165
# Search papers
asta papers search "transformers" --year 2023- --limit 20
# Get citations
asta papers citations ARXIV:2005.14165
# Author search
asta papers author search "Geoffrey Hinton"
asta papers author papers <author_id>
推荐字段:--fields title,abstract,year,authors,venue,citationCount
JSON 结构
输出为 LiteratureSearchResult,结构如下:
顶层:
query:字符串 - 搜索查询results:Paper 对象数组
results[] 中的每篇论文:
corpusId:整数 - Semantic Scholar 语料库 IDtitle:字符串 - 论文标题abstract:字符串 | null - 论文摘要year:整数 | null - 发表年份authors:数组,元素为 {name: string, id: string}venue:字符串 | null - 发表刊物url:字符串 | null - Semantic Scholar URLcitationCount:整数 | null - 引用次数relevanceScore:浮点数 - 0–1(数值越高,与查询的相关性越高)relevanceJudgement:对象,包含:relevance:整数 - 总体相关性评分relevanceSummary:字符串 - AI 对相关性的说明relevanceCriteriaJudgements:数组,包含对各个概念的判断:name:字符串 - 概念名称relevance:整数 - 与此概念的相关性relevantSnippets:支持性文本摘录数组
snippets:论文正文中的文本摘录数组(如果论文为开放获取):text:字符串 - 摘录文本sectionTitle:字符串 - 章节名称
citationContexts:引用上下文数组:text:字符串 - 其他论文引用这项工作的方式sourceCorpusId:整数 - 引用论文的语料库 ID
示例访问方式:
# Top 10 papers by relevance
jq '[.results | sort_by(-.relevanceScore) | .[0:10][] | {title, year, score: .relevanceScore}]' <filename>
# Papers with relevance summary
jq '.results[] | {title, summary: .relevanceJudgement.relevanceSummary}' <filename>
# Extract snippets from a specific paper
jq '.results[] | select(.corpusId == 123456) | .snippets[].text' <filename>
使用结果
搜索完成后,可使用 Literature Report 技能处理结果。