跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

Notebook 单元格编辑

按读取结果中的 cell ID 修改笔记本,避免失效输出和错位编辑。

read_file 对 .ipynb 返回结构化视图:语言、有序单元格、ID、源码和摘要输出,而不是让模型直接改整份 JSON。后续用 notebook_edit 处理单元格。

先完整读取

Notebook 不支持 offset/limit 文本分段参数。同一会话必须先成功读取,再编辑;如果结构化视图因太大被内部截断,notebook_edit 会拒绝单元格修改,要求先减少输出或拆分笔记本。

目标 ID 使用读取结果展示的值,可能是真实 ID,也可能是 cell-N 回退 ID。存在重复或歧义时拒绝编辑,不自行猜测对应项。

三种操作

edit_mode参数
replace,默认notebook_path、cell_id、new_source;cell_type 可调整类型
insertnotebook_path、new_source、cell_type;cell_id 指插入位置之后,省略则置于开头
deletenotebook_path、cell_id;不需要 new_source

notebook_path 为绝对路径,cell_type 可为 code 或 markdown。

notebook_edit(
  notebook_path="/workspace/analysis.ipynb",
  cell_id="load-data",
  edit_mode="replace",
  new_source="result = 41 + 1\nprint(result)"
)

示例 ID 必须替换成实际读取到的单元格,不能假设每个 notebook 都有 load-data。

写入后的状态

代码单元格源码变化会清除旧 outputs 并重置 execution_count,避免继续展示上一版代码的结果。工具尽量保留 JSON 格式、换行、编码与 BOM,审批时展示 notebook JSON diff。

结构性编辑可能改变 cell-N 回退编号,工具会使旧读取状态失效,下一次编辑需重新 read_file。不能在删除一格后继续机械沿用之前的后续编号。

Notebook 编辑不等于执行单元格;清空旧输出后需要另外运行实际计算,才能确认新结果。