OpenClaw运行机制与安全威胁研究
一、引言与研究背景
OpenClaw是2025年末开源、2026年初在GitHub上爆炸式走红的本地优先(local‑first)AI智能体(Agent)与自动化平台,由开发者PeterSteinberger发起,短短数月即累计二十多万Star,成为GitHub史上增长最快的开源项目之一。它的核心理念是让大模型从“对话式顾问”变成“真正能在本地动手干活的数字员工”,通过深度控制操作系统、调用外部工具和在线服务,自动执行复杂任务。
OpenClaw因图标是红色龙虾,被广泛昵称为“龙虾”或“小龙虾”,同时受到产业界和广大用户广泛关注并积极实践应用,引发关于“养龙虾是否安全”的广泛讨论。工业和信息化部网络安全威胁和漏洞信息共享平台(NVDB)已发布专门预警,提示OpenClaw在不安全部署方式下存在较高安全风险,容易引发网络攻击和信息泄露。
在这种背景下,有必要从体系结构与运行机理出发,系统梳理OpenClaw的工作流程、Skill机制与大模型交互特点,并对其已披露漏洞和系统性安全威胁进行分析,以为后续防护与治理提供技术依据。
二、OpenClaw的架构原理与运行流程
整体来看,OpenClaw以“本地常驻、模块化扩展、闭环执行”为核心特征,从消息接入、决策规划、工具执行到记忆沉淀形成完整链路。各模块分工明确、协同运转,使其区别于传统对话式AI,成为能够长期运行、自主完成复杂任务的通用Agent基础设施。
2.1整体架构与设计理念
OpenClaw是一个既可以在个人PC、NAS或家庭服务器上运行,也可以部署在云端或托管平台上,目标是构建一个可扩展的通用Agent基础设施。
其底层架构通常被拆解为四个核心模块:
渠道适配层:通过网关对接WhatsApp、Telegram、Slack、Discord等聊天平台,并可扩展到飞书、企业微信、邮件等,让用户在熟悉的沟通工具里直接和Agent交互。智能决策与模型编排层:对接不同大语言模型(LLM),负责会话管理、工具调用决策、多步任务规划等,是“Agent大脑”。技能(Skills)与工具层:通过Skill插件和MCP工具扩展能力,实现浏览器自动化、代码执行、文件操作、第三方SaaS集成等“动手能力”。记忆与状态管理层:利用Markdown文件和向量存储构建双层记忆系统(按天日志+长期记忆),支撑长期个性化与复杂任务上下文管理。
整体上,OpenClaw通过“多通道接入+多模型编排+技能插件+本地记忆”构成一个可长期运行的常驻智能体,区别于传统只在浏览器里对话、没有持续状态的聊天机器人。
2.2部署模式:本地与服务器/云端
OpenClaw官方定位为“你可以在自己设备上运行的个人AI助手”,支持在macOS、Linux、Windows桌面系统、树莓派等ARM设备及各类服务器上自托管部署。主流部署方式包括:
个人电脑部署:通过npm或一键安装脚本在本地安装OpenClawCLI,并将Gateway注册为系统服务(macOS使用launchd,Linux使用systemd,Windows一般通过WSL2下的systemd),作为常驻后台网关进程运行。Docker/容器化部署:使用官方或社区提供的Docker镜像,映射容器内的~/.openclaw目录以持久化配置和记忆,同时暴露18789等端口用于GatewayWeb控制台和API访问。
家庭服务器/NAS部署:在家用服务器或NAS上运行OpenClaw,通过内网或穿透工具(如Localtonet)实现远程访问,也可以在多台设备上分别部署Gateway,由不同节点承担不同类型的任务。
从安全视角看,本地部署的优势在于数据安全:对话记录、文件内容、API凭证等敏感信息都保存在用户自己的机器上,不必上传到第三方云平台。但相应地,系统加固、访问控制、备份和更新等责任也全部落在用户或运维团队自身身上,一旦配置不当反而更容易暴露于互联网攻击面。
2.3模型支持:本地模型与云端模型
OpenClaw的模型编排层支持接入多种云端大模型(如OpenAIGPT系列、AnthropicClaude、GoogleGemini等)以及本地部署的开源模型(如通过Ollama或本地推理服务运行的Llama系列),用户可以在配置中选择首选模型和备选模型,并为不同任务设置不同的模型策略。
本地模型:通过在本机或局域网部署Llama等模型推理服务,OpenClaw可以完全在本地完成推理,不把任何prompt、历史对话或文件内容发到云端,从而在隐私上最可控,但生成质量和推理速度依赖本地硬件和模型能力,复杂任务可能受限。云端模型:通过统一API网关(如OpenRouter/APIYI等)或直接使用OpenAI/Anthropic官方接口,OpenClaw可以调用性能更强、能力更全面的商业模型,用于代码生成、复杂推理、多模态处理等高难度任务,但需将指令和上下文发送至云端,存在数据出境和隐私泄露风险。
实践中,不少教程建议采用“混合策略”:对隐私要求极高或逻辑简单的任务优先使用本地模型,对需要高智能或多模态能力的场景则路由到云端高阶模型;同时结合记忆压缩/蒸馏、把常用流程固化为Skill,以及为不同子任务配置更便宜的模型,以减少昂贵模型的token消耗和API成本。
2.4与大模型的API交互与Token消耗
OpenClaw在逻辑上是一个“模型客户端+执行协调器”,与大模型的交互主要通过HTTPAPI完成,采用OpenAI/Anthropic等主流的ChatCompletion或ToolCalling接口。每次调用需要将系统提示词、项目上下文(如AGENTS.md、SOUL.md)、对话历史、当前消息以及相关记忆片段等内容打包发送给大模型,从而实质上消耗大量Token。
典型的上下文构成包括:系统Prompt、项目配置上下文(AGENTS.md、SOUL.md等)、对话历史与工具调用记录、当前用户输入及检索到的记忆内容,这些内容合计可能达到数万Token。因此,社区出现了记忆蒸馏、对话压缩、模型降级等优化方案,通过预压缩写入MEMORY.md、使用更便宜的模型完成部分子任务,已有案例将单轮上下文从一万三千多Token压缩到约六千多Token,节省约一半的Token成本。
总体而言,只要使用云端模型,OpenClaw与大模型的交互就必然以API形式进行,并引入Token计费问题,这与传统前端聊天应用并无本质区别,只是调用发生在本地网关而非云端网页。
2.5权限模型:默认“完全掌控电脑”
OpenClaw的一大特点是“真正能动手干活”,这在技术上意味着如果按照常见教程全开工具而不做隔离/限制,就几乎拥有完整系统访问:可以读写文件系统、执行终端命令、控制浏览器、访问邮件和日历、调用SSH或云端API等。
在缺乏精细权限隔离和最小权限配置的环境中,OpenClaw等同于一个以用户权限运行的自动化运维脚本或RPA机器人,一旦被攻陷,就意味着对本机乃至内网资源的“完全接管”。
2.6Skill机制:定义、特点与社区生态
2.6.1什么是Skill
OpenClaw将Skills视为扩展Agent能力的核心机制,与其说Skill是一个简单的“提示词模板”,不如说它是“带结构化元数据、能驱动工具和脚本的任务模块”。
典型的Skill通常包括:
一份Skill描述文件SKILL.md,在YAMLfrontmatter中声明名称、说明、依赖条件和环境变量,并在Markdown正文中约定该Skill的用途、输入输出格式、安全约束和具体操作步骤。可选的脚本或代码文件(如Python、Node.js、Shell等),实现具体行动逻辑,例如访问某个API、操作本地文件或调用Docker容器。
与普通Prompt相比,Skill的特点在于:
可复用与可组合:一旦定义好,多个Agent或工作流可以重复调用该Skill,将其与其他Skills串联,得到更稳定和可预测的行为,而不是每次临时编写Prompt。可执行:Skill不仅描述“如何说”,还可以附带“如何做”的代码,能直接对本地系统或外部服务产生影响,是Agent真正的“手脚”。可发现与共享:Skill可以发布到ClawHub等公开技能市场或开源仓库,成为类似npm的生态模块,被其他用户安装和复用,从而扩展整个社区的能力边界。
2.6.2Skill加载与运行机制
OpenClaw在启动时会从多处加载Skill:内置(bundled)、用户目录~/.openclaw/skills、工作区