Skip to content

5.9 策略对比:Claude Code vs OpenAI vs Google

学习目标

  • 系统提示结构工具描述组织并行与失败策略 三方面对比三家常见路线。
  • 说明 Claude Code 的「静动边界 + 延迟工具手册」在 成本与纪律 上的取舍。
  • 能向团队解释:为何 不是「谁的提示词更长谁更强」。

生活类比:三家快递公司的员工手册

  • A 公司:手册很厚,但分 总部红线站点每日告示——像静动分离。
  • B 公司:总部发 标准 API 卡片(函数名、JSON Schema),站点自己贴便利贴——像 function calling 生态。
  • C 公司:强调 多模态与工具声明格式,各城法规用插件描述——像 Gemini tools。

没有绝对赢家,只有 场景匹配


对比总表

维度Claude Code(本篇模型)OpenAI(function calling 生态)Google(Gemini tools)
系统提示静动拆分,边界下注入环境/记忆/MCP常由应用拼装 system + developersystem instruction + tools 声明
工具描述总则 + 每工具 prompt.ts,可 ToolSearch 延迟加载JSON Schema + 简短 description 为主工具定义 + 声明式约束(随 API 演进)
纪律 enforcement强提示 + 硬拦截(如先读后改)多依赖应用层中间件依赖应用层与模型遵循
并行明确「无依赖并行」文化由客户端决定是否并行 tool 调用依客户端与模型能力
缓存意识产品化考虑 prompt cache 前缀视应用;Responses/缓存能力因产品而异视应用与模型栈
典型强项长上下文编程流、CLI 一体生态与集成广度多模态、部分谷歌云一体场景

Claude Code:提示词策略摘要

  1. getSystemPrompt() 编译器模型:静态宪法 + SYSTEM_PROMPT_DYNAMIC_BOUNDARY + 动态政策。
  2. 行为铁律工具死规矩 双管齐下;关键路径 代码拦截
  3. 工具手册 延迟加载,控制前缀长度,服务 成本与专注

Mermaid:Claude Code 提示词栈


OpenAI:function calling 典型策略

特征

  • 工具以 函数列表 形式提供给 API;模型在 消息流 中产出 tool_calls
  • 描述字段 受 token 预算限制,团队常在「短描述」与「行为完整」间权衡。
  • 系统提示 常由 应用 拼接:安全策略、RAG、记忆、业务规则。

与 Claude Code 的差异(教学观点)

OpenAI 生态常见现象Claude Code 倾向
工具说明位置紧附在 schema总则 + 可检索手册
硬约束依赖中间件/沙箱提示 + 专用工具链拦截
前缀治理因应用而异,需自建规范产品内建静动边界意识

Mermaid:OpenAI 风格消息流(简化)


Google:Gemini tools 典型策略

特征

  • 声明式工具系统 instruction 组合;多模态输入常见。
  • 工具与 谷歌生态(搜索、地图、企业数据)集成时,提示词侧重 能力边界与合规
  • 具体字段名、模式随 API 版本 演进较快,提示工程要 版本锁定

与 Claude Code 的差异(教学观点)

Gemini 路线Claude Code 路线
上下文形态强多模态编程 CLI 常以文本+工具为主
工具发现应用定义ToolSearch + 延迟手册
团队心智「instruction + tools」「宪法/政策/手册」三层

何时借鉴哪一种?

你的场景可借鉴 Claude Code可借鉴 OpenAI可借鉴 Google
长对话编程 Agent静动边界、缓存意识丰富中间件示例多模态需求
大量第三方 API延迟工具手册思路schema 驱动声明式工具
企业合规审计硬拦截 + 日志策略网关云一体身份与权限

源码片段(概念):三家「工具注册」形态对比

typescript
// OpenAI 风格:schema 即契约
const openaiTools = [
  {
    type: "function",
    function: {
      name: "read_file",
      description: "Read a UTF-8 text file by path.",
      parameters: { type: "object", properties: { path: { type: "string" } }, required: ["path"] },
    },
  },
];

// Claude Code 风格:运行时检索 prompt.ts 片段 + 硬规则在宿主
const claudeCodeTooling = {
  globalRules: "FileRead for read; FileEdit for edit; parallelize independent tools.",
  lazyManuals: { bash: () => import("./tools/bash/prompt").then((m) => m.bashToolPrompt) },
};

// Gemini 风格(极度简化):工具声明 + instruction
const geminiStyle = {
  systemInstruction: "You are a coding agent. Follow org policies.",
  tools: [{ name: "run_shell", description: "..." }],
};

常见误区

  1. 误区:「OpenAI 不用写长 system,全靠 schema。」
    正解:复杂 Agent 仍然需要 分层 system;schema 无法承载全部协作策略。

  2. 误区:「Claude Code 只靠提示词约束。」
    正解:关键路径有 代码级 Fail-closed 与盲改拦截

  3. 误区:「换一家 API 只要复制提示词。」
    正解:工具格式、并行语义、缓存机制不同,需要 重写拼装层


迁移检查表:从 OpenAI 风格迁到「静动 + 手册」风格

步骤动作
1从现有 monolithic system 中 剪切 所有含用户路径/时间的句子
2将剩余 红线规则 固化为 buildStaticConstitution
3环境、记忆、插件 迁入 buildDynamicPolicy
4把过长工具说明迁到 per-tool prompt,保留 schema 短描述
5边界常量集成测试(快照哈希稳定)

Google 路径:多模态块放在哪?

内容建议层级
「如何描述图片中的 UI bug」总则可放 静态(若不含用户图像)
当前截图 bytes / 文件名动态user 消息,勿进可共享缓存前缀
工具返回的富媒体消息链,与 system 手册分离

Mermaid:三家的「单一职责」卡通对比


延伸阅读(官方与生态)

  • 各平台定价页 校准缓存单价与写入费。
  • 各 API 版本 changelog 校准工具声明字段名(尤其 Gemini)。
  • 开源 Agent 框架(LangGraph、Semantic Kernel 等)常混用多家 API:对照本篇分层表 做适配层。

自测题

  1. 为什么说 ToolSearch 延迟加载 同时 服务「注意力」与「成本」?
  2. function calling 的 schema 描述过短会导致什么 典型模型错误
  3. 若你的 Agent 需要强多模态,你会如何把「静动边界」思想 迁移 过去?

导航

本项目仅用于教育学习目的。Claude Code 源码版权归 Anthropic, PBC 所有。