Install
openclaw skills install aicone通用 AI 机器人克隆技能(安全加固版 v2.0)。支持导出/导入配置,ZIP Slip 防护,元数据脱敏,敏感文件自动排除。用于 A→B 能力复制、团队共享、备份恢复。
openclaw skills install aicone任何 AI 机器人都可以使用的克隆工具
| 问题 | 风险等级 | 修复方案 |
|---|---|---|
| ZIP Slip 漏洞 | 🔴 高危 | 路径验证 + 规范化检查 |
| 固定临时目录 | 🟡 中危 | 使用 tempfile.TemporaryDirectory |
| 元数据路径泄露 | 🟡 中危 | 默认脱敏(可配置) |
| 文档代码不一致 | 🟢 低危 | 统一命令参数 |
| 敏感文件无保护 | 🟡 中危 | 自动排除 .env, *.key 等 |
# 导入前验证克隆包
python scripts/clone_robot.py verify clone-package.zip
┌─────────────┐ ┌─────────────┐
│ 机器人 A │ │ 机器人 B │
│ (源) │ │ (目标) │
└──────┬──────┘ └──────┬──────┘
│ │
│ 1. 使用技能导出配置 │
│ → clone-package.zip │
│ │
├─────────────────────────────────>│
│ 传输文件 │
│ │
│ │ 2. 使用技能导入配置
│ │ ← clone-package.zip
│ │
▼ ▼
任何机器人执行以下命令导出自己:
# 基本导出(推荐)
python scripts/clone_robot.py export
# 指定输出文件名
python scripts/clone_robot.py export --output my-clone-package.zip
# 指定源目录
python scripts/clone_robot.py export --source /path/to/workspace
# 不包含可选目录(仅核心文件)
python scripts/clone_robot.py export --no-optional
# 额外排除文件
python scripts/clone_robot.py export --exclude "*.env" "secrets/"
# 保留完整路径(默认脱敏)
python scripts/clone_robot.py export --keep-paths
输出示例:
📦 导出配置...
源:/home/admin/.openclaw/workspace
📋 扫描工作区...
✅ SOUL.md (2.1KB)
✅ IDENTITY.md (1.5KB)
✅ USER.md (892B)
✅ MEMORY.md (3.2KB)
✅ HEARTBEAT.md (1.8KB)
✅ TOOLS.md (0.9KB)
✅ AGENTS.md (7.7KB)
📋 准备临时文件...
临时目录:/tmp/ai-clone-xyz123
✅ SOUL.md
✅ IDENTITY.md
...
ℹ️ 元数据已脱敏(不包含绝对路径)
✅ clone_metadata.json
🗜️ 打包为 clone-package-20260306-185500.zip...
✅ 导出完成!
文件:clone-package-20260306-185500.zip
大小:9.1KB
包含:7 个核心文件
安全版本:hardened v2.0
然后: 把 clone-package.zip 发给机器人 B(邮件/网盘/聊天工具)
收到克隆包后执行:
# 预览包内容(不执行导入)
python scripts/clone_robot.py import clone-package.zip --preview
# 验证安全性
python scripts/clone_robot.py verify clone-package.zip
# 导入配置(需要确认)
python scripts/clone_robot.py import clone-package.zip
# 跳过确认直接导入
python scripts/clone_robot.py import clone-package.zip --force
# 指定目标目录
python scripts/clone_robot.py import clone-package.zip --target /path/to/workspace
输出示例:
🔍 验证 ZIP 包安全性...
✅ 安全性检查通过
📥 导入配置...
包:clone-package.zip
目标:/home/admin/.openclaw/workspace
📋 克隆包信息:
创建时间:2026-03-06T18:55:00.123456
安全版本:hardened
文件数量:7
📋 即将导入以下文件:
✅ SOUL.md
✅ IDENTITY.md
✅ USER.md
✅ MEMORY.md
✅ HEARTBEAT.md
✅ TOOLS.md
✅ AGENTS.md
⚠️ 注意:这将覆盖目标目录的现有文件!
使用 --force 跳过确认
确认导入?(y/N): y
📥 正在导入...
✅ SOUL.md
✅ IDENTITY.md
...
✅ 导入完成!
目标:/home/admin/.openclaw/workspace
导入:7 个文件
🎉 机器人已成功复制配置!
安全版本:hardened v2.0
克隆脚本会自动识别和复制以下文件:
| 文件 | 说明 |
|---|---|
SOUL.md | 人格和价值观 |
IDENTITY.md | 机器人身份定义 |
USER.md | 用户信息 |
MEMORY.md | 长期记忆 |
HEARTBEAT.md | 任务机制 |
TOOLS.md | 本地工具配置 |
AGENTS.md | Agent 配置 |
| 目录 | 说明 |
|---|---|
memory/ | 每日记忆文件 |
skills/ | 技能包 |
scripts/ | 自动化脚本 |
projects/ | 项目文档 |
docs/ | 文档资料 |
def is_path_safe(path_str: str) -> bool:
# 拒绝绝对路径
if os.path.isabs(path_str):
return False
# 拒绝路径遍历
if ".." in path_str.split(os.sep):
return False
# 规范化路径并再次检查
normalized = os.path.normpath(path_str)
if normalized.startswith("..") or os.path.isabs(normalized):
return False
return True
防护效果:
../../../etc/passwd 等路径遍历攻击/etc/passwd 覆盖系统文件# ❌ 旧版本(不安全)
temp_dir = Path("/tmp/ai-clone-temp")
# ✅ 新版本(安全)
with tempfile.TemporaryDirectory(prefix="ai-clone-") as temp_dir:
# 自动清理,防竞争条件
...
优势:
# ❌ 旧版本(泄露路径)
metadata = {
"source_workspace": "/home/admin/.openclaw/workspace"
}
# ✅ 新版本(脱敏)
metadata = {
"source_workspace_name": "workspace", # 仅目录名
"security_version": "hardened"
}
保护内容:
DEFAULT_EXCLUDE_PATTERNS = [
".env", # 环境变量
"*.key", # 密钥文件
"*.secret", # 敏感文件
"*.pem", "*.crt", # 证书文件
# ... 更多
]
SENSITIVE_PATTERNS = [
"*api_key*",
"*apikey*",
"*secret*",
"*password*",
"*credential*",
]
python scripts/clone_robot.py export [选项]
选项:
--source PATH 源工作区路径
--output FILE 输出文件名
--exclude PATTERN 额外排除的文件/目录(可重复)
--no-optional 不包含可选目录
--keep-paths 在元数据中保留完整路径(默认脱敏)
python scripts/clone_robot.py import PACKAGE [选项]
选项:
--target PATH 目标工作区路径
--preview 预览包内容(不执行导入)
--force 跳过确认直接导入
python scripts/clone_robot.py verify PACKAGE
验证项:
✅ ZIP Slip 检查
✅ 绝对路径检查
✅ 可疑文件检查
验证来源
安全验证
verify 命令检查--preview)环境隔离
敏感信息
.env 文件元数据
--redact-metadata)--keep-paths(谨慎)文件审查
unzip -l clone-package.zip 查看内容部署后运行验证:
# 1. 检查核心文件
ls -la SOUL.md IDENTITY.md USER.md MEMORY.md
# 2. 验证记忆文件
cat MEMORY.md | head -20
# 3. 检查技能包
ls skills/
# 4. 启动测试
openclaw status
📋 检查核心配置文件...
✅ SOUL.md (2.1KB)
✅ IDENTITY.md (1.5KB)
✅ USER.md (892B)
✅ MEMORY.md (3.2KB)
✅ HEARTBEAT.md (1.8KB)
📁 检查可选目录...
✅ memory/ (15 文件,45.3KB)
✅ skills/ (8 技能,1.2MB)
✅ scripts/ (23 文件,156.7KB)
📊 扫描完成:
机器人:machine-cat
核心文件:7 个
可选目录:3 个
总大小:1.4MB
📦 创建克隆包...
源:/home/admin/.openclaw/workspace
目标:machine-cat-clone.zip
✅ 克隆包创建成功!
文件:machine-cat-clone.zip
大小:456.2KB
安全版本:hardened v2.0
.env, *.key, *.secret 等❌ 不安全路径:../../../etc/passwd
原因: 克隆包可能包含恶意文件
解决: 拒绝导入,联系发送者重新打包
❌ 警告:未找到任何核心配置文件
原因: 不在正确的 workspace 目录
解决: 使用 --source 指定正确路径
⚠️ 元数据包含绝对路径
原因: 使用了 --keep-paths 参数
解决: 重新导出,不使用该参数
技能版本:2.0.0
安全版本:hardened
创建时间:2026-03-04
安全更新:2026-03-06
机器猫 🐱 开发