Skip to content
FunCoding

Search

Search docs, Skills and MCP

Notebook 单元格编辑

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

This page has not been translated into English yet. The original Chinese version is shown below.

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 编辑不等于执行单元格;清空旧输出后需要另外运行实际计算,才能确认新结果。