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

45 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Agent 与子 Agent
Kimi Code CLI 中的 Agent 是驱动会话的核心。一次会话始终由一个主 Agent 主持,主 Agent 在执行任务过程中可以根据需要派发子 Agent 来处理更聚焦的子任务。
主 Agent 负责理解用户的整体意图、规划步骤、与用户对话、调用工具,并最终汇总结果。它的上下文贯穿整个会话,是用户在终端中直接交互的对象。
子 Agent 则是主 Agent 临时派生出来的"助手"。它接受一份明确的任务描述,在自己的上下文里独立完成工作,再把结论返回给主 Agent。子 Agent 不会与用户直接对话,也不会混入主 Agent 的上下文历史。这种分工特别适合"探索代码库"、"审阅大段实现"、"规划复杂改动"这类边界清晰、需要大量阅读但产物较短的工作。
## 内置子 Agent
Kimi Code CLI 内置了三种子 Agent分别面向不同的任务形态开箱即用
- **`coder`**:默认子 Agent通用的软件工程助手可以读写文件、执行命令、搜索代码并落地具体改动。
- **`explore`**:代码库探索专用,只做只读操作,不会修改任何文件。适合在不修改文件的前提下快速搜索、阅读和总结仓库。
- **`plan`**:实现规划与架构设计专用,工具集进一步收窄,连 Shell 命令都不提供,专注于"想清楚怎么做"而不是"动手做"。
## 调用方式
子 Agent 由主 Agent 自动调度。主 Agent 会根据任务复杂度、上下文消耗以及子任务的独立性,在需要时自动派发,无需用户手动指定。
每次派发都会在终端中以审批请求的形式呈现(除非命中已有的 allow 规则或处于 YOLO 模式),方便你审视任务描述。你可以在与主 Agent 的对话中直接指定子 Agent 类型,例如"先用 explore 把相关文件梳理一遍再动手"。
子 Agent 也可以放在后台运行,完成后结果会自动回到主 Agent无需手动轮询。也可以唤回已有的子 Agent 实例继续推进同一任务。
## 上下文隔离与资源开销
每个子 Agent 都拥有完全独立的上下文窗口。它看不到主 Agent 的对话历史,只能看到主 Agent 显式传入的任务描述。子 Agent 自己的中间思考和工具调用记录不会回流到主 Agent只有最终结果会出现在主 Agent 的上下文里。
这种隔离带来两个好处:一是主 Agent 的上下文保持精炼,长会话中不会被大量探索性日志撑满;二是多个子 Agent 可以并行运行,互不干扰。
需要注意的是,每个子 Agent 都会独立消耗模型 token因此简单任务上没有必要派发子 Agent主 Agent 直接处理反而更经济。子 Agent 也不支持继续嵌套调度。
## 权限继承
子 Agent 的权限规则继承自主 Agent主 Agent 通过 `/permission` 或在审批中接受的"始终允许"规则,会自动覆盖到它派发出的所有子 Agent子 Agent 不需要重新审批同一类工具调用。`Agent` 工具本身默认放行,因此主 Agent 可以在不打断用户的前提下完成多次委派。
如果你希望某一类工具在子 Agent 中始终不可用,应该收紧主 Agent 的权限规则。
## 会话目录中的存储位置
子 Agent 的运行状态会持久化到当前会话目录的 `agents/` 子目录下,每个子 Agent 实例对应一个独立的子目录,其中包含按时间顺序记录提示词、消息历史与最终状态的 `wire.jsonl` 文件。后台子 Agent 还会通过 `tasks/` 子目录暴露生命周期状态。
::: warning 注意
会话目录、wire 文件和任务记录都属于本地调试材料,可能包含用户 prompt、命令输出、仓库路径、工具返回内容或凭证痕迹。不要把这些文件直接提交到公开仓库、issue 或聊天记录里;确实需要分享时,请先脱敏。
:::