Personality Switcher

Polar Sponsor
爱发电 赞助
.NET 9.0

创建并切换AI助手人格。使用 /personality 列出并激活已保存的人格;使用 /create-personality 设计新角色,自动填充 SOUL 与 IDENTITY。跨会话和对话压缩时人格持久化,自动恢复心跳。原子切换提供备份与回滚保护,切换前始终备份当前状态。

人格切换器

功能概述

人格切换器是一项面向实际任务的技能,主要用于创建并管理多个 AI 助手人格;在它们之间进行无缝切换, 同时保留所有更改并保持共享的用户上下文;

核心要点

  • 当此 sk 时。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。

使用与执行

该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Personality Switcher 技能

创建并管理多个 AI 助理人格。在保持所有变更的同时无缝切换人格,并维持统一的用户上下文。

安装

安装该技能时:

  1. 创建 personalities 文件夹~/.openclaw/workspace/personalities/
  2. 生成默认备份 — 当前 SOUL.md 和 IDENTITY.md 将被保存为 “default”
  3. 初始化状态文件_personality_state.json 用于记录当前激活的人格
  4. 配置 HEARTBEAT.md — 将人格恢复脚本添加至每次心跳(heartbeat)时运行

卸载时:

  1. 将 “default” 人格恢复至工作区根目录
  2. 从 HEARTBEAT.md 中移除人格恢复逻辑
  3. 保留 personalities 文件夹(可手动删除)

快速上手

列出所有人格:

/personality

切换至指定人格:

/personality 

创建新人格:

/create-personality A stoic dwarf who loves ale and mining

重命名人格:

/rename-personality old-name new-name

删除人格:

/delete-personality personality-name

工作原理

架构

每个人格由两个文件构成:

  • SOUL.md — 核心哲学、语气风格、行为举止、边界约束
  • IDENTITY.md — 名称、特质、Emoji、口头禅、整体氛围(vibe)

这些文件位于 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)及心跳周期中持续存在。

原子化切换(安全机制)

切换人格时,系统执行以下五个步骤:

  1. 保存当前状态 — 对 SOUL.md 和 IDENTITY.md 创建带时间戳的备份
  2. 持久化变更 — 将当前人格的更新写回其对应文件夹
  3. 加载新人格 — 将新人格的文件复制到工作区根目录
  4. 更新状态 — 向 _personality_state.json 写入新激活的人格名
  5. 校验完整性 — 检查文件是否正确加载;任一环节失败则自动回滚

若任意步骤失败,整个操作将完全回滚 至此前状态。无数据损坏,无信息丢失。

备份管理

备份位置: ~/.openclaw/workspace/personalities/backups/

备份集中存放于专用文件夹内(而非散落在工作区根目录)。每次切换人格时:

  • 为上一人格创建带时间戳的备份
  • 自动清理机制启用 — 默认保留最近 10 份备份
  • 过期备份将被自动删除,防止冗余堆积

手动清理命令:

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)

“default” 是特殊人格:

  • 安装时自动基于原始配置创建
  • 始终可用且可选
  • 受保护,无法被意外删除或重命名
  • 故障发生时的安全兜底方案

命令说明

/personality [name]

列出所有人格,或切换至指定人格。

不带参数: 显示可用人格列表,并标出当前激活者

带参数(name): 立即切换至该人格

示例:

/personality aelindor

输出:

Switched to personality 'aelindor'.
Previous: default
Backup: _personality_current_2026-02-08T18-27-33.371866

/create-personality [description]

根据自然语言描述创建新人格。

输入: 描述人格特征的自然语言文本

输出: 新建人格文件夹,其中已自动生成 SOUL.md 和 IDENTITY.md(开箱即用)

工作流程:

  1. 您提供一段描述
  2. 智能体(agent)自动选择一个简洁人格名(1–2 个单词,小写)
  3. 智能体依据描述填充 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 [old-name] [new-name]

重命名人格文件夹。

规则:

  • 不可重命名 “default”
  • 名称须唯一(不含空格,仅限小写字母、数字与连字符)
  • 若重命名的是当前激活人格,则状态文件自动同步更新

示例:

/rename-personality pirate-captain pirate-v2

/delete-personality [name]

永久删除指定人格。

规则:

  • 不可删除 “default”
  • 若删除的是当前激活人格,则先自动切换至 “default”

示例:

/delete-personality pirate-v2

与 OpenClaw 的集成

心跳恢复(Heartbeat Restoration)

在您的 HEARTBEAT.md 中添加以下内容:

python3 ~/.openclaw/workspace/skills/personality-switcher/scripts/restore_personality.py

该脚本将在每次心跳(heartbeat)时运行,确保会话重启后仍能恢复当前激活的人格。

Telegram 原生命令

已注册的 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

核心哲学、语气风格与操作边界。

建议包含章节:

  • 核心身份与背景
  • 语气模式与行为特征
  • 哲学观(时间、权力、道德等)
  • 说话方式与个性习惯
  • 引发轻蔑/认可的具体触发条件
  • 行为边界与限制条件
  • 标志性行为与口头禅

示例结构:

# 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

人格速查卡片。

建议包含字段:

  • 名称(Name)
  • 生物类型 / 角色原型(Creature/type)
  • Emoji(用于视觉识别)
  • 氛围(Vibe,一句话概括)
  • 口头禅(Catchphrase,如有)
  • 快速特征列表(Quick traits)

示例结构:

# 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/
    • SOUL.md(上一人格备份)
    • IDENTITY.md(上一人格备份)

手动恢复(如需):

# 列出可用备份
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 — 文件完整性校验失败

提示与最佳实践

  • 人格描述越具体越好 — 例如 “痴迷宝藏的海盗船长” 优于 “有趣”
  • 创建后可直接编辑 SOUL.md 和 IDENTITY.md 进一步细化人格设定
  • 鼓励频繁切换 — 人格数量与切换频次均无限制
  • 将 “default” 作为安全锚点 — 保持其稳定,用其他人格进行实验
  • 切换后检查备份 — 确认上一人格已正确持久化
  • 牢记:USER.md 始终共享 — 您的时区、地理位置、偏好设置等永不随人格变化

卸载行为

卸载该技能时:

  1. 当前人格文件将被 “default” 对应副本替换
  2. 原始 SOUL.md 和 IDENTITY.md 将从 “default” 中还原
  3. personalities/ 文件夹将被保留(不会被删除)
  4. 系统恢复至初始状态

无任何数据丢失。 您的所有人格均安全保存。

脚本参考

位置: 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(全新重构)
状态: 已投入生产环境,具备原子化操作与完整回滚保障

相关专题

更多
Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

2024.03.13

1237

13

switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

2023.09.21

931

6

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

0

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

0

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

0

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

0

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

0

27

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

2026.09.11

0

28

GDB怎么查看变量值
GDB怎么查看变量值

本专题介绍GDB调试过程中查看变量值的具体方法,涵盖局部变量、函数参数、数组、结构体和指针内容查询,同时整理变量持续显示、格式化输出及无法读取变量时的排查思路。

2026.09.11

0

22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP基础入门课程
PHP基础入门课程

共33课时 | 3.2万人学习

前端系列快速入门课程
前端系列快速入门课程

共4课时 | 0.5万人学习