linlic-agent
基于 Pi Coding Agent 的本地科研研究 Agent MVP package
Package details
Install linlic-agent from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:linlic-agent- Package
linlic-agent- Version
0.1.0- Published
- Jun 15, 2026
- Downloads
- not available
- Author
- linlic
- License
- MIT
- Types
- extension, skill, prompt
- Size
- 208.3 KB
- Dependencies
- 4 dependencies · 0 peers
Pi manifest JSON
{
"extensions": [
"./extensions"
],
"skills": [
"./skills"
],
"prompts": [
"./prompts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
linlic-agent
linlic-agent 是一个基于 Pi Coding Agent 二次开发的本地科研 Agent package。它面向科研写作和论文阅读工作流,支持文献检索、单篇论文分析、研究想法查重与可行性评估、实验方案评估、论文草稿模拟评审、引用检查和多轮修改循环。
它是科研辅助工具,不替代正式查重系统、真实同行评审、投稿前人工核查或作者自己的实验验证。所有检索结果、引用建议、PDF 解析结果和模拟审稿意见都需要人工确认。
1. 项目简介
linlic-agent 复用 Pi Coding Agent 的 package、extensions、skills 和 prompt templates 机制,不大规模修改 Pi 核心逻辑。当前 MVP 的目标是把科研常用流程封装为可调用命令和工具:
- 用
/search做多数据源文献检索和去重排序。 - 用
/paper分析本地 PDF,生成结构化论文阅读报告。 - 用
/idea检查研究想法的新颖性风险和可行性。 - 用
/experiment以审稿人视角评估实验方案。 - 用
/review模拟同行评审论文草稿。 - 用
/revise生成有上限的多轮 review-revise 修改计划。 - 用
/citation-check检查引用完整性和可疑引用支持关系。
默认所有研究产物保存为 Markdown,便于版本管理、人工复核和继续迭代。
2. 功能列表
| 命令 | 功能 | 主要输出 |
|---|---|---|
/search |
检索论文,合并 Semantic Scholar、OpenAlex 和 arXiv 结果,去重排序 | 文献检索报告 |
/paper |
读取本地 PDF,抽取文本、元数据、章节和分块摘要 | 论文分析报告 |
/idea |
对研究想法做 novelty check、相似工作检索和可行性评估 | 研究想法查重与可行性评估报告 |
/experiment |
从审稿人角度评估实验目标、baseline、指标、消融和风险 | 实验方案评估报告 |
/review |
读取 Markdown、LaTeX 或 TXT 草稿并模拟同行评审 | 论文草稿模拟评审报告 |
/revise |
按目标执行有上限的多轮审稿、计划、候选修改和风险检查 | 多轮修改运行目录 |
/citation-check |
检查缺少引用、可疑引用支持关系、过旧引用和可补充论文 | 引用检查报告 |
已实现的工具包括:
research_prepare_workspaceresearch_search_papersresearch_analyze_paper_pdfresearch_check_idearesearch_review_draftresearch_check_citationsresearch_goal_loopresearch_zotero_searchresearch_export_bibtexresearch_write_report
3. 安装方法
全局安装后,可以直接在终端启动:
npm install -g linlic-agent
linlic-agent
从源码仓库本地开发和试运行时,先安装依赖并构建 CLI:
npm install
npm run build
npm install -g .
linlic-agent
如果需要沿用 Pi 原生 package 安装方式,也可以从 linlic-agent 仓库根目录执行:
pi install -l .
pi
开发调试时,还可以临时加载 package:
./pi-test.sh -e .
进入 linlic-agent 后即可使用 slash command:
/search topic="your research topic" limit=20 year_from=2020
/paper research_workspace/papers/sample.pdf
/idea idea="your research idea" limit=10 year_from=2020
/experiment research_workspace/drafts/experiment-plan.md
/review research_workspace/drafts/paper.md target="target venue"
/citation-check research_workspace/drafts/paper.md
/revise target="revise related work and experiments" draft="research_workspace/drafts/sample-draft.md" max_rounds=3
4. 环境变量
所有环境变量都是可选的。没有 API key 时,linlic-agent 会尽量使用公开接口或 graceful fallback。
| 环境变量 | 是否必需 | 说明 |
|---|---|---|
SEMANTIC_SCHOLAR_API_KEY |
可选 | Semantic Scholar API key。未配置时使用公开接口;若失败,会继续尝试 OpenAlex 和 arXiv。 |
ZOTERO_API_KEY |
可选 | Zotero Web API key。配置后可检索用户 Zotero 文献库。 |
ZOTERO_USER_ID |
可选 | Zotero user library ID。检索指定 Zotero library 时使用。 |
ZOTERO_GROUP_ID |
可选 | Zotero group library ID。配置后优先检索 group library。 |
示例:
export SEMANTIC_SCHOLAR_API_KEY=your_semantic_scholar_key
export ZOTERO_API_KEY=your_zotero_api_key
export ZOTERO_USER_ID=your_zotero_user_id
export ZOTERO_GROUP_ID=your_zotero_group_id
5. 快速开始
以下是常用命令示例:
/search topic="your research topic" limit=20 year_from=2020
/paper research_workspace/papers/example.pdf
/idea idea="your research idea" limit=10 year_from=2020
/review research_workspace/drafts/paper.md target="target venue"
/citation-check research_workspace/drafts/paper.md
/revise target="revise related work and experiments" draft="research_workspace/drafts/sample-draft.md" max_rounds=3
6. 目录结构
README.md
AGENTS.md
SYSTEM.md
package.json
tsconfig.json
docs/
zotero.md
extensions/
workspace.ts
report-writer.ts
semantic-scholar.ts
pdf-extract.ts
idea-check.ts
review-draft.ts
citation-check.ts
revise-loop.ts
zotero.ts
prompts/
search.md
paper.md
idea.md
experiment.md
review.md
citation-check.md
revise.md
skills/
literature-search/
paper-analysis/
novelty-check/
experiment-critic/
peer-review/
citation-check/
review-revise-loop/
src/
workspace.ts
report-writer.ts
paper-search.ts
paper-analysis.ts
idea-check.ts
review-draft.ts
citation-check.ts
revise-loop.ts
zotero.ts
test/
research_workspace/
vendor/pi/
README.md
package.json
packages/
ai/
agent/
coding-agent/
tui/
scripts/
根目录是 linlic-agent 的正式项目边界。Pi Coding Agent 上游源码保留在 vendor/pi,用于复用 Pi package、extensions、skills、prompt templates 和本地开发工具链;除非确有必要,不直接修改 vendor/pi/packages/coding-agent 核心逻辑。
7. 工作区说明
linlic-agent 会在当前工作目录下创建 research_workspace。使用工具前应先调用 research_prepare_workspace;各 prompt 已内置这个步骤。
research_workspace/
papers/
notes/
reports/
reviews/
drafts/
logs/
各目录用途:
papers/:存放待分析的本地 PDF。notes/:存放单篇论文分析、BibTeX 导出和阅读笔记。reports/:存放文献检索报告、研究想法查重和可行性评估报告。reviews/:存放实验方案评估、论文模拟评审、引用检查和/revise多轮修改目录。drafts/:存放用户论文草稿、实验方案草稿和待审查文本。logs/:存放运行日志或后续扩展产生的诊断记录。
8. 每个命令的详细使用方式
参数通常支持两种写法:
- 位置参数:把主题或文件路径直接写在命令后,例如
/paper research_workspace/papers/example.pdf。 - 键值参数:用
key="value"指明含义,例如/review file="research_workspace/drafts/paper.md" target="target venue"。
路径可以是绝对路径,也可以是相对于当前 Pi 会话工作目录的路径。包含空格的参数建议使用英文双引号包裹。
/search 文献检索
/search 会调用 research_search_papers,优先请求 Semantic Scholar,再请求 OpenAlex 和 arXiv。某个数据源失败时,会记录 warning 并继续后续数据源。
/search topic="your research topic" limit=20 year_from=2020
/search "medical image anomaly detection after 2020" top 20
/search topic="your research topic" limit=20 year_from=2020,并导出 BibTeX
| 参数 | 必填 | 默认值 | 用法 |
|---|---|---|---|
topic |
是 | 无 | 检索主题。可写 topic="...",也可作为位置参数直接写在 /search 后。 |
limit |
否 | 10,最大 50 |
返回论文数量。支持 limit=20,也能从 top 20、前 20 篇 中推断。 |
year_from / yearFrom |
否 | 不限制 | 最早发表年份。支持 year_from=2020、yearFrom=2020,也能从 since 2020、2020 年以来 等表达中推断。 |
| “导出 BibTeX” | 否 | 不导出 | 在自然语言里要求导出 BibTeX 时,prompt 会在检索后调用 research_export_bibtex。 |
输出内容包括检索主题、关键词、英文检索式、数据源状态、Top 论文列表、方法分类、研究趋势、研究空白和下一步建议。如果用户要求导出 BibTeX,会调用 research_export_bibtex,保存到 research_workspace/notes/。
/paper 单篇论文分析
/paper 会调用 research_analyze_paper_pdf。当前使用 pdf-parse 2.x 在 TypeScript 侧完成普通论文 PDF 文本抽取。
/paper research_workspace/papers/example.pdf
/paper path="research_workspace/papers/sample.pdf"
| 参数 | 必填 | 默认值 | 用法 |
|---|---|---|---|
| 文件路径 | 是 | 无 | 位置参数形式,例如 /paper research_workspace/papers/example.pdf。 |
path / pdf / file |
是,三选一或使用位置参数 | 无 | 键值形式的 PDF 路径,例如 path="..."、pdf="..." 或 file="..."。 |
处理流程:
- 校验文件是否存在、是否为
.pdf、PDF 文件头是否有效。 - 抽取文本、页数和基础元数据。
- 启发式识别标题、作者、年份、venue、URL/DOI、摘要和章节。
- 将长文本分块,避免把 PDF 原文全文塞入模型上下文。
- 生成
# 论文分析报告Markdown 草稿。
常见错误提示:
PDF 文件不存在输入文件不是 PDFPDF 文件头无效PDF 无法解析PDF 文本为空,可能是扫描版 PDF 或受保护文件
/idea 研究想法查重与可行性评估
/idea 会调用 research_check_idea,先拆解研究想法,再结合 Zotero 和外部论文检索结果评估 novelty risk。
/idea idea="your research idea" limit=10 year_from=2020
/idea idea="a concise description of the method, task, and expected contribution" limit=10 year_from=2020
| 参数 | 必填 | 默认值 | 用法 |
|---|---|---|---|
idea |
是 | 无 | 研究想法描述。可写 idea="...",也可直接把想法写在 /idea 后。 |
limit |
否 | 10 |
用于检索相似工作的论文数量。 |
year_from / yearFrom |
否 | 不限制 | 最早发表年份,例如 year_from=2020。 |
输出内容包括想法复述、关键词、用户 Zotero 文献库命中或未配置提示、相似工作、创新性威胁、技术可行性、数据可得性、实验成本、审稿人可能质疑和下一步行动清单。
注意:/idea 是 novelty check / related work check,不能替代 iThenticate、Turnitin 或学校查重系统。
/experiment 实验方案评估
/experiment 会读取用户输入的实验方案文本或文件路径,并以严格审稿人视角评估实验设计。
/experiment research_workspace/drafts/experiment-plan.md
/experiment "Evaluate the proposed method on public benchmark datasets, compare against strong baselines, and report primary and secondary metrics."
| 参数 | 必填 | 默认值 | 用法 |
|---|---|---|---|
| 实验方案路径或文本 | 是 | 无 | 可以是 Markdown/TXT 文件路径,也可以是直接输入的实验方案文本。 |
输出内容包括实验目标、假设、数据集、baseline、指标、消融、数据泄漏风险、不公平比较风险、统计显著性、可复现性、审稿人攻击点、必须补充实验和推荐实验方案。
/review 论文草稿模拟同行评审
/review 会调用 research_review_draft,读取 Markdown、LaTeX 或 TXT 草稿,按章节分块审查。
/review research_workspace/drafts/paper.md target="target venue"
/review research_workspace/drafts/sample-draft.tex target="journal or conference name"
| 参数 | 必填 | 默认值 | 用法 |
|---|---|---|---|
| 文件路径 | 是 | 无 | 位置参数形式,例如 /review research_workspace/drafts/paper.md。 |
file / path / draft |
是,三选一或使用位置参数 | 无 | 键值形式的草稿路径,支持 Markdown、LaTeX 或 TXT。 |
target |
否 | 未指定投稿目标 |
目标会议、期刊、评分标准或修改目标,例如 target="target venue"。 |
LaTeX 路径会启用静态项目解析增强:
- 递归读取常见
\input{}和\include{}子文件。 - 展开简单
\newcommand、\renewcommand、\providecommand和\def宏。 - 识别公式、图表、表格、附录和引用关系。
- 对无法解析的子文件或未完全语义解析的宏给出 warning。
输出内容包括总体评价、章节评价、创新性、技术正确性、实验充分性、写作质量、引用完整性、可复现性、Major Weaknesses、Minor Weaknesses、审稿人可能提问、修改优先级、模拟审稿结论和修改建议清单。工具不会直接覆盖、重写或修改原论文。
/citation-check 引用检查
/citation-check 会调用 research_check_citations,检查 Markdown 或 LaTeX 草稿中的引用风险。
/citation-check research_workspace/drafts/paper.md
/citation-check file="research_workspace/drafts/sample-draft.tex" limit=8
| 参数 | 必填 | 默认值 | 用法 |
|---|---|---|---|
| 文件路径 | 是 | 无 | 位置参数形式,例如 /citation-check research_workspace/drafts/paper.md。 |
file / path / draft |
是,三选一或使用位置参数 | 无 | 键值形式的 Markdown 或 LaTeX 草稿路径。 |
limit |
否 | 8 |
建议补充论文数量。 |
输出内容包括缺少引用的位置、引用可能不支持的位置、相关工作覆盖不足的位置、过旧引用、格式问题、建议补充的新论文、BibTeX 建议和修改建议。
安全边界:
- 不要虚构引用。
- 建议补充的新论文只来自检索结果。
- 工具无法确认引用是否支持原句时,会标记为“需要人工确认”。
- 该检查不能替代人工精读被引论文。
/revise 多轮审稿和修改循环
/revise 会调用 research_goal_loop,根据目标和草稿路径执行有上限的 review-revise loop。默认 3 轮,max_rounds 最大允许 6。
/revise target="revise related work and experiments" draft="research_workspace/drafts/sample-draft.md" max_rounds=3
/revise target="strengthen experiments and related work" draft="research_workspace/drafts/sample-draft.tex" max_rounds=2
| 参数 | 必填 | 默认值 | 用法 |
|---|---|---|---|
target |
建议填写 | 未指定目标 |
修改目标、投稿目标或验收目标,例如 target="strengthen experiments and related work"。 |
| 文件路径 | 是 | 无 | 位置参数形式,例如 /revise research_workspace/drafts/sample-draft.md。 |
draft / file / path |
是,三选一或使用位置参数 | 无 | 键值形式的草稿路径,支持 Markdown、LaTeX 或 TXT。 |
max_rounds / maxRounds |
否 | 3,最大 6 |
最大 review-revise 轮数。超过 6 会自动截断为 6。 |
每一轮会生成:
review.mdrevision-plan.mdrevised-draft.mdremaining-risks.md
/revise 不直接覆盖原始 draft。原始草稿会备份到运行目录,revised-draft.md 是候选修改稿,需要人工确认后再合并。
Zotero 集成
Zotero 集成基于 Zotero Web API v3。配置后可用于:
research_zotero_search检索用户已有文献库。/idea优先检查已配置 Zotero library 中的相似工作。/review提示可能缺失的已有相关工作。/search结果通过research_export_bibtex导出为 BibTeX。
export ZOTERO_API_KEY=your_zotero_api_key
export ZOTERO_USER_ID=your_zotero_user_id
export ZOTERO_GROUP_ID=optional_group_id
详细说明见 docs/zotero.md。
9. 输出文件说明
| 命令或工具 | 保存目录 | 文件名示例 |
|---|---|---|
/search |
research_workspace/reports/ |
literature-search-YYYYMMDD-HHmmss.md |
/search BibTeX 导出 |
research_workspace/notes/ |
search-export-YYYYMMDD-HHmmss.bib |
/paper |
research_workspace/notes/ |
paper-analysis-YYYYMMDD-HHmmss.md |
/idea |
research_workspace/reports/ |
idea-check-YYYYMMDD-HHmmss.md |
/experiment |
research_workspace/reviews/ |
experiment-review-YYYYMMDD-HHmmss.md |
/review |
research_workspace/reviews/ |
paper-review-YYYYMMDD-HHmmss.md |
/citation-check |
research_workspace/reviews/ |
citation-check-YYYYMMDD-HHmmss.md |
/revise |
research_workspace/reviews/revise-YYYYMMDD-HHmmss/ |
final-summary.md 和每轮中间文件 |
research_write_report 会自动生成安全文件名,并确保 Markdown 末尾有换行。输出 Markdown 的章节标题在 prompt 和测试中固定,便于后续自动检查。
/revise 的运行目录结构:
research_workspace/reviews/revise-YYYYMMDD-HHmmss/
config.json
original-draft.md
round-1/
review.md
revision-plan.md
revised-draft.md
remaining-risks.md
round-2/
review.md
revision-plan.md
revised-draft.md
remaining-risks.md
final-summary.md
10. 常见问题
没有 API key 能不能用?
可以。SEMANTIC_SCHOLAR_API_KEY 是可选的。未配置时,/search 会尝试 Semantic Scholar 公开接口;如果失败,会 graceful fallback 到 OpenAlex 和 arXiv。Zotero 相关环境变量也都是可选的,未配置时只会跳过用户文献库检索。
PDF 解析失败怎么办?
先确认文件存在、扩展名是 .pdf、文件不是空文件,并且 PDF 文件头有效。如果仍提示 PDF 无法解析 或 PDF 文本为空,通常原因是扫描版 PDF、受保护 PDF、复杂版式或图片型论文。可以先用 OCR 或外部 PDF 工具转为文本,再把文本或摘要交给 /paper 分析。
/revise 会不会覆盖原文?
不会。/revise 会把原始草稿备份到 research_workspace/reviews/revise-YYYYMMDD-HHmmss/original-draft.md,每轮只在运行目录中生成候选 revised-draft.md。是否合并回正式论文,需要作者人工确认。
查重能否替代 iThenticate?
不能。/idea 和 /citation-check 只能做 novelty check、related work check 和引用风险提示,不能替代 iThenticate、Turnitin 或学校查重系统。正式查重必须使用机构认可的正式系统。
如何接 Zotero?
配置 ZOTERO_API_KEY,再按需要配置 ZOTERO_USER_ID 或 ZOTERO_GROUP_ID。配置后,/idea 和 /review 会尝试检索用户 Zotero 文献库;/search 的 Top 论文也可以导出为 BibTeX。详细配置见 docs/zotero.md。
如何换模型?
linlic-agent 不单独锁定模型,使用 Pi Coding Agent 当前的 provider 和 model 配置。切换模型应在 Pi Coding Agent 的模型配置、账号配置或启动参数中完成;linlic-agent 的 extensions、skills 和 prompts 会跟随当前 Pi 会话使用的模型。
11. 开发与发布验证
常规开发检查:
npm run check
npm run lint:check
npm test
npm run build
验证 npm tarball、全局安装、CLI 参数、科研命令加载和生产依赖:
npm run test:e2e:package
验证真实 Semantic Scholar、OpenAlex、arXiv 和真实论文 PDF:
npm run test:e2e:real
真实服务测试依赖外部网络,不作为 pull request 的基础合并门槛;GitHub Actions 会每周定时执行,也支持手动触发。完整发布流程见 docs/releasing.md。
12. 后续计划
- 更强 PDF 图表解析:识别表格、图注、实验结果表和公式上下文。
- GROBID:接入结构化 PDF 解析,抽取标题、作者、章节、参考文献和 citation spans。
- PaperQA2:增强论文问答、跨论文综合和证据引用链。
- Qdrant / Chroma:建立本地向量索引,支持研究工作区级别的长期检索。
- Zotero 深度集成:同步 collections、tags、notes、attachments 和引用 key。
- scite 引用可信度:区分 supporting、contrasting 和 mentioning citations。
- Web UI:提供可视化论文库、报告列表、检索结果筛选和多轮修改面板。
- 多 Agent 可视化流程:展示 Reviewer、Area Chair、Revision Planner、Writer 和 Consistency Checker 的中间状态。