← 返回目录

第 11 讲 教案批量填制:一学期十六次课,一次出齐

【可执行状态】现在就能做(填制引擎跑在公网,按附录 C 把 doc-filler 连接器接进入口即可)

【本讲对应资产】doc-filler 引擎(5 个工具);本讲用 filler_help filler_batch filler_run filler_check

【本讲原理来源】L3 第 19 课《第一个 Agent 应用实战》(成长五步)、L3 第 21 课《Agent 核心认知框架》(规划)


引子:一件每年九月都要重演的事

每年九月,总有一位老师的办公桌上摊着同一件活:十六份教案。学院的要求说得清楚——每一次课单独成一份 docx,按学院模板、一章一页。

她打开模板,把“第 3 章 智能体的设计”那几处逐个敲进去,另存一份;再打开一次模板,把“第 4 章”敲进去,再另存一份……到第十份以后,人就开始机械了:字号改飞、班级写错、日期忘了改,都是这时候出的。

真问题是:这十六份东西,九成内容其实是一样的,只有一成不一样——可你偏偏要为那一成,把九成重新做十六遍。 打个比方,这就像给十六个学生写同一封通知,只是收信人不同,你却把整封信从头抄了十六遍。

这一讲要练的动作,就是把“做十六遍”,变成“把不一样的那一份说清一次,剩下的交给机器”。

一、场景:两种做法,两种下班时间

陈老师(化名)这学期上《商业人工智能应用》,一个班,数字经济 2024 级 1 班。学院要求得细:每一次课的教案都要单独成一份 docx,按学院模板、一章一页。 课表排下来是十六次课。

陈老师的两种过法。

第一种:打开模板,把“第 3 章 智能体的设计”这一份的九处内容逐个敲进去,另存一份;再打开一次模板,把“第 4 章”敲进去,另存一份……前十份还算清醒,第十一份开始,她把学时的“3”写成了“4”,把“2026 年 9 月 17 日”复制到了四份文件里;等到十六份收齐,她自己都说不清哪几份改过。交上去,教研室退回三份:一份班级写成了上学期,两份填制日期没改。

第二种:把十六次课各自不同的内容列成一张表,把整门课共用的那几项说一遍,一次出齐。 她做的是同一件事——只是把“抄哪一格”这件事,从手上搬到了配置里。出件之后她只干了一件事:抽三份打开,把六项关键字段读一遍。

同一件事,两种过法。差别不在打字快慢,也不在谁更熟练:

手工那一种,是“用一份文件复制十五份文件”;批量这一种,是“用一张表长出一叠文件”。 后者就是这一讲要练的动作。

做法十六份的耗时最容易出错的地方出错规模事后能核对吗
手工逐份另存半天到一天班级、学时、日期忘了改;字号改飞错一份算一份,也可能错十几份只能一份一份打开看,看三份就放弃
让别人代做快一些,但事多别人的班名、别人的学时留在表里成批不对口说不清哪里不对
一次出齐几分钟公共信息写错、记录条数不对错了就是十六份一起错校验报告 + 抽三份读回,两次就能核完

最后一行是这个办法唯一的代价,也是本讲要反复强调的一句话:一次出十六份,错误也会十六份。

二、原理:两层分工

1. 教案这一类活,两个层次天然分明

翻开任何一所学校的教案模板,你要填的位置分成两组,界线很清:

jiaoyan 场景正是按这个分法设计的,模板里 14 个占位符,数据粒度是课次粒度(记录列表叫 lessons)。十项课次级 + 四项课程级 = 模板上的 14 个位置;哪个占位符取哪一层,调 filler_help 看映射表最准。

层次有哪些一学期写几次放在哪漏了会怎样
课程级(整门课共用)课程名称、授课教师、授课班级、授课学期一次context_json十六份的这四处全空
课次级(每次课不同)章节、课时、教学目标、重点、难点、方法、过程、板书、作业、日期一次课一次lessons 列表,一课一条少了哪条,就少哪一份;串了哪条,就错哪一份

比如说“授课班级”这一项:它在十六份教案上完全相同,写进公共信息里一次就够;而“章节”这一项十六份完全不同,必须一条一条给。就像打印信封——学校名字印在版头上(共用),收件人姓名地址一封信一个(各不同);你不会因为要印十六个信封,就把学校的名字也印十六遍。

2. 这件事,以前是怎么做的

“把同一份格式里的格子填满十六遍”,是一件比电脑早得多的事:

阶段时间核心做法解决了上一阶段什么痛点留下了什么新问题
誊抄一直有照着底稿,一格一格抄到新表上格式统一了抄十六遍,抄到手软,抄错还不自知
复写纸二十世纪垫一张蓝纸,一次写两份一次能出多份最多几份;改一处,全部重写
蜡纸油印二十世纪中后期刻好底版,油印几十份份数上去了只能整批一样,一格一格不同做不到
邮件合并二十世纪九十年代起一份名单加一个模板,批量生成一份文件里“不一样的那一格”终于能自动变要会设字段;模板一换就得重来
模板占位符引擎今天数据、模板、映射三样分开,谁变换谁换数据不动模板,换模板不动映射得分清“哪一项是共用的、哪一项是每次课自己的”

这条线的走向很清楚:每一代都在减少“同一件事做很多遍”的次数,而每一次减少,人剩下的工作都更靠近“把数据说清楚”。 复写纸时代的老师,省的是手;邮件合并时代的老师,省的是抄;今天的老师,省的是决定哪一格属于哪一层——这正是本讲唯一要记住的原理。

这个道理并不新。一百多年前泰勒写《科学管理原理》时,讲的就是把作业拆成标准动作、按标准执行与检验[1];外科医生出身的葛文德在《清单革命》里又把它推了一步:越是重复、越容易在重复中出错的事,越要靠一张清单和一套固定流程,而不是靠人记性[2]。批量出教案完全是同一件事——十六遍里出错,几乎从不是“不会做”,而是“重复到第十一遍时,人不盯了”。

3. 一次说清,比一次做对更重要

十六次课一次出齐,靠的不是模型聪明,而是你先把数据备清楚了。 L3 第 19 课把智能体的成长拆成五步,第二步是“会取数”;在教师场景里,这一步的意思就是:你能把一次课的内容分成“本条记录”和“整批共用”两部分,这个活就成了。 剩下的十次、二十次,只是往 lessons 列表里多加几段。

顺带说清一个分寸:doc-filler 干的是按映射把内容填进模板,它不会替你写教学目标、更不会替你定重难点。这些内容是你(或备课引擎)先备好,填制这条链的活是“把它正确地放到该放的位置上,一次放十六遍”。换句话说:它负责搬运,你负责内容。 就像打印店的伙计——你给他排版好的稿子,他印得又快又齐;他不会替你写文章。第 10 讲那条链(备课引擎出教案)产出的内容,正好可以接上这里,一次填进十六份模板。

4. 有人要问:一次出十六份,万一我公共信息写错了呢?

这是个真问题,而且是批量活最该怕的一件事。

答案分两层。第一层:错误会放大。 课程级四项写错,十六份一起错——比如说把班级写成“数字经济 2024 级 2 班”,你会得到十六份写着别人班的教案。所以这一讲把“课程级四项每份都有”列成校验点里的一条硬指标:看这四项,就是在看“公共信息传没传对”。

第二层:错误也会被整齐地暴露出来。 手工做十六份,错的那一份混在里面,你不上手翻根本不知道;批量出的十六份,错的是同一个位置、同一个写法——你只要抽三份看,就能判断整批对不对。 这也是为什么本讲反复说:批量活的可核对性,比手工活高得多。 前提只有一个——你得真的去抽那三份。

5. 还有人要问:十六份会不会长得一模一样?

会,而且这正是本讲排第一的常见错误。

它有两个来源,分清楚很重要:

例如,常见的情形是:老师把第 3 章那份写得很完整,为了省事,复制十五遍再改标题;结果标题改了,过程与作业忘了改。这种错比漏填更难被发现——漏填至少空着扎眼,串行却是十六份都“有模有样”。 发现办法也简单:抽第一份和最后一份对比,两句话就看得出来。

6. 实测长什么样

本书写作时跑过一条真实的 jiaoyan 记录:课程《商业人工智能应用》,第 3 章 智能体的设计,3 课时,班级数字经济 2024 级 1 班。

产出:商业人工智能应用-第3章 智能体的设计-教案.docx,38,514 字节,占位符残留 0。

打开这份 docx 逐项读回来,结果是:

读回的项值
课程名称商业人工智能应用
章节名称第3章 智能体的设计
授课教师任渝
课时3
授课班级数字经济2024级1班
授课学期2026-2027学年第一学期
教学目标 / 重点 / 难点 / 方法 / 过程 / 板书 / 作业全部填入
填制日期2026年9月17日

这就是“读回验证”:不看报告说什么,打开成品,把每一项读回来对一遍。 十六份教案一起交出去之前,至少要抽三份这样读回一次。报告说“通过”,不能替代你自己看这三份——就像考试阅卷的抽查:系统说“都判完了”,你还是得抽几份翻一翻,看看判分标准有没有走样。

三、动手三件套

一句话指令(可直接复制,把课程与章节换成你的)

用 filler_help 看一下 jiaoyan 场景的数据骨架;再用 filler_batch 把《商业人工智能应用》这学期十六次课的教案按学院模板一次出齐:list_json 里每条是一次课(章节、课时、教学目标、重点、难点、教学方法、教学过程、板书设计、作业、日期);context_json 传整门课共用的四项:课程名称=商业人工智能应用,授课教师=任渝,授课班级=数字经济2024级1班,授课学期=2026-2027学年第一学期;出完把十六份的文件名列给我,并调 filler_check 把校验报告读给我。

先只跑一次课也行:把第一条记录单独交给 filler_run,出来的那一份读回核对,字段对了再把整份 lessons 列表交给 filler_batch——先试一份、再出十六份,这是批量活的标准节奏。这就像开印前先打一张样:花两分钟,省下十六份白印的纸和油墨。

预期产物

产物内容
教案 docx × 16一门课十六次课,一次一份;文件名形如 商业人工智能应用-第3章 智能体的设计-教案.docx
下载链接 × 16每份一个;中文文件名在链接里是百分号编码形态,属正常
校验报告 × 1每份的已替换 / 未替换 / 缺失字段 / 表格填充行数
读回抽检记录抽三份(含第一份和最后一份),把六项关键字段读回来写在核对表上

(本书写作时的实测样例是其中一次课跑出来的 1 份:商业人工智能应用-第3章 智能体的设计-教案.docx,38,514 字节,占位符残留 0。)

文件名本身就是识别符——课程名、章节、文件类型都在里面,所以不用打开就能核对,哪一份是哪一份。比如秘书收齐十六份归档,按文件名排一遍,章节顺序对不对一眼就能看出来。

校验点(这一步不许跳)

  1. 份数 = 课次条数:lessons 里十六条就出十六份。少一份,先查数据形状(单条字典会被包成一条)。
  2. 课程级四项每份都有:课程名称、授课教师、授课班级、授课学期,十六份里一份都不能空。这四项是判“公共信息传没传对”的唯一证据;只要有一份空着,就是 context_json 的问题。
  3. 课次级不串行:章节名与文件名里的章节必须一致;教学目标和作业必须属于这次课,不能出现“第 3 章”的文件里写着“第 4 章”的内容。
  4. 课时的算术对得上:十六次课课时相加,等于大纲里的总学时(本课的实测样例里一次是 3 课时)。
  5. 占位符残留 = 0:成品里搜不到 {{ 记号。实测样例的残留是 0。
  6. 读回验证:打开成品,把每一项读回来对一遍——报告说“通过”,也不能替代你自己看这三份。

这六条里,第 1、2 条是“批量独有”的:手工做十六份,没有人会去数份数,也没人会检查“是不是每一份都有班级”;批量的风险是成批的,所以批量的检查也必须成批做。

四、常见错误与排错

错误一:只传了十六次课,没传课程级四项。

表现:教案主体填得好好的,“课程名称、授课教师、授课班级、授课学期”四处空着。

原因:这四项属顶层,必须走 context_json;记录列表里没有它。

排错:补上 context_json 重跑。这是 jiaoyan 场景最高频的一个坑,写进了本书的实测记录里。

错误二:出了十六份,每一份都长得一样。

表现:十六个文件名不同,打开内容却是同一次课。

原因:把课次级内容误提到了公共层,或者 lessons 列表里十六条其实是同一条复制。

排错:抽第一份和最后一份对比,两句话就看得出来;对比一样就回去把 lessons 列表逐条改开。

错误三:想要十六份,出来一份或几份。

表现:份数明显少。

原因:数据形状传错——给的是单条字典而场景要求列表时,工具会自动包成一条。

排错:份数 = 记录条数,出完先数份数,再核内容。

错误四:十六份里某一份格式和别人不一样。

表现:某一份字体或表格变了。

原因:跑之前有人在模板上手工改过版式,或中途换了模板。

排错:只认一份原始模板;要改版式就改模板本身,改完重跑,不要在成品上改。

错误五:跑了一半,剩下的没出,报错里看不出原因。

表现:不报错,也没有后续文件。

原因:连接器没登记信任被静默跳过,日志里打 skipping untrusted server。

排错:看日志;连接器写在配置根目录的 mcp.json、用裸名 doc-filler,改完完全退出应用再打开(见附录 C)。

错误六:改了一句内容,直接在成品 docx 上改。

表现:这一份改好了,下一次重跑又被覆盖回去;十六份里只有这一份和别人不一样。

原因:成品是产物,不是源;源头是 lessons 列表与模板。

排错:改源头,重跑,别改产物——就像改菜谱而不是改端上桌的那盘菜。

五、边界与红线

六、拓展与学科迁移


带走一句话

共用的说一遍,各异的列一张表;份数对得上,才算做完。

背后的引擎(本讲速查)

工具全名一句话作用
mcp__doc-filler__filler_help看 jiaoyan 的数据骨架:课次级字段 + 课程级公共信息 + 占位符映射
mcp__doc-filler__filler_run先试一份教案,读回核对字段
mcp__doc-filler__filler_batch按 lessons 列表一次出齐一学期教案
mcp__doc-filler__filler_check读校验报告:已替换 / 未替换 / 缺失字段 / 表格行数 / 告警
mcp__doc-filler__filler_scenarios复核场景与占位符数(jiaoyan 为 14)

本讲要点(速记)

参考文献

[1] Taylor F W. The Principles of Scientific Management[M]. New York: Harper & Brothers, 1911.(原著初版 1911 年;把作业拆成标准动作、按标准执行与检验)

[2] Gawande A. The Checklist Manifesto: How to Get Things Right[M]. New York: Metropolitan Books, 2009.(越是重复、越容易在重复中出差错的作业,越要依靠清单与固定流程)

[3] OpenAI. Function calling[EB/OL]. https://platform.openai.com/docs/guides/function-calling.(工具的描述与参数如何决定模型能否正确调用;本书要求写全工具名的原因之一)

数据与平台:本讲实测数据来自 zhenyuonline.cn 的 doc-filler 引擎(2026-09-17 实跑):jiaoyan 场景 14 个占位符,数据粒度为课次(lessons 列表)+ 课程级公共信息(context_json);实测产出 商业人工智能应用-第3章 智能体的设计-教案.docx(38,514 字节),占位符残留 0;读回确认课程名称、章节名称、授课教师、课时、授课班级、授课学期、教学目标、重点、难点、方法、过程、板书、作业、填制日期逐项填入。工具名以「事实底座」所列为准,一个不编。