# PDF Courseware Orchestration

> PDF 课件生成编排技能 — 规划大纲、委派子 Agent、通过文件系统传递中间产物。

- Skill: `tencent/pdf-courseware-orchestration` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tencent/pdf-courseware-orchestration`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tencent/pdf-courseware-orchestration/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: tencent (https://skillmd.com/u/tencent)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tencent/pdf-courseware-orchestration

---


# PDF 课件生成编排

你是 PDF 课件生成的编排者。当用户要求生成课件/讲义/教学 PDF 时，按本流程委派子 Agent、汇总结果。

## 文件系统协议

Agent 间通过文件传递数据，不通过上下文传递。目录结构：

```
<user_root>/courses/<course_slug>/
├── outline.json                       # 大纲（planner 输出）
├── chapter_01/
│   ├── research.json                  # 检索资料（researcher 输出）
│   ├── chapter_01.tex                 # TeX 源码（tex_writer 输出）
│   ├── chapter_01.pdf                 # 编译后 PDF
│   ├── chapter_01_exercises.md        # 习题（exercises_generator 输出）
│   └── images/                        # 教学插图
├── chapter_02/ ...
```

## 工作流程

### 第 1 步：规划大纲（planner）

调用 `planner` 子 Agent 规划课程大纲并写入 `outline.json`：

```
planner(input="为以下主题规划课程大纲。
课程主题：{topic} | 用户要求：{user_requirements}
输出路径：{course_dir}/outline.json")
```

planner 会分析用户主题、要求和画像，规划 3-8 章课程大纲，写入 `outline.json` 并返回大纲内容。

### 第 2 步：逐章生成（严格串行）

**⚠️ 必须一章一章完成，禁止批量操作。**

```
第1章 search → 第1章 tex → 第1章 exercises → 第2章 search → 第2章 tex → 第2章 exercises → ...
```

对第 N 章依次执行：

#### 2a. 检索第 N 章资料

```
researcher(input="为以下章节检索资料并保存到文件。
课程主题：{topic} | 第{N}章：{title}
知识点：{knowledge_points} | 搜索关键词：{search_keywords}
输出路径：{course_dir}/chapter_{N:02d}/research.json")
```

#### 2b. 生成第 N 章 PDF

**等 2a 完成后**调用：

```
tex_writer(input="生成 Beamer 教学 PDF。
课程目录：{course_dir} | 第{N}章：{title}
知识点：{knowledge_points} | 难度：{difficulty}
1. 从 {course_dir}/chapter_{N:02d}/research.json 读取资料
2. 在 {course_dir}/chapter_{N:02d}/images/ 生成插图
3. 写入 {course_dir}/chapter_{N:02d}/chapter_{N:02d}.tex
4. 编译 PDF 到 {course_dir}/chapter_{N:02d}/chapter_{N:02d}.pdf")
```

#### 2c. 生成第 N 章习题

**等 2b 完成后**调用：

```
exercises_generator(input="根据章节 TeX 内容生成配套习题。
课程主题：{topic} | 第{N}章：{title}
知识点：{knowledge_points} | 难度：{difficulty}
TeX 文件路径：{course_dir}/chapter_{N:02d}/chapter_{N:02d}.tex
输出路径：{course_dir}/chapter_{N:02d}/chapter_{N:02d}_exercises.md")
```

完成后告知用户进度（如"第 1/5 章已完成"），再处理下一章。

### 第 3 步：汇总结果

所有章节完成后，检查每章 PDF 和习题是否存在，向用户报告大纲概览、各章 PDF 路径、习题路径及状态。

## 可用子 Agent

| 子 Agent | 职责 | 输出文件 |
|----------|------|----------|
| `planner` | 规划课程大纲，写入 outline.json | `outline.json` |
| `researcher` | 搜索资料写入 JSON | `chapter_XX/research.json` |
| `tex_writer` | 读资料→生成插图→写 TeX→编译 PDF | `chapter_XX/chapter_XX.tex` + `.pdf` |
| `exercises_generator` | 读 TeX→生成配套习题 | `chapter_XX/chapter_XX_exercises.md` |

## 注意事项

- 传递给子 Agent 的 input **必须包含完整文件路径**。
- 根据用户画像调整风格：小朋友用生动语言，专业人士用严谨风格。
- **不要在讲义中放练习题**（选择题/填空题等由 `exercises_generator` 单独生成）。
- `researcher` 失败时仍继续调用 `tex_writer`（基于自身知识生成）。
- `tex_writer` 编译失败时记录错误继续下一章，最后汇总报告。
- `exercises_generator` 失败时记录错误继续下一章，不影响 PDF 产物。

