跳到正文
Hacker News· theahura·· 8 天前AI 评分36

在 Claude Code 里输入 "hi" 后,底层究竟发生了什么?

When I type "hi" into Claude Code, what happens?

AI 导读

一篇可视化长文拆解了在 Claude Code 中输入 "hi" 后请求 req_7f3a 的完整链路:从界面、上下文、harness、工具、API,到超大规模数据中心、缓存、推理服务、GPU 与模型权重共 10 层。

正文 · AI 翻译

nori>

当我在 Claude Code 中输入“hi”时,究竟发生了什么? 界面之下有大量技术才能得到响应。这个网站是我试图把这一切理清楚的尝试。

从界面到模型权重

你的

提供商的

01 界面 用户视角

一幅连续的像素艺术视图,展示请求 req_7f3a 从用户界面出发,经过上下文、执行框架、工具、API、超大规模基础设施、缓存、推理、一块 GPU,最终到达模型权重。

  1. 01界面
  2. 02上下文
  3. 03执行框架
  4. 04工具
  5. 05API
  6. 06超大规模
  7. 07缓存
  8. 08推理
  9. 09GPU
  10. 10模型权重

01

界面

你实际看到的智能体部分:在这里输入请求,并看着工作返回。它处理的是呈现而非执行,因此同一个智能体可以表现为终端、编辑器面板、原生应用或聊天机器人。Agent Client Protocol 将这一角色称为客户端。

路由

处理该请求的执行框架服务

智能体不只是下一个 token 推理。它们需要知道信息,然后采取行动。执行框架连接了实现这一点所需的一切:上下文、工具和 LLM API。

02

上下文

模型在回答之前能看到的一切。其中大部分是从你的文件系统中提取的:AGENTS.md、技能、源文件以及先前工具调用的输出。这一层是上下文的来源,而不是上下文窗口本身;执行框架决定加载什么以及以什么顺序加载。

03

执行框架

包裹在模型周围、将其变成智能体的代码。它运行一个循环:读取上下文、调用模型、评估返回内容、运行它请求的工具,然后反馈结果并再次运行,直到工作完成。Claude Code、Codex 和 Nori 各自都是一个执行框架。

04

工具

智能体实际上能对模型之外的世界做什么。运行 shell 命令、读取和编辑文件、获取 URL、调用 MCP 服务器。每个执行框架定义自己的工具集和使用说明,因此同一个模型会根据被赋予的工具而表现不同。

返回

结果返回

工具的结果不会发给模型。它会回到执行框架。执行框架读取输出,决定下一步,然后才调用 API。每次工具调用都会在这里往返。

05

API

你的控制到此为止的界线。越过这个 HTTP POST,你就无法看到或改变请求的处理方式。在边界处你仍然可以设置两件事:应用于整个团队的企业计划策略,以及 AI 网关——一个替代 API,按用户计量支出、限制可访问的模型,并为多个提供商签发一个密钥。

06

超大规模

运行模型的数据中心。你的请求到达提供商区域,被路由到一台机器,并由两个相邻服务处理:一个缓存和推理服务。GPU 位于推理内部,模型权重加载到它们之上。

07

缓存

复用上一次请求的工作成果,而不是为它付两次钱。提供商缓存提示词的前缀,因此任何早期发生变化的内容(系统提示词、工具定义)都会使其后的所有内容失效。这些缓存通常存活五分钟到一小时,这就是为什么框架选择以及轮次之间的长时间间隔会直接体现在你的账单上。

08

推理

将你的 token 转化为模型 token 的服务。它一次性读取整个提示词,然后一次生成一个 token,并将你的请求与其他请求一起批处理,以保持硬件繁忙。生成每个新 token 通常意味着要回读它之前的所有内容,因此该服务会保存这次读取所产生的结果(到目前为止每个 token 的两个向量,一个键和一个值)并复用它们。这个存储就是 KV 缓存。这就是为什么第二个 token 比第一个便宜得多,也是为什么一段长对话既耗费内存又耗费时间:缓存会随着其中每个 token 而增长。

09

GPU

执行算术运算的芯片。数据中心 GPU 集成了几百个小处理器,每个都带有张量核心,每条指令可对一个矩阵分块进行乘法运算,同时还配有高带宽内存。生成速度受限于权重从该内存中移出的速度,而不是原始算力。

10

模型权重

构成模型的学习得到的数字。一个 token 从一端进入,经过一层又一层的矩阵乘法,直到另一端输出单个 token。稠密模型让每个 token 都经过所有这些数字。稀疏模型则不然:在专家混合中,每一层被拆分为许多独立的块,一个小型路由器为每个 token 挑选其中几个,其余则不受影响。这就是为什么参数量不再能预测成本。一个稀疏模型可以携带一万亿参数,而在任何给定 token 上仍然只做一个小得多模型的工作量。

全栈概览

完整系统

一个请求穿过了你塑造的应用程序、提供商边界,以及评估该模型的基础设施。

应用程序拥有

接口

上下文

↔

框架读取 · 评估 · 工具

↔

工具

提供商拥有

API提供商边界

超大规模云厂商

缓存服务

推理服务

GPU

模型权重

req_7f3a · 连续路由循环

由 Clifford 和 Gaurav 在 Nori Agentic 创建

来源:Hacker News · the-agent-stack.com