✦AI 使用分享 · 内部技术分享
OPENING

AI 使用分享

从「猜下一个字」开始,解析 AI 内部原理,了解 Agent 对话过程

> predicting next token: ▍

产品 · 技术 · 设计 内部分享  /  30 MIN

✦AI 使用分享 · 内部技术分享
AGENDA

目录

/ CONTENTS
/01 大模型在做什么 1.1 – 1.4
/02 一次 Agent 对话,中间跑了七步 2.1 – 2.7
/03 五件装备:MCP · Skill · 记忆 · RAG · 钩子 3.1 – 3.9
/04 主流工具横评 4.1 – 4.2

Q: 今天杭州天气怎么样? → A: tool_call × 1 · 六步 · 杭州今日晴,18–26℃

✦AI 使用分享 · 内部技术分享
CHAPTER 01 / LLM 基本原理

大模型
在做什么

LLM PREDICTION TRANSFORMER VECTOR KV CACHE
✦AI 使用分享 · 内部技术分享
PART 01 / 文本预测 1.1

它其实只做一件事:猜下一个字

给它一段开头,它在整本词表上算一遍概率,

挑概率最高的那个字接上去——然后重复。

仅此而已,没有别的魔法。

VOCAB · 词表上的概率分布(示意)— 挑 argmax

给同一个开头,每个候选字都有一个概率 → 取最高的接上去

✦AI 使用分享 · 内部技术分享
PART 01 / 文本预测 · 第一回合 1.2 ROUND 1 / 3

第一回合:给它「JAVA 是世界上最」

JAVA 是世界上最流行
流行
0%
好
0%
快
0%

取概率最高的 → 接上「流行」

✦AI 使用分享 · 内部技术分享
PART 01 / 文本预测 · 第二回合 1.2 ROUND 2 / 3

第二回合:接上「流行」继续猜

JAVA 是世界上最流行的
的
0%
度
0%

取概率最高的 → 接上「的」

✦AI 使用分享 · 内部技术分享
PART 01 / 文本预测 · 第三回合 1.2 ROUND 3 / 3

第三回合:再接上「的」,继续猜

JAVA 是世界上最流行的语言
语言
0%
算法
0%
食物
0%

取概率最高的 → 接上「语言」

✦AI 使用分享 · 内部技术分享
PART 01 / 文本预测 · 拼出来了 1.2

三回合接龙,一句话就出来了

JAVA 是世界上最流行的语言

① 最 → 流行 ② 流行 → 的 ③ 的 → 语言
它不懂 JAVA,它只是把概率最高的字一个一个接下去——
每个新字都以前面所有字为条件。
✦AI 使用分享 · 内部技术分享
PART 01 / 向量与相似度 1.3

每个字,在模型眼里是一串数字,代表语义

番茄 [ 0.82  -0.14  0.36  0.71  … ]
西红柿 [ 0.79  -0.11  0.41  0.68  … ]
芹菜 [ -0.31  0.66  -0.72  0.05  … ]
cos(θ) = (A·B) / (|A|·|B|) 夹角越小 → 值越接近 1 → 越相近

真实模型里每个 token 是 768–4096 维的向量。它不查字典,它算「离谁最近」。

✦AI 使用分享 · 内部技术分享
PART 01 / Transformer 多层 × KV 缓存 1.3

猜一个字,其实要过几十层

Transformer 内部不是一步算完的,而是 L01 → L24 一层一层往上算,每一层都在加工上一层的结果。

这些历史字的层间计算结果已经存进 KV 缓存——不用重算。

新字「流行」来了,只算自己这一步:光带逐层点亮,站在缓存的肩膀上。

⚡ KV = 已缓存,不用重算 光柱 = 这个字逐层激活 层 = L01 → L24

每多接一个字,整叠层都要为它跑一遍——但前面的字不用重算。

✦AI 使用分享 · 内部技术分享
PART 01 / KV 缓存 1.4

KV 缓存:把算过的记下来,别重算

/01 · 没有 KV 缓存

从头再算一遍

每生成一个新字,前面所有字的所有层都从头再算一遍。字越多越慢,越写越卡。

O(n²)
/02 · 有 KV 缓存

算过的记下来

把前面字已经算出的中间结果(K、V)存起来,新字只需算自己这一步。

O(n)

字越多越慢,越写越卡 → 每个新字成本恒定。

✦AI 使用分享 · 内部技术分享
CHAPTER 02 / 一次 Agent 对话

一次 Agent 对话,
中间跑了七步

AGENT SEVEN STEPS TOOL CALL CONTEXT WINDOW
✦AI 使用分享 · 内部技术分享
PART 02 / STEP 01 2.1 STEP 01 / 06

请求预处理:把话说清楚

用户输入 「今天杭州天气怎么样?」
CLIENT · 预处理 「请告诉我杭州今天的天气情况。」
清洗文本 补全指代 补充上下文 口语整理成清晰完整的描述

这一步不做意图判断、也不决定用不用工具——它只负责「把话说清楚」,让模型更容易读懂。判断交给下一步的模型。

✦AI 使用分享 · 内部技术分享
PART 02 / STEP 02 2.2 STEP 02 / 06

组装提示词:五段文本拼起来

01 角色 system 「你是一个聪明的智能助手,回答简洁、准确、有出处的。」
02 工具 tools[] 「你可以使用 curl 网络查询工具,执行 GET / POST 请求。」
03 技能 skill: weather 「天气查询:可以从百度、中国天气网等渠道查询指定城市天气。」
04 历史 history[] 「user: 我刚从南京出差出来 / assistant: 什么时候来的南京呢?」
05 当前问题 user 「今天 杭州天气」
✦AI 使用分享 · 内部技术分享
PART 02 / STEP 03 2.3 STEP 03 / 06

调用大模型:它决定用工具

模型读完五段提示词,决定不直接回答,而是返回:

tool_call: curl
args: { url: "https://www.weather.com.cn/hangzhou" }

模型自己不会联网——它只能「请求」外面的世界帮它查。这个请求就是 tool_call。

✦AI 使用分享 · 内部技术分享
PART 02 / STEP 04 2.4 STEP 04 / 06

执行工具:客户端去查天气

客户端执行 curl,请求中国天气网:

HTTP/1.1 200 OK
{ "city": "杭州", "weather": "晴",
  "temp": "18-26℃", "wind": "西北风2级" }

user → assistant(tool_call) → tool(结果) = history 3 条 · 下次对话直接带上

执行完立刻回填:结果作为一条 tool 消息追加进 history。这一步仍然完全发生在模型之外。

✦AI 使用分享 · 内部技术分享
PART 02 / STEP 05 2.5 STEP 05 / 06

再次调用:够了吗?够了就出答案

信息够了吗?→ 够了,生成最终回答
还不够呢?→ 继续发起下一个 tool_call
什么时候停?→ 模型认为够了 / 达到调用次数上限
杭州今日晴,18–26℃,西北风 2 级。
✦AI 使用分享 · 内部技术分享
PART 02 / STEP 06 2.6 STEP 06 / 06

输出并落库

① 渲染 把最终回答渲染给用户
② 持久化 把上面 4 条消息全部存下来

存下来的消息就是以后的聊天记录——下次对话直接在这些消息后面接着追加。

✓ 4 条消息全部存入历史记录
✦AI 使用分享 · 内部技术分享
PART 02 / CONTEXT 2.7

回顾聊天过程

01 · 请求预处理 把话说清楚 口语整理成清晰完整的描述,不做意图判断。
02 · 系统提示词 打包提问 角色 / 工具 / 技能 / 历史一起交给模型,问它怎么办。
03 · 调用大模型 模型判断 读完全部内容,决定「直接回答」还是「调用工具」。
04 · 执行工具 客户端执行 真正去跑命令、调接口、读文件——模型只给参数。
05 · 输出答案 给用户看 最终回答渲染出来,同时 4 条消息全部存进聊天记录。

以上五步 = 一次完整对话。为了让这五步能干更多事,工程上把它拆成了五件装备:

MCP 让模型能调用外部工具——查天气、读数据库、发消息
Skill 把一套做法写成说明书,模型照着执行——比如怎么做出汇报页
记忆 长期记住你的偏好和习惯,跨对话保留下来
RAG 先检索你的资料,再把最相关的片段交给模型
钩子 挂在步骤之间,拦截、修改、放行——不进入提示词
✦AI 使用分享 · 内部技术分享
CHAPTER 03 / EXTENSIONS

五件装备
逐个看

MCP SKILL MEMORY RAG HOOKS
✦AI 使用分享 · 内部技术分享
PART 03 / MCP 3.1

MCP 是什么:工具的统一接口

MCP(Model Context Protocol):把「能调用的工具」按统一协议暴露给模型。

接一次,所有支持该协议的客户端都能用——模型看到的只是一份工具清单。

CLIENT

客户端 / 应用

IDE、Agent、聊天客户端……按协议列出可用工具。

PROTOCOL

MCP Server

把能力包装成标准化的 tools / resources / prompts 三类接口。

CAPABILITY

真实能力

数据库、浏览器、GitHub、本地文件……模型不需要知道细节。

模型看到的只是一份工具清单。

✦AI 使用分享 · 内部技术分享
PART 03 / MCP 3.2

MCP 解决什么:N×M 变 N+M

BEFORE · 没有协议 N × M 次开发
AFTER · 有了 MCP N + M 次开发
initialize ① 对接 客户端与 Server 握手,协商协议版本,建立连接。
tools/list ② 查询 拿到可用工具清单——模型看到的「一份工具清单」就是它。
tools/call ③ 使用 模型发起 tool_call,客户端带参数调用,拿回结果回填。

重复劳动,格式还不统一 → 各写一次,即插即用。

✦AI 使用分享 · 内部技术分享
PART 03 / SKILL 3.3

Skill 是什么:领域操作手册

Skill:一份写给模型看的「操作手册」,教它某个领域怎么做。

MCP 告诉模型「有哪些工具」,Skill 告诉模型「怎么用好这些工具」——清单和说明书的关系。

MCP

「你有一把锤子」

静态的工具清单,随提示词一起发给模型,模型自己决定用不用。

SKILL

「钉钉子要先扶正再敲」

按需加载的经验和方法论,命中场景才展开,不占常驻上下文。

SKILL.md · 周报生成(真实片段示例) --- name: weekly-report description: 生成团队周报;用户要写周报 / 汇总本周时使用 --- # 周报生成 ## 步骤(命中才展开) 1. 读取本周 git log 与任务看板 2. 按「进展 / 数据 / 风险」三段组织 3. 语气客观,不堆形容词 ## 参考(用到才读) templates/weekly.md · reports/2026-W42.md
元数据 · 常驻上下文 正文指令 · 命中才展开 参考资源 · 用到才读

命中场景才展开,不占常驻上下文。

✦AI 使用分享 · 内部技术分享
PART 03 / SKILL 3.4

Skill 的四要素

/01 元数据 名字 + 一句话描述。模型靠它判断「这个场景该不该用我」——常驻上下文的只有这一行。
/02 正文指令 SKILL.md 的核心内容:流程、规则、注意事项,命中后才展开进上下文。
/03 参考资源 模板、示例、大文件,用到才读。相当于「说明书背后的附录」。
/04 可执行脚本 确定性操作交给代码跑,模型只负责调用。比让它「想」一遍更快更稳。

对应左边 SKILL.md 片段:frontmatter / 正文 / 参考,第四要素是配套脚本。

✦AI 使用分享 · 内部技术分享
PART 03 / MEMORY 3.5

记忆:就是一个能读写的文件

所谓「记忆」,没有魔法:就是一块模型可以读写的外部文件(通常是 markdown)。真实案例如 openclaw——整个「人格 + 记忆」就是 workspace 里几个 markdown 文件。

📁 ~/openclaw/workspace/ —— 角色定义就是几个 markdown 文件

SOUL.md 我是谁:语气、原则、行为底线——openclaw 的人格定义就在这里
USER.md 老板是谁:时区、称呼、偏好与习惯
MEMORY.md 长期记忆:跨对话追加的事实,越用越懂你

↑ 每轮对话开场,自动读一遍塞进提示词——它就「记得」你了

MEMORY.md(追加式,越写越长) ## 老板 - 时区 Asia/Shanghai,早上 10 点前别 @ 我 - 讨论先给结论,再给依据 ## 项目 - 周报固定周五 17:00 发 - 演示页用深色科技风 <-- 每轮对话可能追加新行 -->

跨会话持久;而 history[] 只在当前对话内有效——这是两者的本质区别。

✦AI 使用分享 · 内部技术分享
PART 03 / RAG 3.6

RAG:先检索,再回答

离线 · 建索引做一次
①切块 — 文档切成小段,每段几百字。
②向量化 — 每段算出一个向量,代表语义。
③入库 — 向量连同原文存进向量库。
在线 · 检索回答每轮
④问题也向量化 — 转成同一个语义空间。
⑤找最近的几段 — 余弦相似度取 Top-K。
⑥拼进提示词 — 模型只负责阅读和总结。
✦AI 使用分享 · 内部技术分享
PART 03 / RAG 3.7

为什么不用传统数据库检索?

传统数据库 · B-TREE / 倒排索引

只能「精确匹配」

WHERE city = '杭州'、关键词倒排——都是字面上的相等或包含。问「便宜的笔记本」,它找不到「高性价比 laptop」,因为字面完全不同。

字面匹配 ≠ 语义匹配
向量库 · 余弦相似度

按「意思」找最近邻

问题和文档在同一个语义空间里。意思接近 → 向量夹角小 → 相似度高。换个说法也能命中,这正是 RAG 需要的。

语义检索 = 意思相近就命中

换个说法也能命中,这正是 RAG 需要的。

✦AI 使用分享 · 内部技术分享
PART 03 / HOOKS 3.8

钩子:挂在流程之间的检查点

钩子(Hooks):在固定环节前后自动触发的拦截器,可以拦下、改写或放行。业务流程不动,把控制逻辑挂在旁边——和 AOP 切面、前端中间件同一思想。

UserPromptSubmit 用户输入时:注入项目约定、敏感词过滤、自动补充上下文。
PreToolUse 工具执行前:危险命令(rm -rf、生产库写操作)直接拦下,先让人确认。
PostToolUse 工具执行后:自动跑 lint / 格式化 / 记录日志,结果回填前统一处理。
Stop / SessionEnd 会话收尾:自动写记忆、汇总变更、通知 CI。
✦AI 使用分享 · 内部技术分享
PART 03 / SUMMARY 3.9

五件装备,各司其职

MCP 接入工具 把外部能力标准化地暴露给模型。
Skill 教它方法 领域经验按需加载,命中才展开。
记忆 跨会话记住 读写一个 markdown 文件而已。
RAG 外部知识 向量化检索,按语义找资料再回答。
钩子 流程护栏 在关键节点拦、改、放行。
它们的共同点:都只是「提示词工程」的不同形态。
MCP / Skill / 记忆 / RAG 最终都变成文本进入提示词;钩子则在外围控制文本怎么来。
记住这一点,新概念出现时就不会迷路。
✦AI 使用分享 · 内部技术分享
CHAPTER 04 / TOOLING

工具怎么选

COMPARISON WORKFLOW TAKEAWAYS
✦AI 使用分享 · 内部技术分享
PART 04 / TOOLS 4.1

主流 AI 编程工具对比

工具形态核心优势适合谁
Claude Code 终端 Agent MCP / Skill / 钩子生态最完整 工程 · 重度 Agent 流
Cursor IDE 编辑器内补全 + 对话改码,上手最快 产品 / 设计 · 日常开发
GitHub Copilot IDE 插件 与 GitHub / VS Code 深度绑定 已有 Copilot 订阅的团队
DeepSeek Harness Agent 运行时 国产开源模型,性价比高(deepseek.com/harness) 预算敏感 · 自托管需求
ZCODE IDE / Agent GLM 系,中文场景与国内合规更顺(zcode.z.ai) 国内合规要求高的团队
WorkBuddy 国产 · 设计办公 主打设计与办公场景,自带 PPT 画布,边生成边看,改起来直观 做方案 / 汇报 / 内部分享——比如这场分享会就是它做的

没有最好的工具,只有最合适的场景。

✦AI 使用分享 · 内部技术分享
PART 04 / TOOLS 4.2

按岗位选:我们团队怎么用

岗位 写代码 方案 · 汇报 · 文档
前端开发 ZCODE 首推;Claude Code / Cursor 顺手补全、对话改码 WorkBuddy 出可交互演示页,边生成边看
后端开发 ZCODE 首推;Claude Code 跑长任务、多工具编排 WorkBuddy 整理方案文档与汇报材料
产品经理 轻量改动用 Cursor:改文档、调原型,门槛最低 WorkBuddy 做汇报:自带画布,改起来直观
UI 设计 Cursor 走查改样式:能读懂仓库、能改代码 WorkBuddy 出视觉方案与演示,主打设计办公
原则 写代码:ZCODE → Claude Code → Cursor;方案 / 汇报 / 文档:交给 WorkBuddy 等办公软件。
工具会一直换,原理不会——掌握「提示词 → 工具 → 回填」这条链,换任何工具都只是换壳。
✦AI 使用分享 · 内部技术分享
CLOSING

原理不变,工具在变。

把「猜下一个字」和「提示词循环」记住,
新工具出现时你只需要一张说明书的时间。