Skip to content

什么是 Agent

这一课先不急着堆术语,先把这门课到底在做什么说清楚。


这节课解决什么问题

  • LLM、chatbot、Agent、Harness、UI 分别是什么
  • chatbot 和 Agent 的边界到底在哪里
  • 这套课的主线到底教哪一层

先看这门课的学习目标

这套课的主线,不是先把名词背完,而是按下面这条路往前走:

  1. 先把 LLM 变成一个能多轮对话的 chatbot
  2. 再理解消息历史、提示词、上下文和上下文压缩
  3. 最后把 chatbot 升级成会调用工具、会持续推进任务的 Agent

所以第一模块的重点,不是先讲复杂框架,而是先把对话内核、消息结构和上下文问题建立起来。


这些东西分别是什么

概念你可以先怎么理解它不等于什么
LLM负责理解和生成语言的模型不等于完整产品
Chatbot把 LLM 包进对话界面后的最小产品形态不等于 Agent
Agent会围绕目标持续推进任务的系统不只是“更强一点的聊天”
Harness给模型提供工作环境的那层工程代码不等于 UI
UI给人看的交互界面,比如聊天框、按钮、任务面板不等于 Agent 本体

一句话记住:模型负责思考,Harness 负责给模型提供工作环境,UI 负责让人和系统交互。


chatbot 和 Agent 差在哪里

chatbot 的核心是对话。

你给它一条消息,它基于当前消息历史回一条消息。哪怕它支持多轮聊天、支持 system prompt、支持读取部分历史记录,它的核心还是“问一句,答一句”。

Agent 则更进一步。

它会围绕一个目标持续往前推进:判断下一步要做什么、必要时调用工具、拿到结果后继续,直到完成、失败,或者停下来请人确认。

所以这门课里会用一个很实用的区分方法:

  • chatbot 重点是对话
  • Agent 重点是执行

像 ChatGPT 这类产品,已经把长期记忆、搜索、工具调用等能力接进去,能解决很多问题。但如果没有围绕任务持续推进的循环,它更接近增强版 chatbot,而不是完整 Agent。


这套课主要教哪部分

主线重点教的是:从 LLM 调用,到 chatbot,到 Agent 系统这中间的一整层。

重点包括:

  • 消息历史怎么组织
  • system prompt 和 user prompt 各负责什么
  • 上下文为什么会爆
  • 上下文压缩怎么做
  • Agent Loop 怎么把模型、工具和状态接起来
  • 什么时候需要 Harness、MCP、RAG、Memory 这些更完整的机制

不放在主线中心的内容包括:

  • 模型训练细节
  • Transformer 公式推导
  • 某个具体产品的全部 UI 细节
  • 某家厂商的产品化胶水代码

先做一个最小 chatbot

这一课的课堂目标很简单:先让系统能聊起来。

最小 chatbot 只需要 4 个东西:

  1. 一条 system prompt,告诉模型基本角色
  2. 一条 user message,代表用户当前输入
  3. 一组 messages,保存对话历史
  4. 一次模型调用,把回复追加回 messages

只要这 4 步跑通,你就已经有了后面所有 Agent 的最小对话内核。

最小 chatbot 的消息长什么样

先不用管框架,最小版本只要看懂这组数据就够了:

ts
const messages = [
	{
		role: 'system',
		content: '你是一个简洁的编程助理。',
	},
	{
		role: 'user',
		content: '解释一下什么是闭包',
	},
]

模型返回回复后,只是再往这个数组后面追加一条 assistant 消息:

ts
messages.push({
	role: 'assistant',
	content: '闭包就是函数和它定义时所处作用域的组合。',
})

当用户继续追问时,再追加一条 user 消息,然后把整组 messages 再发给模型。

这就是最小 chatbot 的核心。后面所有上下文、压缩、Agent Loop,本质上都是围绕这组消息继续长出来的。


这一模块接下来怎么展开

第一课先把关系和最小 chatbot 建起来。

后面几课按这个顺序往前推:

  1. 为什么每次都要把聊天记录整段带回模型
  2. system prompt、user prompt、assistant 消息各自负责什么
  3. 为什么聊天越多,上下文越容易爆
  4. 为什么必须做上下文压缩
  5. chatbot 到哪里为止,才会开始变成 Agent

为什么它现在还不算 Agent

因为它还缺少 3 个关键部分:

  1. 没有围绕目标持续推进的循环
  2. 没有真正的外部动作执行链路
  3. 没有任务状态和终止条件

后面第二模块要补上的,正是这些东西。


本节产物

  • 一个最小可运行的 chatbot
  • 一张 LLM、chatbot、Agent、Harness、UI 的关系图
  • 一份这套课主线范围说明

课堂实作

  • 跑通一次 system prompt + user prompt + assistant 回复
  • 把两轮对话都追加进 messages,观察历史消息如何影响回答
  • 删掉历史消息再问一次,观察模型为什么会“忘掉前文”

并入项目

这一课会成为后面所有 Agent 项目的最小对话内核。

面试会怎么问

  • chatbot 和 Agent 的区别是什么
  • Harness 在 Agent 系统里负责什么
  • 为什么支持搜索和记忆的产品,仍然不一定算完整 Agent

大齐 AI 课堂 · 程序员的 Agent 开发课