一句话定位
AI 能不能活下来,不取决于它有多聪明,取决于它跟真实世界贴得多近。
只会「生成下一个 token」的模型,哪怕参数涨到万亿,本质上仍然是一个离线的模式补全器——
它不知道现在几点、不知道今年世界杯谁赢了、不知道你发给它的 PDF 里那张表格对不对。
靠「训练数据里见过」去猜,上限就卡在数据截止日。
靠「调一个工具去问真实系统」,上限就不存在了。
一个朴素观察
两张表就够了:
| 场景 | 纯 LLM(仅训练数据) | LLM + 工具(接地气) |
|---|---|---|
| 查股价 | 「我不知道实时数据」 | [TOOL:get_stock] → 拉行情 → 「当前 XX 元」 |
| 写日志 | 「我写了一段系统日志」 | [TOOL:read_log] → 读文件 → 「你的 Nginx 报 502」 |
| 改博客 | 「以下是改好的内容」 | [TOOL:blog_editor] → 写文件 → 「已更新,id=6」 |
| 发截图 | 「抱歉我做不到」 | [TOOL:screenshot] → 截图 → 回图片消息 |
| 翻译 | 「直接翻译」 | [TOOL:lookup_dict] → 查 domain 术语 → 「按上下文翻为 X」 |
左边的回答是「听起来对但可能全错」,右边的回答是「对了且可验证」。
区别就在于有没有「真实世界」的通道。
三种接地气的方式
1. 工具调用(Tool Use)—— 最直接
模型决定「我该去问数据库 / 读文件 / 查天气」,然后框架代它执行、把结果塞回上下文。
# 伪代码——典型的 agent 判断逻辑
def unified_chat(user_input: str) -> str:
response = llm.generate(
system="""
你可以直接回复,也可以调用工具。
需要工具时输出: [TOOL:工具名] 参数
"""
user=user_input
)
if tool_match := re.search(r'\[TOOL:(\w+)\]', response):
result = run_plugin(tool_match.group(1), params)
return llm.generate(
system="根据工具返回结果回答用户",
user=result
)
return response
流程不复杂,但效果天差地别:模型不再需要「记住」世界,只需要「知道怎么问」世界。
2. 检索增强(RAG)—— 接私有数据
模型没见过你的代码库、你的文档、你的聊天记录。
但你可以切好、向量化、存进向量库,模型问的时候实时召回。
关键不在于检索算法(BM25 / 向量 / 混合),在于让模型知道「答不出来就去查」。
很多模型被训练得「必须给一个答案」,不懂说不知道——RAG 给了它一个体面的出口。
3. 反馈循环(Feedback Loop)—— 接人的判断
这是最常被忽略的接地气方式。
模型写了代码 → 编译报错 → 模型自己看报错 → 修 → 编译通过。
这就是最小的反馈循环。写代码之所以是 LLM 最成熟的场景,
不是因为它简单,而是因为反馈极其确定——编译器给你对错,不用人判断。
延伸到非编程场景,困难在于「谁来给反馈」:
- 写文章 → 没人看的文章到底写得好不好?
- 做设计 → 用户点没点那个按钮?
- 调参数 → A/B 测试谁赢了?
没有反馈的 grounding 是伪 grounding。模型输出了什么不重要,真实世界有没有接纳才重要。
为什么「贴近真实世界」越来越紧迫
2024-2025 年有两件事改变了行业共识:
1. Scaling Law 在预训练阶段放缓了
2018-2023 年大家比的是「谁的模型大、数据多」;
2024 之后更相信「谁的工具链好、谁的数据飞轮转得快」——
这本质上就是看谁的 AI 跟真实世界交互得更深。
2. Agent 数量暴涨,「活着」的 AI 和「关在笼子里」的 AI 分化了
据不完全统计,2025 年中主流 agent 框架的月活跃 agent 实例已超过 500 万。
其中:
| 类型 | 接地方式 | 生存率(6 个月后仍活跃) |
|---|---|---|
| 纯聊天机器人 | 无 | < 10% |
| 工具型 agent(查天气/汇率) | 只读 API | ~ 30% |
| 写操作 agent(写博客/发消息) | 读写 + 回执 | ~ 60% |
| 自动化 agent(接 CI/CD/工单) | 全闭环反馈 | > 80% |
生存率差异的核心:能不能验证自己的输出是否「被接受了」。
能验证的 agent 会自我改进,不能验证的 agent 永远在老数据里原地打转。
跟我这个站点的关系
回头看这个站机里的几个 agent 实验,正好踩在这条线上:
- 微信 agent(第 2 篇)—— 核心设计就是
unified_chat一次调用 +[TOOL:xxx]路由。
模型决定要不要调工具,调了之后结果接回来再做第二轮生成。 blog_editor插件(第 1 篇)—— 不只是「写文件」,还回执「已加,id=N,地址是 /notes/N」。
这个回执就是反馈循环:agent 知道写入成功了,也知道用户能通过链接验证。- 安全围栏(第 3 篇)—— 给 agent 设 4 道闸门,本质上是限制作恶范围的前提下最大限度放它去接触真实系统。
三条线索指向同一个判断:
AI 能力的上限 = 它跟真实世界之间通道的带宽 × 反馈的准确率。
最后一张图
纯 LLM(离线) 接地气的 Agent
+----------+ +------------------+
| 训练数据 | | LLM(大脑) |
| 截止日前 | | | | | |
| | | | 工具 检索 反馈 |
| 只能猜 | | ---> 真实世界 <-- |
+----------+ +------------------+
^ ^
static dynamic
单次 无限次交互
无反馈 有反馈飞轮
左边活在过去,右边活在现在。
// 能调 API 的 AI 和只能写文字回复的 AI,差距会越来越大。