ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Claude Code Output Styles 实战:用 Learning 模式边写代码边学,配合 Gemini CLI 双 AI 协作提效

Claude Code Output Styles 实战:用 Learning 模式边写代码边学,配合 Gemini CLI 双 AI 协作提效 1. 当 Claude Code 开始边写边讲学习曲线被掰直了Claude Code 的 Output Styles 是最近被讨论得比较多的一项能力它允许你把 Claude Code「变身」为不同类型的智能体同时保留运行本地脚本、读写文件、跟踪 TODO 这些核心能力。它改的不是模型本身而是 Claude Code 的系统提示词system prompt——默认风格会砍掉很多为了高效产出的默认约束比如必须简洁、自动用测试验证等换成该风格的专属指令。官方目前提供 3 种内置风格可随时切换Default 面向高效软件工程协作Explanatory讲解型在完成任务的同时插入教学式 Insights解释实现选择与代码库模式Learning学习/带教型更像结对编程教练Claude 会边做边教并在代码中插入TODO(human)让你亲自补全随后给反馈。这篇要解决的真实场景是你在一个陌生仓库里改需求既想快速出活又想搞懂为什么这么写。单靠 Default 风格代码是出来了但你对它的设计取舍一无所知单靠 Explanatory讲解有了但缺少逼你动手的环节。我的做法是让 Claude Code 跑 Learning 模式负责生成与讲解再用 Gemini CLI 做一轮交叉审查两个 AI 各司其职。下面给出settings.json里 Output Styles 与统一 Key 的可复制配置骨架以及双 AI 协作的验证步骤。2. 前置准备统一 Key 与 TaoToken 接入在动手配 Output Styles 之前先把模型访问这一层理顺。Claude Code 和 Gemini CLI 如果各自维护一套 Key切换环境时很容易乱。我习惯用 TaoToken 做统一入口一个 Key 覆盖多个模型通道配置集中、排查也集中。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 这个地址不加 UTM 参数。你需要先在控制台创建 API Key然后把它写进环境变量避免硬编码进仓库。# 写入 shell 配置按需替换成你自己的 Key export TAOTOKEN_API_KEYsk-你的Key export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEY$TAOTOKEN_API_KEY这里有个容易踩的点Claude Code 读取的是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个变量Gemini CLI 走的是它自己的配置项。如果你希望两个工具共用同一个 Key就在各自的配置文件里都指向同一个环境变量而不是复制粘贴两份明文。Key 创建入口在控制台的 API Keys 页面https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。接入细节和字段说明可以对照文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。注意环境变量写完后记得source ~/.zshrc或对应 shell 的配置文件否则新开的终端读不到。3. 可复制配置settings.json 里的 Output Styles 骨架Output Styles 的生效范围是项目本地local project level设置会保存到.claude/settings.local.json。交互式切换可以直接输入/output-style从菜单选或在/config菜单里进直达切换则是/output-style explanatory、/output-style learning这类命令。但如果你想让团队里每个人拉下代码就自动带上 Learning 风格靠手动切是不够的得写进配置文件。下面是我在项目里用的.claude/settings.local.json骨架{ outputStyle: learning, env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: ${TAOTOKEN_API_KEY} }, permissions: { allow: [ Read, Edit, Bash(git status), Bash(npm test) ] } }几个字段说明一下。outputStyle指定默认风格这里填learningenv块把统一 Key 注入到 Claude Code 的运行环境${TAOTOKEN_API_KEY}会从系统环境变量读取避免明文落盘permissions.allow是白名单Learning 模式会频繁读文件、改代码、跑测试把常用命令提前放行能减少反复确认。如果你想要更细粒度的控制可以自定义 Output Style。执行/output-style:new 我想要一个……的风格中文也行Claude 会帮你起草。默认写到用户级目录~/.claude/output-styles文件是 Markdown 加前置 YAML包含name和description后面接你定义的行为规范也可以放到项目级.claude/output-styles便于团队共享。--- name: learning-review description: 边写边讲关键片段留 TODO(human) 让开发者补全 --- 你是一位结对编程教练。生成代码时 1. 先用一段话说明这段代码要解决什么问题、有哪些设计取舍。 2. 在关键实现处插入 TODO(human)让开发者亲自补全。 3. 开发者补全后给出点评与改进建议。 4. 所有解释用中文代码注释保留英文术语。这里要区分清楚 Output Styles 和另外两个机制。Output styles 是替换/关闭默认工程化 system prompt 的一部分而CLAUDE.md只是追加一条用户消息-append-system-prompt是附加到默认 system prompt 之后。Output styles 和 Agents子代理也不同前者只改 system prompt 并影响主循环后者还能指定使用的模型、可用工具和触发场景。4. 双 AI 协作Gemini CLI 交叉审查的验证步骤配置好之后真正的价值在于让两个 AI 分工。Claude Code 跑 Learning 模式负责生成 讲解 留 TODOGemini CLI 负责独立审查。为什么不让同一个模型自己审自己因为同一套 system prompt 下模型容易对自己的输出有确认偏误换个模型做交叉检查能捞出不少被忽略的问题。第一步在项目里切到 Learning 风格给一个带教学意图的指令# 进入风格菜单确认当前风格 /output-style learning # 给一个 TDD 风格的带教任务 我们给 UserService 增加批量导入按 TDD 来 请先写失败用例然后在实现里留下 TODO(human) 让我完成关键片段。预期产出是测试先行Claude 在实现里插入TODO(human)让你补全你补完后它自动点评并给改进建议。这一步的重点不是代码多完美而是你能看到为什么先写测试这个边界条件为什么这么处理。第二步把 Claude 产出的文件交给 Gemini CLI 做独立审查。Gemini CLI 的调用方式大致如下# 单文件质量与安全审查 gemini -p 请审查这个文件的质量、安全性与最佳实践给出具体改进建议src/services/user_service.ts # 安全专项 gemini -p 对这个文件做安全审计识别漏洞与安全最佳实践违规src/services/user_service.ts # 性能专项 gemini -p 分析这个文件的性能问题、低效点与优化机会src/services/user_service.ts第三步把 Gemini 的发现分类回灌给 Claude Code。Gemini 的输出通常能归成几类关键安全问题立即修、性能改进可量化、代码质量增强可维护性、最佳实践违规规范符合度。你可以直接把 Gemini 的结论贴回 Claude Code让它按优先级实施# 把 Gemini 的审查结论交给 Claude Code 处理 以下是 Gemini CLI 的审查结论请按影响和风险排序后逐项实施 每项改动说明理由并保留原有功能不变 粘贴 Gemini 输出实测下来这个生成—审查—回灌的闭环比单模型自审能多捞出一些边界条件问题尤其是输入校验和错误处理这两块。Gemini 的审查结论里如果提到具体行号或函数名回灌时保留这些定位信息Claude Code 改起来会更准。5. 本篇常见错排查配置和协作流程跑起来后报错大多集中在几个地方。下面按我遇到过的顺序列一下。风格切换不生效。先确认你改的是项目本地的.claude/settings.local.json而不是全局配置。Output Styles 的生效范围是 local project level改错文件不会起作用。另外/output-style菜单里选完要确认直接关掉终端不算保存。Key 读取失败或 401。检查ANTHROPIC_BASE_URL是否指向https://taotoken.net/api以及ANTHROPIC_API_KEY是否真的被 shell 加载。常见错误是把 Key 写进了settings.json但没写进环境变量而配置里用的是${TAOTOKEN_API_KEY}引用结果解析成空字符串。用echo $TAOTOKEN_API_KEY验证一下。TODO(human) 没出现。Learning 模式才会插入TODO(human)如果你当前是 Explanatory 或 Default就不会有。用/output-style learning确认切换成功。另外如果你的自定义风格文件里没写插入 TODO(human)这条指令模型也不会主动加。Gemini CLI 找不到文件。$FILE_PATH这种写法要求路径相对当前工作目录正确。如果文件在子目录用完整相对路径比如src/services/user_service.ts别只写文件名。两个工具互相干扰。如果你在同一个终端里同时跑 Claude Code 和 Gemini CLI注意它们可能读取不同的环境变量。建议给 Gemini CLI 单独配一份指向同一 Key 的配置而不是依赖 Claude Code 的环境。权限反复弹窗。Learning 模式会频繁读写文件、跑测试如果permissions.allow白名单没配好每次操作都要手动确认。把Read、Edit和常用测试命令提前放行。6. 把风格沉淀成团队资产Output Styles 真正好用的地方是它支持项目级和用户级自定义并复用。我建议团队把常用的风格沉淀到.claude/output-styles/目录下形成一套标准化智能体角色库——比如learning-review.md负责带教、security-audit.md负责安全审查、test-driven.md负责 TDD 流程。这样新同学拉下代码切个风格就能获得一致的协作体验把老手的经验固化成可执行的系统提示。如果你还在调 Key 和接入这一层先去 API Keys 页面把 Key 建好https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 接入字段对照文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。想先验证模型通道是否通可以直接在模型对话里试一句https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。如果你打算把 Claude Code 长期用在编码和 Agent 流程里Coding Plan 会更合适https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。
返回列表