notebook-builder
分段式 Jupyter Notebook 生成与修改工具。当用户需要创建、分段追加、修改、合并 Jupyter Notebook (.ipynb) 时使用此技能。支持的高级功能包括:(1) 分段多次生成 Notebook 内容,避免一次性生成过大导致超时或内容截断;(2) 本地图片 base64 嵌入到 Markdown cell;(3) 内置哈希判题系统(不显示明文答案);(4) 灵活的 cell 级增删改查;(5) 合并多个 notebook 为一个;(6) 导出为纯 Python 脚本;(7) 自动生成目录;(8) Cell 标签分组与重排序。适用场景包括教学课件、编程练习、技术教程、学习笔记等 notebook 的创建与维护。
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/aigamatrix/notebook-builderNotebook Builder
分段式创建和修改 Jupyter Notebook,支持图片嵌入与判题系统。
⚠️ 执行规则(必须遵守)
所有 Python 代码必须由 agent 自己通过 terminal 工具执行,严禁让用户手动在命令行执行。
原因:agent 通过工具执行命令时,stdout/stderr 会被自动捕获并返回,agent 可以依据输出判断操作是否成功。如果让用户手动执行,agent 无法感知执行结果,会导致工作流中断或状态不一致。
具体要求:
- 每一段 Python 代码都必须通过
terminal工具直接执行,不要输出代码让用户自己运行 - 执行后必须检查 stdout 输出,确认操作成功(如看到
✅前缀的确认信息) - 分段生成时,每段执行完毕后应通过
terminal工具执行nb_info()或get_cell_summary()检查当前 notebook 状态,再继续下一段 - 如遇执行错误,agent 应自行分析错误信息并修正代码后重试,无需用户介入
核心工作流程
用户请求
│
├─ 创建新 notebook → "创建流程"
├─ 修改现有 notebook → "修改流程"
├─ 添加判题系统 → "判题流程"
└─ 嵌入图片 → "图片流程"
❗ 关于 <技能脚本目录> 占位符
示例代码中的 <技能脚本目录> 需要替换为此技能实际的 scripts/ 目录绝对路径。agent 应通过以下方式确定该路径:
- 此 SKILL.md 文件所在目录的同级
scripts/子目录 - 即 SKILL.md 的父目录 +
/scripts
例如如果此 SKILL.md 位于 /home/user/.codebuddy/skills/notebook-builder/SKILL.md,则 <技能脚本目录> 应替换为 /home/user/.codebuddy/skills/notebook-builder/scripts。
辅助脚本
此技能包含核心辅助脚本 scripts/nb_helpers.py,提供以下能力:
| 函数 | 作用 |
|---|---|
new_notebook() | 创建空 notebook 字典 |
load_notebook(path) | 从文件加载 notebook |
save_notebook(nb, path) | 保存 notebook 到文件 |
make_markdown_cell(src) | 构造 Markdown cell |
make_code_cell(src) | 构造 Code cell |
append_cells(nb, cells) | 向末尾追加 cell |
insert_cells(nb, idx, cells) | 在指定位置插入 cell |
delete_cells(nb, start, count) | 删除 cell |
replace_cell(nb, idx, cell) | 替换 cell |
find_cells_by_keyword(nb, kw) | 按关键词搜索 cell |
find_cells_by_id(nb, id) | 按 id 查找 cell |
embed_image_in_markdown(path) | 图片转 base64 嵌入 |
make_image_output(path) | 为 code cell 创建图片输出 |
make_quiz_code_cell(...) | 生成哈希判题 cell |
make_quiz_summary_cell(ids, total, scores) | 生成判题汇总 cell |
merge_notebooks(paths, output) | 合并多个 notebook |
export_to_script(nb, path) | 导出为 Python 脚本 |
make_toc_cell(nb, max_level) | 自动生成目录 cell |
reorder_cells(nb, new_order) | 按索引重排 cell |
tag_cell(cell, tags) | 为 cell 添加标签 |
find_cells_by_tag(nb, tag) | 按标签查找 cell |
make_section(title, ...) | 快速生成章节 |
clear_all_outputs(nb) | 清除所有输出 |
set_kernel(nb, name, display) | 修改 kernel |
nb_info(nb) | notebook 统计信息 |
get_cell_summary(nb) | 每个 cell 的摘要 |
创建流程(分段生成)
分段生成的核心思路:不要试图一次性生成整个 notebook。将内容拆分为多个"段",每段包含若干 cell,逐段追加。
步骤
- 初始化:用
new_notebook()创建空 notebook,根据用户需求设置 kernel - 规划章节:将内容大纲拆分为 3-5 段,每段对应一个逻辑章节
- 逐段生成:
- 使用
make_section()或make_markdown_cell()+make_code_cell()构造当前段的 cell - 使用
append_cells()追加到 notebook - 调用
save_notebook()保存当前进度(支持中途预览)
- 使用
- 收尾:添加总结章节,最终保存
分段生成示例
重要:以下每一段代码都应由 agent 通过 terminal 工具分段执行,不要一次性全部执行,也不要让用户手动执行。
第 1 次执行(通过 terminal 工具):初始化 + 标题段
import sys
sys.path.insert(0, "<技能脚本目录>")
from nb_helpers import *
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-aigamatrix-notebook-builder": {
"enabled": true,
"auto_update": true
}
}
}