平台无关的 AI Agent Skill。适用于 OpenHanako、Claude Code、Codex、Hana、或任何具备浏览器自动化能力(Playwright/Puppeteer)及 Shell 执行能力的智能体平台。使 Agent 能够通过第三方中转平台自动登录、检索、下载和阅读知网与维普的中文学术文献。
用户提及以下任一关键词时激活:
- 「知网」「CNKI」「中国知网」
- 「维普」「VIP」「cqvip」
- 「中文文献」「中文论文」
- 「检索一下中文」「查一下国内论文」
Agent 在首次使用前需确认环境:
browser工具可用(基于 Playwright 的无头浏览器)bash工具可用- Python 3.8+ 及
playwright包
- 无需额外配置。阶段 4 自动通过
subagent agent="wujie"创建临时视觉智能体读取截图 - wujie 是 OpenHanako 预置 agent(GPT-5.5),无需手动创建
- 任务完成后子 agent 自动销毁,无残留
python -c "import playwright; print('OK')" 2>/dev/null || pip install playwright && playwright install chromiumAgent 在执行任何操作前,需获取中转平台的登录凭据:
- 环境变量:
RELAY_USERNAME/RELAY_PASSWORD - 配置文件:
<skill_dir>/config.json,格式{"username":"xxx","password":"xxx"} - 交互询问:若无以上配置,向用户索要
Agent 首次获取凭据后应缓存到 config.json(若用户同意)。
本 Skill 假设您已部署或拥有一个 CNKI/VIP 文献云中转平台(类似文献云)。部署前请将以下 URL 替换为实际地址:
| 占位符 | 说明 | 替换为 |
|---|---|---|
YOUR_RELAY_HOST |
文献云中转平台域名 | e.g. lib.example.com |
YOUR_CNKI_PROXY |
知网代理地址 (IP:port) | e.g. 192.168.1.100:9299 |
YOUR_INSTITUTION |
CARSI 认证机构名 | e.g. 北京大学 |
YOUR_IDP_DOMAIN |
机构 SSO 域名 | e.g. idp.pku.edu.cn |
开源版不含中转平台本身。中转平台的搭建与部署不在本项目的覆盖范围内——本 Skill 仅负责 Agent 侧的自动化检索与阅读。
browser start → navigate http://YOUR_RELAY_HOST/e/member/login/
- 填入用户名 + 密码
- 关键:验证码需 OCR 识别。Agent 应截图 → 读取验证码图片 → 填入
- 点击「立即登录」
- 若登录成功 → 进入资源列表;若失败 → 重试(最多3次),每次刷新验证码
注意:Cookie 有效期较长(首次登录后短期无需重复登录)。
重要 — Cookie 复用:登录成功后,Agent 执行 browser evaluate → document.cookie 提取 cookie 字符串,保存到临时变量。后续所有下载操作通过 --cookie 参数传递给 Playwright 脚本,跳过验证码。
navigate http://YOUR_RELAY_HOST/e/action/ListInfo/?classid=61
click "知网入口"
# 此时进入知网检索界面 http://YOUR_CNKI_PROXY/kns8s/defaultresult/index
- 在搜索框输入检索词 → 点击搜索
- 从结果页提取题录:标题、作者、来源、日期、被引量、资源类型
- 可选使用左侧分面筛选(学位论文/学术期刊/年份等)
- 用
browser snapshot获取当前页文献列表,返回给用户筛选
题录提取格式(结构化输出给用户):
[1] 标题 | 作者 | 来源 | 日期 | 被引量 | 类型
[2] ...
自动下载方案(无弹窗):
- Agent 在 browser 中进入知网检索结果页
- 点击目标论文的「下载CAJ格式」或「原版阅读」→ 触发下载
- 若弹窗要求手动确认 → 提取 browser cookie → 调用 Playwright 脚本:
python <skill_dir>/scripts/download_vip_pdf.py \
--source cnki \
--url "<知网下载URL>" \
--output "D:/papers/论文名.caj" \
--cookie "<从browser提取的cookie>"替代方案:
- 优先用维普下载同篇论文的标准 PDF
- 用户手动用 CAJViewer 打开 → Ctrl+A 复制 → 保存为 .txt
- 阶段 4 多模态截图识别
navigate http://YOUR_RELAY_HOST/e/action/ListInfo/?classid=61
click "维普入口"
# 进入维普中转页
维普 CARSI 认证流程:
- 点击「第一步点我」→ 弹出机构 SSO 页面 → 不输入任何凭据 → 直接返回
- 点击「第二步点我」→ 若显示「Accept」按钮 → 点击 Accept → 进入维普首页
- 若显示「Stale Request」错误 → 改用
navigate http://qikan.cqvip.com/index.html(Cookie可能仍有效) - 确认页面顶部显示机构名称即登录成功
检索:
- 搜索框输入检索词 → 点击检索
- 结果页含摘要预览、期刊、收录类别(北大核心/CSCD等)
- 每篇均有「在线阅读」和「下载PDF」按钮
- 题录提取格式同知网
方案 A — Playwright 脚本自动下载(无弹窗):Agent 提取 browser cookie → 调用脚本 → accept_downloads 自动保存 PDF
方案 B — pdf.js 文本提取:点击「在线阅读」→ pdf.js 渲染 → evaluate getTextContent() 逐页提取文本 → 保存 .md(无需下载文件)
方案 C — 在线阅读器截图(备用):browser screenshot 获取视觉内容,适合快速浏览
方案 A 详细流程:
# Step 1: 在 browser 中提取 cookie
browser evaluate → document.cookie
# 返回: "key1=val1; key2=val2; ..."
# Step 2: 用脚本下载(无弹窗自动保存)
python <skill_dir>/scripts/download_vip_pdf.py \
--source vip \
--url "http://qikan.cqvip.com/Qikan/Article/ReadIndex?id=XXXX" \
--output "D:/papers/论文名.pdf" \
--cookie "XXXXX..."PDF 文件到位后:
nature-readerskill:中英对照全文解读、图表提取office-documentsskill:纯文本提取、段落分析- 多篇对比阅读时可选向量化(Chroma/Faiss),但单篇直接全文输入即可
□□□、脙鈥⒚D 等),且可读中文占比 < 5%,判定为知网专有字体编码乱码。此时自动进入阶段 4。
当文本提取工具因知网专有字体编码导致乱码时,切换到浏览器截图 + 临时视觉子 Agent路径。
OpenHanako 支持创建临时视觉辅助智能体。即使主模型(如 DeepSeek)不支持图像输入,也可以通过 subagent 调用 wujie(GPT-5.5,支持多模态),读取截图后返回文本,任务完成后自动销毁。
无需用户手动切换模型。
Step 1 — 截图(主 Agent 执行):
browser start
→ navigate file:///D:/path/to/论文.pdf # 浏览器打开本地 PDF
或 navigate <知网在线阅读URL> # 在线打开
→ wait 3s 等待 PDF 渲染
→ 检测 PDF 总页数(通过页面内页码元素)
→ 循环逐页:
screenshot → 保存为 <output_dir>/_screenshots/page_N.png
scroll down 或 click 下一页按钮
间隔 1s 等待渲染
→ browser stop
Step 2 — 识别(主 Agent 调用视觉子 Agent):
首选方案 — 调用 wujie(OpenHanako 预置,GPT-5.5 视觉):
subagent agent="wujie" task="
任务:读取论文截图并识别所有文字
请依次读取以下截图文件,逐页识别其中的文字内容:
1. <output_dir>/_screenshots/page_001.png
2. <output_dir>/_screenshots/page_002.png
...
要求:
- 使用 read 工具读取每张图片
- 识别出图片中的所有中英文文字、数字、公式
- 按页码顺序输出,格式:
=== 第 N 页 ===
[识别内容]
- 完成后不要做总结,只输出原始文字即可
"
若 subagent wujie 不可用(极简部署环境),回退方案:
- 若当前模型本身支持图像(GPT-4o / Claude / Gemini)→ 直接用
read工具读取截图 - 若当前模型不支持图像 → 告知用户:「当前环境无视觉 Agent,请将模型切换为 GPT-4o 或 Claude 后重试」
Step 3 — 汇总(主 Agent 执行):
- 接收 wujie 返回的逐页文本
- 合并为完整全文
write保存为<output_dir>/论文名_全文.md- 清理
_screenshots/临时目录
| 限制 | 影响 | 对策 |
|---|---|---|
| 验证码 | 登录被阻断 | Agent OCR 自动识别;失败时请求人工辅助 |
| CAJ 格式 | 知网全文不可直接读 | caj2pdf 转换;或优先用维普 |
| Stale SAML | 维普 CARSI 过期 | 重新走第一步→第二步→Accept 流程 |
| 下载弹窗需手动确认 | browser 工具未配置 accept_downloads | 提取 cookie → Playwright 脚本自动下载,无弹窗 |
| 频率限制 | 短时间大量检索/下载触发封禁 | 检索间隔 ≥ 5s,下载间隔 ≥ 30s |
| 并发下载 | 知网封 IP | 坚决禁止并发,串行执行 |
| 知网 PDF 字体编码乱码 | PyMuPDF/pdfplumber 提取中文全部乱码 | 自动切换阶段 4:浏览器截图 + subagent wujie 视觉识别 |
在目标机器上首次部署时,Agent 需执行:
pip install playwright
playwright install chromium无需额外系统依赖。
Agent 检索完成后,向用户呈现结构化结果:
### 知网检索:「XXX」— 学术期刊 N 篇,学位论文 M 篇
| # | 标题 | 作者 | 来源 | 日期 | 被引 |
|---|------|------|------|------|------|
| 1 | ... | ... | ... | ... | ... |
### 维普检索:「XXX」— N 篇
| # | 标题 | 作者 | 来源 | 收录 | 日期 |
|---|------|------|------|------|------|
| 1 | ... | ... | ... | 北大核心 | ... |
请选择要下载的编号(支持多选如 1,3,5),或输入「全部」
用户选定后,Agent 依次下载并存储到用户指定目录。