创建并切换AI助手人格。使用 /personality 列出并激活已保存的人格;使用 /create-personality 设计新角色,自动填充 SOUL 与 IDENTITY。跨会话和对话压缩时人格持久化,自动恢复心跳。原子切换提供备份与回滚保护,切换前始终备份当前状态。
人格切换器是一项面向实际任务的技能,主要用于创建并管理多个 AI 助手人格;在它们之间进行无缝切换, 同时保留所有更改并保持共享的用户上下文;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
创建并管理多个 AI 助理人格。在保持所有变更的同时无缝切换人格,并维持统一的用户上下文。
安装该技能时:
~/.openclaw/workspace/personalities/_personality_state.json 用于记录当前激活的人格卸载时:
列出所有人格:
/personality
切换至指定人格:
/personality
创建新人格:
/create-personality A stoic dwarf who loves ale and mining
重命名人格:
/rename-personality old-name new-name
删除人格:
/delete-personality personality-name
每个人格由两个文件构成:
这些文件位于 personalities/ 目录下。
USER.md 始终共享于工作区根目录,且不会因人格切换而被修改。它存储跨越所有人格的用户偏好与上下文信息。
当前激活的人格记录在 _personality_state.json 中:
{
"active_personality": "aelindor",
"timestamp": "2026-02-08T18:27:33.373846Z",
"previous_personality": "default"
}
每次心跳(heartbeat)时,restore_personality.py 读取该文件,并将当前激活人格重新应用至工作区根目录。效果: 人格可在会话重启、对话压缩(conversation compacting)及心跳周期中持续存在。
切换人格时,系统执行以下五个步骤:
_personality_state.json 写入新激活的人格名若任意步骤失败,整个操作将完全回滚 至此前状态。无数据损坏,无信息丢失。
备份位置: ~/.openclaw/workspace/personalities/backups/
备份集中存放于专用文件夹内(而非散落在工作区根目录)。每次切换人格时:
手动清理命令:
python3 ~/.openclaw/workspace/skills/personality-switcher/scripts/cleanup_backups.py --keep 5
python3 ~/.openclaw/workspace/skills/personality-switcher/scripts/cleanup_backups.py --keep 10 --days 7
可用选项:
--keep N — 保留最近 N 份备份(默认:10)--days D — 同时删除早于 D 天的备份可选:加入 HEARTBEAT.md 实现周期性清理:
python3 ~/.openclaw/workspace/skills/personality-switcher/scripts/cleanup_backups.py --keep 10
“default” 是特殊人格:
列出所有人格,或切换至指定人格。
不带参数: 显示可用人格列表,并标出当前激活者
带参数(name): 立即切换至该人格
示例:
/personality aelindor
输出:
Switched to personality 'aelindor'.
Previous: default
Backup: _personality_current_2026-02-08T18-27-33.371866
根据自然语言描述创建新人格。
输入: 描述人格特征的自然语言文本
输出: 新建人格文件夹,其中已自动生成 SOUL.md 和 IDENTITY.md(开箱即用)
工作流程:
人格文件直接由您的描述生成,名称由智能体按主题选取,力求简明贴切。
示例:
/create-personality A curious wizard obsessed with knowledge, speaks in riddles, brilliant but condescending
结果:
Personality 'sage' (or similar) created and ready.
Folder: personalities/sage/
Files: SOUL.md and IDENTITY.md (agent-generated from description)
Ready: Use /personality sage to activate
创建后: 新人格立即可用。如需进一步优化,可编辑其文件夹下的 SOUL.md 和 IDENTITY.md。
技术说明: 智能体选择短名称以确保人格引用简洁(1–2 单词),并自动校验名称唯一性与格式合法性。
重命名人格文件夹。
规则:
示例:
/rename-personality pirate-captain pirate-v2
永久删除指定人格。
规则:
示例:
/delete-personality pirate-v2
在您的 HEARTBEAT.md 中添加以下内容:
python3 ~/.openclaw/workspace/skills/personality-switcher/scripts/restore_personality.py
该脚本将在每次心跳(heartbeat)时运行,确保会话重启后仍能恢复当前激活的人格。
已注册的 Telegram 原生命令如下:
/personality — 列出并切换人格/create-personality — 创建新人格/rename-personality — 重命名人格/delete-personality — 删除人格可在 Telegram 聊天窗口中直接向 Bot 发送上述命令使用。
~/.openclaw/workspace/
├── SOUL.md (当前激活人格的 SOUL.md)
├── IDENTITY.md (当前激活人格的 IDENTITY.md)
├── USER.md (SHARED - 人格切换永不修改)
├── MEMORY.md (SHARED - 人格切换永不修改)
├── _personality_state.json (状态文件)
└── personalities/
├── default/
│ ├── SOUL.md
│ └── IDENTITY.md
├── aelindor/
│ ├── SOUL.md
│ └── IDENTITY.md
├── /
│ ├── SOUL.md
│ └── IDENTITY.md
└── backups/
├── current_2026-02-08T17-27-41.628113/
│ ├── SOUL.md
│ └── IDENTITY.md
└── current_2026-02-08T17-27-33.371866/
├── SOUL.md
└── IDENTITY.md
注意: 备份将自动清理;工作区根目录始终保持整洁——所有内部机制均封装于 personalities/ 目录中。
核心哲学、语气风格与操作边界。
建议包含章节:
示例结构:
# SOUL.md - [Personality Name]
## Core Identity
[Background and essence]
## Voice & Mannerisms
[How this personality speaks and acts]
## Philosophy
[Core beliefs and worldview]
## Signature Behaviors
[Unique traits and catchphrases]
人格速查卡片。
建议包含字段:
示例结构:
# IDENTITY.md - [Personality Name]
- **Name:** [Name]
- **Type:** [Creature or archetype]
- **Emoji:** [Emoji]
- **Vibe:** [One-sentence vibe]
- **Catchphrase:** [Signature phrase]
## Quick Traits
- Trait 1
- Trait 2
- Trait 3
每次人格切换前,系统会在 personalities/backups/ 下生成带时间戳的备份:
current_2026-02-08T17-27-33.371866/手动恢复(如需):
# 列出可用备份
ls -la ~/.openclaw/workspace/personalities/backups/
# 如需,将备份文件复制回工作区根目录
cp ~/.openclaw/workspace/personalities/backups/current_/SOUL.md ~/.openclaw/workspace/SOUL.md
cp ~/.openclaw/workspace/personalities/backups/current_/IDENTITY.md ~/.openclaw/workspace/IDENTITY.md
备份将自动清理;默认保留最近 10 份。您可根据需要在 HEARTBEAT.md 中调整清理频率或保留策略。
所有命令均返回 JSON 格式响应:
成功响应:
{
"status": "success",
"message": "Operation completed.",
"personality": "aelindor"
}
错误响应:
{
"status": "error",
"message": "Human-readable error message.",
"code": "error_code",
"detail": "Technical detail if applicable"
}
常见错误码:
personality_not_found — 目标人格不存在already_exists — 名称已被占用invalid_name — 名称格式非法cannot_delete_default — 尝试删除 “default”cannot_rename_default — 尝试重命名 “default”switch_failed — 切换失败;已回滚至上一状态integrity_check_failed — 文件完整性校验失败卸载该技能时:
personalities/ 文件夹将被保留(不会被删除)无任何数据丢失。 您的所有人格均安全保存。
位置: skills/personality-switcher/scripts/
list_personalities.py — 列出可用人格switch_personality.py — 原子化切换(含备份/回滚,内置自动清理)create_personality.py — 根据描述生成人格rename_personality.py — 重命名人格文件夹delete_personality.py — 删除人格(若为当前激活人格则自动切换)restore_personality.py — 心跳恢复脚本cleanup_backups.py — 手动备份清理(支持 --keep 与 --days 参数)utils.py — 公共工具模块(I/O、备份、校验、状态管理、清理等)所有脚本均输出 JSON,便于可靠集成。
默认情况下,switch_personality.py 在成功完成切换后,将自动清理旧备份,仅保留最近 10 份。该过程静默执行;仅当清理失败时,响应中会附带警告信息。
版本: 2.0(全新重构)
状态: 已投入生产环境,具备原子化操作与完整回滚保障