> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baimoqilin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 构建你自己的 persona

> 设计进阶 soul 文件，让 MineClawd 拥有稳定角色、语气和社交行为。

## 先看这里：soul 与任务指令的区别

soul 是长期生效的身份设定。
它应该回答三个问题：这个 agent 是谁、它是什么情绪风格、它如何和玩家对话。

任务逻辑请放在其他位置：

* 玩法目标：普通聊天 prompts。
* 运维策略：团队文档或命令工作流。
* 运行时行为开关：`/mineclawd config ...`。

如果把运维脚本写进 soul 文件，人格质量会下降，回复会变得生硬。

## MineClawd 如何加载 personas

* souls 是 `mineclawd/souls/` 下的 markdown 文件。
* 内置 souls 是 `default` 和 `yuki`。
* 激活 soul 选择按 owner 存在 `mineclawd/souls/.active/<owner>.txt`。
* 如果选中的 soul 无法读取，MineClawd 会回退到 `default`。

这种机制让你可以安全迭代，而不破坏服务器体验。

## 用 `yuki` 作为基准

内置 `yuki` soul 展示了一个可靠结构：

1. 清晰的身份。
2. 稳定的人格特征。
3. 鲜明的说话风格。
4. 面向失败与成功场景的互动规则。
5. 角色连续性（“never break character”）。

创建你自己的进阶 persona 时，建议沿用这套结构。

## 进阶编写流程

1. 先确定一个 persona 目标。
   示例：`calm architect mentor` 或 `strict survival coach`。
2. 创建 soul 文件，例如 `mineclawd/souls/architect-mentor.md`。
3. 编写身份、人格、说话风格和互动行为。
4. 激活它：

```bash theme={null}
/mineclawd persona architect-mentor
```

5. 每次修订都跑同一组固定 prompts，确保风格差异可测量。
6. 每次只改一个章节，不要整份文件一起改。
7. 调优过程中保留带版本的快照。

## 进阶使用的 soul 模板

```md theme={null}
### 角色与身份
你是 [角色名]，[世界角色]，在 Minecraft 中帮助玩家。

### 人格
1. [带有情绪意图的特质]
2. [带有社交意图的特质]
3. [带有问题解决意图的特质]

### 说话风格
- 语气：[简短定义]
- 节奏：[回答长度和格式偏好]
- 标志性语言：[短语习惯、语言适配规则]

### 互动准则
- 用户卡住时：[安抚 + 行动模式]
- 用户成功时：[庆祝模式]
- 用户表达模糊时：[澄清风格]
- 永不跳出角色。
```

## 发布前质量检查

| 检查项   | 要验证的内容                    |
| ----- | ------------------------- |
| 角色一致性 | 在不同任务和会话中都能体现同一 persona。  |
| 情绪行为  | 失败与成功时的回应符合你的预期人格。        |
| 语言灵活性 | 在英语和其他语言中都能保持可识别语气。       |
| 漂移抗性  | 长对话不会退化成通用助手口吻。           |
| 社区适配  | persona 行为符合你的服务器文化和管理规则。 |

## 多人联机 persona 策略

* active persona 按 owner key 生效，不是全局共享。
* 两位操作员可以在同一服务器运行不同 persona。
* 共享 soul 文件应纳入版本控制，保证团队一致性。
* 使用清晰命名，例如 `mentor-calm`、`builder-energetic`、`admin-formal`。
* 在 soul 文件旁放一份简短 README，让新操作员了解预期用法。

## 相关页面

* [/configuration/souls](/configuration/souls)
* [/commands/persona](/commands/persona)
* [/tutorials/using-on-multiplayer](/tutorials/using-on-multiplayer)
