一句話總結: 在 Claude Code 裡按下 Enter,你的提示詞會連同上下文(先前的對話、指示、工具和它讀過的檔案)化為一個請求離開電腦,透過 HTTPS 送往 Anthropic 的 API,可能經由海底電纜橫越一片海洋,抵達資料中心,由 AI 晶片執行模型。回覆一個 token 一個 token 地串流回來。有時回覆本身是一個請求:讀取一個檔案,或在你的電腦上執行一道指令。Claude Code 會在設定為需要詢問的地方先問過你,再執行,並把結果送回去。這個迴圈就是代理(agent)。
一個請求,不只是你的提示詞
Claude Code 在你的電腦上執行。用 Anthropic 的話說,它會「reads your codebase, edits files, runs commands, and integrates with your development tools」(讀取程式碼庫、編輯檔案、執行指令,並整合你的開發工具)。按下 Enter 後,它透過 HTTPS 向 Claude API 發出請求,這是一個位於 https://api.anthropic.com 的 RESTful API。
這個請求帶的不只是你輸入的內容。請求裡的一切都算進模型的上下文視窗:「the system prompt, every message in messages (including tool results, images, and documents), and your tool definitions」(系統提示、messages 裡的每則訊息,包括工具結果、圖片和文件,以及你的工具定義)。
可能要橫越一片海洋
請求從你的路由器、你的網路服務供應商出發,經由網際網路抵達模型執行的地方。洲與洲之間,通常走的是海底電纜:TeleGeography 估計,海底電纜承載了「over 99%」(超過 99%)的洲際資料流量(衛星流量無法精確測量)。
它落在哪裡,不一定離你很近。Anthropic 的 API 預設是「inference may run in any available geography」(推論可能在任何可用地區執行),只有設為 us 才會限定在美國境內的基礎設施。所以資料中心可能遠在大洋彼岸。
晶片、層、token
在資料中心裡,由 AI 晶片執行模型。Anthropic 用「AWS Trainium, Google TPUs, and NVIDIA GPUs」訓練和執行 Claude。模型一次算出回覆中的一個 token(影片把它畫成一層層疊起來的樣子,只是示意,不是真實的架構)。
回覆不必等全部寫完才送回。開啟串流後,API 會「incrementally … using server-sent events (SSE)」(以伺服器推送事件逐步傳送),每寫出一個 token,就沿原路傳回來。
這個迴圈就是代理
有時傳回來的不是文字,而是一個要做事的請求:讀取一個檔案,執行一道指令。用 API 的說法,Claude 會回覆一個 tool_use 區塊,「your code runs the operation and sends back a tool_result」(你的程式碼執行這個操作,並送回一個 tool_result)。在這裡,「你的程式碼」就是你電腦上的 Claude Code。
它會先問你。在預設的手動模式下,Claude Code 執行 Bash 指令前(內建的一組唯讀指令除外)和修改檔案前,都會先徵求同意。你核准,它就在你的電腦上執行,結果作為下一個請求送回去。如此反覆,直到任務完成:這個迴圈就是代理。
總結
Claude Code 是你的電腦和遠方資料中心裡的模型之間的一個迴圈。任何在你電腦上執行的東西,都是 Claude Code 執行的,而且是在設定為需要詢問的地方先問過你之後。
來源
- Anthropic,Claude Code 概覽
- Anthropic,Claude Code 權限
- Anthropic,API 概覽
- Anthropic,上下文視窗
- Anthropic,資料駐留
- Anthropic,串流
- Anthropic,工具使用概覽
- Anthropic,與 Google 和 Broadcom 的算力合作
- TeleGeography,Mythbusting, part 3
影片以程式碼製作動畫(在 Blender 中算圖),腳本在 AI 協助下撰寫;上面每一項事實都對照來源查證過。示意的部分:路線(一家網路服務供應商、一條電纜、一座資料中心)、畫成一層層的模型,以及螢幕上的文字。本文是獨立的科普內容,與 Anthropic 無關。影片為英文。影片用 Shotloop 製作:我做的免費 Mac 應用程式,用程式碼做科普短片,一個鏡頭一個鏡頭地修改。
