功能详解

AutoPku 围绕三大核心任务构建了完整的工作流。本页详细介绍每个模式的执行流程、输出格式与内部机制。

模式一:同步课程通知

自动拉取教学网上的所有课程通知,包括作业、公告、截止日期等,并按课程分类保存到本地。

执行流程

Step 1
登录教学网
调用 pku3b 使用已保存的 Cookie 或重新认证,建立会话。
Step 2
抓取课程列表
获取当前学期所有已选课程的 ID 与名称,建立课程映射。
Step 3
遍历通知
对每个课程页面爬取通知列表,解析标题、内容、发布时间、附件链接。
Step 4
下载附件
自动下载 PDF、DOCX 等附件到对应课程目录。
Step 5
生成索引
为每个课程生成通知索引 Markdown 文件,方便快速浏览。

输出目录结构

courses/ ├── 操作系统实验班/ │ ├── assignments/ │ │ ├── lab03.pdf # 原始作业附件 │ │ └── lab03_meta.json # 截止日期、分值等元数据 │ ├── announcements/ │ │ ├── 2025-04-10_期中安排.md │ │ └── 2025-04-15_实验延期.md │ ├── notes/ │ └── index.md # 课程通知总览 ├── 量子力学A/ │ ├── assignments/ │ ├── announcements/ │ └── index.md └── sync_log.md # 同步日志

模式二:完成作业

从作业发布到提交的全流程自动化,共 5 个 Phase,每个阶段都有明确的输入输出。

5 Phase 流程

1

PDF 解析(Parse)

使用 PDF 解析工具提取题目文本、公式与图片。对扫描版 PDF 会尝试 OCR 识别。

2

AI 解答(Solve)

将解析后的题目送入 LLM,结合课程上下文生成详细解答。支持数学公式(LaTeX)与代码片段。

3

文档生成(Generate)

将解答内容组织为结构化的 Markdown 文档,包含题目复述、分步推导、最终答案。

4

PDF 渲染(Render)

调用 pandoc / typst 将 Markdown 渲染为高质量 PDF,确保公式排版正确。

5

用户确认与提交(Submit)

暂停并等待用户确认。审阅 PDF 无误后,AI 自动上传文件到教学网对应作业入口。

⚠️ 人工确认是强制环节

第 5 阶段不会自动执行。AI 会打开渲染好的 PDF 供你检查,只有你回复 "确认提交" 后,才会真正上传。

输出示例

markdown
# 量子力学A · 第五次作业

## 题1:一维谐振子的矩阵元

### 解答

利用升降算符 $a, a^\dagger$ 表示位置算符:

$$ x = \sqrt{\frac{\hbar}{2m\omega}}(a + a^\dagger) $$

矩阵元为:

$$ \langle n|x|m\rangle = \sqrt{\frac{\hbar}{2m\omega}}(\sqrt{m}\delta_{n,m-1} + \sqrt{m+1}\delta_{n,m+1}) $$

...

模式三:撰写课程笔记

从课件(PDF/PPT)中提取数学核心内容,生成结构化的 Markdown 笔记,特别擅长处理含有大量公式的理科课件。

执行流程

  1. 课件解析:提取每页幻灯片的文本框与公式区域
  2. 内容分层:识别标题、定义、定理、证明、例题等结构
  3. 公式转录:将课件中的公式转换为 LaTeX 源码
  4. 知识重组:按逻辑顺序重组内容,补充缺失的推导步骤
  5. 生成 Markdown:输出带有目录、交叉引用、定理环境的笔记文件

输出示例

notes/ └── 操作系统/ └── 第5章_进程同步.md
ℹ️ 笔记生成特点
  • 自动提取课件中的定理、定义并用 Markdown 引用块标注
  • 对复杂的数学推导会尝试补充中间步骤
  • 支持生成目录与章节锚点,方便后续检索

Agent Team 结构

AutoPku 不是单一 Agent,而是一个协作团队。不同 Agent 负责不同子任务,通过共享状态与工作目录协同工作。

Agent Team ├── 🎯 Coordinator(协调者) │ └── 接收用户指令 → 分解任务 → 调度子 Agent ├── 📢 SyncAgent(通知同步) │ └── 调用 pku3b → 抓取通知 → 整理目录 ├── 📝 HomeworkAgent(作业解答) │ ├── Parser:PDF / OCR 解析 │ ├── Solver:LLM 推理与解答 │ ├── Renderer:Markdown → PDF │ └── Submitter:教学网上传 ├── 📚 NoteAgent(笔记生成) │ ├── Extractor:课件内容提取 │ ├── Structurer:内容分层与重组 │ └── Formatter:LaTeX / Markdown 排版 └── 🔍 ReviewAgent(审阅) └── 质量检查 → 用户确认交互
✅ 设计优势

Agent Team 的模块化设计使得每个子 Agent 可以独立升级。例如,当更好的 PDF 解析器出现时,只需替换 Parser 模块,其他组件无需改动。