Tools 工具组

NotebookEditTool:编辑 Notebook

这个工具做什么

NotebookEditTool 专门处理 Jupyter Notebook。
Claude Code 没把 .ipynb 当成普通 JSON 文本暴力改,而是单独做了一个工具。

关键源码

它在工具池里和普通文件编辑工具并列:

FileEditTool,
FileWriteTool,
NotebookEditTool,

这说明 Anthropic 很清楚:Notebook 是一种特殊文档,不适合直接套用文本编辑逻辑。

调用链

加载图表中...

实现重点

Notebook 的麻烦点在于:

  • 既有代码单元,也有文本单元
  • 结构是 JSON,但语义是“文档 + 代码”
  • 粗暴字符串替换很容易破坏文件

所以单独拆工具是合理做法。

它和相邻工具的关系

  • FileReadTool:负责把 notebook 读取成可理解内容
  • FileEditTool:普通文本文件走这里,Notebook 不走