今天是2026年3月9日,近期一个AI集合智能体——OpenClaw,不仅仅是在科技圈子里,而且也在全网爆火。对于这个“新概念”智能体,我还是挺好奇是怎么一回事。看到里面牵扯到的理念和原理,觉得Peter Steinberger确实有想法,实践的精神也很强。所以就写点东西来学习一下,顺便就当Python学习扩展了。
先简单介绍OpenClaw是什么东西。
OpenClaw,原名Clawbot,是2026年1月突然爆火的开源个人AI助手,它不同于以往的大模型,它可以多方面做到“cosplay”——它能“cos”出来的角色,不仅仅是正常LLM的交互功能,主动控制操作系统、浏览底层文件、阅读并自动生成回复邮件、自动生成日程提醒等等。感觉像是Neuro升智开源了
对于这个智能体,我第一反应是:它和一个AI vtuber——Neurosama(以下简称Neuro)还蛮相似的,毕竟这两者之间的功能交集也不小。在去年的Neuro三周年的生日会上,Neuro的创造者Vedal987就实装了一个阶段性突破的功能:Neuro可以在VRchat里面自由控制属于她本“人”的3D模型。同时,在平常的直播里面,Neuro也可以用不同的基础权限来营造直播效果,比较出名的就是Vedal在直播中给Neuro优化性能的时候,尝试让Neuro自己修改一行代码,Neuro就把自己曾经最钟爱的“钢管音效”又加了回去(之前因为直播中玩钢管音效长达2小时,Vedal直接把这个功能ban了)。
然而,这个想法很快就站不住脚了。对于Neuro而言,她控制的是VRChat里面的avatar,是被严格框在avatar这个虚拟系统当中的,她能做到的只是“结合LLM+专用控制模块–>输出到VRchat的avatar参数”。所以并不是Neuro能够控制系统,而是她只能像玩MC一样,只能控制人物角色对周围产生反应,无法动到底层逻辑。
但是,从理想的角度来说,Neuro也可以做到OpenClaw这些事情,但现实vedal不可能给她这么高的权限。对于OpenClaw来说,它可以做到在任意终端填写命令,读取本地文件、控制浏览器、调用系统API、控制外设等等,要是给Neuro如此大的权限,那估计算得上是重大AI Vtuber直播灾难了。
所以,其实可以把OpenClaw看作一个空有顶级智商、可以“多线操作”的高级工程师,他会执行用户输入的命令,把输出结果完完整整的报告给用户。但是需要注意一个关键点:OpenClaw会原原本本、毫无保留地输出你的指令。这就是OpenClaw的便携,也是它最危险的地方。
扯完那么多,先来看看OpenClaw的底层运行逻辑——AI Agent。
AI Agent
先从AI Agent开始
贴一个简单的实例,这个实例是用来告诉用户“今天的农历日期是啥,适合干什么,不适合干什么”
import datetime
import random
from typing import Tuple
# 简易版农历数据(仅示例用,实际项目建议用lunarcalendar或chinese-lunar库)
# 这里只放2025-2026年部分日期做演示
SIMPLE_LUNAR_DATA = {
"2025-03-29": {"lunar": "二月初一", "ganzhi": "乙巳年 庚辰月 戊寅日"},
"2025-03-30": {"lunar": "二月初二", "ganzhi": "乙巳年 庚辰月 己卯日"},
"2025-03-31": {"lunar": "二月初三", "ganzhi": "乙巳年 庚辰月 庚辰日"},
# ... 实际使用请替换成完整日历库
}
# 宜忌模板(随机组合风格)
YI_TEMPLATES = [
"祭祀", "祈福", "求嗣", "开光", "出行", "纳采", "订盟", "嫁娶",
"安床", "移徙", "入宅", "安门", "挂匾", "交易", "立券", "纳财",
"栽种", "破土", "安葬", "修造", "动土", "拆卸", "开市", "纳畜"
]
JI_TEMPLATES = [
"嫁娶", "订盟", "纳采", "出行", "搬家", "入宅", "安葬", "动土",
"破土", "修造", "开市", "交易", "签约", "诉讼", "栽种", "针灸",
"开仓", "安床", "探病", "上梁", "造屋", "合寿木"
]
def get_today_lunar_info() -> Tuple[str, str]:
"""获取今天的农历信息(示例版)"""
today = datetime.date.today().strftime("%Y-%m-%d")
if today in SIMPLE_LUNAR_DATA:
data = SIMPLE_LUNAR_DATA[today]
lunar_day = data["lunar"]
ganzhi = data["ganzhi"]
else:
# 找不到就给个提示
lunar_day = "(农历数据未收录)"
ganzhi = datetime.date.today().strftime("%Y年%m月%d日")
return lunar_day, ganzhi
def generate_daily_advice() -> str:
"""生成今天的宜 & 忌"""
# 随机选3个宜 + 3个忌(实际项目可以根据日干支来真正计算)
yi_list = random.sample(YI_TEMPLATES, 3)
ji_list = random.sample(JI_TEMPLATES, 3)
# 避免完全重复
while any(item in yi_list for item in ji_list):
ji_list = random.sample(JI_TEMPLATES, 3)
advice = (
f"今日宜:{'、'.join(yi_list)}\n"
f"今日忌:{'、'.join(ji_list)}\n\n"
"(以上为示例风格,真实黄历请以专业历书为准)"
)
return advice
def chinese_almanac_agent():
"""简易AI Agent:每天的农历小助手"""
lunar_day, ganzhi = get_today_lunar_info()
print("┌──────────────────────────────┐")
print(" 今日老黄历小助手 v0.1 ")
print("└──────────────────────────────┘\n")
print(f"阳历:{datetime.date.today().strftime('%Y年%m月%d日')}")
print(f"农历:{lunar_day}")
print(f"干支:{ganzhi}\n")
print(generate_daily_advice())
print("\n祝你今天顺顺利利~")
if __name__ == "__main__":
chinese_almanac_agent()
#AI生成,仅供参考
从上面的实例能多少看出:AI Agent就是一个集合体,能干活的智能助手。相较于传统的软件——输入→处理→输出,AI Agent能做到的更多的是思考和组织
AI Agent的结构就是三大块——目标、逻辑、工具
而对于AI Agent的构成一个核心思想,就是像人一样思考与行动。人也是会根据达成的目标制定方案、预测结果、施行方案、结果验收。

AI Agent的核心组件由大脑、工具、记忆、规划构成,这也很符合它的核心思想。例如老板就可以用AI Agent来提醒员工甲上传方案,AI Agent就会先记录请求→调用日志提醒→调用OA系统→提醒员工甲上传方案→返回结果。
这样的设计允许Agent不仅仅只是生成文本,还能够自己来主动搜集信息,就像平常使用的各种LLM,例如deepseek。
OpenClaw
正式介绍之前可以先看看这个视频,结合上述的AI Agent的基本概念再思考一下OpenClaw为什么能够爆火。
OpenClaw不同,会采用本地优先的架构,毕竟在使用之前都需要部署在本地来作为一个自托管的网关系统运行在用户设备商。里面的核心组件就包括:
- 网关 (Gateway):本地控制平面(默认端口 18789),处理消息路由和会话隔离。支持沙盒模式(通过 Docker)以增强安全。
- 多通道集成:通过库如 Baileys (WhatsApp)、grammY (Telegram) 等连接聊天应用。群组支持激活模式。
- 技能和插件:基于插件的扩展系统,用户可在
~/.openclaw/workspace/skills/下管理技能。AI 可自动生成和热加载技能,支持 Python 脚本。 - 模型集成:支持 LLM 如 Claude、GPT 或本地模型(如通过 Ollama),并有故障转移机制。
- 工具和功能:浏览器自动化(Chrome)、文件/系统访问、Cron 任务、心跳检查、多模态输入(视频、语音)。数据和上下文留在本地设备上,可选安全集成如 VirusTotal。
- 多代理支持:隔离会话,实现隐私控制和团队协作。
同时架构强调hackability:AI可自我进化,生成新功能。这也和上面视频提到的一个内容相似。当OpenClaw找不到用户指定的目标,它要么死磕在寻找的道路上,不碰南墙不回头;要么就是求助各个工具来达成目标。但现在的单一Agent很难办到这种事情,除非你给了它庞大的权限,足以让它顶替你来上网。
但是,凡是都有代价。
安全问题
开源、方便两大优点必然会成为众多用户的青睐,用户也就会不自觉的把众多隐私权限往上面甩,让OpenClaw随意地读取以图自己的方便。这就会引出一个大问题——只要攻下了OpenClaw,或者OpenClaw读应用到危险skills导致被攻破,这就相等于给你“开盒”了。
目前关于OpenClaw的安全问题已经爆出不少,作为一个网安菜鸟,也想从里面学点东西。毕竟强大的软件必然离不开安全,也可以提升自己的个人素养。
说回正题,针对OpenClaw的问题涵盖许多方面——网络安全、软件安全、系统安全和AI安全等,这些问题并不是相互独立,而是相互交织。
网安当中经典的RCE漏洞就是其中一个典例,攻击者可以引诱OpenClaw来访问钓鱼网站从而获取令牌并实现一键RCE,让受害者的信息暴露无遗。这也凸显了OpenClaw的网络边界很脆弱,如果对WebSocket不添加限制和过滤,一碰即碎。
软件安全方面就是注入攻击,再不添加字符过滤的情况下,攻击者通过恶意输入执行任意代码或者绕过docker来获取敏感信息。
系统安全方面,由于docker早期版本是允许工具执行docker逃逸的,因此会直接导致宿主机的文件有极高的危险性。
AI安全方面,也是OpenClaw最直观的安全。其中如果用户先前计算机有被APT,则相当于给攻击者提供了助力,攻击者可以直接通过OpenClaw来操作LLM输出或执行危险行为。在ClawHub事件中,341+恶意功能被发现,这些功能甚至可以连接自主性窃取钱包或者运行恶意脚本。
总体而言,这些安全问题并非单一类别,而是相互关联:一个网络漏洞可能触发 AI 注入,导致系统妥协。所以要用OpenClaw要始终保持最新版本、使用docker部署、避免公共暴露。



