WorkBuddy+Obsidian:从公式教材到自动出题的备课流水线
做培训讲师这些年我最深的感受是真正吃掉时间的不是站上讲台而是讲台下的重复劳动——整理公式教材、排版、出题、核对答案。直到我把 WorkBuddy 和 Obsidian 串成一条流水线这部分工时才被真正压下来。公式教材里满是复杂的数学表达式传统办公软件改一版就乱一版自动出题想要题不重、难度稳、答案还能直接给学生看更是手算到怀疑人生。现在这套组合帮我完成了从教材清洗、知识库搭建到题库生成、试卷输出的闭环备课时间大概压缩了六成而且质量比我手工做的还要稳定。这篇文章不是软件说明书是我自己真实跑通的流程。我会把 Obsidian 这边的目录结构、模板设计、标签体系讲清楚再把 WorkBuddy 这边的自定义指令、技能封装、批量处理工作流摊开讲最后把踩过的坑和复盘结论一并交代。无论你是要做技术考证培训、企业内训还是学校里那种需要大量计算题的课程这套思路都能直接抄。1. 先理清这对组合的分工知识库与 AI 执行体很多讲师一开始会把 Obsidian 当成另一个笔记软件把 WorkBuddy 当成另一个 AI 对话框结果两个工具都在用却完全没发挥出组合的价值。我建议你先忘记它们各自的品牌名只记住两个角色Obsidian 是知识库容器WorkBuddy 是执行体。1.1 培训讲师最耗时的三件事我复盘过自己半个月的备课记录发现工时主要砸在三件事上整理公式教材。从 PDF、PPT、旧 Word 里把公式和讲义内容抽出来重新排版成能讲课、能发给学员的版本。公式动不动就乱码、错位一改就是一下午。出题和做答案解析。每次开班都要新卷子题目覆盖哪些知识点、难度梯度怎么排、数字改一改答案就得全部重算。手算出题错一个数整道题就废了。题库维护。题越攒越多但重复题、超纲题、难度漂移题都在悄悄累积整理成本比出题还高。这三件事的共同点是规则明确、重复度高、又必须保证准确。它们不需要太多创造力但对一致性要求极高。这正是 WorkBuddy 这类 AI 工作台最擅长的事。1.2 WorkBuddy 与 Obsidian 各自擅长什么Obsidian 的核心优势是纯文本 Markdown 存储。公式可以用 LaTeX 语法直接写在正文里配合 MathJax 渲染肉眼看到的就是标准公式样式。更关键的是Obsidian 的每个笔记文件都是独立文本包含标签、属性frontmatter、双链等结构化信息。这些信息既能给人看也能给程序读天生适合做题库、知识库这类需要长期维护的内容。WorkBuddy 的核心能力则是批量处理、自定义指令和技能封装。它不只是一个聊天窗口更像一个能读取文件、调用工具、按固定流程执行任务的 AI 工作台。比如我可以给它定义一套教材转笔记技能输入一整章原始文本它按我的模板输出结构化笔记再定义一套出题技能输入知识点范围它生成题面、答案、解析并按难度打标。对了市面上和 WorkBuddy 定位类似的工具不少有的偏编程助手有的偏写作辅助。WorkBuddy 给我最大的感觉是更偏业务自动化——它能处理的素材类型广而且对自定义规则的响应很稳定适合培训教学这种既需要内容生成、又需要严格格式控制的场景。1.3 为什么不是只靠一个大模型对话就完事有人会问直接用大模型不行吗答案是可以应急但没法沉淀。对话里的内容关了窗口就没了下次出题还得重新描述需求而且大模型每次输出格式都可能漂移。把 Obsidian 当作内容底座之后WorkBuddy 只是一个加工流水线——所有产出都是 Markdown 文件落盘在 Obsidian 库里。哪怕明天换个账号、换台电脑只要这个文件夹在整个知识库和题库都在。这就像开饭店大模型对话是路边摊现场点菜现场炒WorkBuddy 加 Obsidian 是中央厨房食材知识库统一采购入库加工出题、排版流程标准化出餐试卷、教材又快又稳。2. 在 Obsidian 里搭建公式教材库目录、模板与 LaTeX做自动出题之前先要有结构化的知识库。这一步偷懒后面全是坑。我花了两个晚上把库结构定下来后面基本没大改过。2.1 目录结构按章-节-知识点-例题四层建模我以前也试过把所有笔记堆在一个文件夹里结果题目越攒越多找起来全靠搜索。后来改成下面这种四层结构培训课程库/ 01_第1章_基础概念/ 01_知识点_函数类型.md 02_知识点_极限与连续.md 03_例题_极限计算.md 02_第2章_微分/ 01_知识点_求导法则.md 02_例题_复合函数求导.md 考题库/ 01_基础题_函数.md 02_提高题_导数应用.md 03_综合题_微分综合.md 试卷输出/ 2025_春季班_第1套.md 2025_春季班_第2套.md数字前缀是为了让文件排序稳定。章节号、知识点名、类型都写在文件名里哪怕不开 Obsidian、直接用文件管理器也能一眼看出这个文件是什么。这给 WorkBuddy 批量处理也带来了极大便利——它的文件读取逻辑非常依赖清晰的命名和目录。2.2 公式笔记模板设计每一条知识点笔记我都有一个固定模板模板里包含 YAML frontmatter 属性和正文结构--- tags: [第2章, 微分, 核心知识点] knowledge: 复合函数求导 formula: d/dx[f(g(x))] f(g(x)) * g(x) level: 高考/考研/企业内训 source: 教材第2章3节 --- # 复合函数求导 ## 公式说明 ... ## 推导简记 ... ## 典型例题 **例题**... **解答**...注意几个关键点formula 字段单独存一份 LaTeX 公式这是给 WorkBuddy 出题时直接提取用的。level 字段决定题目难度区间方便后续做难度筛选。source 字段记录出处防止后面出现版权说不清的内容也方便核对。2.3 标签体系和属性字段为自动出题预留变量自动出题最大难点不是生成题目而是保证生成的题目不重、不难、不漏。这依赖属性字段的设计。我常用的属性字段包括knowledge知识点、formula公式、level难度、exam_type题型、enabled是否启用、last_used最近一次出题时间。每个知识点笔记里都维护这些字段等于给题库建了索引。标签则负责跨章节聚合。比如所有涉及求导的题无论在第几章都打上#求导标签。这样 WorkBuddy 出题时可以直接按标签圈定范围而不需要我手动告诉它前五章哪些题能用。提示属性字段的命名一定要统一。WorkBuddy 读取 frontmatter 时按字段名精确匹配命名不统一会导致它把难度字段漏掉题目乱成一锅粥。3. WorkBuddy 怎么吃教材清理排版、公式转义与批量入库知识库框架搭好后下一步就是把旧教材灌进去。这一步的难点不在 AI而在喂给 AI 的原始素材质量。垃圾进垃圾出。3.1 教材导入前的格式预处理我遇到的教材来源主要有三类Word 文档、PDF 扫描件、PPT 课件。处理方式不同Word 文档推荐用 Pandoc 转成 Markdown保留标题层级和基础格式。命令很简单pandoc input.docx -o output.md。转完以后检查一下表格和公式多数公式会变成线性文本。PDF 如果是电子版尽量先导出文本再交给 WorkBuddy如果是扫描件必须先用 OCR 识别。注意公式 OCR 是重灾区后面专门讲。PPT 课件主要提取文字大纲公式和图表基本要靠人工核对。素材整理好后我会在 WorkBuddy 里定一条基础规则所有公式统一转成 LaTeX 行内语法比如$x^2$块级公式用$$...$$。数字与单位之间加空格变量统一斜体。这些规则写进自定义指令里WorkBuddy 每一批处理都会自动遵守。3.2 批量生成笔记的工作流我封装了一个名为教材转笔记的 WorkBuddy 技能Skill它接收两个输入源文件路径、知识点清单。执行流程是读取章节文本按知识点切分。对每个知识点提取核心概念、公式、例题。按我的模板生成笔记文件自动填入 frontmatter 属性。输出到指定目录文件名按规则命名。整个过程看起来不复杂但有一个关键细节不要让 WorkBuddy 自由发挥模板。第一次我没锁模板结果它写了 5 种不同结构的笔记后续检索和出题全都乱了。现在我把模板作为技能内置的那一份固定文件它只能填内容不能改结构。如果你刚接触 WorkBuddy我建议先看官方提供的《WorkBuddy 使用教程》或《从入门到精通》手册 PDF把自定义指令和技能这两个功能吃透再动手做批量任务。实际操作时第一次不要贪多拿一个章节试跑确认输出格式对了再批量铺开。3.3 缓存目录与素材管理避免文件满天飞WorkBuddy 处理大批量教材时会生成很多临时文件、缓存文件。默认缓存位置通常在系统盘时间长了 C 盘很容易爆。我习惯把它改到专门目录Windows 上放在D:\WorkBuddyCachemacOS 或 Linux 上放在家目录下的~/WorkBuddyCache。在设置里改完重启就生效。另一个和素材管理相关的经验是所有教材原始文件和转换后的 Markdown 都要分开存放。原始文件放_raw_教材加工后的笔记放正式库。WorkBuddy 在处理时只看_raw_教材生成的笔记直接落到正式库。这样即使 AI 处理出问题原始素材不会被动过重新生成很容易。4. 自动出题系统的核心从题库到题面输出的完整链路知识库就位后终于到了重头戏自动出题。我把这个模块拆成三层题库结构、出题技能、答案与解析生成。4.1 题库结构设计知识点、难度、题型、变量参数每一道题在 Obsidian 里也是一个独立笔记frontmatter 里存关键元数据--- knowledge: 复合函数求导 level: 中等 exam_type: 计算题 param_range: g(x)x^n, n2,3,4; f(x)sin(ax), a1,2 answer: last_used: 2025-03-10 enabled: true --- # 题目编号D-2025-0310-01 **题干**设 $f(x)sin(ax)$$g(x)x^n$求复合函数 $f(g(x))$ 的导数。 **解析**...这里的 param_range 字段特别重要。它定义了这道题的参数取值范围比如指数 n 只允许取 2、3、4a 只允许取 1、2。WorkBuddy 出题时在这个范围内随机生成参数就能在保证题面不超纲的同时做到同一道题可以变出几十组不同数字。4.2 出题 Prompt 与 WorkBuddy 技能封装我封装了第二个技能试卷生成器核心逻辑是先选知识点再组卷最后生成答案。自定义指令大致长这样角色试题编辑 任务生成一份单元测试卷 步骤 1. 从指定目录读取知识点笔记提取每个知识点的公式和 level。 2. 按试卷要求选择题目数量与难度比例例如基础40%、中等40%、综合20%。 3. 对每道题读取题库中对应的题目模板在 param_range 内随机生成参数计算答案。 4. 输出完整 Markdown 试卷题面后用折叠块附答案和解析。 约束 - 每道题必须包含知识点标签。 - 难度不得超出模板设定。 - 答案必须重新计算禁止直接复制历史答案。这里有个技巧值得单独说答案必须由公式现算而不是让 AI 凭记忆写。比如复利计算题我在答案字段保留计算过程模板WorkBuddy 先把随机参数填进去再用公式逐行推导。这样做的好处是只要参数变了答案自动跟着变不会出现题面是 10% 利率、解析里却按 8% 算了答案的情况。4.3 答案解析与变式题目的自动生成策略学员对试卷最大的抱怨往往是答案看不懂步骤。所以我要求 WorkBuddy 生成解析时遵循固定三步先写公式再代入数值最后给结论。举一个实际生成的例子题干设 $f(x)sin(2x)$$g(x)x^3$求 $\frac{d}{dx}f(g(x))$。解答由链式法则$\frac{d}{dx}f(g(x)) f(g(x)) \cdot g(x)$。代入 $f(u)2cos(2u)$、$g(x)3x^2$得 $2cos(2x^3) \cdot 3x^2 6x^2cos(2x^3)$。变式题我也有固定做法把题干和结论互换。原题给表达式求导数变式一改成给导数值反推参数变式二改成判断题让学员判断推导步骤错在哪。这三种题型覆盖了记忆、理解和应用三个层次一份卷子就立体了。5. 跑通之后踩过的坑公式渲染、识别错误与重复出题任何新流程都会在真实使用中暴露问题。下面几个坑是我实实在在踩过的写出来帮你绕开。5.1 Obsidian 公式渲染不一致问题Obsidian 默认支持 LaTeX 公式但有几个细节要注意行内公式两边最好加空格例如$x^2$前后留一个空格某些主题渲染效果更稳定。块级公式单独占一行两边空行否则偶发渲染错位。如果公式里有\{、\}这类花括号建议用\{转义避免被 Markdown 语法吃掉。主题或插件装不上时比如安装 anuppuccin 主题提示失败别硬在外观面板里重试直接去官方仓库下载主题文件放到 Obsidian 的themes目录重启再启用就行。有一次我批量生成的试卷里所有公式都渲染正常只有一道题里\lim_{x \to 0}显示成了乱码。排查到最后发现是原始文本里的下划线被 Markdown 当成了斜体标记。从此我固定了一条规则所有公式里一律用\lim_{x \to 0}并且在 WorkBuddy 指令里注明公式全部用 LaTeX 语法输出不允许裸下划线。5.2 OCR 公式识别错误怎么验证与修正扫描版 PDF 转文本时公式识别错误率很高。常见错误包括根号漏了上横线、分式分母串行、上下标错乱。比如x^2被识别成x2√x被识别成Vx。我的对策是在“教材转笔记”技能里加了一道校验环节每处理完一个章节WorkBuddy 会统计该章节中公式出现的变量集合、函数名列表并和教材目录里的知识点对照。如果某个公式缺少变量定义自动把该条列入“待人工确认清单”。我用这种方式把需要人工核对的范围缩小到个位数而不是对着整本书逐页检查。另外我再强调一遍体积很大的 PDF 不要一次性丢给 WorkBuddy 处理内存和上下文都容易出问题。我通常按章节拆分一次处理一节既减少识别混乱也方便逐条核对。5.3 防止题目重复与难度漂移自动出题跑起来之后下一个高概率问题就是题出多了重复率上升难度也不稳定有时候一套卷子里基础题过多有时候又全是难题。解决重复我依赖 Obsidian 的 Dataview 插件把题库里所有笔记按 knowledge、exam_type、last_used 聚合展示出题前扫一眼就知道哪些知识点很久没出了。WorkBuddy 出题指令里也强制加了读取题库 all.md 索引文件避开最近已用题目这条约束。索引文件由技能每次运行后自动更新等于一个简单的去重表。解决难度漂移关键在于难度等级要落在参数范围上而不是落在文字描述上。比如求导计算题如果难度设为中等但参数范围写死 n 只取 2那这题实际就是基础题。所以我会定期检查每道题的 param_range和实际难度是否匹配。上次春季班卷子出现过一次难度漂移最后查下来就是参数范围里混进了一个明显超纲的 n10难度直接从中等跳到了综合。问题现象可能原因处理办法公式渲染乱码下划线被当斜体、花括号未转义强制 LaTeX 语法、空白分隔题目重复率高未记录 last_used、索引缺失Dataview 聚合 索引文件去重难度忽高忽低参数范围失控、模板 level 与参数不匹配定期审计 param_range答案与题面对不上手填答案、改写题干但未重算答案一律公式现算6. 沉淀成自己的教材生产线流程规则与持续迭代流程能跑通是一回事能长期稳定用下去是另一回事。我自己的体会是给 AI 定规则比换更强的模型更划算。6.1 建立检查清单把人工复核控制在 10% 以内我现在的流程里有三道固定检查教材入库后抽查每个章节的公式渲染和 frontmatter 字段是否完整。试卷生成后人工通读一遍题干和答案重点看参数代入有没有跳步。每次开班后把学员的正确率数据回填到题目笔记里。如果某道题正确率异常低就调低难度或重写解析。很多人担心 AI 出题会有 AI 味。我的解决办法不是换模型而是在 WorkBuddy 自定义指令里明确写不要用首先、其次、综上所述这类词答题过程直接给公式不要铺垫题干表述要像教材例题一样简洁。规则定细输出自然就收敛了。6.2 从销售话术培训到技术考证多场景复用这套流程不只适用于数学类培训。销售话术培训可以把话术框架当作公式库WorkBuddy 按客户场景批量生成对话脚本客服考核把它当作题库按投诉类型和难易程度自动组合测评卷。WorkBuddy 有教育版官方还提供过小程序教学应用案例完全可以把这套流程嵌入到更轻量的教学场景里。企业内训里如果涉及数据库或数据分析课程WorkBuddy 还能连接外部数据源。比如公司有 SAP HANA 环境可以让 WorkBuddy 从真实业务表中抽样数据生成 SQL 练习题答案直接对标真实数据去验证。这比闭门造车出题靠谱得多。6.3 我还在摸索的三个扩展方向目前我手头还有三件事没完全做好打算下一个周期继续折腾。第一件是把 Obsidian 和飞书打通。公司内部的知识库在飞书上我现在用 WorkBuddy 做了半自动同步飞书文档拉到本地转成 Markdown经过格式清理进入 Obsidian需要发布的内容再从 Obsidian 推回飞书。同步的冲突处理还不够顺滑但已经能省不少复制粘贴的功夫。第二件是关于账号和记忆的迁移。WorkBuddy 换了账号之后对话里的历史记忆不会自动跟过来。我的应对是把所有状态都落到 Obsidian 本地文件里而不是存在 AI 的对话历史里。换账号、换机器只要同步整个知识库文件夹出题规则和教材全都在。目前的验证结果是可以完整恢复只是文件结构还需要再优化。第三件是把试卷输出做得更教学化。现在生成的是纯文本 Markdown 试卷我打算下一步让它直接输出带答案折叠块、评分标准和知识点对照表的教学版试卷让学员对完答案能自己看到薄弱环节。如果你也想搭这套生产线我的建议是从最小闭环开始先拿一个章节、十道题跑通教材入库→笔记生成→自动出题→答案导出的全流程再逐步加章节、加题型。不要一上来就追求大而全那是给自己挖坑。我现在的日常已经变成教材拿到手预处理一小时WorkBuddy 跑一夜第二天起来 check 一遍清单试卷和讲义就都能交付了。