☰
Kimi Code CLI 系统指令的摸索 以及 开发实战经验分享:从 AGENTS.md 到 Plan Mode 的配置骨架
2026/9/26 10:20:12 网站建设 项目流程

1. 为什么你的 Kimi Code CLI 总在 Git 上“自作主张”

如果你正在用 Kimi Code CLI 写代码,大概率遇到过这种让人血压升高的瞬间:明明上一轮对话里刚说过“别直接推 main”,下一轮它又默默执行了git push;或者你反复强调“新文件用中文注释”,结果长对话之后它切回了英文。这不是它故意跟你对着干,而是系统指令的层级结构和上下文稀释机制在起作用。

Kimi Code CLI 的系统指令是平台在会话开始时注入的底层行为约束,它不像 Cursor 的 Rules 那样有一个显式的全局设置面板,而是分散在上下文的不同位置,有些甚至以隐式方式存在。AI 自己也没法像读文件一样把完整清单“导出”给你,它只能根据实际接收到的内容来回答。所以你能做的,不是去翻源码,而是通过 AGENTS.md 和 settings.json 这两层项目级配置,把关键约束固化下来,让它在长对话和上下文压缩之后依然生效。

这篇文章面向的是已经在用或准备用 Kimi Code CLI 做日常开发的工程师,尤其是那些被 Git 操作和 Plan Mode 流程折腾过的人。我会把 AGENTS.md 的骨架、settings.json 的配置片段、Plan Mode 下 Git 提交前的验证动作都拆开讲,你照着复制就能落地。核心检索词就三个:Kimi Code CLI、AGENTS.md、Plan Mode,全文围绕它们展开。

2. 前置准备:TaoToken 接入与 Kimi Code CLI 环境确认

在动 AGENTS.md 之前,得先保证你的 Kimi Code CLI 能正常跑起来。我实测下来,最省事的路径是通过 TaoToken 拿一个兼容 Anthropic 协议的 API Key,然后让 Kimi Code CLI 指向这个端点。TaoToken 的官网入口是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 地址是 https://taotoken.net/api ,注意 API 地址后面不加 UTM 参数,直接写就行。

你需要先去控制台创建一个 API Key,入口在 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,创建完复制那串sk-开头的字符串。如果你还没决定用哪个模型,可以先到模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 试几句,确认响应正常再往下走。

环境变量这块,Kimi Code CLI 通常读ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY两个变量。在 Linux/macOS 下你可以这样写:

export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="sk-你的key"

Windows PowerShell 下换成:

$env:ANTHROPIC_BASE_URL = "https://taotoken.net/api" $env:ANTHROPIC_API_KEY = "sk-你的key"

设置完之后跑一下kimi --version或者直接进交互模式发一句“你好”,能正常回你就说明链路通了。这一步别跳过,后面所有 AGENTS.md 和 Plan Mode 的配置都建立在这个基础之上。如果你在接入过程中遇到 401 或连接超时,先检查 Key 有没有多余空格、Base URL 有没有多写斜杠,这两个是最常见的坑。

3. AGENTS.md 配置骨架:把 Git 约束和 Plan Mode 写进项目

AGENTS.md 是 Kimi Code CLI 目前最可靠的项目级规则入口。它有个很重要的层级逻辑:可以出现在项目的任何层级,深层目录的 AGENTS.md 优先于父目录,而用户直接说的话优先级最高。这意味着你可以在 monorepo 的根目录放一份通用规则,在子包里放一份覆盖规则,AI 会按就近原则读取。

下面这份骨架是我在多个项目里迭代出来的,你可以直接复制到项目根目录的AGENTS.md:

# 项目协作规则 ## Git 操作约束 - 未经明确指令,禁止执行 git commit、git tag、git push - 禁止执行 git reset、git rebase 及其他会改写历史的操作 - 每次需要执行 Git 变更操作时,必须单独请求确认,即使上一轮对话已批准过 - 提交前必须展示 `git diff --stat` 和 `git status` 的输出 ## Plan Mode 规则 - 非平凡任务(涉及 3 个以上文件或跨模块改动)必须先进入 Plan Mode - Plan Mode 流程:explore → 设计 → 写入 plans/ 目录的 .plan.md 文件 → ExitPlanMode 等待批准 - 计划文件命名格式:plans/YYYYMMDD-任务简述.plan.md - 计划中必须包含:改动文件清单、回滚方案、验证命令 ## 代码规范 - 新文件注释使用中文 - 变量命名用英文,注释用中文 - 修改 AGENTS.md 中提到的内容时,必须同步更新 AGENTS.md ## 工具使用 - 优先使用内置工具(ReadFile/WriteFile/StrReplaceFile/Shell)而非文字描述 - Shell 在 Windows 上运行 PowerShell - 多个独立查询可并行 launch explore agents

这份骨架的关键在于把“每次 Git 变更都要确认”写死。Kimi Code CLI 的系统指令本身就有这条约束,而且是跨会话生效的,但上下文压缩之后 AI 可能会“忘记”你之前批准过什么。写进 AGENTS.md 相当于给它一个持久化的锚点,即使对话被压缩,项目规则依然在。

另外注意最后一条“修改 AGENTS.md 中提到的内容时,必须同步更新 AGENTS.md”。这条规则很实用,比如你改了构建命令,AI 会主动提醒你更新 AGENTS.md 里的对应描述,避免文档和实际配置脱节。

4. settings.json 配置片段:Plan Mode 与 Git 工作流的参数化

AGENTS.md 管的是行为规则,settings.json 管的是工具行为参数。Kimi Code CLI 的 settings.json 通常放在项目根目录的.kimi/下,或者用户级的~/.kimi/settings.json。下面这份配置片段是我在 Plan Mode 和 Git 工作流场景下常用的:

{ "planMode": { "enabled": true, "requireApproval": true, "planDirectory": "plans", "autoExplore": true, "maxExploreAgents": 3 }, "git": { "requireConfirmation": true, "blockedCommands": [ "git push", "git reset --hard", "git rebase", "git commit --amend" ], "preCommitChecks": [ "git status --short", "git diff --stat" ] }, "tools": { "shell": { "windowsShell": "powershell", "timeoutMs": 120000 }, "askUserQuestion": { "maxPerTask": 3 } }, "context": { "compactionThreshold": 0.75, "preserveAgentsMd": true } }

几个参数值得单独说。planMode.requireApproval设为 true 之后,AI 写完 plan 文件会停下来等你批准,不会直接动手改代码。git.blockedCommands里列的命令,AI 执行前会强制走确认流程,即使 AGENTS.md 没写,这层也会兜底。context.preserveAgentsMd设为 true 是为了在上下文压缩时优先保留 AGENTS.md 的内容,减少“失忆”概率。

askUserQuestion.maxPerTask限制为 3 是防止 AI 频繁弹问题打断你的心流。Kimi Code CLI 的系统指令里有一条“不要过度使用 AskUserQuestion”,这个参数就是把它量化落地。

配置改完之后需要重启 Kimi Code CLI 会话才能生效。你可以用kimi config show之类的命令确认当前加载的配置,不同版本命令可能略有差异,以你本地kimi --help的输出为准。

5. 验证请求与成功结果:Plan Mode 下 Git 提交前的完整动作

配置写完不算完,得跑一遍验证流程。我拿一个真实的小重构场景来演示:假设你要把utils/format.js里的日期格式化函数拆成独立模块。

第一步,进入 Kimi Code CLI 交互模式,输入任务描述:“把 utils/format.js 里的 formatDate 拆到 utils/date.js,更新所有引用”。因为涉及多个文件,按 AGENTS.md 规则它应该自动进入 Plan Mode。

第二步,观察它是否先 explore。你会看到它读取相关文件、搜索引用位置,然后生成一个 plan 文件。你可以用ls plans/确认文件是否落盘,文件名类似plans/20250115-拆分formatDate.plan.md。

第三步,检查 plan 内容。一份合格的 plan 应该包含改动文件清单、回滚方案、验证命令。如果缺了回滚方案,你可以直接说“补充回滚方案再继续”,它会更新 plan 文件。

第四步,批准 plan 后它开始执行。执行完你让它提交,这时候关键验证动作来了。按配置它应该先跑git status --short和git diff --stat,把输出展示给你,然后问你是否确认提交。你可以故意说“确认提交”,看它是否真的执行git commit。如果它直接提交了没问你,说明git.requireConfirmation没生效,回去检查 settings.json 的路径和格式。

第五步,提交完成后让它推送到远程。按规则它必须再次请求确认,即使你刚才已经批准过 commit。这一步是验证“跨会话确认”是否生效的关键。如果它直接 push 了,说明 AGENTS.md 里的 Git 约束没被正确读取,检查文件是否在项目根目录、有没有拼写错误。

整个流程跑通之后,你会看到 AI 在每个 Git 变更节点都停下来等你,而不是一路狂奔。这就是 Plan Mode 加 AGENTS.md 加 settings.json 三层配合的效果。

6. 本篇常见错排查:AGENTS.md 不生效与 Plan Mode 卡住

第一个高频问题:AGENTS.md 写了但 AI 不遵守。最常见的原因是文件位置不对。Kimi Code CLI 读取 AGENTS.md 是从当前工作目录向上查找,如果你在子目录启动会话,根目录的 AGENTS.md 可能不会被加载。解决办法是在项目根目录启动,或者在子目录也放一份。另一个原因是文件编码,确保是 UTF-8 无 BOM,Windows 下用记事本保存容易带 BOM,用 VS Code 或Set-Content -Encoding utf8处理。

第二个问题:Plan Mode 下 AI 写完 plan 不退出,一直卡在 explore 阶段。这通常是maxExploreAgents设太大或者任务描述太模糊。把maxExploreAgents降到 2,任务描述里加上明确的文件路径范围,比如“只关注 utils/ 目录下的文件”,能明显改善。

第三个问题:Git 确认流程不触发。检查 settings.json 是否放在正确位置。项目级配置在.kimi/settings.json,用户级在~/.kimi/settings.json,项目级优先。如果两个都有,以项目级为准。另外确认 JSON 格式合法,多一个逗号都会导致整个配置被忽略,可以用python -m json.tool settings.json验证。

第四个问题:上下文压缩后 AI 忘记项目规则。这是系统指令和环境信息的区别导致的。系统指令是行为约束,环境信息是状态描述,压缩时环境信息容易被截断。把context.preserveAgentsMd设为 true 能缓解,但更根本的办法是把关键规则写进 AGENTS.md 而不是依赖对话记忆。我试过在长对话里反复提醒,效果远不如写进文件。

第五个问题:接入时报 401 或 403。先确认 API Key 有没有过期,然后检查ANTHROPIC_BASE_URL是否写成了https://taotoken.net/api/带了尾部斜杠,有些客户端对尾部斜杠敏感。如果还不行,到接入文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 对照一下最新的端点说明。

7. 按场景分流:模型验证、长期编码与 API 接入

不同阶段用的入口不一样,别在一个页面上死磕。如果你还在选模型、想快速验证 Kimi Code CLI 的响应质量,直接去模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 发几条真实任务描述,看它的 Plan Mode 触发和 Git 约束表现。

如果你打算长期用 Kimi Code CLI 做日常编码,或者要跑 Agent 类的自动化任务,建议走 Coding Plan https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,额度模型更适合高频调用。API Key 的管理和轮换在控制台 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 里操作,建议给不同项目建不同的 Key,方便排查问题时定位来源。

接入过程中遇到报错,先翻接入文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,大部分 401/403/超时问题里面都有对应说明。如果你用的是 Claude Code 或 Anthropic 官方客户端,参考 https://taotoken.net/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 里的配置方式,和 Kimi Code CLI 的环境变量逻辑基本一致。

最后说一个我踩过的坑:AGENTS.md 里的规则不要写太细。我一开始把每个函数的命名规范都写进去,结果 AI 在 Plan Mode 里花大量时间逐条对照,反而拖慢了探索阶段。后来精简到 Git 约束、Plan Mode 流程、代码规范三大块,效率明显提升。规则是给 AI 划边界的,不是给它写员工手册的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询