SKILL.md
Skill Forge Quiz - 内容生成
此 Skill 提供为 Skill Forge 系统 生成试卷内容 的工具。它直接写入共享数据库,但不管理运行环境。
核心能力
- 导入试卷:从 JSON 文件导入试卷。
- 生成试卷:(规划中)AI 驱动的试卷生成。
使用说明
1. 导入试卷
从 JSON 文件导入试卷:
# 标准导入
node scripts/import_quiz.js <JSON文件路径>
# 示例
node scripts/import_quiz.js ./quiz_template.json
JSON 模板格式
参考项目中的 quiz_template.json 文件:
{
"topic": "主题名称",
"topic_detail": "详细描述(可选)",
"difficulty": "beginner|intermediate|advanced",
"questions": [
{
"content": "题目内容",
"type": "choice|essay|code",
"options": ["A. 选项1", "B. 选项2"],
"correct_answer": "正确答案",
"explanation": "解析",
"knowledge_points": ["知识点1"],
"score": 10
}
]
}
交互流程规范
1. 试卷生成流程
当用户请求"生成试卷"或"创建测验"时,Agent 必须遵循以下流程:
- 参数确认:主动询问并确认以下 4 个关键参数:
主题 (Topic): 测验的核心知识点或技术栈(例如:React Hooks, HTTP 协议)。 难度 (Difficulty): beginner (初级), intermediate (中级), 或 advanced (高级)。 题目数量 (Question Count): 建议 5-20 题。 题目来源 (Source): 明确内容的来源: 纯 AI 生成: (aigenerated) 完全由模型根据知识库生成。 用户提供: (manual) 基于用户提供的文档或文本。 网络搜索: Agent 使用 searchweb 工具搜索相关资料,可细分为: 官方文档 (officialdoc): 技术官网、规范文档。 社区讨论 (community): StackOverflow, GitHub, 技术博客。 面试真题 (interview): LeetCode, 牛客网, 面经网站。 考试题库 (exam): 认证考试、学术试题。 考试题库 (exam): 认证考试、学术试题。 注意: 生成 JSON 时请将对应的类型填入 sourcetype 字段。 如使用 Brave Search,请务必在两次搜索之间间隔 1秒 以上,以避免 429 Too Many Requests 错误。 题型占比 (Distribution): 询问用户希望的题型分布(例如:"全是单选" 或 "一半单选,一半代码题")。支持的题型包括: choice: 单项选择题 multiple_choice: 多项选择题 essay: 问答/简答题 code: 编程题(支持代码高亮)
- 内容生成:
Agent 根据确认的参数,使用自身的 LLM 能力生成符合 quiztemplate.json 格式的 JSON 数据。 注意:在 JSON 的 questions 数组中,应为每个问题设置 sourcetype(如 aigenerated 或 officialdoc)。
- 写入与导入:
将生成的 JSON 保存为临时文件(例如 tempquiz<timestamp>.json)。 使用 node scripts/importquiz.js <tempfile> 导入数据库。 * 导入成功后,必须删除临时文件。
- 反馈:
告知用户导入成功。 提供 Dashboard 的访问链接(通常是 http://localhost:3457)以便用户开始测验。
2. 试卷导入流程
当用户提供现成的 JSON 文件进行导入时:
- 格式验证:检查文件是否符合
quiz_template.json的结构(必须包含topic和questions数组)。 - 执行导入:直接运行
node scripts/import_quiz.js <filepath>。
常用命令
- 导入试卷:
node scripts/importquiz.js <pathto_json> - 查看帮助:
node scripts/import_quiz.js --help
依赖
- Node.js: >= 14.0.0
- SQLite3: 数据库访问
- 前置条件: 需要
~/.skill-forge/skill-forge.db已由skill-forge-base初始化。