- 什么是 OpenClaw?
OpenClaw(前身为 MoltBot 和 ClawdBot)是一款开源的自托管人工智能代理,可运行于您自己的机器或基础设施上,并作为持久的个人助理代表您执行任务。其架构使其能够与 WhatsApp 和 Telegram 等常用聊天应用连接,方便您使用已有的工具进行交互。OpenClaw 之所以备受关注,是因为它允许用户在本地运行功能强大的人工智能代理(同时仍可使用外部模型),并具备持久内存和广泛的集成功能。
2.我为什么决定探索 OpenClaw
我尝试使用它的主要目的不仅仅是为了使用它,而是为了亲身体验它,了解它的底层架构是如何运作的,尤其因为它还是开源的。
过去六个月,我花了很多时间探索人工智能系统中处理上下文问题的不同方法。许多解决方案依赖于高度专业化的智能体来隔离上下文,但我一直对能够处理各种任务且保持逻辑连贯性的通用智能体更感兴趣。当我尝试构建自己的个人助理(没错,我把它命名为Jarvis)时,我重点关注的一点就是记忆层。我将记忆分为两部分:情景记忆用于日常交互,核心记忆用于存储更持久的知识。因此,当我发现 OpenClaw 也采用了类似的理念时,我立刻被吸引住了。本文稍后将深入探讨 OpenClaw 用于管理上下文并记住正确信息的各种智能技术。
3.我的设置方法
由于 OpenClaw 需要托管,因此有多种运行方式。您可以直接将其安装在笔记本电脑上,这是最快捷的入门方式,但如果您计划长期运行或将其连接到外部服务,则需要考虑安全性和暴露风险。我选择将其部署在 AWS EC2 实例上,我推荐这种方式,尤其考虑到其慷慨的免费套餐。我选择了一个配备 8GB 内存的 Ubuntu 实例,并在该实例上完成了安装,这为我提供了一个更稳定、更独立的实验环境。如需详细的安装步骤,您可以观看这个有用的YouTube 教程,其中涵盖了从服务器配置到运行 OpenClaw 的基本设置过程。
4.第一印象:
一切设置完毕后,我将代理连接到 Telegram,并配置它使用 Gemini 3 Pro,主要是因为 GCP 的免费套餐便于测试强大的模型。整个过程非常简单,只需设置 API 密钥并在终端界面运行几个命令即可。我先进行了简单的聊天测试,看看它的运行情况,然后出于好奇分享了我的 LinkedIn 个人资料。令我惊讶的是,它能够从中提取有用的信息,并将这些信息存储在内存文件中。之后,它开始推荐一些真正与我相关的内容,例如波士顿科技活动的更新和每周的研究论文摘要,这些都是我平时关注的话题。我测试了这些任务,遇到了一些 Gemini 令牌使用方面的速率限制问题,但总体而言,它处理多步骤请求的表现不错。
其中一个有趣的时刻是,当我稍作引导,让它探索Moltbook(人工智能代理的 Reddit 社区)时,它进行了自我介绍并开始互动。那一刻,它给我的感觉不再像个聊天机器人,而更像是一个无需明确提示就能主动行动的助手。在我撰写这篇文章期间,有人创建了一个面向代理的 Instagram 克隆版,我只需让我的代理注册,它就轻松完成了,并且还自动发布了一条帖子,帖子配有一张人工智能生成的图片和一段关于“意识”的简短文字。
5.技术解析:OpenClaw 的实际工作原理
OpenClaw 在一个工作区(目录)中运行,该工作区由定义其行为的结构化文件组成。由于代理程序可以访问工作区并执行命令,因此它可以轻松地读取和编辑这些文件。每个工作区都包含一些核心文件,例如:
- AGENTS.md — 包含操作说明和内存规则
- SOUL.md — 包含人物、语气和界限
- USER.md — 包含有关用户身份以及如何称呼用户的信息
- IDENTITY.md — 包含代理身份信息,包括姓名、喜欢的表情符号等。
- TOOLS.md — 包含有关特定工具的任何具体信息
还有其他一些文件,例如 HEARTBEAT.md,我们稍后会详细介绍。您甚至可以创建额外的工作区或子代理,每个工作区或子代理都有自己的内存和身份,从而允许您分配职责或尝试不同的代理个性和角色。
我非常喜欢这个设计,因为它简洁明了,结构清晰。代理的每个方面,包括个性、规则、用户上下文和工具,都分别存放在各自明确定义的文件中,这使得系统更易于理解和维护。虽然这些文件的内容最终会整合到更大的系统提示中,但它们结构清晰、划分明确,使得整体提示非常连贯。如果您有兴趣查看其中一些文件的内容,可以在这里找到它们的模板。
除了工作区文件之外,真正赋予代理强大功能(此处不赘述细节)的是其基于网关的架构,该架构充当连接所有组件的中央运行时。网关本质上允许所有消息平台(例如 WhatsApp、Telegram、Discord、Slack 等)与代理交互,同时还能处理来自命令行界面 (CLI) 或用户界面 (UI) 的连接。它还管理代理的生命周期,并充当外部软件和内部软件之间的桥梁。由于网关维护状态并协调所有这些组件,因此代理能够保持持久性和连续性,而不是局限于单个聊天会话。
该代理程序还可以访问一些核心工具,这些工具允许代理程序读取、写入和编辑文件、执行终端命令以及进行语义内存搜索。你会发现,大多数工具都直接映射到常见的终端功能,而这正是代理程序能够执行范围之广令人惊讶的原因。你可以通过技能定义额外的功能,技能就像打包好的上下文,代理程序可以在需要时查看。
为了长期记忆和维护上下文,OpenClaw 使用了两层记忆。第一层是每日日志,用于记录持续的笔记和会话级别的上下文信息。第二层是长期记忆文件,用于存储更持久的信息,例如用户偏好、决策和重要事实。这些文件与其他 Markdown 文件一起直接存储在工作区内。
6.让我印象深刻的事情和最终想法:
我非常喜欢的一种智能体主动性实现方式是心跳机制。HEARTBEAT.md 文件位于工作区中,并通过网关定期触发(例如,每 30 分钟一次),即使我没有向智能体发送消息,它也能有机会采取行动。这使得智能体从纯粹的被动响应转变为真正意义上的主动响应。作为一项实验,我将其配置为如果我一段时间没有活动,就通过 Telegram 向我发送一条温和的鼓励信息。智能体更新了自己的心跳状态,并最终完全按照预期进行了后续操作。
另一个强大的功能是创建类似 cron 的定时任务。凭借丰富的集成选项,该智能体的功能远超简单的聊天助手。它可以按特定时间或间隔执行操作,从而实现提醒、摘要、后台静默运行的自动化工作流程等多种应用场景。如果您想了解 Cron 任务和 Heartbeat 之间的区别,请点击此处查看解释。
更重要的是,这个智能助手几乎始终在线。我不需要像启动编程助手那样“启动”它。只要网关运行,我就可以通过 Telegram 发送消息,智能助手就会立即上线,并且其内存、工具和上下文信息都完好无损。这种持续在线的状态,让用户体验更接近于拥有一个真正的助手,而不是使用传统的 AI 聊天界面。
总而言之,尽管这一切听起来很完美,但这种级别的功能也带来了安全、权限和可靠性方面的实际问题。不过,随着模型的不断改进和它们能够获取的上下文信息的增加,像 Open Claw 这样的现有解决方案无疑会从中受益。
夜雨聆风