Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Coding
Exam Generator
Try it中国中小学试卷生成器。Use when teacher needs to create exam papers for Chinese primary/middle school. Supports all subjects, multiple question types, official curriculu...
What it does
📚 **全学科支持**: 语文、数学、英语、物理、化学、生物、历史、地理、政治 📊 **多种题型**: 选择题、填空题、判断题、简答题、计算题、作文题 🎯 **精准出题**: 根据知识点和难度要求生成 🌐 **联网验证**: 使用web search获取最新知识和标准答案 📐 **专业排版**: 标准试卷格式,可直接打印 ✅ **答案准确**: 交叉验证确保答案正确
The skill document
中国中小学试卷生成器
专业试卷生成工具,支持中国中小学各学科,遵循官方课程标准,确保试题准确性。
Features
- 📚 全学科支持: 语文、数学、英语、物理、化学、生物、历史、地理、政治
- 📊 多种题型: 选择题、填空题、判断题、简答题、计算题、作文题
- 🎯 精准出题: 根据知识点和难度要求生成
- 🌐 联网验证: 使用web search获取最新知识和标准答案
- 📐 专业排版: 标准试卷格式,可直接打印
- ✅ 答案准确: 交叉验证确保答案正确
支持的学科
| 学科 | 年级 | 题型 |
|---|---|---|
| 语文 | 小学/初中 | 选择、填空、阅读、作文 |
| 数学 | 小学/初中 | 选择、填空、计算、应用 |
| 英语 | 小学/初中 | 选择、填空、阅读、写作 |
| 物理 | 初中 | 选择、填空、实验、计算 |
| 化学 | 初中 | 选择、填空、实验、计算 |
| 生物 | 初中 | 选择、填空、简答 |
| 历史 | 初中 | 选择、填空、简答 |
| 地理 | 初中 | 选择、填空、读图 |
| 政治 | 初中 | 选择、填空、简答 |
Trigger Conditions
- "生成一份试卷" / "Create an exam"
- "出一套数学题" / "Generate math problems"
- "帮我出英语试卷" / "Create English test"
- "根据知识点出题" / "Generate questions for topics"
- "exam-generator"
Step 1: 理解用户需求
请提供以下信息:
学科:语文/数学/英语/物理/化学...
年级:小学X年级/初中X年级
知识点:具体要考察的知识点
题型:选择题/填空题/简答题...
题量:各题型数量
难度:简单/中等/困难
时间:考试时长(分钟)
Step 2: 获取最新知识(联网验证)
使用web-search skill获取准确的知识点和标准答案:
Agent自动调用web-search skill搜索:
- 学科知识点
- 标准答案
- 官方课程标准
知识验证流程
生成试题
↓
搜索标准答案
↓
交叉验证
↓
标记置信度
↓
输出试题
Step 3: 生成试卷
Python代码示例
import os
from datetime import datetime
class ExamGenerator:
def __init__(self, subject, grade, title='考试试卷'):
self.subject = subject
self.grade = grade
self.title = title
self.questions = []
self.answers = []
def add_choice_question(self, question, options, answer, score=2):
"""添加选择题"""
self.questions.append({
'type': 'choice',
'question': question,
'options': options,
'score': score
})
self.answers.append({
'type': 'choice',
'answer': answer,
'score': score
})
def add_fill_blank(self, question, answer, score=2):
"""添加填空题"""
self.questions.append({
'type': 'fill',
'question': question,
'score': score
})
self.answers.append({
'type': 'fill',
'answer': answer,
'score': score
})
def add_true_false(self, question, answer, score=1):
"""添加判断题"""
self.questions.append({
'type': 'true_false',
'question': question,
'score': score
})
self.answers.append({
'type': 'true_false',
'answer': answer,
'score': score
})
def add_short_answer(self, question, answer, score=10):
"""添加简答题"""
self.questions.append({
'type': 'short_answer',
'question': question,
'score': score
})
self.answers.append({
'type': 'short_answer',
'answer': answer,
'score': score
})
def add_calculation(self, question, answer, score=15):
"""添加计算题"""
self.questions.append({
'type': 'calculation',
'question': question,
'score': score
})
self.answers.append({
'type': 'calculation',
'answer': answer,
'score': score
})
def add_essay(self, question, requirements, score=30):
"""添加作文题"""
self.questions.append({
'type': 'essay',
'question': question,
'requirements': requirements,
'score': score
})
self.answers.append({
'type': 'essay',
'answer': '见评分标准',
'score': score
})
def generate_exam(self, lang='zh'):
"""生成试卷"""
total_score = sum(q['score'] for q in self.questions)
if lang == 'zh':
return self._generate_chinese(total_score)
else:
return self._generate_english(total_score)
def _generate_chinese(self, total_score):
"""生成中文试卷"""
output = []
output.append(f'┌{"─"*60}┐')
output.append(f'│ {self.title}')
output.append(f'│ {self.subject} · {self.grade}')
output.append(f'│ 考试时间:90分钟 · 满分:{total_score}分')
output.append(f'└{"─"*60}┘')
output.append('')
output.append('姓名:__________ 班级:__________ 学号:__________')
output.append('')
choice_num = 1
fill_num = 1
tf_num = 1
other_num = 1
for q in self.questions:
if q['type'] == 'choice':
output.append(f'一、选择题(每题{q["score"]}分)')
output.append('')
output.append(f'{choice_num}. {q["question"]}')
for i, opt in enumerate(q['options']):
output.append(f' {chr(65+i)}. {opt}')
output.append('')
choice_num += 1
elif q['type'] == 'fill':
output.append(f'二、填空题(每空{q["score"]}分)')
output.append('')
output.append(f'{fill_num}. {q["question"]}')
output.append(' 答案:__________')
output.append('')
fill_num += 1
elif q['type'] == 'true_false':
output.append(f'三、判断题(每题{q["score"]}分)')
output.append('')
output.append(f'{tf_num}. {q["question"]} ( )')
output.append('')
tf_num += 1
elif q['type'] == 'short_answer':
output.append(f'四、简答题(每题{q["score"]}分)')
output.append('')
output.append(f'{other_num}. {q["question"]}')
output.append('')
output.append('')
output.append('')
other_num += 1
elif q['type'] == 'calculation':
output.append(f'五、计算题(每题{q["score"]}分)')
output.append('')
output.append(f'{other_num}. {q["question"]}')
output.append('')
output.append('')
output.append('')
other_num += 1
elif q['type'] == 'essay':
output.append(f'六、作文({q["score"]}分)')
output.append('')
output.append(f'{q["question"]}')
output.append(f'要求:{q.get("requirements", "")}')
output.append('')
output.append('')
output.append('')
return '\n'.join(output)
def generate_answer_sheet(self, lang='zh'):
"""生成答案"""
output = []
output.append(f'{"="*60}')
output.append(f'{self.title} - 参考答案')
output.append(f'{"="*60}')
output.append('')
for i, a in enumerate(self.answers, 1):
output.append(f'{i}. {a["answer"]} ({a["score"]}分)')
return '\n'.join(output)
def save(self, output_dir):
"""保存试卷和答案(Word格式)"""
from docx import Document
from docx.shared import Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
os.makedirs(output_dir, exist_ok=True)
# 生成试卷Word文档
doc = Document()
# 设置页面
section = doc.sections[0]
section.top_margin = Cm(2.54)
section.bottom_margin = Cm(2.54)
section.left_margin = Cm(2.54)
section.right_margin = Cm(2.54)
# 生成内容
exam_text = self.generate_exam()
for line in exam_text.split('\n'):
if line.strip():
if '═' in line or '─' in line:
doc.add_paragraph(line)
elif line.startswith('一、') or line.startswith('二、') or line.startswith('三、'):
doc.add_heading(line, level=2)
elif line.startswith('1.') or line.startswith('2.') or line.startswith('3.'):
doc.add_paragraph(line)
else:
doc.add_paragraph(line)
exam_path = os.path.join(output_dir, 'exam.docx')
doc.save(exam_path)
# 生成答案Word文档
doc_answer = Document()
answer_text = self.generate_answer_sheet()
for line in answer_text.split('\n'):
if line.strip():
doc_answer.add_paragraph(line)
answer_path = os.path.join(output_dir, 'answer.docx')
doc_answer.save(answer_path)
return exam_path, answer_path
# 使用示例
exam = ExamGenerator('数学', '初中一年级', '2026年春季期中考试')
exam.add_choice_question('下列哪个是质数?', ['4', '6', '7', '9'], 'C', 2)
exam.add_fill_blank('12的平方根是____', '±2√3', 2)
exam.add_true_false('0是最小的自然数', '×', 1)
exam.add_calculation('计算:2x + 5 = 13,求x的值', 'x = 4', 10)
exam.save('/path/to/output')
试卷格式标准
试卷结构
┌─────────────────────────────────────────────────────────┐
│ 2026年春季期中考试 │
│ 数学 · 初中一年级 │
│ 考试时间:90分钟 · 满分:100分 │
└─────────────────────────────────────────────────────────┘
姓名:__________ 班级:__________ 学号:__________
一、选择题(每题2分,共20分)
1. 下列哪个是质数?
A. 4 B. 6 C. 7 D. 9
二、填空题(每题2分,共20分)
1. 12的平方根是__________
三、计算题(共60分)
1. 解方程:2x + 5 = 13(10分)
使用示例
生成数学试卷
User: "帮我出一套初中一年级数学试卷,5道选择题,5道填空题,2道计算题"
Agent:
1. 搜索初中数学知识点
2. 生成试题
3. 验证答案
4. 排版输出
生成语文试卷
User: "生成一份小学三年级语文试卷,包含阅读理解"
Agent:
1. 搜索小学语文课程标准
2. 选择合适的阅读材料
3. 生成题目
4. 输出试卷
试题准确性保证
验证流程
生成试题
↓
搜索标准答案
↓
多源交叉验证
↓
标记置信度
↓
输出试题+答案
置信度标记
- ✅ 高置信度:多源验证一致
- ⚠️ 中置信度:单源验证
- ❌ 低置信度:需要人工确认
Notes
- 使用web search获取最新知识
- 答案经过交叉验证
- 支持中英文输出
- 可直接打印
Related skills
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Site audit, content writing, and competitor analysis for organic search rankings.
More from tobewin
Browse all skillsGenerate editable PowerPoint decks from a JSON description with 11 slide layouts and 5 color themes.
Translate Word, PDF, Excel, PowerPoint, HTML, Markdown, and TXT files into another language while preserving the original layout.
Professional Excel spreadsheet generator. Use when user needs to create data tables, reports, charts, financial models, or any structured data in Excel forma...
中国新闻资讯聚合工具。Use when user wants to get latest news from Chinese sources. Supports multiple news sites (Sina, Sohu, NetEase, Tencent) via browser automation an...
Data analysis tool for Excel, CSV, Word, PDF, TXT, Markdown files. Use when user needs to analyze, summarize, or compare data from multiple files. Supports f...
Marketing plan generator with web research and Word output. Use when user needs to create marketing plans, promotional campaigns, social media strategies. Fe...