Beginner Friendly

一张图看懂:大模型 · Agent · Harness · Skill · Rule

给第一次接触 AI 的人写的入门读物。不写代码也能读完——每个概念都配一个现实类比, 读完你会知道:模型为什么"只能说话",Agent 为什么"能干活",以及那句常被搞混的 "模型能不能上网 / 有没有记忆 / 会不会执行代码"。

大模型 LLM Agent 智能体 Harness 运行外壳 Skill 技能 Rule 规则 Tool 工具 Memory 记忆 RAG 检索增强 MCP 协议
如果你只读一句话:模型是"大脑",Harness 是"身体和办公环境",Agent 是"会自己干活的人", Tool / Skill 是"工具间和技能证书",Rule 是"员工手册",Memory 是"档案柜"。

1全局地图:它们是怎么叠起来的

自下而上看:越往下越"基础且通用",越往上越"具体且贴近业务"。

应用层:你的产品 / 聊天窗口 / IDE 插件 / 客服机器人 用户看到的部分
规则与治理:Rule · 权限 · 人工审批 · 日志审计 什么能做、什么不能做
能力层:Tool · Skill · Memory · RAG · MCP 它有哪些本事
编排层:Agent 循环(思考 → 行动 → 观察) 它怎么一步步把活干完
运行外壳:Harness 上下文管理 · 工具执行 · 重试 · 沙箱
基础层:大模型 LLM 参数 · 上下文窗口 · 概率输出
▲ 下面的东西被上面的东西"使用";模型本身并不知道上层存在
类比

把它想成一家公司:大模型是一个极其博学但只能"动嘴"的专家顾问;Harness 是给他配的办公室、电话、秘书和规章制度;Agent 是这位顾问被授权后真正开始"接活、派人、交付"; Tool 是工具间,Skill 是岗位技能手册,Rule 是员工守则,Memory 是档案柜,RAG 是公司图书馆。

2大模型 LLM:会说话的大脑

Large Language Model · 也叫基础模型、基座模型

它是什么:一个用海量文本训练出来的超大神经网络(主流架构叫 Transformer)。它的工作只有一个,但做了几万亿次: 给定前面的文字,预测下一个最可能出现的词片段。

它怎么学会的:给一个初始几乎全随机的网络,喂进去"半句话 → 真实的下半句", 算出它答错了多少(损失),再反过来微调内部那几十亿到上万亿个数字(参数 / 权重)。重复无数次,它就"学会"了语法、常识、推理套路和代码。

训练目标:让  p(下一个词 &rvert; 前文)  尽量贴近真实文本的分布

✅ 它擅长

总结、改写、翻译、写代码、按格式输出、把模糊需求讲清楚、从长文里找信息、模仿风格。

❌ 它天生不会

主动做事、记住你、上网查、访问数据库、执行代码、保证数字算对、知道自己不知道。

关键认知:模型是一个"无状态的文本函数"。给它一串文字,它返回一串文字,然后忘掉一切。 所有"更高级"的能力,都是在它外面加出来的——这正是后面 Agent 和 Harness 存在的理由。

训练 vs 推理:训练 = 长时间、极贵、一次性把知识"压进"参数;推理 = 你每次提问的那几秒,只做前向计算,参数不变。 在这两者之间的"后训练"(微调、RLHF 人类反馈对齐)决定它的脾气是否听话、是否有害。

3基础词汇:Token · 上下文 · 幻觉

看新闻、看文档、算成本绕不开的几个词

Token(词元)

模型眼里的最小文字单位。中文大约 1 个汉字 ≈ 1~2 个 token,英文 1 个词 ≈ 1.3 个 token。计费和长度限制都按它算。

上下文窗口 Context Window

一次对话里它能同时"看见"的 token 上限(常见 8K / 128K / 200K)。超了就要截断或压缩——这就是为什么长对话会"忘掉"开头。

参数 Parameters

模型内部的数字总量,常以"7B / 70B / 600B"表示(B = 十亿)。越大通常越强,也越慢越贵。

温度 Temperature

控制随机性的旋钮。低(0~0.3)稳、适合写代码;高(0.8~1.2)发散、适合创意。本质是在概率分布上做缩放再采样。

采样概率: p(i) = exp(z_i / T) ÷ ∑j exp(z_j / T)

其中 z 是模型给每个候选词的原始打分,T 是温度:T → 0 时结果趋于确定,T 变大则低分候选也有机会被选中。

幻觉 Hallucination:模型把"看起来合理"当成"事实"说出来——编造参考文献、虚构 API、算错账。 原因很直白:它的目标是"输出像人写的话",而不是"输出真相"。应对手段:给它资料(RAG)、让它调用工具算、要求它引用来源、人工复核。

一句话记忆:Token 是计价器,上下文窗口是它的视野,温度是它的性格旋钮,幻觉是它的"自信撒谎"。

4提示词 Prompt:你怎么跟它说话

Prompt · System Prompt · 提示工程

Prompt(提示词)就是你输入的全部内容——问题、背景、格式要求、示例都算。

System Prompt(系统提示)是应用开发者在用户看不到的地方预先设定的"身份与规矩",例如 "你是一名严谨的振动分析工程师,回答必须先给结论,不确定时明确说不确定"。

层次谁写的作用
System Prompt开发者 / 产品方设定角色、语气、底线、输出格式,优先级最高
Developer / 中间层指令应用配置、技能包注入技能说明、工具用法、检索到的资料
User Prompt用户当前这次具体想干什么
历史对话系统自动回填让模型"看起来"记得前文(其实是每次重发一遍)
类比

System Prompt 是"岗位说明书",User Prompt 是"今天这一单的具体要求"。同一个员工,岗位说明书不同,干出来的活完全不同。

5Agent 智能体:从"回答问题"到"完成事情"

Agent = 模型 + 工具 + 循环 + 反馈

定义:一个能感知环境、自主做决定、调用工具去行动、并根据真实结果继续调整,直到达成目标的系统。 它和普通聊天机器人最大的差别不是"更聪明",而是多了行动与反馈这一环。

① 思考 Thought分析目标、当前状态,决定下一步做什么
② 行动 Action选一个工具并给出参数,比如"运行这段分析代码"
③ 观察 Observation拿到工具的真实返回结果(成功、报错、数据)
④ 循环 / 收尾结果不满足就回到 ①,够了就产出最终答案

这个循环常被称为 ReAct(Reason + Act)。伪代码长这样:

目标 = "分析这段振动信号里的异常频率"
while not 完成:
    思考 = 模型(目标, 历史观察)
    if 思考 是最终答案: break
    行动 = 思考.工具名, 思考.参数        # 例如 run_python(...)
    观察 = 执行(行动)                    # ← 真实执行,不是模型想象
    历史观察.追加(观察)
return 最终答案
最关键的一行是"真实执行"。聊天机器人可以流畅地说"我帮你算好了,结果是 20 Hz"; Agent 的 20 Hz 必须来自刚才那次代码运行——它无法绕过现实。
对比项聊天机器人Agent
交互次数一问一答自主多步,可能几十轮
能否影响外部世界不能,只输出文字能:读写文件、调 API、操作数据库
是否依据真实结果不依据依赖每次工具返回
出错方式说得不准确可能真的做了错事(所以需要 Rule 和权限)
给用户的感觉很强的搜索/写作助手像一个能替你跑腿的实习生

自主性分级(越高越省心,也越危险):

  1. L0 纯问答——不给工具,只聊天
  2. L1 单步工具——查一次天气就回答
  3. L2 多步循环——自己决定查几次、查什么
  4. L3 长时任务——自己规划、自己修正、跨小时甚至跨天
  5. L4 自主运营——自己发现目标、自己触发自己(现实中通常要加人工审批)

6Harness:同一个模型,为什么表现天差地别

运行外壳 / 脚手架 / 编排框架 · 也常被叫 agent framework、scaffolding

它是什么:包在模型外面的一整套工程代码——模型自己完全不负责这些事,全靠 Harness 干:

上下文管理

决定每一轮往模型里塞什么、丢掉什么、超长时怎么压缩摘要。

工具执行

把模型输出的"我想调用某函数"翻译成真实调用,再把结果塞回去。

循环控制

什么时候继续、什么时候停、最大步数、超时、防止原地打转。

错误处理

报错重试、格式纠正、参数校验、模型跑偏时拉回来。

安全与沙箱

限制能碰哪些文件、能连哪些网、能不能删东西、要不要人工确认。

可观测性

日志、每一步的输入输出、花费与延迟统计、方便调试和审计。

核心类比

模型是发动机,Harness 是底盘、变速箱、方向盘和刹车。 同一台发动机装进不同的车,一台能上赛道、一台只能原地轰油门。 这也解释了为什么"换了个壳"有时比"换了个模型"提升还大。

你熟悉的产品它其实是一个 Harness
Claude Code、Codex CLI 之类的命令行智能体把模型接到终端、文件系统和 Git 上
IDE 里的 AI 编程插件把模型接到编辑器、索引和 diff 上
企业内部知识助手把模型接到检索库、权限体系和工单系统上
某云厂商的"智能体平台"可拖拽配置的通用 Harness
一句话记忆:模型决定"能说得多好",Harness 决定"能不能真的把活干成"。

7Tool 与函数调用:它其实没有手

Tool · Function Calling · 工具调用

最常见的误解:"模型会执行代码"。不会。 模型唯一能做的事是输出文字。所谓的函数调用,是它输出一段结构化的文字说 "我建议调用 run_python,参数是这些",然后由 Harness 里的代码真正去执行。

模型输出(本质仍是文本):
{
  "tool": "run_python",
  "args": { "code": "print(welch_peak(signal))" }
}

Harness 收到后:
  1. 校验参数是否合法、是否越权
  2. 在沙箱里真的运行
  3. 把结果 "峰值 1400 Hz" 作为新消息塞回模型
  4. 模型基于这个真实结果继续

由此可以理解安全工作为什么必须做在 Harness 层:权限、白名单、沙箱、人工确认,都是拦在"执行"之前的闸门——因为模型那一边是拦不住的。

常见工具类型:代码执行(Python/Bash)、文件读写、网页搜索、数据库查询、HTTP 请求、发邮件、操作系统/机器人控制、图像生成。

8Skill 技能:打包好的"做事方法"

Skill / Capability Pack · 也有人叫技能包、插件、能力

它是什么:把某类任务的做法打包成一个可复用的单元——通常包含 一段说明(什么时候用、怎么用) + 配套脚本或模板 + 校验规则。 模型需要时才加载,用完即走。

类比

Tool 是单个工具(一把扳手);Skill 是岗位技能手册 ("怎么换刹车片"的整段流程,会用到扳手、千斤顶、扭力扳手三种工具,还写了安全步骤和验收标准)。

维度ToolSkill
粒度原子能力,一个函数一套流程,可能调用多个工具
内容是接口定义 + 执行代码知识 + 步骤 + 模板 + 脚本
谁决定使用模型逐次选择由主流程按任务类型加载
典型例子读文件、发请求、跑 Python"生成周报""做信号频谱诊断""审阅合同"
为什么要 Skill:把"专家经验"固化成文档,就能让模型少犯错、让不同人得到一致的结果, 并且改动知识不必动底层代码。这也是"AI 怎么落地到专业领域"的主要抓手。

9Rule 规则:约束与边界

Rules · Guardrails · 护栏 · 策略 Policy

它是什么:规定"必须怎么做、绝对不能怎么做"。初学者最容易忽略的一点是: 规则分软硬两种,可靠性完全不同。

类型实现方式可靠性例子
软规则写进系统提示或技能说明,靠模型自觉遵守高但非 100%,可能被绕过先给结论再解释;不确定要声明;用简体中文回答
硬规则代码层拦截:正则校验、权限校验、白名单、拦截器确定生效禁止删除生产库;金额超限需人工审批;输出必须能通过 JSON 校验

常见规则示例:

一句话记忆:Rule 就是给自主性装上刹车和护栏——能力越强,规则越重要。

10Memory 与 RAG:记忆和查资料

模型本身两样都没有,都是外部补上的

短期记忆

就是当前上下文窗口里的对话。会话结束即消失,本质是"临时便签"。

长期记忆

存到数据库或文件里,跨会话可取回。关键是要主动写入,并且要能判断什么值得记、旧信息要能更新删除。

RAG 检索增强

先把你的文档切片、向量化入库;提问时先检索最相关的几段塞进上下文,再让模型回答。缓解幻觉与知识过期的首选方案。

微调 Fine-tuning

用你的数据继续训练模型本身,把知识或风格"焊进"参数。适合稳定的风格与能力,不适合频繁变动的知识。

想要什么更合适的做法
让模型知道最新/私有资料RAG 检索
让模型记住用户的偏好长期记忆存储
让模型固定某种风格或稳定输出格式提示词 + 少量示例,必要时微调
让模型能做某件具体的事给工具(Tool)/ 给技能(Skill)

11MCP:统一的插座

Model Context Protocol · 模型上下文协议

解决的问题:以前每接一个新工具,都要为每个模型、每个产品各写一套适配代码,组合爆炸。 MCP 定义了一套通用协议,让"工具/数据源"按标准暴露自己,任何支持 MCP 的 Harness 都能即插即用。

类比

在 USB-C 出现之前,每台设备都有自己的充电口。MCP 就是 AI 工具世界的 USB-C: 工具方只需实现一次,所有客户端都能连。它管的是"怎么把外部能力接进来",不负责替你思考。

提供能力的一侧

MCP Server:把某数据库、某文件目录、某 SaaS 的能力按协议暴露出来。

使用能力的一侧

MCP Client:Harness 里的一段代码,发现并调用这些能力,交给模型使用。

传输方式

本地进程或远程 HTTP 均可,权限和凭据由客户端统一管理。

12一次请求的完整旅程

把前面所有概念串起来看一遍

  1. 用户在应用里输入:"帮我看看这台减速机的频谱有没有异常。"
  2. Harness 组装输入:System Prompt(身份 + Rule) + 可用工具与技能清单 + 历史记忆 + 相关文档(RAG) + 用户问题。
  3. 请求发给大模型,它输出:"我需要先读取数据并计算频谱。"
  4. Harness 解析出要调用 run_python,先做权限与参数校验(Rule),再在沙箱里真的执行。
  5. 拿到真实结果(例如几个峰值频率)作为 Observation 塞回模型。
  6. 模型判断还不够,继续调用工具查特征频率表——循环第 3~5 步若干轮。
  7. 模型认为证据充分,按 Skill 里规定的格式输出结论,并声明不确定的部分。
  8. Harness 做输出校验、记录日志与花费,必要时把本次结论写进长期记忆。
  9. 结果返回给用户。整个过程中,可以清楚看到:模型负责判断,Harness 负责执行与约束。

13常见误区

点开看答案

模型有记忆吗?

默认没有。每次调用都是"从零开始",它看到的只有这次被塞进来的文字。所谓"记得你",是 Harness 把历史对话或长期记忆存下来、每次重新发一遍。

模型能上网、能查数据库吗?

默认不能。它只能靠训练时"压进"参数里的旧知识。要联网必须给它搜索或抓取工具,要查库必须给它数据库工具。

模型会执行代码吗?

不会。它只会输出"建议调用某个函数"的文本。真正执行的是 Harness,这也是安全闸门唯一能生效的地方。

Agent 就是更强的聊天机器人?

不是。差别在结构:Agent 有工具、循环、真实反馈。一个中等模型配好 Harness,往往比顶级模型只做聊天更能完成任务。

上下文塞得越多越好?

不是。无关内容会稀释注意力、增加成本与延迟,长上下文中间部分还容易被忽略。更好的做法是精准检索 + 定期摘要压缩。

模型说的频率/数字可信吗?

语言流畅不等于算术正确。凡是数字、计算、时序推导,都应该交给工具算,并保留可复算的过程。

为什么同一个模型在不同产品里差这么多?

因为 Harness 不同:上下文怎么组织、工具给多少、规则怎么设、错误怎么兜。这些都发生在模型之外。

Skill 和 Tool 一定要区分吗?

概念上区分很有用:Tool 是原子动作,Skill 是可复用的做事流程(含知识与验收标准)。工程上常见做法是把 Skill 当成"按需加载的一段说明 + 若干脚本",脚本再调用底层 Tool。

14术语速查表

中英对照,方便看英文文档

英文中文一句话
LLM / Foundation Model大模型 / 基础模型预测下一个 token 的超大神经网络
Token词元文本的最小切分单位,计费按它算
Context Window上下文窗口一次能同时看到的内容上限
Prompt提示词你输入的全部内容
System Prompt系统提示开发者预设的身份与规矩
Hallucination幻觉自信地编造看似合理的内容
Agent智能体模型 + 工具 + 循环 + 反馈,能自主完成任务
Harness / Scaffolding运行外壳 / 脚手架包在模型外的工程框架,负责执行与约束
Tool / Function Calling工具 / 函数调用模型输出调用意图,由外部真正执行
Skill / Capability技能 / 能力包打包好的做事流程与知识
Rule / Guardrail规则 / 护栏约束与边界,分软硬两类
Memory记忆跨会话保留信息的外部存储
RAG检索增强生成先查资料再回答
Fine-tuning微调用你的数据继续训练模型本身
RLHF人类反馈强化学习让模型更听话、更有用的对齐手段
MCP模型上下文协议工具接入的统一标准接口
Orchestration编排决定多步任务怎么走、谁先谁后
Sandbox沙箱隔离执行环境,防止误伤真实系统
最后再回顾一遍:模型是大脑(只会说),Harness 是身体与制度(负责做与拦), Agent 是会自己干活的员工(思考—行动—观察循环), Tool 是工具间,Skill 是技能手册,Rule 是员工守则,Memory 是档案柜,RAG 是图书馆,MCP 是统一插座。