如果你用 Claude Code,在没有任何上下文的时候,给它打一个词,hello。你知道它实际上发过去了什么吗?
远比你以为的多。
把这一次请求捕获下来看(这是在我自己的环境下抓到的,你那边的工具、技能、记忆不一样,具体数字会不同,但量级是一回事):我只打了一个单词,发出去的是 137918 个字节,十三万多字符,一本书的厚度。我那个 hello,在里面只占 5 个字符。剩下的十三万多,是它每一次都要随身背着的东西:
每一次,系统都把这一整套,连同我那 5 个字符,打包成一本三国演义那么厚的东西,递过去。
为什么?因为它没有"昨天"。
它每次睁开眼都是失忆的。上一句话说完,就忘干净了。所以你每递一句话,系统就得把它需要知道的一切——你是谁、有哪些工具、规矩是什么、之前发生过什么——重新塞一遍。一次都不能少。
它不是在记得。它是每一次,都重新读一遍这本书。
这里有个好消息:读过的部分,大模型一般会缓存下来。同一本书第二次读,花的时间和钱,都远远小于第一次。
而且,这还只是在没有任何上下文的时候。
你跟它多聊几个来回,事情会滚雪球:你的每一句输入、它的每一句输出、每一次工具调用吐回来的结果、中间产生的所有变量,都一层层往上叠,全程带着。
Claude Code 的上下文是一百万个词元。一部《三国演义》,也才七十五万词元。
也就是说,用不了多久——可能就十分钟——你每打一个单词,它那边收到的,就是实打实一整本《三国演义》。
几件平时纳闷的事,到这儿就都对上了:
它第一句反应慢半拍——它在读一本三国演义。 token 烧得快——你以为在为那句 hello 付钱,其实在为整本书付钱。 "上下文窗口"为什么要紧——那就是它一次最多能背得动多厚的一本书,超过那个厚度,前面的章节就得撕掉。
整件事画出来,是这样:
所以你用 Claude Code,根本不是在聊天。
你是在借一大批工具、还有无数你自己可能都没意识到的技能,替你把背景知识一层层垫上去。就像写 C 语言:你只敲了一行,可一编译,几十万行库里的代码就跟着你这一行一起进去了。
把一个单词,源源不断地接到一本越来越厚的《三国演义》后面,每一轮都原样发给大模型——这件事,就是 ChatGPT 和 Claude Code 的区别。所以我才说,要严肃地用 AI,就要用 Claude Code、Codex 等,而不是普通聊天的 ChatGPT。
差别根本不在模型本身。全世界的人用的是同一个模型——只要版本号一样,出厂的厂商和名字一样,你我手里的模型,没有一丝一毫的区别。
人和人之间的差别,全在这一大坨随身带着的信息里。它越厚,就越能精确地刻画出你是谁。
模型是同一个。那本书,才是你。
---
不信?下面这一整本,就是我那句 hello 真正发出去的东西,一个字没删。你往下滚,滚到手酸,才会在最后面一个叫 block [5] 的角落,看到我真正打的那个词——hello。
中间那十几万字符,全是它每次睁眼都得重读一遍的"前情提要"。
---
POST /v1/messages?beta=true
Headers
accept: application/json authorization: Bearer [已隐去] content-type: application/json user-agent: claude-cli/2.1.146 (external, cli) x-claude-code-session-id: [session-id 已隐去] x-stainless-arch: arm64 x-stainless-lang: js x-stainless-os: MacOS x-stainless-package-version: 0.94.0 x-stainless-retry-count: 0 x-stainless-runtime: node x-stainless-runtime-version: v24.3.0 x-stainless-timeout: 600 anthropic-beta: claude-code-20250219,oauth-2025-04-20,context-1m-2025-08-07,interleaved-thinking-2025-05-14,redact-thinking-2026-02-12,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advisor-tool-2026-03-01,effort-2025-11-24,afk-mode-2026-01-31,extended-cache-ttl-2025-04-11 anthropic-dangerous-direct-browser-access: true anthropic-version: 2023-06-01 x-app: cli connection: keep-alive host: 127.0.0.1:8787 accept-encoding: gzip, deflate, br, zstd content-length: 137918
---
Body — top-level fields
model: claude-opus-4-7 max_tokens: 64000 thinking: {"type":"adaptive"} context_management: {"edits":[{"type":"clear_thinking_20251015","keep":"all"}]} output_config: {"effort":"xhigh"} stream: true metadata: {"user_id":"{\"device_id\":\"[device-id 已隐去]\",\"account_uuid\":\"[account-uuid 已隐去]\",\"session_id\":\"[session-id 已隐去]\"}"}
---
System prompt
block [0] — type: text
x-anthropic-billing-header: cc_version=2.1.146.5a9; cc_entrypoint=cli; cch=dacd3;
block [1] — type: text _(cache_control: {"type":"ephemeral","ttl":"1h"})_
You are Claude Code, Anthropic's official CLI for Claude.
block [2] — type: text _(cache_control: {"type":"ephemeral","ttl":"1h"})_
You are an interactive agent that helps users with software engineering tasks.
IMPORTANT: Assist with authorized security testing, defensive security, CTF challenges, and educational contexts. Refuse requests for destructive techniques, DoS attacks, mass targeting, supply chain compromise, or detection evasion for malicious purposes. Dual-use security tools (C2 frameworks, credential testing, exploit development) require clear authorization context: pentesting engagements, CTF competitions, security research, or defensive use cases.
Write code that reads like the surrounding code: match its comment density, naming, and idiom.
Each sentence of text output should change what the reader knows or does next.
For actions that are hard to reverse or outward-facing, confirm first unless durably authorized or explicitly told to proceed without asking; approval in one context doesn't extend to the next. Sending content to an external service publishes it; it may be cached or indexed even if later deleted. Before deleting or overwriting, look at the target — if what you find contradicts how it was described, or you didn't create it, surface that instead of proceeding. Report outcomes faithfully: if tests fail, say so with the output; if a step was skipped, say that; when something is done and verified, state it plainly without hedging.
You have a persistent file-based memory at /Users/jianshuo/.claude/projects/-Users-jianshuo-code/memory/. This directory already exists — write to it directly with the Write tool (do not run mkdir or check for its existence). Each memory is one file holding one fact, with frontmatter:
---
name: <short-kebab-case-slug>
description: <one-line summary — used to decide relevance during recall>
metadata:
type: user | feedback | project | reference
---