最近用 AI 编程工具越来越多,脑子里一直有个问题:Claude Code、Cursor、Codex,底下跑的都是 Claude 或 GPT,为什么体验差别这么大?
花时间理了一下,核心就一句话:AI 干活的效果 = 模型能力 × Agent 工程水平。
这两件事,行业术语分别叫 LLM 和 Agent。这篇笔记把它们之间的关系和常见术语整理清楚。
LLM:一个特别会接话的概率机器
LLM = Large Language Model,大语言模型
- 核心原理:给一段已有文字,预测下一个字(token)最可能出现什么
- 输入”今天北京天气” → 模型算出下一个字最可能是”怎” → 输出后拼上去 → 继续猜下一个字 → 如此反复,拼成完整回答
- ChatGPT 里一个字一个字出现,不是特效,真的是一个字一个字”猜”出来的
- 为什么猜得准? 规模效应。几百亿上千亿参数,啃过互联网几乎所有文本,”猜”就猜得惊人地准
- 但它并不真的”懂”,只是高级版的模式匹配
- 类比:老中医背了几万份病历,看到症状八九不离十能开方——靠的不是理解人体底层原理,是见过足够多案例
两个关键参数
- 温度(Temperature):控制输出的随机程度
- 温度低 → 每次挑概率最大的字 → 稳但死板(写代码用)
- 温度高 → 偶尔选冷门字 → 有创意但可能跑偏(写文案用)
- 上下文窗口(Context Window):模型每次回答时能看到的全部文字
- 包括:你的问题 + 历史对话 + 系统设定,全部拼在一起
- 目前主流 200k ~ 1M token(几十万字),听起来大,Agent 场景消耗飞快
- 关于”记忆”的误解:模型不是”记住”了你的话,而是每次回答都把整个上下文重新看一遍
- 聊太长、早期内容被挤出窗口 → 它就”失忆”了
- 最佳实践:一个会话只聚焦一个问题,新问题开新会话
补充:Base 模型 vs Instruct 模型
- Base 模型:纯概率预测,输入”中国的首都是” → 它接着写”北京,位于华北平原……”(在做文本补全)
- Instruct 模型:经过指令微调 + RLHF,输入”中国的首都是” → 它回答”中国的首都是北京”(在回答问题)
- 我们日常用的 ChatGPT、Claude 全是 Instruct 模型
- PS:开源模型通常发布两个版本,如 Qwen2.5-7B(Base)和 Qwen2.5-7B-Instruct
补充:思维链(Chain of Thought)
- 现象:让模型先写出推理过程再给答案,比直接猜答案准确率高很多
- 例子:问”3个苹果买5个吃2个剩几个”,直接蹦数字可能错,先写”3+5=8, 8-2=6”就准了
- 本质:每一步中间结果都成了后续推理的输入,相当于给自己打草稿
- 推理模型:o1/o3、DeepSeek R1、Claude extended thinking 等,进一步做到”自我反思”——先给答案,再回头检查
- 新趋势(2025下半年起):单一模型 + 思考强度参数,通过一个参数控制”想多久”
- 以前复杂任务要单独调推理模型,现在一套代码就够了
LLM vs Agent:厨师和餐厅
这是最困扰我的问题,搞明白 LLM 原理后就有答案了。
- LLM 的局限:它只是一个”非常聪明但只会说话的大脑”,没有钟不知道几点,没有手查不了数据库
- Agent 的定义:给 LLM 装上手脚(工具),再放进一个循环里反复干活——这一整套工程就叫 Agent
- 类比:
- LLM = 厨师(核心能力)
- Agent = 餐厅(厨房 + 食材库 + 菜品流程卡 + 品控)
- 同一个厨师,不同餐厅,出餐品质当然不一样 → Claude Code 用着舒服,不光是模型强,工程也到位
- 同一间餐厅,不同厨师,出品也不一样 → 给 Claude Code 接弱模型,照样拉胯
Agent 内部在干什么?
核心循环:想 → 做 → 看
1 | 接到任务,开始循环: |
- 每轮三件事:想(推理)→ 做(调工具)→ 看(观察结果)
- 学术上叫 ReAct(Reasoning + Acting),说白了就是人类解决问题的方式
- 实际场景举例——“帮我找到登录接口的 bug”:
- 搜索登录相关文件
- 读代码看逻辑
- 发现可疑,读依赖文件确认
- 定位 bug,改代码
- 跑测试,确认修复
- 副作用:每轮工具调用结果都追加到上下文 → 上下文不断增长 → 窗口撑满就”失忆”
工具调用:模型怎么”动手”的?
- 模型本身只输出文字,它”调用工具”的方式是:输出一段文字,告诉程序想调哪个工具、传什么参数
- 程序拿到这段文字去执行,再把结果塞回上下文 → 全是文本在上下文里传来传去,没有魔法
- 关键能力:指令遵从——模型能不能老实输出合法 JSON,不夹带废话
- 早期 GPT-3.5 经常在 JSON 前面来一句”好的,下面是结果”,程序直接崩
- 现在的模型在这方面靠谱多了
MCP:工具的”普通话”
- 问题:各家模型厂商定义工具的格式不一样,同一个工具在 OpenAI 和 Anthropic 那里写法完全不同
- 类比:简历去 A 公司要 Word,B 公司要 PDF,C 公司要纯文本——内容一样,光格式转换烦死人
- MCP(Model Context Protocol):统一标准,写一次工具,所有支持 MCP 的 AI 工具都能用
- 目前已是行业事实标准
- 注意:MCP 没引入新能力,只是把接口标准化了,底层还是 Tool Use
更高级的能力
Agent 有了模型和工具,基本能干活了。但要在真实场景里靠谱跑起来,还需要几样东西。
Skills:给 Agent 准备 SOP
- 定义:把操作流程文档化,交给 Agent 照着执行
- 类比:与其让新实习生自己琢磨怎么发版,不如甩给他一份发版文档照着来
- 巧妙设计:启动时只加载每个 Skill 的名字和一句话描述,需要用时再加载完整内容 → 省 token
RAG:让 Agent 翻你的内部资料
- 问题:模型只学过公开数据,问它”我们项目数据库怎么配的”,它答不上来
- RAG(检索增强生成):内部文档编码成语义向量存起来 → 用户提问时搜相关文档片段 → 塞进上下文 → 模型基于你的资料回答
- 关键词搜索搞不定同义词(”忘记密码” vs “账号找回”),语义向量能搞定
记忆系统:别让 Agent 每次失忆
- 问题:新会话上下文全空,之前积累的偏好、踩过的坑全忘了
- Auto Memory:对话后自动把有价值的信息沉淀到文件,下次新会话启动时自动加载
- 体感:这工具越用越懂我
Harness:给 Agent 上保险
- 问题:LLM 是概率模型,一定概率出错。长任务里上下文反复压缩,早期约束可能悄悄消失
- Harness 工程:给 Agent 套确定性的兜底机制
- 事前约束:程序层面强制,比如”没读过的文件不许改”——不靠模型自觉
- 事后反馈:改完代码自动跑测试,挂了把报错塞回上下文让它自己修
- 核心原则:能用程序检查的事,别靠模型判断
一句话串起来
回头看,所有这些概念有一个共同点。
不管是思维链、工具调用、Agent 循环、MCP、Skills、RAG 还是记忆——全部都是文本,全部塞在上下文窗口里,交给同一个概率模型处理。
- 模型能力是天花板
- 上下文里塞什么、怎么塞、塞多少,决定了你离天花板有多近
- 这就是为什么同一个模型,不同 Agent 工具效果差那么多
随着模型越来越强,围绕模型做工程优化的价值也会水涨船高。这不光是厂商的事——怎么写好 Skills、怎么管好上下文、怎么让 token 花在刀刃上——这些都是我们每个 AI 指挥师可以着手的方向。