来了解一下Openclaw的核心功能 —— Agent (代理)。英文的Agent有很多含义,比如旅行社帮你订票的工作人员叫Agent, 间谍,特工也叫Agent,经纪人也可以叫Agent, 英文解释是“a person who acts on behalf of another person or group.” 就是代替另一个人做事的人。用在Openclaw这里,就是你不用自己动手,只要动动嘴,Openclaw的agent就可以帮你完成一些任务。以下是 OpenClaw 代理在底层运作机制的详细拆解:
1. 网关与通道适配器
OpenClaw 作为后台进程(例如 Node.js 服务)在硬件设备上持续运行。它不依赖于专用的 Web 应用程序,而是允许您通过 Telegram、WhatsApp、Discord 或 iMessage 等日常通讯应用与其进行交互。当你发送消息(包括文本、语音或图像)时,OpenClaw 会利用“通道适配器”对其进行拦截,并在将其提交给 AI 处理之前,将其转换为一种标准化的格式。
2. 上下文与记忆整合
传统的聊天机器人往往在会话结束后便会陷入“失忆”状态。OpenClaw 通过将您的数据以纯文本 Markdown 文件的形式本地存储在您的设备上,从而巧妙地规避了这一问题。在对您的提示做出响应之前,OpenClaw 会从特定的文件中提取上下文信息,例如 MEMORY.md(用于存储长期记忆与用户偏好)、SOUL.md(用于定义代理的人格特质与指令),以及 AGENTS.md(用于设定行为规则)。随后,它会将这些信息与您近期的聊天记录相结合,从而赋予 AI 完整的语境感知能力。
3. 模型推理(即“大脑”)
OpenClaw 自身并不内置任何 AI 模型;它在设计上完全不依赖于特定的模型(即“模型无关”)。它充当着消息路由器的角色,将整合好的上下文信息发送至您所选定的外部大型语言模型(LLM)进行处理。您可以接入基于云服务的 API(例如 Anthropic 的 Claude、OpenAI 的 GPT 或 DeepSeek),也可以通过 Ollama 或 LM Studio 等工具,连接并调用直接运行在您本地设备上的模型。
4. 代理循环与技能执行
在此阶段,OpenClaw 的角色将从单纯的“对话者”转变为具备实际行动能力的“数字化工作者”。
工具调用:如果 LLM 判定需要执行某种实际操作才能满足您的请求(例如“查看用户的日程表”、“抓取网页数据”或“运行 Python 脚本”),它便会发出“工具调用”指令。
技能系统:OpenClaw 会拦截这一指令,并利用其内置的“技能系统”在本地执行相应的操作(该系统将各项能力以目录结构的形式进行存储,每个目录内均包含一个 SKILL.md 文件)。这一机制赋予了代理执行 Shell 命令、与网页浏览器进行交互以及管理本地文件的能力。
反馈循环:系统执行操作所产生的反馈结果会被重新回传至 LLM,从而形成一个完整的闭环。该循环将持续迭代运行,直至模型成功完成任务并生成最终答案;随后,该答案将以流式传输的方式回传至您的即时通讯应用中。
5. 主动式“心跳”机制
OpenClaw 的一大核心特色在于其高度的自主性。预定任务:内置的“心跳”功能会以固定的时间间隔(例如每 30 分钟)唤醒代理。它会检查 HEARTBEAT.md 文件及内部的定时任务(cron jobs),以确认是否存在待处理的后台工作——例如检查指定的收件箱、运行数据抓取脚本,或向你发送晨间简报——即便你并未主动向其发送任何消息。
Agent待的地方叫workspace, 位于openclaw安装目录下面。点开了可以发现里面有很多md(MarkDown)文件,其实就是提示词,这些提示词定义了Agent的行为模式。
AGENTS.md: 相当于一个基本法,告诉Agent如何启动,读取其余md文件和长期的记忆文件以避免失忆的问题, 安全边界和对“心跳”引擎的设置。
SOUL.md: 这就是“角色设定表”。它定义了代理的价值观、语气风格(例如:“简练且风趣”)以及道德边界。它是指引代理如何与你交谈的“内在声音”。
IDENTITY.md: 一个包含代理名称、角色(例如“首席开发者”)及 ID 的简短文件。在多代理协作环境中,代理正是通过此文件来标识自身,以便在发送消息或分派任务时进行自我识别。
USER.md: 此处用于存储关于你的信息。其中包括你的偏好设置、姓名,以及希望代理记住的关于你生活或工作的任何特定背景信息。
TOOLS.md: 此文件列出了该代理可访问的工具(例如 Shell 执行、浏览器访问或特定 API),以及关于何时、如何安全使用这些工具的规则。
HEARTBEAT.md: 这相当于代理处于空闲状态时的“待办事项清单”。它指示代理定期检查您的电子邮件、总结当日事务,或“唤醒”以执行后台维护任务。
在memory文件夹里面会储存长期记忆文件MEMORY.md,新建的代理没有发现有这个文件。
另外在openclaw目录下面有个angents的文件夹,
目前只有一个main的文件夹,代表了"main" agent,主代理。点开里面还有个agent文件夹,下面有个models.json文件,里面保存了该代理用到的模型信息。