打造属于您的 OpenClaw 式 AI 智能体
OpenClaw 是一个在您自己服务器上运行命令的个人 AI 智能体。本文逐个部件拆解它的构造,并说明为什么加固要排在第一位。
OpenClaw 到底是什么
OpenClaw 是一个自托管的个人 AI 智能体(agent)。您在自己的服务器上运行它,把它连接到您已经在用的聊天应用,它就能执行 shell 命令、操控浏览器、读写您的文件,并根据您发给它的消息采取行动。它采用 MIT 许可、以本地优先(local-first)为原则,截至 2026 年年中已在 GitHub 上获得超过 380,000 个 star,是该平台上 star 数最高的项目之一。在这些喧嚣之下,它其实是一组相当精简的部件,以合理的方式拼接在一起。本文会逐一走过这些部件,让您理解这样一个工具是如何构建的,以及它的危险边缘在哪里。
先给出一个提醒,因为它决定了下面的每一个设计选择。2026 年 3 月,OpenClaw 在四天之内被披露了九个安全问题,其中包括一个评分高达 9.9(满分 10)的严重权限提升漏洞(CVE-2026-32922)。这个项目的设计前提,就是要由您这位运维者来完成加固。一个能够执行任意命令的智能体,其安全程度不会高于它所运行的那台机器,也不会高于您为它设下的限制。阅读时请把这一点记在心里。
网关守护进程:单一进程,保持私有
处于中心位置的,是一个长期运行的单一进程,通常称为网关(gateway)。它是控制平面。它接收消息、决定要做什么、运行工具,并把回复发送回去。其他所有部分都接入它。
关于网关,最重要的事实是它监听在哪里。默认情况下,OpenClaw 把它绑定到回环地址 127.0.0.1,因此除非您特意去暴露它,否则它从互联网上是访问不到的。就让它留在那里。这是唯一一个以执行命令为职责的进程,因此一个被暴露的网关,会把一个远程立足点直接交给任何发现它的人,让对方能进入您的服务器。当您需要从笔记本电脑访问它时,请通过 VPN(虚拟专用网络)或 SSH 隧道来完成,而不要去开放一个端口。谁也无法攻击一个他触及不到的端口。
渠道连接器:让消息进来、让回复出去
一个个人智能体,只有当您能从已经在用的应用里与它对话时才有用。这正是渠道连接器(channel connector)所做的事。每个连接器对接一个平台,比如 Telegram、WhatsApp、Slack 或 Discord,使用该平台的机器人 API 或 webhook。
它们的形态都是一样的。连接器向平台注册一个机器人,接收您发来的消息(要么主动向平台轮询,要么接收平台推送给它的 webhook),把这条消息交给网关,再通过同一套 API 把网关的回复发回去。连接器是一层很薄的转换层。它把「一条 Telegram 消息到达了」转换成「这里有一段给智能体的文本」,再反向转换回来。要自己构建一个,主要就是读懂某个平台的机器人文档,并把它的消息格式映射到网关上。
大脑与工具循环
网关内部有一个部分,它让这个系统成为智能体,而不只是一个聊天机器人。它是一个循环。
一条消息到达。网关把它连同一份「模型被允许使用的工具」清单一起发给一个语言模型。模型读取消息,然后决定:直接回答,还是调用某个工具。如果它调用工具,网关就运行那个工具、捕获结果,并把结果发回给模型。模型查看结果,再次做出决定。如此反复,直到模型没有更多可做的事,产出一条最终回复。
这个循环就是智能体的全部要义,而且无论智能体存在于聊天应用还是终端里,都是同一个循环。关于如何以一种标准方式把工具接入这个循环,通过 Model Context Protocol 接入工具 是很好的下一篇读物;而在模型这一侧,在自己的硬件上运行模型本身 补齐了另一半。
工具集是要点所在,也是危险所在
工具是让 OpenClaw 强大的东西。一个运行 shell 命令的工具、一个驱动浏览器的工具、一个读写文件的工具。把上面那个循环接上这些工具,它几乎能做到您在键盘前能做的一切。这种触及范围是整个产品的意义所在,同时也是它的全部风险所在。
一个能执行任意命令、并且依据从聊天应用送达的指令行事的智能体,是一个庞大的攻击面。一条恶意指令、一次藏在浏览器工具所访问网页里的提示词注入(prompt injection)攻击,或者像 2026 年 3 月那些漏洞一样的缺陷,都可能把「读一下我的日历」变成「删掉我的文件」。所以这些限制并不是可有可无的附加项。请以一个专用的、无 sudo 权限的非特权用户来运行这个智能体,这样即便被攻破也无法提权。把危险工具设在一个审批步骤之后,让智能体在做破坏性操作之前先征求同意。对工具的执行做沙箱隔离,好让一条失控的命令被限制住。隔离好模型的 API 密钥,这样一次泄露不会把您的账户拱手交给攻击者。
在您暴露任何会运行 shell 命令的东西之前,请审慎地把基础工作走一遍。先在这里为您自己的机器生成一份清单,然后从上到下逐项照做:
关于非特权用户这一块,以非特权用户身份运行服务 有深入的讲解;而针对这个真实项目的完整安全部署走查,则在 在 VPS 上安全地运行 OpenClaw 里。
把记忆存成纯文件
大多数人以为智能体的记忆会存放在数据库里。OpenClaw 的记忆并非如此。它把记忆以磁盘上的纯 Markdown 文件形式存储,而这个选择值得借鉴。
文件很简单。没有需要迁移的表结构(schema),没有需要持续运行的服务,也没有需要学习的查询语言。它们是可检视的:您可以打开那个文件夹,读到智能体对您的确切认知,通过编辑一个文件来纠正一条错误的记录,或者通过删除一个文件来抹掉一段记忆。而且它们是可移植的,因为把智能体搬到一台新服务器,只不过是复制一个目录的事。对于一个单用户的个人智能体来说,一个装着文本文件的文件夹就够了,而且它让整个系统都易于推理理解。
技能:一种可移植的能力扩展方式
除了内建工具之外,OpenClaw 使用一种可移植的技能(skill)格式,好让社区能在不改动其核心的前提下扩展它的能力。一个技能,是一个自成一体的指令包,有时还包含代码,用来教会智能体一项新任务。当任务需要时,智能体便加载相应的技能。
这样一种格式的价值,在于能力变得可以共享。有人为某项具体工作写了一个技能,把它发布出来,其他人便可以直接放进去用。如果您要构建自己的智能体,那么尽早定义一个小而清晰的扩展格式,能让您日后不必把每一项能力都硬编码进核心里。
自带模型
OpenClaw 与模型无关(model-agnostic)。它不自带语言模型。相反,它连接到一个由您选择的模型,这个模型可以是托管的 API,也可以是您自己运行的模型。
这种分离在成本、隐私和控制权上都很重要。一个托管的 API 让您用上最强的模型,且无需管理硬件,代价是按 token 计费,而且您的提示词会离开您的服务器。一个自托管的模型,用类似 Ollama 这样的工具来提供服务,能把每一条消息都留在您自己的机器上,成本只有硬件和电力,代价是只能运行一个较小或较慢的模型。很多人会把两者混着用。如果您想让一个智能体完全保持私有,在您的 VPS 上自托管模型 就是补上最后这道缺口的那一块;而 Hermes Agent 则是另一个值得拿来对比的自托管智能体。
您应该自己动手造一个吗?
这一切您都能造出来。这些部件并不高深:一个守护进程、几个聊天连接器、一个模型加工具的循环、一个装 Markdown 的文件夹,以及一种插件格式。理解它们是真正有用的,因为这会揭开您将要用到的每一个智能体的神秘面纱,并明确告诉您危险到底藏在哪里。
但对大多数人来说,诚实的答案是:去运行那个真正的项目并把它加固好,而不是重新发明它。OpenClaw 已经解决了连接器、循环和技能格式,而且它经受过真实的安全审视。您的精力更应该花在真正需要由您做对的那一部分,也就是您自己服务器上的部署与加固。造一个小的来学习。运行并锁死那个真正的来使用。
更通用的基础知识在 在 VPS 上构建您自己的 AI 智能体 里;而 用 Claude 构建一个智能体 则以一个具体的模型作为大脑,展示了同样的理念。
FAQ
构建一个像 OpenClaw 这样的智能体难吗?
单个部件并不难。一个网关进程、一个聊天连接器、一个模型加工具的循环,以及一个装文件的文件夹,各自单独来看都很直接。难的部分在于把它做得安全。一个从聊天消息里执行 shell 命令的智能体,是一个严重的安全面,而把沙箱、权限和非特权用户的设置做对,比把功能拼接起来要费更多工夫。
OpenClaw 为什么用 Markdown 文件而不是数据库来存记忆?
因为对于一个单用户的个人智能体来说,文件已经够用,而且简单得多。没有需要运行的数据库服务,记忆易于手动阅读和纠正,把智能体搬到另一台服务器也只是复制一个目录。数据库要到更大规模时才配得上它的位置,在这里用不上。
个人 AI 智能体最危险的部分是什么?
是那些让它能够行动的工具:运行 shell 命令、操控浏览器、写入文件。它们既是造它的理由,也是它能伤到您的原因。OpenClaw 在 2026 年 3 月的那次安全事件——四天里九个问题,包括一个评分 9.9 的严重漏洞——是「对工具这一层要格外小心」这一点最清晰的论据:以非特权用户身份运行、给破坏性操作设置审批关卡,并对执行做沙箱隔离。
要造一个这样的智能体,我需要有自己的语言模型吗?
不需要。像 OpenClaw 这样的智能体与模型无关,所以您连接一个自己选的模型即可。它可以是一个托管 API,用来获得最强的模型;也可以是一个您自己运行的模型,以获得完整的隐私。用 Ollama 自托管能把每一条消息都留在您自己的服务器上,代价是运行一个较小的模型。