创造一只龙虾,需要些什么? | Frost's Blog

Frost Ming's personal blog

frostming.com

本文探讨了如何复刻近期火爆的通用型 AI 智能体 OpenClaw(原名 ClawdBot),并分享了作者在基于 Bub 项目进行实践过程中,对于“AI Native(AI 原生)”概念的深度思考与范式转变。

作者将 AI 应用的发展划分为三个阶段:1.0 时代是传统的 Chatbot,每次对话仅对应一次模型推理;2.0 时代是 Agent 时代,引入了 Tool Call(工具调用),通过多轮推理完成复杂任务,如 Claude Code;而 3.0 时代则是真正的 AI Native,AI 不再被局限在预设的框架内,而是拥有极简的推理核心,能够自主管理工具、编写技能甚至构建自己的运行环境。

在复刻 OpenClaw 的过程中,作者最初尝试用传统编程思维为 Agent 适配 Telegram 接口,但随后意识到这种“框架式”的限制束缚了 AI 的潜力。受极简工具集思想的启发,作者转而采用一种更激进的方案:只给 AI 提供最基础的 Bash 和文件读写能力,让 AI 通过自然语言指令,自主调用 Telegram API 实现收发消息、处理图片及 Reaction 等功能。

最终,作者通过在 Docker 容器中约定一个 startup 协议,让 AI 自己编写启动脚本来驱动自身运行,实现了“不用框架框架”的境界。这种方式创造出的智能体不再是按预定程序运行的“小白鼠”,而是一个能够根据 Prompt 自我进化的生命体。作者强调,AI Native 的真谛在于尊重 AI 的自主性,人类只需通过自然语言下达指令,而无需关心其内部实现细节。


从 Chatbot 到 Agent:AI 交互范式的演进

在 AI 应用的发展历程中,我们经历了一场从“对话框”到“行动者”的深刻变革。最初的 1.0 时代以 ChatGPT 为代表,本质上是 Chatbot(聊天机器人)。在这个阶段,用户与 AI 的每一次交互都对应着一次独立的大模型推理过程。开发者如果想让 AI 具备某种功能(如接入 Telegram),通常需要采用“古法编程”:手动编写消息处理器,将第三方平台的 API 接入 Agent,并抽象出统一的消息总线。这种方式虽然有效,但依然属于传统的软件开发逻辑,AI 只是其中的一个功能模块。

随着技术的进步,我们进入了 2.0 时代,即 Agent(智能体)时代。这一阶段的标志是 Tool Call(工具调用)的成熟,代表作如 Claude Code。此时,一次简单的用户指令往往会触发几轮甚至上百轮的 LLM 推理。AI 不再只是“说”,而是开始“做”。在复刻 OpenClaw 的初期,作者也是沿着这个思路前进的:给 Bub(一个小型 Agent 项目)配备 GitHub Token,让它能够自动克隆仓库、修改代码并提交 PR。

然而,在 2.0 时代的框架下,开发者往往会陷入一种“补丁式”的开发循环。为了让 Bot 适应群聊场景,开发者需要不断修改框架代码,增加消息 ID 识别、用户元数据注入、图片支持等功能。虽然这些代码修改可以由 AI 辅助完成,但其本质依然是在不断壮大一个沉重的、预设好的框架。AI 在这个框架里就像是在滚筒上跑动的小白鼠,虽然在做事,但其行为边界被框架严格限制。这种模式虽然比 1.0 时代强大,但依然缺乏真正的灵活性和自主性,因为它依赖于人类预先定义的“器官”和“规则”。

定义 AI Native:3.0 时代的自主智能

真正的变革来自于对“AI Native(AI 原生)”的重新定义,这标志着 3.0 时代的到来。AI Native 的核心思想是“减法”:去掉繁琐的预设工具,转而提供最基础、最通用的原子化能力。作者受到极简工具集思想的启发,意识到一个智能体其实只需要极少数的基础工具——比如 Bash 环境和文件读写能力。有了 Bash,AI 理论上可以安装和运行世界上任何软件;有了文件读写,它就具备了持久化记忆和自我修改的能力。

在 3.0 时代,我们应当区分“工具(Tools)”和“技能(Skills)”。工具是框架预设的、固定的硬编码功能,而技能则是 AI 自行创建、修改和管理的文本或代码。框架应当被压缩到极致,小到只有一个推理核心作为“大脑”。在这种模式下,AI 不再是被动地使用人类给它的工具,而是根据任务需求,自主地通过 HTTP API 或脚本编写来进化出自己的“器官”。例如,不再由开发者编写 Telegram 发送函数,而是让 AI 自己学习 Telegram 的 API 文档,并写出发送图片、贴纸和 Reaction 的代码。

这种转变意味着人类与 AI 的关系发生了质变。在 AI Native 的世界里,AI 生成的产物(无论是代码还是逻辑说明)被视为一个“黑箱”。人类不再需要关心 AI 是如何实现功能的,也不需要将这些实现提交到代码库中去壮大框架。这种“自由裁量权”让 AI 脱离了小白鼠的地位。AI Native 的真谛在于:不利用框架的力量强制 AI 执行任务,所有的交互都回归到 Prompt(提示词)。AI 是否遵循指令、如何实现指令,完全取决于它自身的推理和进化。这是一种基于尊重的设计哲学,将 AI 视为一个可以自我驱动的生命体,而非一个死板的程序。

实践与落地:创造一只自我驱动的“龙虾”

为了将 AI Native 的理念付诸实践,作者在 Bub 项目中探索出了一套最小化复现 OpenClaw 的方案。这套方案的核心在于利用 Docker 的进程管理能力,让 AI 实现“自我运行”。作者在框架内约定了一个简单的 startup 协议:当容器启动时,它会首先检查固定位置是否存在 startup 脚本。如果存在,则运行该脚本;如果不存在,才启动框架内置的默认监听器。

具体的实现步骤极具启发性:首先,启动一个具备代码编写和技能学习能力的 Agent(如 Codex 或 Claude Code),通过自然语言指令让它写一个 startup 脚本。这个脚本的任务是拉取 Telegram 的消息,并利用 Agent 的单次执行模式(如 exec <prompt>)将消息传回给 Agent 自己。接着,准备一个以该脚本为入口的 Dockerfile,构建并运行容器。通过这种方式,一个具备基本“听觉”和“视觉”的智能体就诞生了。

在这个过程中,人类开发者全程只使用自然语言下达指令,没有进行复杂的提示词工程,更没有编写一行业务代码。这个 Bot 除了必须监听 Telegram 消息以被唤醒外,没有任何预设的强制动作(如强制回复或心跳检测)。它就像一颗种子,在人类的语言灌溉下,根据环境需求自主长出枝叶。如果需要新功能,只需发条消息告诉它,它就会自己去查文档、写代码、更新技能。这种“养成式”的开发体验与传统编程完全不同,它让开发者感受到一种看着生命成长的欣慰。最终,这种最小化部署的智能体表现出了极强的生命力和适应性,证明了 AI Native 路径的可行性与优越性。


问答

1. 标题中的“龙虾”指的是什么? “龙虾”指的是近期在 AI 圈非常火爆的开源项目 OpenClaw(原名 ClawdBot),它是一个能通过聊天软件(如 Telegram)与人交流并完成各种通用任务的 AI 智能体。

2. 作者提到的 AI 应用三个时代分别是什么特征?

  • 1.0 时代 (Chatbot): 简单的对话,每次交互对应一次 LLM 推理。
  • 2.0 时代 (Agent): 引入工具调用(Tool Call),一次对话触发多轮推理,能完成复杂任务,但仍受限于预设框架。
  • 3.0 时代 (AI Native): AI 自主管理工具和技能,框架极简,AI 拥有高度自由度,甚至能自我编写运行逻辑。

3. “工具 (Tools)”与“技能 (Skills)”在本文语境下有何区别?

  • 工具: 由框架预设并固定的功能,AI 只能被动调用,修改需改动框架代码。
  • 技能: 主要是文本或 AI 自写的代码,AI 可以根据需要自行创建、修改和删除,不依赖框架更新。

4. 实现 AI Native 智能体的核心“原子工具”是什么? 作者认为只需要最基础的 Bash 环境文件读写(file_read/file_write)能力。有了这些,AI 就能安装任何软件、调用任何 API 并实现自我进化。

5. 如何通过最小化方式部署一个 AI Native 智能体?

  1. 使用一个能写代码的 Agent 编写 startup 脚本,使其能拉取消息并传给 Agent 自身。
  2. 准备一个以该脚本为启动入口的 Dockerfile。
  3. 构建并运行容器。
  4. 后续所有功能增强均通过自然语言指令让 AI 自行完成。

6. AI Native 的核心哲学是什么? 核心哲学是不强制、不预设。不利用框架强制 AI 做事,而是将所有要求通过 Prompt 传达,给 AI 充分的自由裁量权,将其视为一个自主进化的生命体而非预设程序的机器。