一句话定位

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(大脑)    |
    | 截止日前  |        |     |  |  |      |
    |    |      |        | 工具 检索 反馈    |
    | 只能猜    |        |  ---&gt; 真实世界 &lt;--  |
    +----------+        +------------------+
       ^                      ^
    static                dynamic
    单次                  无限次交互
    无反馈                有反馈飞轮

左边活在过去,右边活在现在。


// 能调 API 的 AI 和只能写文字回复的 AI,差距会越来越大。