前置课 · 第一部分 LLM · L1

LLM:agent 的大脑长什么样

20 min · 理解大脑的三个特性,才能理解 agent 为什么长成那样

🎒 预备知识:无——你只需要基础编程;其余概念本课从零讲起(入口:第 0 课)

本课唯一结论:LLM 是一台无状态的文本补全机——每次调用只看你给的 messages,不记得上一轮。agent 的一切设计(记忆、循环、工具)都是在给这台机器 补上它没有的东西。

一、它到底在干什么:下一 token 预测

剥掉神秘感,LLM 每次做的事只有一件:给定前面的所有 token(token:模型处理文本的最小单位——一个字、半个词或一个符号,L2 详述),预测下一个 token 的概率分布, 然后按某种策略(temperature 控制的采样)挑一个,拼回去,再预测下一个。"写一篇长文" = 这个动作重复几千次。 两个直接推论:

推论 1:它没有"查询"动作。你问"我的 API key 是什么",它不是去检索,而是补全 "在这种上下文里,接下来最像答案的 token 序列"。如果训练数据里没见过你的 key,它就生成一个 看起来像 key 的字符串——这就是幻觉的本质:它在补全,不在检索。 所以 agent 必须把"事实获取"外置成工具(读文件、查数据库),而不是指望模型"知道"。

推论 2:权重是冻结的。权重(weights)=模型内部的可调数值参数,训练学到的“知识”就存在这里——推理阶段(即使用模型的阶段,与“思考”无关)它们一个都不变。你觉得"它越用越懂我",全部是 工程层在记忆(A6)。这一点决定了"学习"在 agent 系统里的位置——全部发生在模型外面。

二、一次真实调用的解剖(工作示例)

resp = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system",    "content": "你是文件问答助手。"},   # ① 常驻层:人格与规则
        {"role": "user",      "content": "notes.md 里写了什么?"}, # ② 本轮问题
        # ③ 历史消息会由程序追加在这里——注意:是你追加的,不是模型记得的
    ],
    temperature=0.2,   # ④ 采样温度:低=保守稳定,高=发散创意
)
print(resp.choices[0].message.content)

逐项说清楚:

① system:优先级高于后续消息的常驻指令。但注意——它是"强烈偏好"不是"安全边界", 后面的消息(尤其工具读进来的内容)可以冲击它,这是 A12 提示注入的根源。
② user/assistant:对话轮。历史 = 你把之前的轮全部重发。
④ temperature:结构化输出/工具调用场景用低温度(0–0.3),创意写作用高温度(0.7+)。 agent 默认应该低——你要的是可靠决策不是灵感。

token 怎么算(做预算要有手感):1 个英文单词 ≈ 1.3 token;1 个汉字 ≈ 1–2 token。 一个 8K token 的窗口,中文大约只装 4–6 千字。窗口是稀缺资源——这是 A5 上下文工程、 也是 Easel 整个技能分层设计的起点。

三、三个必须刻进脑子的特性(agent 设计的因)

特性含义agent 层的对策
无状态两次调用间什么都不记得记忆系统(A6):历史重发 + 文件长期记忆
窗口有限能看到的 token 有上限compaction 压缩 / 检索按需取(A8)
只会生成文本不能读文件/联网/执行工具系统(L7/A2):harness 替它动手

反过来读这张表:agent = LLM + 三个补丁。后面每一课,都是把某个补丁展开讲。

四、常见踩坑

坑 1:把模型当数据库。问它任何"事实"都期望准确——错,事实必须走工具获取。 判断标准:这个信息训练数据里可能有吗?可能过时吗?两个答案任一为"是"就该用工具。

坑 2:把 system prompt 当保险箱。把密钥、内部逻辑写进 system prompt 以为用户看不见 就安全——LLM 应用史上大量泄露来自"复述你的系统提示"。敏感数据永远不进 prompt,权限问题用工程解决(A12)。

坑 3:迷信"更大=更准"。窗口内的事实推理,大模型小模型差距远小于"有没有把关键信息放进窗口"。 上下文工程(A5)常常比换模型便宜一百倍。

五、检索练习

六、出口检验

用自己的话回答:① 为什么"模型记得我聊过什么"是错觉?这个错觉实际是谁在维持? ② 模型编造一个不存在的 API key,用本课的语言精确描述发生了什么? 把答案发到对话里,我批改后才算过。

一手源:Anthropic · Building Effective Agents 开头对 LLM 应用分层的定义。