ReactAgent多轮对话架构深度对比–AntigravityvsClaudeCode

admin 2026-01-23 10:37:20 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文通过逆向分析对比Antigravity与ClaudeCode。前者基于PDCA显式状态机,强审计与控制,适合企业重构;后者采用ReAct隐式累积,支持缓存与动态工具,适合敏捷开发。核心差异在于显式协调与模型智能的设计哲学,为技术选型提供参考。 综合评分: 95 文章分类: AI安全,逆向分析,安全工具


cover_image

React Agent 多轮对话架构深度对比 – Antigravity vs Claude Code

原创

xsser xsser

xsser的博客

2026年1月22日 21:41 浙江

React Agent 多轮对话架构深度对比

这是我最近研究agent架构的时候学习的资料,ai生成的,见谅。核心总结就是claude code是react,而antigravity是pdca agent,未来是哲学的天下,你懂的。

Antigravity (Google DeepMind) vs Claude Code (Anthropic)

摘要

本文深入分析两个前沿 AI 编程助手的 React Agent 多轮对话实现架构:Google DeepMind 的 Antigravity 与 Anthropic 的 Claude Code。通过对实际 API 流量的逆向分析,揭示两者在请求封装、状态管理、工具调用、思考机制等维度的核心差异。


一、整体架构概览

1.1 核心定位对比

| 维度 | Antigravity (Google) | Claude Code (Anthropic) | | — | — | — | | 产品形态 | 桌面应用 (Tauri + Rust) | CLI 工具 (Node.js) | | 底层模型 | Gemini 系列 | Claude 系列 | | API 端点 | cloudcode-pa.googleapis.com/v1internal | api.anthropic.com/v1/messages | | 协议风格 | 双层包装结构 | 扁平化直接请求 | | 状态管理 | 服务端显式状态机 | 客户端隐式累积 | | 设计哲学 | 「显式协调」 | 「模型智能」 |

1.2 架构图解

Antigravity 请求流


12345678910111213141516171819flowchart LR    subgraph Client[“客户端”]        A[用户输入] –> B[构建 Inner Request]    end     subgraph Wrapper[“包装层”]        B –> C[注入 project/requestId]        C –> D[添加 userAgent/requestType]    end     subgraph API[“v1internal API”]        D –> E[generateContent]        D –> F[streamGenerateContent]    end     subgraph Response[“响应处理”]        E –> G[解包 response 字段]        F –> G        G –> H[提取 candidates]


Claude Code 请求流


202122232425262728293031323334353637flowchart LR    subgraph Client[“客户端”]        A[用户输入] –> B[追加到 messages 数组]    end     subgraph Request[“直接请求”]        B –> C[构建扁平化 JSON]        C –> D[添加 metadata]    end     subgraph API[“/v1/messages API”]        D –> E[POST with beta headers]    end     subgraph Response[“SSE 流式响应”]        E –> F[contentblockstart]        F –> G[contentblockdelta]        G –> H[message_delta]



二、请求结构深度解析

2.1 Antigravity 双层包装结构

2.1.1 外层包装 (Wrapper Layer)


383940414243{  “project”: “aerobic-surf-ss6dt”,  “requestId”: “agent/1768893140744/45527ef3-be65-47f3-8ca3-1986693dcfbf/3”,  “model”: “gemini-3-pro-low”,  “userAgent”: “antigravity”,  “requestType”: “agent”


字段解析

  • project

    : 云项目标识,用于配额和计费隔离

  • requestId

    : 复合标识符,编码了请求类型、时间戳、会话UUID和轮次号

  • model

    : 模型选择,支持动态切换

  • userAgent

    : 固定为 antigravity,用于服务端识别

  • requestType

    : 请求类型 (agent / autocomplete 等)

2.1.2 requestId 结构深度解析


4445464748agent/1768893140744/45527ef3-be65-47f3-8ca3-1986693dcfbf/3  │        │                    │                         │  │        │                    │                         └── 轮次号 (Turn Number)  │        │                    └── 会话 UUID (Session Identifier)  │        └── Unix 时间戳 (毫秒)


设计意图

  1. 可追溯性

    :完整的请求链路可通过 requestId 重建

  2. 幂等性

    :相同 requestId 可用于重试去重

  3. 调试友好

    :时间戳和轮次号便于问题定位

2.1.3 内层请求 (Inner Request)


495051525354555657{  “request”: {    “contents”: […],          // 多轮对话历史    “systemInstruction”: {…}, // 系统指令    “tools”: […],             // 工具声明    “generationConfig”: {…},  // 生成配置    “toolConfig”: {…},        // 工具配置    “sessionId”: “…”          // 会话标识  }


2.2 Claude Code 扁平化结构

2.2.1 完整请求示例


58596061626364656667686970717273{  “model”: “claude-opus-4-5-20251101”,  “messages”: [    {“role”: “user”, “content”: “…”},    {“role”: “assistant”, “content”: “…”}  ],  “system”: [    {“type”: “text”, “text”: “You are Claude Code…”},    {“type”: “text”, “text”: “…”, “cachecontrol”: {“type”: “ephemeral”}}  ],  “tools”: […],  “metadata”: {    “userid”: “userxxxaccountxxxsessionxxx”  },  “maxtokens”: 32000,  “stream”: true


2.2.2 关键差异点

| 特性 | Antigravity | Claude Code | | — | — | — | | 系统指令位置 | systemInstruction 对象 | system 数组 | | 缓存控制 | 无显式支持 | cache_control.type: ephemeral | | 用户追踪 | projectrequestId | metadata.user_id | | 流式标识 | URL 参数 ?alt=sse | JSON 字段 stream: true |


三、多轮对话状态管理

3.1 Antigravity: Task Boundary 显式状态机

3.1.1 状态机模型


747576777879808182838485868788899091929394959697stateDiagram-v2    [] –> NOTASK: 初始状态    NOTASK –> PLANNING: taskboundary(PLANNING)    PLANNING –> PLANNING: 更新计划    PLANNING –> EXECUTION: 计划批准    EXECUTION –> EXECUTION: 实现迭代    EXECUTION –> VERIFICATION: 实现完成    VERIFICATION –> EXECUTION: 发现bug    VERIFICATION –> PLANNING: 设计缺陷    VERIFICATION –> []: 验证通过     note right of PLANNING        创建 implementationplan.md        等待用户审批    end note     note right of EXECUTION        更新 task.md        执行代码修改    end note     note right of VERIFICATION        运行测试        创建 walkthrough.md


3.1.2 task_boundary 工具定义


9899100101102103104105106107108109110111112113114115116117118119120121122123124125{  “name”: “task_boundary”,  “description”: “Indicate the start of a task or make an update to the current task…”,  “parameters”: {    “type”: “OBJECT”,    “properties”: {      “TaskName”: {        “type”: “STRING”,        “description”: “Name of the task boundary…”      },      “Mode”: {        “type”: “STRING”,        “description”: “PLANNING, EXECUTION, or VERIFICATION”      },      “TaskStatus”: {        “type”: “STRING”,        “description”: “Active status of the current action…”      },      “TaskSummary”: {        “type”: “STRING”,        “description”: “Concise summary of what has been accomplished…”      },      “PredictedTaskSize”: {        “type”: “INTEGER”,        “description”: “Estimated tool calls needed…”      }    }  }


3.1.3 Artifact 系统

| Artifact | 路径 | 用途 | | — | — | — | | task.md | <appDataDir>/brain/<conversation-id>/ | 任务分解和进度跟踪 | | implementation_plan.md | 同上 | 技术方案设计文档 | | walkthrough.md | 同上 | 完成后的工作总结 |

task.md 格式示例


126127128129130131132## 用户认证模块实现 – [x] 研究现有认证代码- [/] 实现 JWT 验证中间件  – [x] 创建 middleware 文件  – [ ] 添加 token 解析逻辑- [ ] 编写单元测试


核心设计理念

Antigravity 将任务管理显式化,通过 artifact 文件和 task_boundary 工具实现:

  1. 可见性

    :用户可随时查看任务进度

  2. 可控性

    :关键节点需要用户审批

  3. 可追溯性

    :所有决策都有文档记录

3.2 Claude Code: 隐式上下文累积

3.2.1 对话历史管理


133134135136137138139140141142143144145146147148149150151152153{  “messages”: [    // Turn 1    {“role”: “user”, “content”: “创建一个登录页面”},    {“role”: “assistant”, “content”: [      {“type”: “text”, “text”: “我来帮你创建…”},      {“type”: “tooluse”, “id”: “tooluxxx”, “name”: “Write”, “input”: {…}}    ]},     // Turn 2 (工具结果)    {“role”: “user”, “content”: [      {“type”: “toolresult”, “tooluseid”: “tooluxxx”, “content”: “文件已创建”}    ]},     // Turn 3    {“role”: “assistant”, “content”: [      {“type”: “text”, “text”: “登录页面已创建完成…”}    ]},     // … 线性累积  ]


3.2.2 状态管理对比


154155156157158159160161162163164165166167168169170171172flowchart TB    subgraph Antigravity[“Antigravity 状态管理”]        A1[用户请求] –> A2{taskboundary?}        A2 –>|是| A3[创建/更新 task.md]        A3 –> A4[执行工具调用]        A4 –> A5[更新 TaskStatus]        A5 –> A6{notifyuser?}        A6 –>|是| A7[等待用户审批]        A6 –>|否| A4    end     subgraph Claude[“Claude Code 状态管理”]        C1[用户请求] –> C2[追加到 messages]        C2 –> C3[模型推理]        C3 –> C4{tooluse?}        C4 –>|是| C5[执行工具]        C5 –> C6[toolresult 追加]        C6 –> C3        C4 –>|否| C7[返回响应]



四、工具调用机制对比

4.1 工具声明格式

4.1.1 Antigravity: functionDeclarations


173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203{  “tools”: [{    “functionDeclarations”: [      {        “name”: “view_file”,        “description”: “View the contents of a file…”,        “parameters”: {          “type”: “OBJECT”,          “properties”: {            “AbsolutePath”: {              “type”: “STRING”,              “description”: “Path to file to view…”            },            “StartLine”: {              “type”: “INTEGER”,              “description”: “Optional. Startline to view…”            },            “EndLine”: {              “type”: “INTEGER”,              “description”: “Optional. Endline to view…”            },            “waitForPreviousTools”: {              “type”: “BOOLEAN”,              “description”: “If true, wait for all previous tool calls…”            }          },          “required”: [“AbsolutePath”]        }      }    ]  }]


4.1.2 Claude Code: tools with input_schema


204205206207208209210211212213214215216217218219220221222223224225226227228{  “tools”: [    {      “name”: “Read”,      “description”: “Reads a file from the local filesystem…”,      “inputschema”: {        “type”: “object”,        “properties”: {          “filepath”: {            “type”: “string”,            “description”: “The absolute path to the file to read”          },          “offset”: {            “type”: “number”,            “description”: “The line number to start reading from…”          },          “limit”: {            “type”: “number”,            “description”: “The number of lines to read…”          }        },        “required”: [“file_path”]      }    }  ]


4.1.3 格式差异对照表

| 特性 | Antigravity | Claude Code | | — | — | — | | 包装方式 | functionDeclarations 数组 | 直接 tools 数组 | | Schema 字段 | parameters | input_schema | | 类型声明 | 大写 (STRINGOBJECT) | 小写 (stringobject) | | 并发控制 | waitForPreviousTools 字段 | 无显式支持 | | 工具数量 | 22 个预定义工具 | 按需动态加载 |

4.2 工具分类对比

4.2.1 Antigravity 工具集 (22个)

| 类别 | 工具名称 | 功能 | | — | — | — | | 文件操作 | view_filewrite_to_filereplace_file_contentmulti_replace_file_content | 文件读写和编辑 | | 搜索 | grep_searchfind_by_nameview_code_item | 代码搜索 | | 命令执行 | run_commandsend_command_inputcommand_status | 终端交互 | | 浏览器 | browser_subagentread_url_content | 网页交互 | | 任务管理 | task_boundarynotify_user | 任务边界控制 | | 资源 | list_resourcesread_resource | MCP 资源访问 | | AI | generate_imagesearch_web | 多模态能力 |

4.2.2 Claude Code 工具集 (动态)

| 类别 | 工具名称 | 功能 | | — | — | — | | 文件操作 | ReadWriteEditNotebookEdit | 文件读写和编辑 | | 搜索 | GlobGrepLSP | 代码搜索和分析 | | 命令执行 | BashKillShellTaskOutput | 终端交互 | | 子代理 | Task | 启动专用子代理 | | 网络 | WebFetchWebSearch | 网页访问 | | 交互 | AskUserQuestionSkill | 用户交互 | | 计划 | EnterPlanModeExitPlanModeTodoWrite | 计划模式管理 |

4.3 工具调用流程

4.3.1 Antigravity 并发控制


229230231232233234235236237238239240241242243244245// 第一个工具调用 – 立即执行{  “name”: “viewfile”,  “parameters”: {    “AbsolutePath”: “/path/to/file1.py”,    “waitForPreviousTools”: false  }} // 第二个工具调用 – 等待前序完成{  “name”: “replacefile_content”,  “parameters”: {    “TargetFile”: “/path/to/file1.py”,    “waitForPreviousTools”: true,    “…”  }


并发控制设计

Antigravity 通过 waitForPreviousTools 字段实现细粒度的工具调用顺序控制:

  • false

    : 与其他工具并行执行

  • true

    : 等待所有前序工具完成后执行

4.3.2 Claude Code 工具调用


246247248249250251252253254255256257258259260261262263// 请求中的工具调用{“role”: “assistant”, “content”: [  {“type”: “text”, “text”: “让我读取这个文件…”},  {    “type”: “tooluse”,    “id”: “toolu014SkUFqpnJBRjnwEtvTMTYT”,    “name”: “Read”,    “input”: {“filepath”: “/path/to/file.py”}  }]} // 工具结果返回{“role”: “user”, “content”: [  {    “type”: “toolresult”,    “tooluseid”: “toolu_014SkUFqpnJBRjnwEtvTMTYT”,    “content”: “文件内容…”  }



五、思考机制 (Thinking/Reasoning) 对比

5.1 Antigravity: thinkingConfig

5.1.1 配置结构


264265266267268269270271272273274275{  “generationConfig”: {    “temperature”: 1,    “topP”: 1,    “topK”: 40,    “candidateCount”: 1,    “maxOutputTokens”: 16384,    “thinkingConfig”: {      “includeThoughts”: true,      “thinkingBudget”: 128    }  }


5.1.2 参数解析

| 参数 | 类型 | 说明 | | — | — | — | | includeThoughts | boolean | 是否在响应中包含思考过程 | | thinkingBudget | integer | 思考 token 预算上限 |

设计特点

  • 预算制控制

    :显式设置思考 token 数量

  • 成本可预测

    :避免无限思考导致的 token 浪费

  • 灵活调整

    :不同任务可设置不同预算

5.2 Claude Code: Interleaved Thinking

5.2.1 Beta Header 启用

5.2.2 响应结构


276277278279280281282283// SSE 流式响应中的思考块data: {“type”:”contentblockstart”,”index”:0,”contentblock”:{“type”:”thinking”,”thinking”:”让我分析这个问题…”}} data: {“type”:”contentblockdelta”,”index”:0,”delta”:{“type”:”thinkingdelta”,”thinking”:”首先需要考虑…”}} data: {“type”:”contentblockstop”,”index”:0} // 随后是实际响应


5.2.3 思考机制对比

| 特性 | Antigravity | Claude Code | | — | — | — | | 启用方式 | thinkingConfig 配置 | Beta Header | | 控制粒度 | Token 预算 | 无显式限制 | | 输出位置 | 响应内嵌入 | 独立 content block | | 计费方式 | 计入预算 | 独立计费 |


六、系统提示工程对比

6.1 Antigravity System Instruction

6.1.1 结构层次


284285286287288289290291292293systemInstruction├──           # 身份定义├──  # 代理模式概述│   ├──  # 任务边界工具说明│   ├──    # 用户通知工具说明│   └──   # 模式描述├──  # Artifact 格式指南├──       # 工具调用指南├──  # Web 开发指南├──             # 技能系统


6.1.2 身份定义示例


294295296297You are Antigravity, a powerful agentic AI coding assistant designed bythe Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task.


6.1.3 模式描述


298299300301302303304305306307PLANNING: Research the codebase, understand requirements, and design yourapproach. Always create implementation_plan.md to document your proposedchanges and get user approval. EXECUTION: Write code, make changes, implement your design. Return toPLANNING if you discover unexpected complexity. VERIFICATION: Test your changes, run verification steps, validate correctness.Create walkthrough.md after completing verification.


6.2 Claude Code System Prompt

6.2.1 结构层次


308309310311312313314315316317318319{  “system”: [    {      “type”: “text”,      “text”: “You are Claude Code, Anthropic’s official CLI for Claude…”    },    {      “type”: “text”,      “text”: “# Tool usage policy\n- When doing file search…”,      “cache_control”: {“type”: “ephemeral”}    }  ]


6.2.2 缓存控制策略


320321322323{  “cache_control”: {    “type”: “ephemeral”  }


缓存优化

Claude Code 使用 ephemeral 缓存控制,允许系统提示在多轮对话中被缓存,减少重复传输成本。

6.2.3 系统提示对比

| 特性 | Antigravity | Claude Code | | — | — | — | | 格式 | XML 标签结构化 | JSON 数组 | | 缓存 | 无显式支持 | cache_control | | 长度 | 约 15000 tokens | 约 8000 tokens | | 模块化 | 高度模块化 | 相对扁平 | | 任务管理 | 详细的 artifact 指南 | 简化的 TodoWrite | | | | |


七、子代理系统对比

7.1 Antigravity: browser_subagent

7.1.1 工具定义


324325326327328329330331{  “name”: “browser_subagent”,  “description”: “Start a browser subagent to perform actions in the browser…”,  “parameters”: {    “TaskName”: “Name of the task…”,    “Task”: “A clear, actionable task description…”,    “RecordingName”: “Name of the browser recording…”  }


7.1.2 使用场景

  • 网页自动化测试
  • UI 验证
  • 交互式内容抓取

7.2 Claude Code: Task Tool

7.2.1 工具定义


332333334335336337338339340341342343{  “name”: “Task”,  “description”: “Launch a new agent to handle complex, multi-step tasks autonomously…”,  “inputschema”: {    “properties”: {      “description”: “A short (3-5 word) description of the task”,      “prompt”: “The task for the agent to perform”,      “subagenttype”: “The type of specialized agent to use”,      “model”: “Optional model to use for this agent”,      “runinbackground”: “Set to true to run this agent in the background”    }  }


7.2.2 子代理类型

| 类型 | 功能 | 可用工具 | | — | — | — | | Bash | 命令执行专家 | Bash | | general-purpose | 通用任务处理 | 全部工具 | | Explore | 代码库探索 | 除编辑外的工具 | | Plan | 架构设计 | 除编辑外的工具 | | code-reviewer | 代码审查 | 全部工具 |

7.2.3 子代理系统对比

| 特性 | Antigravity | Claude Code | | — | — | — | | 类型数量 | 1 (browser) | 10+ 种专用类型 | | 后台运行 | 不支持 | run_in_background | | 模型选择 | 固定 | 可选 (sonnet/opus/haiku) | | 恢复能力 | 不支持 | resume 参数 |


八、流式响应处理对比

8.1 Antigravity: SSE with alt=sse

8.1.1 请求配置

8.1.2 响应格式


344345346347data: {“response”:{“candidates”:[{“content”:{“role”:”model”,”parts”:[{“text”:”Hello”}]}}]}} data: {“response”:{“candidates”:[{“content”:{“role”:”model”,”parts”:[{“text”:” World”}]}}]}}


8.2 Claude Code: SSE with stream:true

8.2.1 请求配置


348349{  “stream”: true


8.2.2 响应格式


350351352353354355356357358359360361data: {“type”:”messagestart”,”message”:{“id”:”msgxxx”,”type”:”message”,”role”:”assistant”,…}} data: {“type”:”contentblockstart”,”index”:0,”contentblock”:{“type”:”text”,”text”:””}} data: {“type”:”contentblockdelta”,”index”:0,”delta”:{“type”:”textdelta”,”text”:”Hello”}} data: {“type”:”contentblockdelta”,”index”:0,”delta”:{“type”:”textdelta”,”text”:” World”}} data: {“type”:”contentblockstop”,”index”:0} data: {“type”:”messagedelta”,”delta”:{“stopreason”:”endturn”,”stopsequence”:null},”usage”:{“outputtokens”:2}}


8.2.3 流式响应对比

| 特性 | Antigravity | Claude Code | | — | — | — | | 启用方式 | URL 参数 ?alt=sse | JSON 字段 stream: true | | 事件类型 | 单一格式 | 多种事件类型 | | 结束标识 | finishReason: STOP | message_stop 事件 | | 用量统计 | usageMetadata | usage 在 delta 中 | | 思考流 | 嵌入响应 | 独立 thinking block |


九、错误处理与重试机制

9.1 Antigravity 错误处理

9.1.1 常见错误码


362363364365366367{  “error”: {    “code”: 429,    “message”: “Resource has been exhausted (e.g. check quota).”,    “status”: “RESOURCE_EXHAUSTED”  }


| 错误码 | 状态 | 处理策略 | | — | — | — | | 429 | RESOURCE_EXHAUSTED | 指数退避重试 | | 400 | INVALID_ARGUMENT | 检查请求格式 | | 403 | PERMISSION_DENIED | 刷新 Token |

9.1.2 多端点容错

Antigravity 配置多个 API 端点,按优先级尝试:


368369370V1INTERNALENDPOINTS = [    “https://cloudcode-pa.googleapis.com/v1internal”,           # 生产    “https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal”,  # 测试


9.2 Claude Code 错误处理

9.2.1 多级速率限制架构

Claude Code 实现了双窗口速率限制机制,从响应头中可提取完整配额信息:


371372373374375376377378379380381382# 统一限制状态anthropic-ratelimit-unified-status: allowedanthropic-ratelimit-unified-overage-status: rejected

5 小时窗口限制anthropic-ratelimit-unified-5h-status: allowedanthropic-ratelimit-unified-5h-reset: 1768406400anthropic-ratelimit-unified-5h-utilization: 0.5690785454545455

7 天窗口限制anthropic-ratelimit-unified-7d-status: allowedanthropic-ratelimit-unified-7d-reset: 1768406400


9.2.2 利用率实测数据

| 窗口 | 利用率 | 含义 | | — | — | — | | 5h | 56.9% | 已使用 5 小时配额的 56.9% | | 7d | 9.1% | 已使用 7 天配额的 9.1% |

配额管理策略

  • 当 5h-utilization > 80% 时,建议降低请求频率

  • 当 7d-utilization > 50% 时,建议启用省成本模式

  • overage-status: rejected

    表示超额请求将被拒绝

9.2.3 错误处理对比

| 特性 | Antigravity | Claude Code | | — | — | — | | 多端点 | 支持 (生产/测试) | 单端点 | | 速率限制 | 简单 429 | 双窗口 (5h/7d) 详细配额 | | 利用率可见 | 无 | ✅ 实时百分比 | | 重置时间 | 未知 | Unix 时间戳 | | 重试策略 | 客户端实现 | SDK 内置 | | 配额可见性 | loadCodeAssist 接口 | 响应头实时反馈 | | 超额控制 | 无 | overage-status |


十、会话与用户追踪

10.1 Antigravity 多维追踪

10.1.1 追踪层级


383384385386387388389390391392393394┌─────────────────────────────────────────────┐│ Project Level: “aerobic-surf-ss6dt”         ││   └─ User/Account 隔离                       ││      └─ Quota 计费单元                       │├─────────────────────────────────────────────┤│ Session Level: “-3750763034362895579”       ││   └─ 单次对话会话标识                         ││      └─ 上下文连续性                         │├─────────────────────────────────────────────┤│ Request Level: “agent/ts/uuid/turn”         ││   └─ 单次请求完整追踪                         ││      └─ 重试幂等性                           │


10.1.2 对话历史 Context 注入


395396397398399400401402403404{  “contents”: [    {“role”: “user”, “parts”: [{“text”: “…”}]},    {“role”: “user”, “parts”: [{“text”: “…”}]},    {“role”: “user”, “parts”: [{“text”: “…”}]},    {“role”: “user”, “parts”: [{“text”: “…”}]},    {“role”: “user”, “parts”: [{“text”: “Step Id: 0\n…”}]},    {“role”: “user”, “parts”: [{“text”: “Step Id: 1\n# Conversation History…”}]},    {“role”: “user”, “parts”: [{“text”: “Step Id: 2\n…”}]}  ]


Context 注入模式

Antigravity 使用 前缀注入 模式,将系统上下文作为多个 user 消息注入到对话历史开头,包括:

  • 用户信息 (<user_information>)
  • 代理模式 (<agentic_mode_overview>)
  • 用户规则 (<user_rules>)
  • 工作流 (<workflows>)
  • 历史对话摘要

10.2 Claude Code 简化追踪

10.2.1 用户标识结构


405406user2630e4e3c65580f730f3ffa166a01f80d1ac22b93a3e5694f60870b32d7b39f4account_e6a55441-1397-4c31-997c-bfef9ac0aa45


组成部分

  • user_xxx

    : 用户哈希标识

  • account_xxx

    : 账户 UUID

  • session_xxx

    : 会话 UUID

10.2.2 追踪对比

| 特性 | Antigravity | Claude Code | | — | — | — | | 层级数 | 3 (Project/Session/Request) | 3 (User/Account/Session) | | 轮次追踪 | requestId 内编码 | 无显式支持 | | 配额绑定 | Project | Account | | 幂等性 | requestId | 无显式支持 |


十一、场景适用性分析

11.1 Antigravity 优势场景

11.1.1 复杂项目重构


407408409410411412413414415flowchart TB    A[大型重构需求] –> B[PLANNING: 创建 implementation_plan.md]    B –> C{用户审批?}    C –>|批准| D[EXECUTION: 分阶段实现]    C –>|修改| B    D –> E[task.md 跟踪进度]    E –> F[VERIFICATION: 运行测试]    F –> G{测试通过?}    G –>|是| H[创建 walkthrough.md]


优势

  • ✅ 显式的计划-执行-验证流程
  • ✅ 用户可随时查看任务进度
  • ✅ 关键决策有文档记录
  • ✅ 支持长时间任务的断点续作

11.1.2 需要审计追踪的场景

| 场景 | 追踪能力 | | — | — | | 代码变更审计 | requestId 完整记录每次修改 | | 配额使用分析 | Project 级别的用量统计 | | 问题回溯 | 时间戳 + 轮次号定位 |

11.2 Claude Code 优势场景

11.2.1 快速原型开发


416417418419420421422flowchart LR    A[需求] –> B[直接执行]    B –> C{工具调用}    C –> D[Read/Write/Bash]    D –> E[结果]    E –> F{完成?}    F –>|否| C


优势

  • ✅ 协议简洁,延迟低
  • ✅ 无需显式计划审批
  • ✅ 适合探索性开发

11.2.2 第三方集成

| 特性 | 优势 | | — | — | | 标准化 API | OpenAPI 兼容风格 | | 简单认证 | Bearer Token | | 文档完善 | 官方 SDK 支持 |

11.3 场景推荐矩阵

| 场景 | 推荐方案 | 原因 | | — | — | — | | 企业级项目重构 | Antigravity | 完整的任务边界管理和审批流程 | | 快速原型/PoC | Claude Code | 轻量协议,快速迭代 | | 需要审计追踪 | Antigravity | requestId 提供完整追溯链 | | 第三方 API 集成 | Claude Code | API 更标准化,文档完善 | | 成本敏感场景 | Claude Code | 协议开销小,按需工具加载 | | 长周期复杂任务 | Antigravity | artifact 系统支持状态持久化 | | 交互式探索 | Claude Code | 灵活的对话累积模式 | | 浏览器自动化 | Antigravity | 内置 browser_subagent | | 多子代理协作 | Claude Code | Task tool 支持 10+ 专用代理 |


十二、核心洞察总结

12.1 设计哲学差异


423424425426427428429430431432┌─────────────────────────────────────────────────────────────┐│                    设计哲学光谱                              ││                                                             ││  显式协调 ◄─────────────────────────────────► 模型智能      ││                                                             ││  Antigravity                              Claude Code       ││  ├─ 服务端状态机                          ├─ 客户端历史累积 ││  ├─ 强制计划-执行-验证                    ├─ 自然对话流     ││  ├─ 用户审批节点                          ├─ 模型自主决策   ││  └─ 结构化 Artifact                       └─ 简化 TodoWrite │


12.2 技术取舍对比

| 维度 | Antigravity 选择 | Claude Code 选择 | | — | — | — | | 复杂度 | 协议复杂,功能丰富 | 协议简洁,易于理解 | | 灵活性 | 结构化约束 | 自由度高 | | 可预测性 | 显式状态,行为可预测 | 依赖模型推理 | | 学习曲线 | 陡峭 (需理解 task_boundary) | 平缓 (标准对话) | | 扩展性 | 预定义工具集 | 动态工具加载 |

12.3 演进趋势

未来展望

  1. Antigravity

    可能向更智能的自动状态管理演进,减少显式 task_boundary 调用

  2. Claude Code

    可能增加更多结构化任务管理能力 (如 Plan mode)

  3. 两者最终可能在「结构化控制」与「智能自主」之间找到平衡点


十三、10个深度问题解析

分析方法论

通过对实际 API 流量的深度逆向分析,回答以下 10 个关键技术问题,揭示两个产品在实现细节上的差异。

13.1 Token 计费模式有何差异?

Antigravity 计费结构


433434435436437438439440441442{  “usageMetadata”: {    “promptTokenCount”: 56,    “candidatesTokenCount”: 11,    “totalTokenCount”: 89,    “trafficType”: “ON_DEMAND”,    “promptTokensDetails”: [{“modality”: “TEXT”, “tokenCount”: 56}],    “candidatesTokensDetails”: [{“modality”: “TEXT”, “tokenCount”: 11}],    “thoughtsTokenCount”: 22  }


Claude Code 计费结构


443444445446447448449450451452453454{  “usage”: {    “inputtokens”: 9,    “cachecreationinputtokens”: 8349,    “cachereadinputtokens”: 14137,    “cachecreation”: {      “ephemeral5minputtokens”: 8349,      “ephemeral1hinputtokens”: 0    },    “outputtokens”: 66,    “servicetier”: “standard”  }


缓存命中率实测数据

从流量分析计算实际缓存效果:


455456457458459460总输入 Token: 22,495├── 缓存读取: 14,137 (62.8%) ← 成本最低├── 缓存创建: 8,349 (37.1%) ← 首次写入└── 非缓存:      9 (0.04%)  ← 完整计费 缓存命中率: 62.8%


实时成本追踪

Claude Code 通过遥测系统实现实时成本计算


461462463464{  “costusd”: 0.060944750000000006,  “durationms”: 2995,  “ttft_ms”: 2990


| 特性 | Antigravity | Claude Code | | — | — | — | | 缓存计费 | 无 | ✅ 详细缓存统计 | | 思考 Token | thoughtsTokenCount 单独统计 | 隐含在 output_tokens | | 缓存层级 | 无 | 5分钟/1小时 两级缓存 | | 多模态统计 | promptTokensDetails 按模态 | 无显式支持 | | 实时成本 | 无 | cost_u_s_d 精确到小数点后15位 |

成本优化洞察

Claude Code 的缓存机制 (cache_read_input_tokens) 可显著降低多轮对话成本:

  • ephemeral_5m

    : 5分钟短期缓存,适合快速迭代

  • ephemeral_1h

    : 1小时长期缓存,适合长时间工作会话

  • Antigravity 目前无此优化,每轮对话全量计费


13.2 上下文窗口管理策略如何?

配置对比

| 参数 | Antigravity | Claude Code | | — | — | — | | 最大输出 | maxOutputTokens: 16384 | max_tokens: 32000 | | 思考预算 | thinkingBudget: 128 | 无显式限制 | | 上下文缓存 | 无 | cache_control: ephemeral |

Antigravity 停止序列


465466467468469470471472{  “stopSequences”: [    “<|user|>“,    “<|bot|>“,    “<|contextrequest|>”,    “<|endoftext|>“,    “<|endof_turn|>”  ]


设计差异

  • Antigravity

    :通过停止序列精确控制生成边界

  • Claude Code

    :依赖 stop_reason 自然终止


13.3 工具调用失败如何处理?

Claude Code 错误处理


473474475476477{  “type”: “toolresult”,  “tooluseid”: “tooluxxx”,  “content”: “Error: File not found”,  “is_error”: true


Antigravity 错误处理

Antigravity 无显式 is_error 字段,错误通过以下方式传递:

  • 工具返回的文本内容描述错误
  • HTTP 状态码 (429, 400, 403)

| 特性 | Antigravity | Claude Code | | — | — | — | | 错误标记 | 无 | is_error: true | | 错误传递 | 文本描述 | 结构化字段 | | 重试提示 | 依赖模型判断 | 可程序化处理 |


13.4 多模态能力支持程度?

| 能力 | Antigravity | Claude Code | | — | — | — | | 图像生成 | ✅ generate_image 工具 | ❌ 不支持 | | 图像理解 | ✅ view_file 支持二进制 | ✅ Read 支持图像 | | 视频处理 | ✅ 浏览器录制 (WebP) | ❌ 不支持 | | PDF 处理 | 未知 | ✅ Read 支持 PDF |

Antigravity 图像生成工具


478479480481482483484485{  “name”: “generate_image”,  “description”: “Generate an image or edit existing images based on a text prompt…”,  “parameters”: {    “Prompt”: “Text prompt to generate”,    “ImageName”: “Name for the generated image”,    “ImagePaths”: “Optional paths to edit/combine images”  }



13.5 会话持久化机制差异?

Antigravity Artifact 系统


486487488/brain//├── task.md                    # 任务进度跟踪├── implementation_plan.md     # 技术方案文档


Claude Code 持久化


489490491492~/.claude/├── CLAUDE.md                  # 用户全局配置├── projects//        # 项目级配置│   └── CLAUDE.md


| 特性 | Antigravity | Claude Code | | — | — | — | | 任务状态 | Artifact 文件持久化 | TodoWrite 内存态 | | 跨会话恢复 | ✅ 支持 (artifact) | ❌ 不支持 | | 用户配置 | <MEMORY> 标签注入 | CLAUDE.md 文件 |


13.6 并发/批量请求支持?

Antigravity 并发控制


493494{  “waitForPreviousTools”: true  // 显式依赖控制


执行模式

  • false

    : 与其他工具并行执行

  • true

    : 等待所有前序工具完成

Claude Code 并发控制

系统提示中说明:

“You can call multiple tools in a single response. If you intend to call multiple tools and there are no dependencies between them, make all independent tool calls in parallel.”

| 特性 | Antigravity | Claude Code | | — | — | — | | 控制方式 | waitForPreviousTools 字段 | 系统提示指导 | | 粒度 | 工具级别 | 响应级别 | | 显式性 | ✅ 显式声明 | ❌ 隐式依赖模型理解 |


13.7 用户自定义规则如何注入?

Antigravity: XML 标签注入


495496497498499500The following are user-defined rules that you MUST ALWAYS FOLLOW…global]>核心理念与原则简洁至上:恪守KISS原则…global]>


Claude Code: CLAUDE.md + system-reminder


501502503504505506{  “role”: “user”,  “content”: [{    “type”: “text”,    “text”: “\nContents of CLAUDE.md…\n”  }]


| 特性 | Antigravity | Claude Code | | — | — | — | | 存储位置 | 服务端 Memory 系统 | 本地 CLAUDE.md 文件 | | 注入方式 | <MEMORY> XML 标签 | <system-reminder> 标签 | | 作用域 | 全局/项目级 | 全局/项目级 | | 编辑方式 | 对话中修改 | 手动编辑文件 |


13.8 历史对话压缩策略?

Antigravity: conversation_summaries


507508509510511512513514## Conversation ee418fff-…: Debugging Auth Connection- Created: 2026-01-18T04:30:23Z- Last modified: 2026-01-18T12:13:34Z

USER Objective:Debugging Auth ConnectionThe user’s main objective is to establish a successful gRPC connection…


特点

  • 保留最近 5 个对话摘要
  • 包含标题、时间戳、用户目标
  • 结构化 Markdown 格式

Claude Code: automatic summarization

系统提示中说明:

“The conversation has unlimited context through automatic summarization.”

| 特性 | Antigravity | Claude Code | | — | — | — | | 压缩触发 | 显式注入历史摘要 | 自动上下文压缩 | | 摘要格式 | 结构化 (ID/标题/目标) | 不透明 | | 可见性 | ✅ 用户可见 | ❌ 内部处理 |


13.9 安全/权限控制机制?

Antigravity 安全控制


515516517518519520521522{  “name”: “run_command”,  “parameters”: {    “SafeToAutoRun”: {      “type”: “BOOLEAN”,      “description”: “Set to true if command is safe to run WITHOUT user approval…”    }  }


Claude Code 安全控制


523524525526527528529530531{  “name”: “Bash”,  “input_schema”: {    “properties”: {      “dangerouslyDisableSandbox”: {        “description”: “Set this to true to dangerously override sandbox mode…”      }    }  }


| 安全特性 | Antigravity | Claude Code | | — | — | — | | 自动执行控制 | SafeToAutoRun | SafeToAutoRun (类似) | | 沙箱模式 | 无 | dangerouslyDisableSandbox | | 用户审批 | notify_user 强制审批 | 隐式 (高风险命令) | | 破坏性操作 | 系统提示警告 | NEVER push --force 等 |


13.10 调试/可观测性支持?

Antigravity 可观测性


532533requestId: “agent/1768893140744/45527ef3-be65-47f3-8ca3-1986693dcfbf/3”          ↓         ↓                    ↓                         ↓


Claude Code 可观测性

请求级追踪


534request-id: req_011CX7KeaFknwtxtaYm2N9ng


DataDog 遥测集成

从流量分析发现,Claude Code 使用 DataDog 作为遥测后端:

遥测指标体系


535536537538539540541542543544545546{  “tenguapisuccess”: {    “durationms”: 2995,    “ttftms”: 2990,    “costusd”: 0.060944750000000006,    “inputtokens”: 22495,    “outputtokens”: 66  },  “tengutoolusesuccess”: {    “toolname”: “Read”,    “durationms”: 150  }


| 指标名称 | 类型 | 说明 | | — | — | — | | tengu_api_success | Counter | API 调用成功计数 | | tengu_tool_use_success | Counter | 工具调用成功计数 | | duration_ms | Gauge | 请求总耗时 (毫秒) | | ttft_ms | Gauge | Time To First Token (毫秒) | | cost_u_s_d | Gauge | 单次请求成本 (美元) |

异常上报 (statsig)


547548549550{  “tag”: “_getInternalRequestArgs”,  “exception”: “SyntaxError”,  “info”: “SyntaxError: Unexpected end of JSON input…”


| 特性 | Antigravity | Claude Code | | — | — | — | | 请求追踪 | requestId (复合结构) | request-id (简单UUID) | | 轮次追踪 | ✅ 内置轮次号 | ❌ 无 | | 遥测后端 | 未知 (Google 内部?) | DataDog (us5) | | 实时成本 | 无 | cost_u_s_d 精确计算 | | 工具追踪 | 无 | tengu_tool_use_success | | TTFT 监控 | 无 | ttft_ms | | 异常上报 | 未知 | ✅ statsig 集成 | | 组织追踪 | project | anthropic-organization-id |

INTJ 洞察

Claude Code 的遥测架构实现了全链路可观测性

  1. 性能监控

    duration_ms + ttft_ms 追踪延迟

  2. 成本控制

    cost_u_s_d 实时计算每次请求成本

  3. 工具分析

    tengu_tool_use_success 追踪工具使用模式


十四、综合优缺点对比

14.1 Antigravity 优势

| 优势领域 | 具体表现 | 适用场景 | | — | — | — | | 任务管理 | PDCA + task_boundary 完整流程 | 企业级项目、合规要求 | | 可追溯性 | requestId 完整编码轮次/时间戳 | 审计、问题定位 | | 状态持久化 | Artifact 系统跨会话保存 | 长周期任务 | | 并发控制 | waitForPreviousTools 显式依赖 | 复杂工具链 | | 多模态 | 图像生成 + 浏览器录制 | UI 设计、测试 | | 用户审批 | notify_user 强制门禁 | 高风险操作 |

14.2 Antigravity 劣势

| 劣势领域 | 具体表现 | 影响 | | — | — | — | | 学习曲线 | task_boundary/artifact 概念复杂 | 上手成本高 | | 协议开销 | 双层包装 + 22工具全量传输 | 延迟/成本高 | | 无缓存计费 | 无 cache_control 支持 | 多轮对话成本高 | | 单一子代理 | 仅 browser_subagent | 任务分解能力弱 | | 闭源 | API 非公开 | 无法第三方集成 |

14.3 Claude Code 优势

| 优势领域 | 具体表现 | 适用场景 | | — | — | — | | 协议简洁 | 扁平化 JSON,标准 API | 第三方集成 | | 缓存计费 | 两级缓存 (5m/1h) | 成本优化 | | 子代理系统 | 10+ 专用类型,后台运行 | 并行任务 | | 动态工具 | 按需加载工具 | 轻量启动 | | 开放生态 | 官方 SDK、MCP 协议 | 扩展开发 | | 错误处理 | is_error 结构化字段 | 程序化处理 |

14.4 Claude Code 劣势

| 劣势领域 | 具体表现 | 影响 | | — | — | — | | 任务管理 | 仅 TodoWrite,无 artifact | 长任务状态丢失 | | 并发控制 | 无显式依赖声明 | 复杂工具链难控制 | | 轮次追踪 | 无内置轮次号 | 调试困难 | | 图像生成 | 不支持 | UI 设计受限 | | 跨会话恢复 | 不支持 | 任务中断后难恢复 |

14.5 综合评分


551552553554555556557558559560561562563564565566567568569570571572┌─────────────────────────────────────────────────────────────┐│                    综合能力雷达图                            │├─────────────────────────────────────────────────────────────┤│                                                             ││   任务管理 ████████████░░░░ Antigravity (85%)               ││           ████████░░░░░░░░ Claude Code (50%)                ││                                                             ││   协议简洁 ████████░░░░░░░░ Antigravity (50%)               ││           ████████████████ Claude Code (100%)               ││                                                             ││   成本优化 ██████░░░░░░░░░░ Antigravity (40%)               ││           ██████████████░░ Claude Code (85%)                ││                                                             ││   可追溯性 ████████████████ Antigravity (100%)              ││           ████████████░░░░ Claude Code (75%)                ││                                                             ││   扩展生态 ████████░░░░░░░░ Antigravity (50%)               ││           ██████████████░░ Claude Code (90%)                ││                                                             ││   多模态   ██████████████░░ Antigravity (85%)               ││           ████████████░░░░ Claude Code (70%)                ││                                                             │



十五、设计模式总结

15.1 ReAct vs PDCA 双层模型


573574575576577578579580581582583584585586587588589590591592flowchart TB    subgraph Meta[“元模型层”]        PDCA[“PDCA(项目管理)”]        ReAct[“ReAct(步骤执行)”]    end     subgraph Antigravity[“Antigravity 实现”]        APDCA[“taskboundaryPLANNING→EXECUTION→VERIFICATION”]        AReAct[“工具调用循环Thought→Action→Observation”]        APDCA –> AReAct    end     subgraph Claude[“Claude Code 实现”]        CReAct[“纯 ReAct 模式messages 线性累积”]        CPlan[“可选 Plan ModeEnterPlanMode/ExitPlanMode”]        CPlan -.->|可选| CReAct    end     PDCA –> APDCA    ReAct –> A_ReAct


15.2 设计取舍矩阵

| 取舍维度 | Antigravity 选择 | Claude Code 选择 | 原因分析 | | — | — | — | — | | 状态管理 | 显式服务端 | 隐式客户端 | Google 偏好可控性,Anthropic 信任模型能力 | | 协议复杂度 | 高 (双层封装) | 低 (扁平化) | 企业级需求 vs 开发者体验 | | 工具加载 | 全量预加载 | 按需动态 | 确定性 vs 灵活性 | | 审批机制 | 强制门禁 | 可选建议 | 合规优先 vs 效率优先 | | 错误处理 | 文本描述 | 结构化字段 | 模型理解 vs 程序处理 |


附录

A. 完整工具清单

A.1 Antigravity 22 个工具

  1. browser_subagent
  • 浏览器子代理
  1. command_status
  • 命令状态查询
  1. find_by_name
  • 文件名搜索
  1. generate_image
  • 图像生成
  1. grep_search
  • 内容搜索
  1. list_dir
  • 目录列表
  1. list_resources
  • MCP 资源列表
  1. multi_replace_file_content
  • 多处替换
  1. notify_user
  • 用户通知
  1. read_resource

    • 读取资源
  2. read_terminal

    • 读取终端
  3. read_url_content

    • 读取 URL
  4. replace_file_content

    • 单处替换
  5. run_command

    • 执行命令
  6. search_web

    • 网页搜索
  7. send_command_input

    • 发送命令输入
  8. task_boundary

    • 任务边界
  9. view_code_item

    • 查看代码项
  10. view_content_chunk

    • 查看内容块
  11. view_file

    • 查看文件
  12. view_file_outline

    • 查看文件大纲
  13. write_to_file

    • 写入文件

A.2 Claude Code 核心工具

  1. Task
  • 子代理启动
  1. Bash
  • Shell 命令
  1. Read
  • 文件读取
  1. Write
  • 文件写入
  1. Edit
  • 文件编辑
  1. Glob
  • 文件模式匹配
  1. Grep
  • 内容搜索
  1. LSP
  • 语言服务协议
  1. WebFetch
  • 网页获取
  1. WebSearch

    • 网页搜索
  2. AskUserQuestion

    • 用户问询
  3. TodoWrite

    • 任务管理
  4. EnterPlanMode

    • 进入计划模式
  5. ExitPlanMode

    • 退出计划模式
  6. Skill

    • 技能调用

B. 参考资料

  • Google Cloud AI Companion API
  • Anthropic API Reference
  • React Agent Pattern

结语

两种架构代表了 AI Agent 设计的两个重要方向:Antigravity 选择了「显式协调」路线,通过完善的任务边界管理和 artifact 系统实现可控的复杂任务处理;Claude Code 选择了「模型智能」路线,依赖模型自身的长上下文理解能力实现灵活的交互式开发。没有绝对的优劣,选择取决于具体使用场景和团队偏好。

核心差异总结

  • Antigravity

    : PDCA 宏观 + ReAct 微观,22 工具全量加载,显式 task_boundary,无缓存计费

  • Claude Code

    : 纯 ReAct 模式,动态工具加载,两级缓存 (5m/1h),DataDog 遥测,实时成本计算

文档生成时间:2026-01-20 最后更新:2026-01-20 (整合流量分析新发现至相关章节) 数据来源:API 流量逆向分析 (mitmproxy 抓包)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:xsser的博客 xsser xsser《React Agent 多轮对话架构深度对比 – Antigravity vs Claude Code》

32岁程序员猝死。。。 网络安全文章

32岁程序员猝死。。。

文章总结: 广州32岁程序员高广辉因长期超负荷工作在家中猝死。他一人承担六七人工作量,月薪虽高但需24小时待命,死后工作消息仍不断。文章痛斥996加班文化与职场
评论:0   参与:  0