## Major Features ### Streaming Response System - Implement LlmDriver trait with `stream()` method returning async Stream - Add SSE parsing for Anthropic and OpenAI API streaming - Integrate Tauri event system for frontend streaming (`stream:chunk` events) - Add StreamChunk types: Delta, ToolStart, ToolEnd, Complete, Error ### MCP Protocol Implementation - Add MCP JSON-RPC 2.0 types (mcp_types.rs) - Implement stdio-based MCP transport (mcp_transport.rs) - Support tool discovery, execution, and resource operations ### Browser Hand Implementation - Complete browser automation with Playwright-style actions - Support Navigate, Click, Type, Scrape, Screenshot, Wait actions - Add educational Hands: Whiteboard, Slideshow, Speech, Quiz ### Security Enhancements - Implement command whitelist/blacklist for shell_exec tool - Add SSRF protection with private IP blocking - Create security.toml configuration file ## Test Improvements - Fix test import paths (security-utils, setup) - Fix vi.mock hoisting issues with vi.hoisted() - Update test expectations for validateUrl and sanitizeFilename - Add getUnsupportedLocalGatewayStatus mock ## Documentation Updates - Update architecture documentation - Improve configuration reference - Add quick-start guide updates Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
166 lines
4.2 KiB
Markdown
166 lines
4.2 KiB
Markdown
# Classroom Generator Skill
|
|
|
|
根据主题或文档生成互动课堂内容,包括大纲、场景、测验等。
|
|
|
|
## 触发词
|
|
|
|
生成课堂、创建课程、制作课件、课堂生成、classroom、generate lesson、create course
|
|
|
|
## 能力
|
|
|
|
- **大纲生成**: 根据主题生成结构化课堂大纲
|
|
- **场景创建**: 为每个大纲条目生成丰富的教学场景
|
|
- **测验生成**: 自动生成测验题目评估学习效果
|
|
- **多风格支持**: 支持讲授式、讨论式、项目制学习 (PBL) 等教学风格
|
|
- **多模态内容**: 支持文本、图像、公式、图表等内容类型
|
|
|
|
## 工具依赖
|
|
|
|
- whiteboard: 白板绘制能力
|
|
- slideshow: 幻灯片控制能力
|
|
- speech: 语音合成能力
|
|
- quiz: 测验生成能力
|
|
|
|
## 输入参数
|
|
|
|
| 参数 | 类型 | 必需 | 描述 |
|
|
|------|------|------|------|
|
|
| topic | string | 是 | 课堂主题 |
|
|
| document | string | 否 | 参考文档内容或 URL |
|
|
| style | string | 否 | 教学风格: lecture/discussion/pbl |
|
|
| level | string | 否 | 难度级别: beginner/intermediate/advanced |
|
|
| duration | number | 否 | 预计时长(分钟) |
|
|
| language | string | 否 | 输出语言: zh-CN/en-US |
|
|
|
|
## 输出格式
|
|
|
|
### 课堂大纲 (Stage 1)
|
|
|
|
```json
|
|
{
|
|
"title": "课堂标题",
|
|
"summary": "课堂简介",
|
|
"objectives": ["学习目标1", "学习目标2"],
|
|
"outline": [
|
|
{
|
|
"id": "scene_1",
|
|
"title": "场景标题",
|
|
"type": "slide|quiz|interactive|discussion",
|
|
"duration": 5,
|
|
"key_points": ["要点1", "要点2"]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### 场景内容 (Stage 2)
|
|
|
|
```json
|
|
{
|
|
"id": "scene_1",
|
|
"type": "slide",
|
|
"content": {
|
|
"title": "幻灯片标题",
|
|
"slides": [...]
|
|
},
|
|
"actions": [
|
|
{"type": "speech", "text": "讲解内容..."},
|
|
{"type": "whiteboard", "action": "draw_chart", "params": {...}},
|
|
{"type": "slideshow", "action": "spotlight", "params": {...}}
|
|
],
|
|
"notes": "教学备注"
|
|
}
|
|
```
|
|
|
|
## 工作流程
|
|
|
|
1. **分析输入**: 解析主题、文档、风格等参数
|
|
2. **生成大纲**: 创建结构化课堂大纲
|
|
3. **展开场景**: 为每个大纲条目生成详细场景
|
|
4. **添加动作**: 为每个场景添加白板、语音、幻灯片等动作
|
|
5. **生成测验**: 在适当位置插入测验题目
|
|
6. **输出结果**: 返回完整课堂 JSON
|
|
|
|
## 示例用法
|
|
|
|
```
|
|
用户: 生成一个关于 Rust 所有权的 30 分钟课堂
|
|
助手: 我来为您生成 Rust 所有权的互动课堂...
|
|
|
|
[分析主题]
|
|
[生成大纲]
|
|
[展开场景]
|
|
|
|
课堂已生成!包含:
|
|
- 5 个教学场景
|
|
- 1 个互动测验
|
|
- 预计时长 30 分钟
|
|
|
|
开始学习吗?
|
|
```
|
|
|
|
## Agent 角色配置
|
|
|
|
生成课堂时,会创建以下 Agent 角色:
|
|
|
|
| 角色 | 职责 | 优先级 |
|
|
|------|------|--------|
|
|
| teacher | 主讲教师,负责核心内容讲解 | 10 |
|
|
| assistant | 助教,负责补充说明和答疑 | 7 |
|
|
| student_active | 活跃学生,主动提问和互动 | 5 |
|
|
| student_note | 笔记员,整理和总结要点 | 4 |
|
|
|
|
## 提示模板
|
|
|
|
### 大纲生成提示
|
|
|
|
```
|
|
你是一位专业的课程设计师。请根据以下信息生成一个结构化的课堂大纲:
|
|
|
|
主题: {{topic}}
|
|
参考文档: {{document}}
|
|
教学风格: {{style}}
|
|
难度级别: {{level}}
|
|
预计时长: {{duration}} 分钟
|
|
|
|
请生成:
|
|
1. 课堂标题和简介
|
|
2. 3-5 个学习目标
|
|
3. 4-8 个教学场景(每个场景包含标题、类型、时长、关键点)
|
|
|
|
输出为 JSON 格式。
|
|
```
|
|
|
|
### 场景展开提示
|
|
|
|
```
|
|
你是一位经验丰富的教师。请根据以下大纲条目生成详细的教学场景:
|
|
|
|
场景标题: {{scene_title}}
|
|
场景类型: {{scene_type}}
|
|
关键点: {{key_points}}
|
|
前序内容: {{previous_content}}
|
|
|
|
请生成:
|
|
1. 场景的详细内容(幻灯片内容、讲解文本等)
|
|
2. 需要执行的动作(白板绘制、语音讲解、幻灯片控制等)
|
|
3. 教学备注
|
|
|
|
输出为 JSON 格式。
|
|
```
|
|
|
|
## 输出规范
|
|
|
|
- 使用 JSON 格式输出结构化内容
|
|
- 中文内容使用 UTF-8 编码
|
|
- 动作参数需符合对应 Hand 的接口定义
|
|
- 时长以分钟为单位
|
|
- 所有 ID 使用 snake_case 格式
|
|
|
|
## 扩展能力
|
|
|
|
- **导出 PPTX**: 将课堂内容导出为 PowerPoint 演示文稿
|
|
- **导出 HTML**: 将课堂内容导出为交互式网页
|
|
- **导入文档**: 从 PDF/Word/Markdown 文档生成课堂
|
|
- **自定义模板**: 支持自定义课堂模板和风格
|