AI Agent 的能力从哪里来?一文讲清后训练、上下文学习和外部能力

最近两年,AI Agent 看起来越来越全能

它能写代码、查资料、分析数据、订机票、总结会议纪要,还能一边搜索文档一边生成报告。很多人都会产生一个疑问:

那它到底是怎么学会这些事情的?

很多人会下意识认为,是模型越来越大,所以什么都会了。但实际上,一个 Agent 的能力并不只来自模型本身,而是来自多个层次的共同作用。

从开发者视角来看,Agent 的能力主要来自三个方面:

  • 后训练(Post-training) :决定模型默认具备哪些基础能力。
  • 上下文学习(In-context Learning,ICL) :决定模型如何适应当前这一次任务。
  • 外部能力(External Capabilities) :决定 Agent 能否获取最新信息、访问外部系统以及完成真实操作。

需要说明的是,本文提到的"学习"并不是严格意义上的机器学习,而是广义上的能力获得方式。其中,只有后训练真正会更新模型参数;上下文学习和外部能力都发生在模型运行时,不会改变模型本身。

如果把 Agent 看成一个软件系统,可以把这三层能力理解成:

  • 后训练像升级底层框架。
  • 上下文学习像启动程序时传入配置、规则和示例。
  • 外部能力则像给程序接上数据库、搜索引擎以及各种业务 API。

底层框架决定它默认会什么 ;运行时上下文决定它这次该怎么做 ;外部系统决定它能获取什么信息、完成哪些动作

真正强大的 Agent,正是这三层能力共同协作的结果。


一、后训练:把通用能力沉淀进模型

一句话理解

后训练(Post-training)是在预训练之后继续优化模型,让它不仅"懂很多",还能更好地完成任务。

从预训练开始说起

所有大语言模型都始于预训练。

预训练阶段,模型会在海量文本上学习预测下一个 Token,因此逐渐形成语言理解、知识、代码和推理等基础能力。

但一个只有预训练的模型,通常还不够"好用"。

它可能知道很多知识,却不知道用户是在提问;它可能能续写文章,却不会按照清晰、有条理、安全的方式回答问题。

简单来说:

预训练解决的是"知道什么",后训练解决的是"如何更好地回答"。


后训练主要做什么?

目前最常见的后训练方式主要包括两类。

1. 监督微调(SFT)

通过大量高质量的「输入 → 理想输出」示例继续训练模型。

例如:

  • 代码 → 高质量代码解释
  • 用户提问 → 专业客服回复
  • PRD → 标准需求文档

模型不断学习这些示范,逐渐形成稳定的回答模式。


2. 人类偏好优化(RLHF、DPO 等)

除了标准答案之外,人类还会对多个回答进行比较。

例如同一个问题,模型生成三个版本:

  • A 很准确,但语气生硬。
  • B 很友好,但遗漏关键信息。
  • C 内容完整、表达自然。

人类会选择更好的回答,再利用这些偏好数据进一步优化模型行为。

近年来,除了经典的 RLHF(基于人类反馈的强化学习)之外,也越来越多采用 DPO(Direct Preference Optimization)等偏好优化方法,它们共同目标都是让模型更加符合人类预期。

可以怎么理解?

可以把它理解成培养一位新同事。

刚加入团队时,他知识很多,但回答问题经常抓不到重点。

经过大量代码评审、项目实践和用户反馈后,他逐渐知道:

  • 什么回答更有帮助;
  • 什么表达更符合团队风格;
  • 什么行为更加安全可靠。

这些经验最终沉淀进模型参数,成为模型长期稳定具备的能力。


它的特点是什么?

后训练最大的特点就是会改变模型参数

因此它能够长期生效,但代价也比较明显:

  • 训练成本高;
  • 迭代周期长;
  • 无法实时学习最新知识。

例如今天公司修改了一条退款政策,没有人会因此重新训练一次大模型。

因此,后训练更适合解决长期、稳定、通用的问题,例如:

  • 更好的代码能力;
  • 更强的指令遵循;
  • 更安全的输出行为;
  • 更稳定的推理能力。

二、上下文学习:让模型适应当前任务

一句话理解

上下文学习(In-context Learning,ICL)不会改变模型参数,而是在当前上下文中提供规则、示例和约束,让模型临时适应当前任务。


为什么需要它?

如果每增加一种需求,都重新训练模型,成本会非常高。

现实中,大多数需求其实只是:

  • 这一次按这种格式输出;
  • 这个客户使用这种语气;
  • 这批数据按照这种规则分类。

这些任务持续时间很短,却要求模型马上适配。

因此,比起重新训练,更高效的方法是在当前 Prompt 中告诉模型应该怎么做。


Context 不只是 Prompt

很多人提到 ICL,第一反应是 Few-shot Prompt。

实际上,对于模型来说,当前能够看到的一切信息都会组成 Context(上下文)

包括:

  • System Prompt
  • 用户输入
  • 历史对话
  • Few-shot 示例
  • RAG 检索内容
  • 工具调用结果
  • 当前任务约束

模型不会区分这些信息来自哪里,它只会基于整个上下文推断当前任务应该如何完成。


Few-shot Prompt(少样本提示词)

最经典的上下文学习方式就是 Few-shot。

例如:

英文 → 更口语化翻译

hello → 你好呀

goodbye → 回见

thank you → 多谢啦

how are you →

模型看到前面的示例后,会意识到你希望它输出更自然、更口语化的表达,而不是字典式翻译。

整个过程中,模型参数没有发生任何变化,只是在当前上下文中学会了模式。


Few-shot CoT(少样本思维链提示)

如果不仅提供输入和输出,还提供完整的推理过程,这就是 Few-shot Chain of Thought(CoT)。

例如:

题目 → 分步骤推理 → 最终答案

模型不仅学习答案,还学习解决问题的方法。

需要注意的是,如果 Prompt 中只有一句"请一步一步思考",而没有任何推理示例,这通常称为 Zero-shot CoT。它属于提示策略,而不是严格意义上的上下文学习示例。


它适合哪些场景?

上下文学习特别适合那些:

  • 临时规则;
  • 输出格式;
  • 企业内部规范;
  • 风格迁移;
  • 分类任务。

只要规则描述得足够清楚,模型通常无需重新训练就能够快速适应。

当然,这并不意味着没有成本。

真正优秀的 Prompt 往往需要不断调整示例、修改规则、优化格式,才能获得稳定效果。


三、外部能力:让 Agent 连接真实世界

一句话理解

真正的 Agent 并不会把所有知识都塞进模型,而是会在运行时连接外部数据、工具和记忆系统。

严格来说,这部分并不是模型学习,而是 Agent 在运行时获得能力,因此更准确地说,它属于能力外部化


为什么需要它?

无论模型训练得多好,它仍然存在天然限制。

例如:

  • 不知道训练之后发生的新事情;
  • 无法访问企业内部数据库;
  • 不能直接发送邮件;
  • 不能查询订单;
  • 不能执行代码。

因此,与其继续扩大模型参数,不如让 Agent 学会什么时候去外部获取信息、什么时候调用工具完成任务。


常见的外部能力

RAG:先检索,再生成

例如:

用户问:

Q2 销售额是多少?

模型不会直接猜测答案,而是先检索知识库、数据库或文档,再根据检索结果生成回答。

重点已经不是模型记住了多少,而是:

  • 检索是否准确;
  • 检索结果是否可信;
  • 如何把结果组织进当前上下文。

Tool Use:需要时调用工具

现代 Agent 可以调用各种工具,例如:

  • 搜索引擎;
  • 计算器;
  • Python Sandbox;
  • 数据分析工具;
  • 企业 API;
  • 邮件系统;
  • 日历服务。

模型真正学习的是决策:

  • 是否需要调用工具;
  • 应该调用哪个工具;
  • 如何理解工具返回结果;
  • 如何继续完成后续任务。

Memory:让 Agent 有连续性

Agent 的记忆通常保存在模型之外。

例如:

  • 用户喜欢什么写作风格;
  • 常用时区;
  • 项目中的命名规范;
  • 长期偏好。

这些信息会在后续对话重新检索回来,使 Agent 的行为更加连续和个性化,而模型参数本身并不会改变。


Agent Loop:不是调用一次工具就结束

很多现代 Agent 并不是:

输入 → 输出

而是不断循环(ReAct):

思考(Reason)

调用工具(Act)

获取结果(Observe)

再思考(Reason)

模型负责决策,工具负责执行,循环直到任务完成。

因此,真正的 Agent 更像一个能够协调多个组件完成工作的系统,而不仅仅是一次文本生成。


四、三层能力如何协作?

后训练、上下文学习和外部能力并不是互相替代,而是各自负责不同的问题。

能力来源 解决的问题 是否改变模型参数
后训练 模型默认会什么 ✅ 是
上下文学习 当前任务怎么做 ❌ 否
外部能力 信息和动作从哪里来 ❌ 否

以一个客服 Agent 为例。

后训练让它具备礼貌沟通、理解用户情绪和遵循安全规范的能力。

上下文学习让它按照公司的客服模板、回复风格和工单规范完成当前任务。

外部能力则负责查询订单、获取物流信息、创建退款申请以及发送通知。

用户看到的是一个能够独立解决问题的 Agent,而背后其实是三层能力共同协作的结果。


写在最后

当我们看到一个 Agent 表现得越来越"聪明"时,不妨换一个角度去理解它。

有些能力来自模型长期训练形成的基本功;有些能力来自当前上下文中的规则、示例和任务约束;还有一些能力来自运行时连接的知识库、工具和业务系统。

从工程视角来看,现代 Agent 已经不再只是一个大模型,而是一套围绕大模型构建的系统。

模型负责推理,Context 负责任务适配,外部系统负责提供知识、状态与执行能力。

真正决定 Agent 上限的,往往不是模型参数本身,而是这三层能力如何协同工作。

理解了这一点,也就理解了今天大多数 AI Agent 的能力来源。

相关推荐
默_笙1 小时前
🎉 AI 项目里为什么需要 BFF?因为我实在不想在前端处理二进制流
前端·javascript
Revolution611 小时前
改一个订单筛选,为什么要在六个目录里来回找,前端项目目录到底要怎么拆
前端·前端工程化
冬奇Lab1 小时前
AI 评测系列(05):Agent 评测——工具调用准确率与轨迹质量
人工智能·agent
阳光是sunny1 小时前
LangGraph高级教程:Multi Schema多状态管理详解
前端·人工智能·后端
DeepAgent1 小时前
AI Agent 工程实践(17):Agent 为什么需要可观测性(Observability)?
android·llm·agent
冬奇Lab2 小时前
开源项目第167期:Buzz — Block 开源的人机协作工作空间,Agent 是成员不是 Bot
人工智能·开源·agent
神奇霸王龙2 小时前
Gemini CLI 中转站配置使用教程
人工智能·ai·ai作画·aigc·ai编程·gemini·goolge
mCell2 小时前
从 TodoList 到 Microsoft To Do:全栈工程师到底要管什么?
前端·编程语言·全栈
阳光是sunny2 小时前
LangGraph实战教程:状态管理与`graph.invoke`入参深度解析
前端·人工智能·后端