1. 项目概述:从抓包分析到Agent工程实现
作为一名长期从事AI工程实践的开发者,我最近被一个问题深深困扰:为什么同样的Claude模型,官方Claude Code能自动完成代码重构、测试运行和PR提交,而我自己用API构建的助手却只能生成一堆无法直接执行的文字?这个现象促使我进行了一次深入的抓包分析,试图揭开Claude Code背后的工程奥秘。
通过使用Proxyman对Claude Code进行流量拦截和分析,我发现其强大能力并非来自什么黑科技,而是源于一套精心设计的工程体系。这套体系的核心在于将大语言模型(LLM)与工具调用、上下文管理、记忆系统等模块有机结合,形成了一个完整的Agent系统。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 抓包分析:揭开Claude Code的神秘面纱
2.1 请求结构解析
拦截到的Claude Code请求体展示了一个标准但精心设计的结构:
json复制{
"model": "claude-sonnet-4-6",
"stream": true,
"thinking": { "type": "adaptive" },
"max_tokens": 32000,
"messages": [...],
"system": [...],
"tools": [...]
}
这个看似普通的JSON请求中,隐藏着Claude Code强大能力的秘密。特别是system、tools和messages三个字段,构成了Claude Code作为Agent的核心架构。
2.2 System Prompt的工程艺术
Claude Code的system字段包含两部分内容,都带有缓存控制标记:
- 简短的角色定义:"You are Claude Code, Anthropic's official CLI for Claude."
- 详细的行为规范和环境信息,长达数千字,包括:
- 完整的行为准则和操作规范
- 当前执行环境快照(工作目录、平台信息)
- 模型版本信息
- Git仓库状态
- 项目上下文文档
- 记忆系统路径
- 当前日期
这种设计体现了几个关键工程考量:
- 将静态角色定义与动态环境信息分离,便于独立缓存
- 通过环境快照赋予模型
