问道于古今学者 · Ask the way of scholars across time
一个 agent-agnostic 的、为人文社科研究者准备的、端到端学术研究 + 论文写作工作流系统。
输入一个学者的名字 → agent 自动多语言多源采集 → PDF 证据提取 → 概念地图蒸馏 → 同时丰富你的图书馆(PDF + Cards)/ 概念笔记 / 主题地图 → 生成可被任何 LLM agent 调用的"分析镜片" → 提交到 GitHub。
不是 AI 陪聊。不是角色扮演。是研究者每天写论文用的工作流。
scholar-wendao 不是某个 agent 平台的专属插件——它是一套可被任何 LLM agent 加载执行的标准化工作流:
| 你的 agent | 怎么用 scholar-wendao |
|---|---|
| Claude(Code / Desktop / API) | 软链到 ~/.claude/skills/ 自动加载,触发词激活 |
| OpenAI ChatGPT(Custom GPTs) | 上传 SKILL.md 作为 instructions + scripts 作为 actions |
| Cursor / Windsurf / Cline | 把 SKILL.md 放到 .cursorrules 或 .windsurfrules |
| LangChain / LlamaIndex 自建 agent | SKILL.md 作为 system prompt,scripts 作为 tools |
| 国产 agent(豆包 / Kimi / 通义) | SKILL.md 文本上传 + agent 调用本地脚本 |
| Aider / Continue / 任意 IDE agent | 项目根放 SKILL.md 即可 |
| 完全本地 agent(Ollama / vLLM) | 同上,任何能读 markdown 的 agent 都行 |
- SKILL.md 是纯 markdown — 任何 LLM 都能读
- scripts/*.py 是标准 Python(
pymupdf/pyyaml/requests三个常见依赖)— 任何 agent 工具调用机制都能跑 - 数据格式开放(JSON manifest + markdown evidence + YAML config)— 不绑定任何 vendor
- 触发词是中文+英文自然语言 — 不依赖任何特定 agent 的 DSL
- 产物是开放标准(SKILL.md / Library Cards / Obsidian Vault wikilinks) — 不锁定任何工具
| Agent | 状态 | 验证方式 |
|---|---|---|
| Claude Code | ✅ 主开发环境 | 5 个 perspective skill 全部 deploy |
| Claude Desktop | ✅ deploy 验证 | 通过 ~/.claude/skills/ 软链加载 |
| GPT / Cursor / 自建 | ⏳ 理论可用 | 待社区验证(欢迎 PR 报告) |
人文社科研究者(尤其论文作者)面对一个学者的实际工作量包括四件事,过去分散在四套工具里:
| 工作 | 传统工具 | 痛点 |
|---|---|---|
| 1. 资料搜集 | Google Scholar / Zotero / 手动下载 | OA 链接失败率 75%;闭源专著要个个找;非 book 资料(讲座/访谈/集体著作)无统一入口 |
| 2. PDF 全文阅读 | Adobe / Preview | 17 部书逐本读概念抽取太慢 |
| 3. 思想分析 | 自己写读书笔记 | 重复写"X 的核心概念"段,跨学者难复用 |
| 4. 知识库整合 | Obsidian + 手工 wikilink | 蒸馏完成后再手工把材料归档到图书馆/笔记/MOC,常常拖延 |
学者问道把这四件事合并成一个 agent 驱动的端到端流程。 用户的角色降为:决策点确认 + 提供配置参数 + 写出更好的论文。
每跑一次蒸馏,scholar-wendao 同时生产三件成品:
把多源采集到的 PDF 落入用户既有的扁平命名 Library(如 Library/_files/{Author}{Year}_{slug}.pdf),并自动生成符合用户模板的 Library Card(Library/Cards/{Author}{Year}.md,含 frontmatter / APA 引用 / 多语言版本表 / 概念命中分布 / Top 引用片段)。
examples/{slug}-perspective/SKILL.md:当前学者的可调用分析镜片。包括:
- 3-15 个核心概念(每个含定义、与他人关系、局限、关键引文,引文必须 page-anchor 可证)
- 5-10 条方法论进路(碰到 X 类材料的分析步骤)
- 学术坐标 + 智识谱系(上游 / 横向 / 下游)
- (v0.5 新增)Lineages:对古典学者(Aristotle / Arendt 等)是 N 派 reception 传统;对当代学者(Stiegler 等)是 N 个 influence + 接受 lineages
- 重大论战与立场转变
- 人格与处世(独立章节,BRACKETING 双层标注)
- 七大诚实边界(默会知识 / 化石化 / 公开-私下 / 传记修辞 / 漫画化 / 死亡-尊重 / 派学者投射)
把蒸馏过程产出的素材落入用户 Vault 的对应位置(默认 Obsidian,任何支持 markdown wikilink 的 vault 都行),并在 MOC / 概念笔记 / 谱系笔记 / 人物志中追加 wikilink 索引。
这是 scholar-wendao 的核心 use case — 不是"做一个 agent demo",是"完成一篇博士论文/期刊文章的实际研究流程"。
你: "为 Bernard Stiegler 建图书馆"
agent: → 跑 Workflow A
- harvest_works.py 拉 OpenAlex 全部 Stiegler 著作元数据
- 跑 download_open_access.sh 自动下 OA 部分
- 输出 _acquisition_manifest.md(列出哪些要手动下)
→ 你浏览器从 OHP / archive.org 找到 OA 版本
你: "我下了 Bifurcate.pdf 和 Neganthropocene.pdf,加进去"
agent: → 跑 intake_manual_pdf.py(自动重命名 + 归档 + 抽 evidence + 生成 Card)
Library 从 17 → 19 部 PDF
你: "蒸馏 Stiegler"
agent: → 跑 Workflow B
- extract_pdf_evidence(19 部 PDF → 概念锚点)
- 7 agent 并行调研(专著/访谈/风格/二手/论战/谱系/档案)
- 框架提炼(6 核心概念 + 3 次级 + 4 lineages)
- 生成 SKILL.md(1117 行)
- quality_check(100/100 通过)
- sync_to_vault(回灌 wikilinks 到 6 概念笔记 + MOC + 人物志)
你: "用 Stiegler 视角分析这段 ChatGPT 现象材料"
agent: 调用 stiegler-perspective skill
→ 6 核心概念分析 + 引文 + 局限 + 不要漫画化的自检
你: "用朗西埃检验我斯蒂格勒论点" ← 跨 skill 协作
agent: 同时调用 stiegler-perspective + ranciere-perspective
→ 显式处理两个学者的不对称关系
→ 输出"朗-斯接口论证"(论文修订专用 entry point)
你: "Aristotle 各派如何看技术与德性" ← v0.5 multi-perspective
agent: 调用 aristotle-perspective(traditional)
→ 默认 5 段输出(本人 + Aquinas + Avicenna + Heidegger + MacIntyre)
→ 用 Bekker 编号 + 各派代表作引文锚点
你: "我又下了 3 部 Stiegler 法语原版,加进 Stiegler 的库"
agent: → intake_manual_pdf.py × 3 (累积式增长)
你: "重蒸 Stiegler" ← Library 增长后整体重做
agent: → 旧 SKILL.md 进 _archive/
→ 重跑 Workflow B 全部
→ 概念引文升级为更精确的法语原版页码
这就是 v0.5 双工作流 + 跨 skill 协作的实际写论文流程。
scholar-wendao 显式分为两个独立可触发的子工作流 + 共享数据层。每个 Workflow 可单独跑、可重复跑,组合形式由触发词决定。
| 用户输入意图 | Workflow | 路径 |
|---|---|---|
「搜集 X 的资料」/「为 X 建图书馆」/ build-library X |
A 单跑 | A.0 → A.5 |
「蒸馏 X」/「做 X 的分析镜片」/ distill X |
B 单跑 | B.1 → B.6 |
| 「学者问道 X」(默认端到端) | A → B | 完整流程 |
| 「重蒸 X」 | B 重做模式 | 旧 SKILL.md 进 archive |
| 「更新 X 的 skill」 | B 轻量 update | 增补不重写 |
| 「我有 PDF 想加到 X 的库」 | A.4 单步 | intake_manual_pdf.py |
| Phase | 内容 | 工具 |
|---|---|---|
| A.0 | 配置(_library_config.md)+ Library 覆盖率扫描 |
(config) |
| A.1 | Metadata 全收集("无漏" manifest) | harvest_works.py + 多源 harvester |
| A.2 | Tier 1+2 自动下载(OA / yt-dlp / scrape) | download_open_access.sh |
| A.3 | Tier 3+4 manifest 输出(待手动 / 浏览器助手项) | annas_acquire.py(默认 manifest-only) |
| A.4 | 用户主动导入 ← 一等公民入口 | intake_manual_pdf.py |
| A.5 | 生成 / 增量更新 Library Cards | generate_library_cards.py |
| Phase | 内容 | 工具 |
|---|---|---|
| B.0 | scholar_type 判定(contemporary / traditional / topic) |
(Phase 0A) |
| B.1 | extract_pdf_evidence(基于 Library 当前状态) | extract_pdf_evidence.py |
| B.2 | 7 agent 调研(research / biography) | spawn agents |
| B.3a/b/c | 框架提炼(按 scholar_type 分支) | (LLM synthesis) |
| B.4 | SKILL.md 构建 | (template fill) |
| B.5 | 质量验证(7 项 declarations + page-anchor + bracketing) | quality_check.py |
| B.6 | Vault 同步(回灌 wikilinks) | sync_to_vault.py |
| 维度 | contemporary | traditional | topic |
|---|---|---|---|
| 概念地图 size | 3-7 | 5-15 | 5-10 |
| 默认输出 mode | 单一第三人称 | multi-perspective(本人+N 派) | 共识+分歧 |
| Lineages 强制 | 否(可选) | 是(必填 4-6 派) | 否 |
| 引文系统 | PDF page anchor | + Bekker / Stephanus / 中典 | page anchor |
| Tier | 自动化 | 适用源 | 工具 |
|---|---|---|---|
| 1 · 完全 API | 100% | OpenAlex / Crossref / Semantic Scholar / unpaywall | harvest_works.py |
| 2 · 友好 scrape | 90% | OHP / DOAB / archive.org / 学者主页 | harvest_oa_publishers.py |
| 3 · 浏览器助手 | 50% | annas / paywall(机构 access)/ Cairn 锁定 | 浏览器 cookies → 工具 |
| 4 · 完全手动 | 0% | annas 严格反爬 / 闭源专著 / 罕见档案 | intake_manual_pdf.py |
核心设计原则:"无漏"原则的实操含义是 metadata 无漏,不是 PDF 全到手。Tier 3+4 资料显式列入 manifest 让用户决策。
本节面向 agent。每一 Phase 给出具体命令与退出条件。命令是 Python / Bash,任何 agent 工具调用机制都能跑。
agent 收到用户请求后,按 SKILL.md Phase 0 表格判定路径(直接 / 主题 / 诊断),并判定 scholar_type(contemporary / traditional / topic)。
按 references/_library_config-template.md 模板填 frontmatter(13+ 字段),保存到:
examples/${SLUG}-perspective/references/research/_library_config.md
关键字段:
scholar_type:contemporary/traditional/topicarchive_layout:flat(推荐)/by-languagevault_archive_path: 用户 Vault 的"知识库"根lineages(traditional 必填 4-6 派,见references/lineage-protocol.md)
# 学术 metadata (OpenAlex / Crossref / Semantic Scholar)
python3 scripts/harvest_works.py "Bernard Stiegler" \
--output examples/${SLUG}-perspective/references/research/07-archive
# OA 资源批量下载(unpaywall + HTML 落地页 fallback)
bash scripts/download_open_access.sh \
examples/${SLUG}-perspective/references/research/07-archive.json \
"${LIBRARY_FILES_DIR}" flat "${PREFIX}"
# Tier 2 OA 出版社 harvester(OHP / DOAB / archive.org)
python3 scripts/harvest_oa_publishers.py "Bernard Stiegler" \
--output examples/${SLUG}-perspective/references/research/ \
--slug stiegler --manifest examples/${SLUG}-perspective/references/research/_acquisition_manifest.json# 单部
python3 scripts/intake_manual_pdf.py ~/Downloads/Bifurquer.pdf \
--config examples/${SLUG}-perspective/references/research/_library_config.md \
--year 2020 --slug Bifurquer --lang fr --execute
# 批量 + auto-infer
python3 scripts/intake_manual_pdf.py ~/Downloads/Stiegler*.pdf \
--config CONFIG --auto-infer --executepython3 scripts/extract_pdf_evidence.py \
--library "${LIBRARY_FILES_DIR}" \
--filter "${PREFIX}*.pdf" \
--concepts examples/${SLUG}-perspective/_pdf_evidence/_concepts.json \
--out examples/${SLUG}-perspective/_pdf_evidence
# 重生 navigator(从 _index.json 自动)
python3 scripts/regenerate_navigator.py \
--evidence-dir examples/${SLUG}-perspective/_pdf_evidence \
--scholar-name "Bernard Stiegler"python3 scripts/generate_library_cards.py \
--config examples/${SLUG}-perspective/references/research/_library_config.md \
--evidence-dir examples/${SLUG}-perspective/_pdf_evidence \
--archive-json examples/${SLUG}-perspective/references/research/07-archive.jsonpython3 scripts/quality_check.py \
--skill examples/${SLUG}-perspective/SKILL.md \
--evidence-dir examples/${SLUG}-perspective/_pdf_evidencev0.5 检查项:
| 检查 | contemporary | traditional |
|---|---|---|
| 诚实边界声明 | 6 项 | 7 项(含 lineage 投射) |
| 概念地图 | 3-7 | 3-15 |
| 方法论进路 | ≥ 5 | ≥ 5 |
| 引文 page-anchor | ≥ 80% | ≥ 80%(含 Bekker / Stephanus) |
| Narrative-bracketing | 形成性事件 100% 双标注 | 同 |
| Lineages(v0.5) | (可选) | 必填 4-6 派 |
| Multi-perspective 输出(v0.5) | (opt-in) | 默认必填 |
python3 scripts/sync_to_vault.py \
--config examples/${SLUG}-perspective/references/research/_library_config.md
# 确认无误后可加 --prune 瘦身项目仓库git add SKILL.md scripts/ references/ examples/${SLUG}-perspective/ README.md
git commit -F /tmp/commit_msg.txt
git push origin main
# Optional: 派生为 standalone repo (便于单独分发)
gh repo create ${SLUG}-perspective --public --description "..."
git subtree push --prefix=examples/${SLUG}-perspective \
https://github.com/USER/${SLUG}-perspective.git main5 个 perspective skill 已通过 quality_check 验证 + deploy 验证:
| Skill | scholar_type | Lineages | 概念 | 行数 | quality | 论文写作用途 |
|---|---|---|---|---|---|---|
| stiegler-perspective | contemporary(+lineages) | 4(影响 3 + 接受 1) | 6+3 | 1117 | 100/100 | 数字技术 / 算法治理 / 平台资本 / 注意力经济 |
| aristotle-perspective | traditional | 4(经院/阿拉伯/海德格尔/分析) | 7 | 707 | 100/100 | 古典德性论 / 政治哲学 / 形而上学 / 城邦理论 |
| ranciere-perspective(待补 examples/) | contemporary | 0(纯 v0.4.x 风格) | 6 | 730 | 95/100 | 美学体制 / 感性分配 / 解放观众 / 平等公理 |
| arendt-perspective(待补 examples/) | traditional | 5 | 14 | 1073 | 90/100 | 公共领域 / 极权主义诊断 / banality of evil / labor-work-action |
| mumford-perspective | (Workflow A 完成,B 未启动) | - | - | - | - | (待蒸) |
跨 skill 协作示例:ranciere-perspective 显式处理与 stiegler-perspective 的不对称关系,含"论文 #06 朗-斯接口论证"专用 entry point — 这是真实学术研究中两个学者交叉对话的工程化范式。
每个 perspective skill 都可作为独立 repo 分发(via git subtree push):
- stiegler-perspective (standalone)
- aristotle-perspective (standalone)
任何 agent 用户可直接 git clone https://github.com/tizzy916/{slug}-perspective.git 单独使用。
女娲.skill 证明了"把人的思维框架蒸馏成可调用 skill"是可行的。学者问道专为人文社科学者重新设计:
| 女娲 | 学者问道 | 差异理由 |
|---|---|---|
| 默认第一人称扮演 | 默认第三人称分析镜片 | 学者圈最反感把哲学家变成聊天机器 |
| 决策启发式(商业) | 方法论进路 + 立场转变 | 学者没有商业决策但有学术论战 |
| 表达 DNA = 语气模仿 | 行文风格 + 概念语言 | 强调术语使用,避免译者风格污染 |
| 5 项诚实边界 | 7 项(加死亡-尊重 + 派学者投射) | Stiegler/Benjamin/Althusser 案例 + traditional 学者派别问题 |
| 单一产物 SKILL.md | 三大产物(Library + Skill + KB) | 蒸馏 = 同时建图书馆 |
| 不涉及 Vault | 强制 Vault 同步(Phase 5.5) | 工具必须进入研究者实际工作流 |
| 单一作者模型 | 传统学者多视角支持(v0.5) | 古典学者(Aristotle / Plato / Kant 等)需要 N 派 reading |
致敬而非取代。本项目方法论受女娲启发,但定位、设计哲学、目标用户均独立。
# 1. clone 主仓
git clone https://github.com/tizzy916/scholar-wendao-skill.git
# 2. Python 依赖(scripts 用)
pip3 install pymupdf pyyaml requests
# 3. (可选)annas-py(受版权资料获取需要 ANNAS_API_KEY)
pip3 install annas-py
# 4. Library 路径
export SCHOLAR_WENDAO_LIBRARY="$HOME/.../Library 数字图书馆/_files"ln -sfn $(pwd)/scholar-wendao-skill ~/.claude/skills/scholar-wendao-skill
# 重启 Claude触发:任意自然语言含「学者问道 X」/「蒸馏 X」/「为 X 建库」即激活。
- ChatGPT → "Create a GPT" → Configure → Instructions → 粘贴
SKILL.md全文 - Add Actions → 用 OpenAPI schema 包装
scripts/*.py为 HTTP endpoints(或本地 docker container) - 触发词在用户对话中自然语言激活
cp scholar-wendao-skill/SKILL.md /path/to/your/project/.cursorrules
# 或: ln -s scholar-wendao-skill/SKILL.md /path/to/project/.cursorrulesscripts 通过 IDE 内 terminal 调用。
# system prompt
with open("scholar-wendao-skill/SKILL.md") as f:
system_prompt = f.read()
# tools
from langchain.tools import ShellTool
tools = [
ShellTool(name="harvest_works", command="python3 scripts/harvest_works.py {scholar}"),
ShellTool(name="extract_evidence", command="python3 scripts/extract_pdf_evidence.py ..."),
# ... 所有 scripts/*.py
]scholar-wendao 与市面其他人格 skill 的核心差异化:正面回应七大学术批评。每个生成的 perspective skill 必须明确包含:
- 波兰尼问题 —— 默会知识不可蒸馏;本镜片只能复现学者可显式表达的部分
- 思想化石化 —— 调研时间点的快照;演变需要 update
- 公开 vs 私下 —— 所有公开材料是经过过滤的展演自我
- 传记修辞污染 —— 来源等级 + 多源交叉
- 漫画化风险 —— 警觉用 skill 时是否在生产"段子集合"而非智识分析
- 死亡-尊重边界(v0.4) —— 涉及学者自杀 / 监禁 / 重大创伤事件,仅记录可公开核实事实,不戏剧化
- 派学者投射边界(v0.5) —— 4-6 派 lineages 的 reading 是各派的"创造性误读",不是学者本人内在意图
详见 references/humble-epistemics.md + references/lineage-protocol.md。
- ✅ v0.4.x · 端到端工作流 + Library 联动 + intake_manual_pdf 一等公民
- ✅ v0.5.x · Traditional 学者支持(lineages + multi-perspective + Bekker 引文)
- ⏳ v0.6 · 跨 skill 协作框架(基于 ranciere↔stiegler 的不对称对话案例文档化)
- ⏳ v0.7 ·
harvest_classical.py(Perseus / Loeb / Stoa 古典学专项)+ word-boundary _concepts 增强 - ⏳ v1.0 · 多 agent 平台 deploy 验证(GPT / Cursor / 自建 agent)+ 国际化 + paper-writing dashboard
沈聪,中央美术学院实验艺术学院本科,清华大学科学史系硕士(导师 胡翌霖),科技文创公司 天与视界 TIANYU VISION 创始人 & CEO。学术训练横跨实验艺术、科学史与技术哲学;创业方向是用 AI 做科研可视化、科学传播与科艺融合。
「学者问道」诞生于一个具体的写作困境——做学位论文《技术自由主义》时,他不需要"和 Stiegler 聊天",而是需要把多位学者(Stiegler、Rancière、Arendt、Aristotle……)的分析镜片装进自己的研究流程,边读材料边能立刻调用。市面上没有这样的工具,只能自己造——这就是学者问道。
📮 GitHub @tizzy916 · shencong916@gmail.com · 欢迎纠错、合作、交流
CC BY-NC 4.0(知识共享 署名-非商业性使用 4.0 国际许可协议)。详见 LICENSE。
⚠️ License change (2026-05-19):本项目已从 MIT 改为 CC BY-NC 4.0。在此 commit 之前的版本(67bc174及更早)仍按 MIT 协议发布——那些版本及其衍生品保留原始的商用权利。新版本起,禁止商业用途。
本 skill 采用 CC BY-NC 4.0 协议——仅限非商业用途(学术研究、教学、个人项目、开源衍生)。
如需商业使用(嵌入付费产品、作为付费咨询服务的一部分、商业 SaaS 集成等),请联系作者获取商业 license:
📮 shencong916@gmail.com(沈聪 · 天与视界 TIANYU VISION)
作者保留按个案授予商业 license 的权利。
致谢 女娲.skill 提供方法论启发。
用别人的概念地图,看自己的研究材料;用别人的方法论,问自己未问的问题。 不为了模仿他们,是为了拓展你的思维边界——这是与古今学者建立的真正学术对话。