1. 为什么要在 Claude Code 里喊一声“元芳你怎么看”用 Claude Code CLI 写代码的人大概率都遇到过这种时刻Claude 给了一段实现逻辑看着挺顺但心里总有点不踏实想找个“第二意见”对一下。以前的做法是切到另一个终端窗口把上下文重新贴一遍给 Gemini等它回完再切回来手动比对——来回折腾上下文还容易丢。Claude Code CLI 的 Subagent 机制正好能解决这个痛点。Subagent 是一个在独立会话里运行的子代理它有自己的上下文窗口不会污染主对话的历史而 Skill 则是一套可复用的任务模板用来告诉 Claude“遇到什么触发词、该走什么流程”。把这两者组合起来就能做到你在主对话里正常问问题Claude 先给出自己的答案然后你补一句“元芳Gemini你怎么看”Claude 自动拉起一个 Subagent去调用本机的 Gemini CLI 拿第二意见再把两边的回答做一次结构化对比最后只把摘要返回给你。这套流程适合谁适合已经在用 Claude Code CLI 做日常开发、同时本机装了 Gemini CLI、希望在不切换工具的前提下做交叉验证的开发者。它不替代任何编辑器也不改变你原有的工作流只是在需要的时候多一个“参谋”。下面我把配置骨架、settings.json 片段、一次完整的“元芳你怎么看”操作以及我踩过的坑按顺序讲清楚。2. 前置准备TaoToken 接入与 Gemini CLI 就位在动手写 Subagent 之前有两件事要先确认Claude Code CLI 能正常跑Gemini CLI 也能在终端里独立执行。如果你还没配好模型接入可以先用 TaoToken 把 API Key 拿到手它的接入地址和文档都比较清晰省去自己折腾鉴权的功夫。TaoToken 的 API 入口是https://taotoken.net/api控制台里可以创建 API Keys文档页有各语言/各工具的接入示例。拿到 Key 之后按文档把它写进对应工具的环境变量或配置文件即可。这里不展开注册流程重点放在后面的 Subagent 配置上。Gemini CLI 这边确认两件事一是which gemini能返回路径二是gemini -p 11等于多少能正常输出。如果这一步报错先解决 Gemini CLI 本身的安装和鉴权否则后面 Subagent 调它必然失败。注意Subagent 里执行的是本机命令所以 Gemini CLI 必须在当前 shell 的 PATH 里可用。如果你用的是虚拟环境或 nvm 之类的版本管理确认 Claude Code CLI 启动时继承的环境变量和你在终端里手动执行时一致。3. 可复制配置Skill 骨架 Subagent 定义 settings.json这一节是全文的核心三份配置缺一不可。我按“Skill 负责触发和流程、Subagent 负责执行和对比、settings.json 负责把两者挂上”的分工来写。3.1 Skill 骨架gemini-comparisonSkill 放在~/.claude/skills/gemini/SKILL.md目录名和触发词对应即可。它的作用是定义触发条件和整体工作流让 Claude 知道“用户说元芳你怎么看时该走哪几步”。--- name: gemini description: Cross-AI comparison tool that executes Gemini CLI and compares results with Claudes responses. Use when user asks gemini你怎么看, 让gemini回答, or mentions gemini to get alternative perspectives. --- # Gemini Cross-AI Comparison ## Overview 通过执行 Gemini CLI 获取第二意见并与 Claude 的回答做结构化对比。 ## Workflow ### 1. Detect Trigger 当用户使用以下表达时触发 - gemini你怎么看 - 让gemini回答 - 用gemini分析 - gemini认为呢 ### 2. Extract Query and Claudes Response 提取用户的核心问题并记录 Claude 自己已经给出的回答供 Subagent 对比使用。 ### 3. Execute Gemini CLI via Subagent 启动一个独立的同步 Subagent 执行 gemini 命令并完成对比分析避免污染主对话上下文。 Agent 配置文件~/.claude/agents/gemini-comparison-agent.md 使用 Task 工具传入 - subagent_type: general-purpose - run_in_background: false - description: Compare Gemini and Claude responses - prompt: 包含 agent 配置内容 Claude 的响应 用户查询 图片路径如有 ### 4. Present Comparison Subagent 返回完整的对比分析结果直接展示给用户无需二次处理。3.2 Subagent 定义gemini-comparison-agentSubagent 放在~/.claude/agents/gemini-comparison-agent.md。它才是真正执行gemini命令、做对比分析的角色。--- name: gemini-comparison description: Gemini 对比助手 - 执行 Gemini CLI 并与 Claude 的响应进行对比分析 --- # Gemini Comparison Agent 你是一个独立 Agent负责执行 Gemini CLI 并与 Claude 的响应做对比分析。 ## 任务目标 1. 执行 gemini CLI 命令获取 Gemini 的响应 2. 对比 Claude 和 Gemini 的回答 3. 返回格式化的对比分析 ## 工作流程 ### Step 1: 接收输入 - Claude 的响应Claude 对用户问题的完整回答 - 用户查询原始问题 - 图片路径可选 ### Step 2: 执行 Gemini CLI 文本查询 bash gemini {USER_QUERY}图片分析gemini {USER_QUERY} {IMAGE_PATH}Step 3: 对比分析从准确性、完整性、清晰度、方法差异、语气差异、独特见解六个维度对比。Step 4: 返回结果## Gemini 的回答 [Gemini 的完整响应] ## 对比分析 ### 主要差异 - [具体差异点] ### 各自优势 - **Claude**: [Claude 做得好的方面] - **Gemini**: [Gemini 做得好的方面] ### 建议 [综合建议]错误处理gemini CLI 不可用which gemini检查报告错误图片文件不存在ls -l {IMAGE_PATH}验证命令执行失败捕获错误信息建议降级方案重要原则客观公正不偏向任何一方详细具体提供具体差异点建设性建议帮助用户理解何时用哪个保持简洁专注有意义的差异### 3.3 settings.json 片段 在 Claude Code CLI 的 settings.json 里把 Skill 和 Subagent 的目录挂上并允许 Subagent 执行 Bash 工具。下面是一个最小片段路径按你的实际位置调整。 json { skills: { directories: [~/.claude/skills] }, agents: { directories: [~/.claude/agents] }, permissions: { allow: [ Bash(gemini:*), Read(~/.claude/agents/**) ] } }注意Bash(gemini:*)这条权限是让 Subagent 能执行 gemini 命令的关键。如果你用的是更严格的权限模式记得把这条加上否则 Subagent 会在执行阶段被拦下来。三份配置就位后重启 Claude Code CLI让 settings.json 生效。4. 验证请求一次完整的“元芳你怎么看”操作配置好之后来跑一次真实场景。我准备了一个故意写错的 Kotlin 文件BrokenCalculator内容如下pakage com.mistake.demo inport kotlin.random.Random clas BrokenCalculator {注意这里有三处拼写错误pakage、inport、clas而且类体没有闭合大括号。先让 Claude 自己分析。4.1 第一步让 Claude 先给出自己的判断在 Claude Code CLI 里输入分析 BrokenCalculator 这个类中有哪些错误Claude 会去搜索文件、读取内容然后给出它的判断。实测下来Claude 通常会准确指出三处关键字拼写错误并给出修正后的代码。这一步的输出先记在心里因为后面 Subagent 要拿它做对比。4.2 第二步喊一声“元芳你怎么看”紧接着输入gemini你怎么看这时 Skill 被触发Claude 会读取~/.claude/agents/gemini-comparison-agent.md然后通过 Task 工具拉起一个 Subagent。Subagent 在独立会话里执行gemini 请分析 /path/to/BrokenCalculator 这个文件中有哪些错误请详细指出所有问题。Gemini 返回结果后Subagent 按模板做对比分析最后把摘要返回给主对话。你会看到类似这样的输出## Gemini 的回答 文件包含以下语法错误 1. Line 1: pakage 应为 package 2. Line 2: inport 应为 import 3. Line 3: clas 应为 class 4. Line 3: 类块打开但缺少闭合大括号 } ## 对比分析 ### 主要差异 - 完整性差异关键Gemini 发现了第 4 个错误缺少闭合大括号而 Claude 只识别了前 3 个拼写错误 - 语言差异Claude 用中文回答Gemini 用英文回答 - 响应风格Gemini 在结尾主动询问是否需要修复 ### 各自优势 - **Claude**: 结构更清晰直接提供了修正后的完整代码 - **Gemini**: 更准确地发现了所有语法错误包括缺少闭合大括号 ### 建议 推荐采纳 Gemini 的发现因为它识别出了 4 个错误而非 3 个。4.3 第三步核对结果拿到对比后别急着信。自己打开文件数一遍三处拼写错误 一处缺少闭合大括号确实是 4 个问题。Gemini 这次在完整性上更胜一筹Claude 在结构化输出和直接给修正代码上更顺手。这种“各有所长”的结果正是交叉验证的价值所在——它不是要分出谁强谁弱而是让你看到单一模型可能遗漏的细节。5. 本篇常见错排查配置和运行过程中下面几个错误出现频率最高我按现象、原因、解决三步列出来。5.1 Subagent 报 “gemini: command not found”现象Subagent 执行阶段直接失败提示找不到 gemini 命令。原因Claude Code CLI 启动时的 PATH 和你手动开终端时的 PATH 不一致常见于 nvm、conda、pyenv 这类版本管理工具。解决在终端里执行which gemini拿到绝对路径然后在 Subagent 定义里把命令改成绝对路径例如/Users/you/.nvm/versions/node/v20/bin/gemini。或者把 PATH 写进 settings.json 的 env 字段。5.2 Skill 不触发Claude 直接自己回答了现象输入“gemini你怎么看”后Claude 没有拉起 Subagent而是自己继续分析。原因Skill 的 description 里触发词没覆盖到你实际用的表达或者 Skill 目录没被 settings.json 正确加载。解决检查~/.claude/skills/gemini/SKILL.md的 frontmatter 里 description 是否包含你用的触发词确认 settings.json 的skills.directories指向正确重启 CLI。5.3 图片分析时 stdin 重定向失败现象gemini 问题 image.png报文件不存在或读取失败。原因图片路径是相对路径而 Subagent 的工作目录和主对话不同。解决在传给 Subagent 的 prompt 里使用图片的绝对路径并在执行前用ls -l验证文件存在。5.4 对比结果偏向 Claude现象Subagent 返回的“建议”总是推荐 Claude 的答案。原因Subagent 的 prompt 里 Claude 的响应排在前面容易产生位置偏差。解决在 agent 定义里明确写“客观公正不偏向任何一方”并在对比维度里强制要求列出 Gemini 的独特发现。如果还是偏可以在 prompt 里把 Gemini 的响应放在前面。5.5 权限被拦Bash 执行 gemini 被拒现象Subagent 尝试执行 gemini 时被权限系统拦截。原因settings.json 的 permissions.allow 里没有放行Bash(gemini:*)。解决按 3.3 节的片段补上这条权限重启 CLI。6. 把第二意见变成日常习惯这套配置跑通之后我自己的用法是凡是涉及边界条件、异常处理、并发安全的代码Claude 给完方案后我都会补一句“元芳你怎么看”。多数时候两边结论一致那就放心往下写偶尔出现分歧往往就是某个模型漏掉的细节这时候人工核对一遍比事后 debug 省事得多。如果你还没配好模型接入可以先去 TaoToken 控制台创建 API Keys再对照接入文档把 Claude Code CLI 和 Gemini CLI 分别接上。想先验证模型对话效果可以直接用模型对话页面试几句如果打算长期把交叉验证嵌进编码和 Agent 工作流Coding Plan 会更合适。配置文件和触发词都在上面了复制过去改改路径就能用。
企业数字化 ERP 产品动态
相关推荐
程序员正在放弃阅读自己代码的权利:用 TaoToken 统一 Key 管住 AI 生成代码的配置入口 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:58:22
详解大模型推理:从预填充到解码,TaoToken 统一 API 通道下的 KV Caching 配置实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:58:22
OpenCV实战:Python行人检测与目标跟踪完整指南 这几年不管是安防监控、智慧交通,还是商场人流统计,只要涉及到“人”的视觉分析,最常被问起的组合就是“Python OpenCV 做行人检测和跟踪”。网上相关的代码片段很多,但大多只讲某个函数怎么调用,很少告诉你整套流程怎… · 2026/9/26 11:37:21
基于MediaPipe Holistic的八段锦动作识别:75个关键点与DTW匹配实战 简介:基于计算机视觉的八段锦智能辅助训练系统选用MediaPipe Holistic模型,可同时检测33个身体关键点和42个手部关键点,在自建测试集上对8个标准动作的识别准确率达92%。资源面向动作识别与姿态估计方向的开发者、科研人员,可落地… · 2026/9/26 11:37:15
基于STM32的智能鸽子驯养系统:从定时器到状态机的嵌入式实战解析 如果你的课题或者自己的小项目恰好是“基于STM32的智能鸽子驯养系统”,先别急着把它当成一个冷门的养殖设备。我做完这个项目最大的感受是:它本质上是一个把STM32核心外设几乎全用上的综合嵌入式练习。定时器、PWM、输入捕获、编码器模式、通信接口、电源… · 2026/9/26 11:37:08
dalle3 图像生成实战:用 TaoToken 统一 Key 打通 better captions 工作流 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:37:08
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46