1. 接手陌生代码库,为什么第一句话决定后面三小时
刚接手一个项目,你打开 Claude Code,脑子里想的是「先让它帮我看看这个 bug」。结果它读完两三个文件,顺手把package.json里的依赖升了级,又新建了一个你没同意的目录,最后还问你要不要git commit。你花在回滚和解释上的时间,比手写代码还多。
问题不在模型能力,在于你还没给它立规矩就让它开工了。这就像招了个新同事,没给员工手册、没讲工作流程,直接丢一句「去干活吧」。它只能靠猜,而猜错的代价由你承担。
我试过更稳妥的做法:把「接手项目后的第一句话」固定成一个初始化协议。核心目标有三个——先读AGENTS.md和CLAUDE.md这类入口文件,再梳理目录结构与git commit历史,最后只输出一份可执行的改造计划,而不是直接动手改代码。这样第一次对话的产物就是一份项目交接清单,而不是一堆待回滚的 diff。
这篇会给你可直接复制的 Prompt 模板、AGENTS.md片段,以及一次git commit前后的验证动作。适合谁:刚接手遗留项目、需要让 Claude Code 或 Codex 快速建立上下文、又不想被 AI 乱改配置的开发者。关键词先记住:Claude Code、Prompt、Codex、git commit、AGENTS.md,这五个词贯穿全文。
先说清楚「第一句话」和普通提问的区别。普通提问是任务导向的:「帮我修这个函数」。第一句话是协议导向的:先建立行为边界,再谈任务。边界包括——哪些文件只读、哪些可以写、什么情况下必须停下来问你、完成后要汇报什么。没有这层边界,模型会默认「尽量帮你把事做完」,于是自作主张就成了默认行为。
2. TaoToken 前置:把模型入口和 Key 先备好
在写 Prompt 之前,得先有一个稳定的模型调用入口。Claude Code 和 Codex 这类工具都需要 Base URL、API Key、Model ID 三件套。我这边统一走 TaoToken 的 API 入口,官网是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 地址是 https://taotoken.net/api ,注意 API 地址不带 UTM 参数,配置时别把推广参数拼进去。
为什么先讲这个?因为初始化协议里有一条「读取远程规范 URL,读不到就停止」。如果模型入口本身不稳定,第一步就会卡住,后面全乱。所以顺序是:先把 Key 和 Base URL 配好,确认能正常对话,再发初始化 Prompt。
拿 Key 的路径很直接:进控制台创建 API Key,然后按你用的工具填配置。Claude Code 走的是 Anthropic 兼容配置,Codex 走的是auth.json,Cline 这类走 MCP 或 OpenAI 兼容配置。三件套缺一不可,尤其是 Model ID,填错会直接报model not found。
这里给一个通用的配置对照,方便你按工具选:
| 工具 | 配置文件 | 关键字段 | 说明 |
|---|---|---|---|
| Claude Code | 环境变量 / settings | ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY、模型名 | 走 Anthropic 兼容协议 |
| Codex | ~/.codex/auth.json | base_url、api_key、model | 三件套写全 |
| Cline / MCP | MCP 配置 JSON | baseUrl、apiKey、model | 注意字段大小写 |
如果你还没建 Key,可以先到 API Keys 页面创建:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite 。创建后复制一次,页面刷新就不再显示完整 Key,这点和大多数平台一样。
配置完成后,先用一句最简单的对话验证通路,比如「回复 ok」。能正常返回,再进入下一步。别跳过这步,否则后面报错你分不清是 Prompt 问题还是 Key 问题。
3. 可复制配置:AGENTS.md 片段与初始化 Prompt 模板
这一节是全文最该直接抄的部分。先给AGENTS.md片段,再给第一句话 Prompt 模板,最后给 Claude Code 和 Codex 的配置片段。
3.1 AGENTS.md 薄入口片段
AGENTS.md的设计原则是「薄入口」:只做指针,不复制任何环境配置或命令。因为一旦复制,项目演进后入口文件就过时了,AI 还在用旧信息。
# AGENTS.md 本文件是 AI 工具的统一入口,只做引用,不承载业务信息。 请按顺序阅读以下文档后再执行任何操作: 1. INIT.md —— 初始化协议与行为边界 2. DEV.md —— 开发规范与协作流程 3. README.md —— 项目说明与目录结构 4. TODO.md —— 当前任务与待确认决策 约束: - 未阅读上述文档前,不得修改任何业务代码、配置文件、依赖文件。 - 不得主动执行 git commit,除非用户明确要求。 - 可以执行 git status、git diff、git log 等只读检查。 - 所有不确定信息标注「待确认」,并汇总到 TODO.md。CLAUDE.md可以更短,直接指向AGENTS.md:
# CLAUDE.md 请先阅读 AGENTS.md,并严格遵循其中引用的规范文档。 不要在本文件中复制环境变量、测试命令或部署流程。3.2 第一句话 Prompt 模板
下面这段就是「接手项目后对 Claude Code 说的第一句话」,可直接复制。注意把 URL 换成你自己的规范地址,内网环境建议放仓库内相对路径。
请先读取项目根目录的 AGENTS.md 与 CLAUDE.md,并严格遵循其中的引用规范。 如果 AGENTS.md 不存在,请读取 https://taotoken.net/api 对应的接入文档说明, 若仍无法获取规范,必须立即停止并说明原因,不要凭空猜测。 在完成阅读前,暂时不要修改任何业务代码、配置文件、依赖文件或构建产物。 只允许在当前项目根目录建立或完善以下文档: INIT.md、DEV.md、README.md、TODO.md、AGENTS.md、CLAUDE.md。 请执行以下只读检查并汇报: 1. 列出当前目录结构(深度不超过 3 层)。 2. 执行 git log --oneline -20,总结最近的提交主题与改动范围。 3. 执行 git status,说明当前工作区是否干净。 4. 阅读现有 README 与 CONTRIBUTING(如有),指出缺失信息。 除非我明确要求「提交代码」「commit」,否则不得主动执行 git commit。 如认为需要提交,请先说明原因并等待我确认。 初始化完成后,请输出: - 新增或修改了哪些文档; - 每个文档的主要内容; - 哪些信息仍需人工确认(用「待确认」标记); - 一份可执行的改造计划,按优先级排序,暂不执行。这段 Prompt 在做什么,拆开看:读取入口文件建立上下文;读不到就停止,杜绝编造;白名单约束只允许改 6 个文档;只读检查目录和git commit历史;禁止主动 commit;完成后汇报并给计划。每一步都是可验证的。
3.3 Claude Code 与 Codex 配置片段
Claude Code 走环境变量或 settings,核心三件套:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="你的_API_Key" export ANTHROPIC_MODEL="你的_Model_ID"Codex 的auth.json三件套写全:
{ "base_url": "https://taotoken.net/api", "api_key": "你的_API_Key", "model": "你的_Model_ID" }Cline 走 MCP 配置时,字段名注意大小写:
{ "mcpServers": { "taotoken": { "baseUrl": "https://taotoken.net/api", "apiKey": "你的_API_Key", "model": "你的_Model_ID" } } }配置完先验证通路,再发初始化 Prompt。顺序错了,排障会翻倍。
4. 验证请求:一次 git commit 前后的完整动作
初始化跑完后,怎么确认它真的守规矩?看两个动作:git status和git diff。下面演示一次完整流程。
第一步,发完 Prompt 后,模型应该先输出只读检查结果。你重点看它有没有执行git log --oneline -20,有没有列出目录结构。如果它直接开始写文件,说明入口文件没生效,停下来检查AGENTS.md是否在根目录。
第二步,检查它新建的文档。正常情况只会出现INIT.md、DEV.md、README.md、TODO.md、AGENTS.md、CLAUDE.md这几个。执行:
git status预期输出是「Untracked files」里只有这几个文档,没有package.json、go.mod、requirements.txt的改动。如果依赖文件被动了,说明白名单约束没生效。
第三步,看TODO.md里的「待确认」清单。技术栈、目录结构、第一个迭代功能,这些应该都被标出来。你补一句「技术栈用 Go + Gin,前端 React,目录按标准脚手架」,让它更新到README.md和DEV.md。
第四步,验证 commit 边界。故意说一句「帮我改下登录逻辑」,观察它是否先记入TODO.md、是否先做只读检查、是否在改完后等你确认再 commit。正常表现是:改完提示「已完成,是否需要提交」,而不是直接git add . && git commit。
第五步,如果你确认要提交,明确说「提交这次改动」。然后执行:
git log --oneline -3 git show --stat HEAD确认这次 commit 只包含你审阅过的文件,没有夹带无关改动。这一步是最后一道防线,别省。
整个流程跑下来,你会得到一份可追溯的交接清单:目录结构、提交历史摘要、待确认决策、改造计划。第一次花 5 分钟,后面每次对话都省下解释成本。
5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth
初始化协议跑不通,八成是配置或环境问题。下面按真实报错对照排查。
401 Unauthorized:Key 无效或没带上。检查ANTHROPIC_API_KEY或auth.json里的api_key是否完整复制,有没有多余空格。注意 API 地址是 https://taotoken.net/api ,不要拼 UTM 参数。如果刚创建 Key,确认没有在页面刷新后复制到空值。
local proxy failed / connection refused:本地代理或端口配置问题。检查ANTHROPIC_BASE_URL是否写成了本地地址,或者系统代理拦截了请求。把 Base URL 改回 https://taotoken.net/api 再试。这类报错通常和网络层有关,不是模型问题。
reading choices / choices 字段读取失败:多出现在 OpenAI 兼容协议的工具里,说明返回结构和你用的解析方式不匹配。检查 Model ID 是否填错,或者工具版本是否支持当前返回格式。换一个明确的模型名再试,别用模糊别名。
OAuth 相关报错:Claude Code 某些版本会走 OAuth 流程,如果你用的是 API Key 模式,需要在配置里明确关闭 OAuth 或选择 API Key 认证。检查 settings 里是否有冲突的认证字段,只保留一套。
AGENTS.md 不生效:确认文件在项目根目录,文件名大小写一致。有些工具只认AGENTS.md,不认agents.md。另外确认 Prompt 里明确写了「先读取 AGENTS.md」,否则模型可能跳过。
git commit 被主动执行:说明 Prompt 里的禁止条款没被遵守,或者你用的工具默认开启了自动提交。检查工具设置里是否有 auto-commit 选项,关掉它。同时在AGENTS.md里把「不得主动 commit」写成硬约束。
排障顺序建议:先验证 Key 和 Base URL 通路,再验证入口文件是否被读取,最后验证白名单和 commit 边界。一层层来,别一次改多个变量。
6. 把第一句话变成长期习惯
初始化协议不是一次性动作。项目演进后,README.md和DEV.md需要手动更新,AI 每次对话前会重新读取,自动适应新规范。维护文档的成本,远低于每次跟 AI 解释的成本。
如果你要长期做编码和 Agent 任务,可以考虑 Coding Plan,把模型调用和额度管理固定下来:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite 。验证模型效果可以直接用模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite 。接入细节看文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。
下次接手项目,把第 3 节那段 Prompt 直接发给 Claude Code,观察它是不是先读AGENTS.md、先梳理git commit历史、先给计划再动手。如果它做到了,你就得到了一份可执行的项目交接清单,而不是一堆待回滚的改动。