本章总览
内置工具 FileWrite。所有工具共享 Tool 接口,差异在 call() 逻辑与 permissionType。
本章导读
本页讲解内置工具 FileWrite。所有工具共享 Tool 接口,差异在 call() 逻辑与 permissionType。
学完本章你应该能
- 理解该工具在 Agent 中的角色
- 知道 concurrency 与 permission 标记
- 能定位到 tools/ 下源码目录
核心概念(先读懂这些)
读工具的固定套路
① 读描述与 schema(模型何时会选它)② 读 call() 主流程 ③ 读错误与权限分支 ④ 在终端手动触发观察行为。
工具描述即 prompt 一部分
inputSchema 和 natural language description 会影响模型调用频率。改工具不止改代码,也改「被 AI 理解的方式」。
建议学习步骤
- 看基本信息表
- 读 Tool 接口回顾
- 在源码打开对应目录
工具定位
Claude Code 内置工具之一,目录位于 tools/FileWriteTool。阅读时重点看 call() 实现与 inputSchema(模型如何决定调用它)。
基本信息
| 属性 | 值 |
|---|---|
| 目录 | tools/FileWriteTool |
| 文件数 | 3 |
| 代码行数 | 859 |
| 描述 | — |
学习这个工具要回答的三个问题
① 模型何时会选它
看 Tool 注册时的 description 与 inputSchema 字段——这直接写入 prompt,影响 Claude 的选择偏好。
② 执行时有哪些副作用
是否改文件、是否访问网络、是否 spawn 子进程?决定 permissionType 与 concurrency 标记。
③ 失败时用户看到什么
追踪 ToolResult 的错误格式与 UI 如何渲染 stderr/exit code。
在 getAllBaseTools() 中的位置
该工具 属于默认工具集,所有用户均可使用(受权限模式约束)。
Tool 接口回顾
call(input, context): Promise<ToolResult>
isConcurrencySafe(): boolean
isEnabled(): boolean
permissionType: PermissionType
本章小结与延伸
51 个工具不必全精读——先掌握与你工作相关的 5 个,再扩展。 继续学习: