Agent 精读(二):模型的学习,与上下文的构成

这是《深入理解 AI Agent》精读专题的第二篇。读的是李博杰的开源书第一章末尾「Agent 的学习机制」与第二章开头「上下文的构成」,写下我自己的理解——不是摘抄,是用我的话重新讲一遍。
本章思维导图见 专题页 · 章节思维导图

模型的持续学习:三条路径

模型的行为改变不只发生在训练阶段。按更新发生的位置和持续时间,有三条互补的路径:

  • 上下文适应(临场):通过填充上下文让模型”学”——示例、状态、检索结果进入上下文后,模型立即调整行为。优势是快、低成本;局限是会话结束就没了,不改模型,受上下文窗口约束。
  • 外部产物(持久化):把经验整理为知识文档,把可语言化的策略写进 Prompt 或 Skill,把确定性流程写成程序。这些产物跨任务保留、可审计、可修订。
  • 参数更新(内化):SFT、强化学习,直接改模型。部署成本最高,但泛化能力最强——适合医疗影像理解这类外部规则难以完整表达的高维能力。

三条路不是互斥分类,而是不同时间尺度上的协同:上下文负责临场适应,外部产物负责可控积累,参数负责内化难以显式表达的能力。

大模型为什么是通用底座

大语言模型是提前对海量数据做自监督学习训练出来的模型:参数量巨大,并且随规模出现了涌现能力——小模型没有、参数跨过某个量级后突然出现的能力。

这件事对 Agent 的意义在于:模型具备了通用化的任务能力,人们靠指令就能让它完成新任务,而不需要为每个任务定制一个模型。这是”Agent = Model + Harness”成立的全部前提——如果每个任务都要重训模型,Harness 的价值就不存在了。

模型会”吃掉”外部工程

模型是可以具备学习能力的,而且随着时间发展,它会逐步内化一些之前不具备的能力——包括更好的工具调用。今天靠提示词绕出来的能力,下一代模型可能原生就有。

后果是真实的:新模型发布后,一些老的提示词技巧、外部工程和环境适配就失效了。书里对这条趋势的立场是”方向认同,节奏务实”:模型内化一层,Harness 就卸下一层,转而兜底新的能力前沿——模型此刻的能力边界,就是 Harness 此刻的价值所在。

专业领域怎么补

医学、法律这类专业领域,主流是两条路:

  1. 把领域知识送进上下文:RAG 检索、工具接入专业知识库——知识在模型外,随用随取,更新成本低
  2. 后训练进参数:领域 SFT/RL——适合外部规则难以完整表达的高维能力(如医疗影像),部署成本高但泛化强

一个提醒给自己:知识问题和边界问题是两回事。工具/RAG 解决”模型不知道”,约束(Constrain)解决”模型不能做”——专业领域的准确性靠前者,行为边界靠后者,别混。

上下文的五个部分

每次调用大模型时的上下文由五个部分构成:

  1. 系统提示词:开发者编写,相当于 Agent 的”岗位说明书”(身份、权限、行为准则),还会包含跨会话的用户记忆
  2. 工具定义:声明 Agent 可用工具的名称、功能描述和参数格式
  3. 用户消息:用户输入,可能包含 RAG 动态检索引入的外部知识
  4. 模型回复:最多包含三部分——思考过程(reasoning 思考链)、文本内容(content)、工具调用请求(tool_calls)
  5. 工具执行结果:Agent 下一步思考的直接依据,也是它”从执行结果中学习”的来源

结构上分两段:前两项构成静态前缀,后三项是随交互动态增长的消息历史。

一个重要的精确化(我原来的理解偏差):静态前缀不是”它们天然静态”,而是工程上要刻意保持稳定——因为前缀稳定是 KV Cache 命中的前提,改前缀的几个字符,缓存全部失效、重新计算。所以”前面不能动、后面可以压缩”不是巧合,是 KV Cache 友好设计的基础,也是第二章后面所有上下文布局技术的出发点。

下一步

  • 精读第二章 KV Cache 一节(原理、与 Prompt Cache 的两个层级、缓存作为架构约束)
  • 跑通第 2 章 context-compression Starter 实验

参考来源