kimi-code/docs/zh/reference/tools.md
2026-05-22 15:54:50 +08:00

11 KiB
Raw Permalink Blame History

内置工具

内置工具是 Kimi Code CLI 随核心引擎一起提供的工具集,无需安装 MCP server 即可使用。Agent 在每次对话中会根据任务需要自动选择并调用这些工具;用户也可以通过权限审批界面查看每次工具调用的细节。

与 MCP 工具相比,内置工具由运行时直接管理,生命周期与会话绑定,无需外部进程。两者都遵循统一的审批机制:只读类工具(如 ReadGrepGlobWebSearch 等)默认自动放行,写入与执行类工具(如 WriteEditBashTaskStop)默认需要用户审批。在 YOLO 模式下,普通工具调用的审批会被跳过,但 Plan 模式下的退出审批不受影响。

文件类

文件类工具负责读取、写入、搜索本地文件系统,是代码分析和修改任务的基础工具。

工具 默认审批 说明
Read 自动放行 读取文本文件内容
Write 需审批 创建或覆盖文件
Edit 需审批 精确字符串替换
Grep 自动放行 基于 ripgrep 的全文搜索
Glob 自动放行 按 glob 模式查找文件
ReadMediaFile 自动放行 读取图片或视频文件

Read 接受文件路径(path)以及可选的 line_offset(起始行号,支持负数从末尾倒数)和 n_lines(读取行数上限)。单次最多返回 1000 行或 100 KB超出部分会附带截断提示。如果文件是图片或视频工具会提示改用 ReadMediaFile

Write 接受 pathcontent 和可选的 modeoverwriteappend,默认覆盖)。父目录必须已存在;append 模式将内容追加到文件末尾,不自动添加换行。

Edit 接受 pathold_string(要替换的精确文本)和 new_string(替换后的文本)。默认只替换唯一一处匹配,若文件中存在多处相同内容会报错并提示使用 replace_all: trueold_stringnew_string 不能相同。

Grep 调用 ripgrep 搜索文件内容,支持正则表达式(pattern)、搜索路径(path)、文件类型过滤(type,如 tspy、glob 过滤(glob)和输出模式(output_modefiles_with_matches / content / count_matches,默认 files_with_matches)。content 模式支持 -A-B-C 上下文行参数与 -i(忽略大小写)、-n(行号,默认 truemultiline(跨行匹配)。所有模式均支持 offset + head_limit 分页,head_limit 默认 250、传 0 表示不限。files_with_matches 模式的结果按文件最近修改时间倒序排列;其他模式保持 ripgrep 原始输出顺序。.env、私钥、.aws/credentials.gcp/credentials 等敏感文件会被自动过滤;include_ignored=true 可同时搜索被 .gitignore 等忽略的文件,但敏感文件仍保持过滤。

Glob 按 glob 模式(pattern)在指定目录(path,默认为工作目录)中匹配文件,结果按修改时间倒序排列,最多返回 1000 条。可选参数 include_dirs(默认 true控制是否返回目录条目。纯通配符模式****/*)会被拒绝并提示添加字面锚点;包含花括号扩展({a,b,c})的模式同样会被拒绝——底层 glob 引擎把 {} 当字面量处理,这类模式会静默匹配 0 个文件。

ReadMediaFile 将图片或视频文件以多模态内容发送给模型,仅接受 path。文件大小上限为 100 MB。工具是否可用取决于当前模型的视觉能力image_in / video_in)。

Shell

工具 默认审批 说明
Bash 需审批 执行 Shell 命令

Bash 是最通用也是权限要求最严格的工具。它接受 command(必填)以及可选的 cwd(工作目录)、timeout(毫秒)、description(后台任务描述,run_in_background=true 时必填)、run_in_background(是否以后台任务运行)和 disable_timeout(后台任务是否取消超时)。前台 timeout 默认 60 秒、最长 5 分钟;后台 timeout 默认 10 分钟、最长 10 分钟。

前台模式下 Bash 会阻塞当前轮次,直到命令结束或超时;后台模式会立即返回任务 ID。后台任务默认 10 分钟后超时;如果确实需要让任务不受超时限制,可以设置 disable_timeout=true。任务结束、失败或被停止时会自动通知 Agent 继续处理,过程中也可通过 TaskOutput 主动查看结果。stdin 始终被关闭,交互式命令会立即收到 EOF。两阶段终止策略SIGTERM → 5 秒宽限期 → SIGKILL确保超时后进程能可靠结束。Windows 平台下默认使用 Git Bash 作为 shell。

网络类

工具 默认审批 说明
WebSearch 自动放行 网络搜索
FetchURL 自动放行 获取指定 URL 的内容

WebSearch 接受 query(搜索词)和可选的 limit返回结果数120默认 5include_content(是否返回网页正文,默认 false开启后消耗 token 较多)。该工具需要宿主提供搜索实现,未注入实现时不会出现在工具列表中。

FetchURL 接受单个 url 参数,返回页面内容。对于 HTML 页面,宿主会提取正文文章(extracted)而非返回完整 HTML纯文本或 Markdown 页面则直接透传(passthrough)。同样需要宿主注入实现。

Plan 模式

工具 默认审批 说明
EnterPlanMode 自动放行 进入 Plan 模式
ExitPlanMode 自动放行(需用户确认计划) 退出 Plan 模式并提交计划

Plan 模式是一种受约束的工作状态:进入后 WriteEdit 工具被收紧——只允许写入当前的计划文件,其它路径会被阻断;TaskStop 也被完全拦截。其余工具(包括 Bash)仍按当前权限规则处理,因此通过 Bash 调用的命令理论上仍可能修改文件,是否放行取决于当前的审批策略。

EnterPlanMode 不接受任何参数,进入成功后返回工作流指引,包括计划文件路径(如果宿主提供了的话)。

ExitPlanMode 读取当前计划文件内容,将计划呈现给用户审批后退出 Plan 模式。可选参数 options 允许 Agent 提供 13 个备选方案(每项含 labeldescriptionlabel 最长 80 字符),供用户在审批时选择;标签需互不重复,且不能使用 ApproveRejectReject and ExitRevise 这些保留词系统用它们标记审批结果。用户批准后所有工具重新可用若用户要求修改Agent 将继续留在 Plan 模式中。

状态管理

工具 默认审批 说明
TodoList 自动放行 管理任务待办列表

TodoList 用于在多步骤操作中维护一份可见的子任务列表,状态存储在 Agent 会话内。todos 参数接受一个数组,每项含 title(标题)和 statuspending / in_progress / done);省略 todos 则仅查询当前列表,传入空数组则清空列表。

协作类

协作类工具负责 Agent 间协作、用户交互和 Skill 调用。

工具 默认审批 说明
Agent 自动放行 派生子 Agent 执行子任务
AskUserQuestion 自动放行 向用户提问以获取结构化输入
Skill 自动放行 调用已注册的 inline Skill

Agent 用于将子任务委托给子 Agent 执行。必填参数为 prompt(完整任务描述)和 description35 个词的简短说明,用于 UI 展示)。可选参数包括 subagent_typeAgent 类型,默认 coder)、resume(恢复已有 Agent 的 IDrun_in_background(是否后台运行,默认 falsetimeout超时秒数303600subagent_typeresume 互斥:恢复已有 Agent 时只通过 ID 寻址。前台 timeout 缺省表示不超时,子 Agent 运行至完成;后台 timeout 缺省时回落到 config.toml[background] agent_task_timeout_s,该字段也未设置则无时间上限。前台模式下父 Agent 会等待子 Agent 完成再继续;后台模式立即返回任务 ID完成时通过合成 user 消息自动回到主 Agent无需轮询。子 Agent 体系细节参见 子 Agent

AskUserQuestion 以结构化多选题的形式向用户提问,适用于需要用户消歧或选择方案的场景。questions 参数接受 14 道题,每道题需提供 question(问题文本,以 ? 结尾)、options24 个选项,每项含 labeldescription)以及可选的 header(最多 12 字符的短分类标签,如 AuthStyle)和 multi_select(是否多选,默认 false。系统会自动附加「其他」选项无需在 options 中手工提供。若宿主未实现交互式提问能力本工具会返回失败提示Agent 应改为直接在文本回复中向用户提问。

Skill 允许 Agent 主动调用已注册的 inline 类型 Skill。接受 skillSkill 名称)和可选的 args(附加参数文本)。只有 type = "inline" 的 Skill 能通过此工具调用;其他类型(如 promptflow)以及在 frontmatter 中设置了 disableModelInvocation: true 的 Skill 会被拒绝。为防止递归死循环Skill 嵌套调用深度上限为 3 层。Skill 体系细节参见 Skills

后台任务

后台任务工具用于管理通过 BashAgent 启动的后台任务。后台任务进入完成、失败、停止或丢失等终止状态时,会把状态和末尾输出自动送回 Agent如果只想提前检查进度再使用 TaskOutput

工具 默认审批 说明
TaskList 自动放行 列出后台任务
TaskOutput 自动放行 查看后台任务的输出
TaskStop 需审批 停止正在运行的后台任务

TaskList 返回后台任务列表,每条记录包含任务 ID、状态、命令、描述和 PID。可选参数 active_only(默认 true仅列出运行中的任务limit(最多返回条数,默认 20取值范围 1100。已进入终止状态的任务还会附带 exit_code,被 TaskStop 显式终止的任务会附带 reason

TaskOutput 根据 task_id 返回指定任务的状态与输出。内联预览最多包含最近 32 KB 的内容;完整日志保存在磁盘上,工具会一并返回 output_path 并提示通过 Read 分页读取(建议每页约 300 行)。可选 block(默认 falsetimeout(等待秒数,默认 30取值范围 03600参数可用于等待任务完成后再返回。返回结构中 retrieval_statussuccess / timeout / not_ready;任务因超时被外部 deadline 中止时会附带 timed_out: trueterminal_reason: timed_out,被 TaskStop 显式终止时会附带 stop_reasonterminal_reason: stopped

TaskStop 接受 task_id 和可选的 reason(停止原因,默认 Stopped by TaskStop)。对已处于终止状态的任务也能安全调用,会直接返回当前状态而不报错。