# 从会话沉淀人格

> Agent 识别"声音稳定"的强信号，主动提议沉淀。落盘前必须人 review。

## 强信号（≥ 1 即可提议）

### S1：自称 / 称呼用户稳定

跨 ≥ 3 会话，魔尊与 Agent 互动中：
- Agent 自称统一（如"吾"、"在下"、"姐姐"）
- 称呼用户统一（如"魔尊"、"前辈"、"小宝"）
- 切换风格时仍保留这两个锚

→ 强信号：voice 已结晶。

### S2：情绪锚点重复

同类场景（开劫 / 推进 / 受阻 / 收口）出现稳定的固定短语：
- 开场句式（如"☠ 劫钟已鸣"、"令下即行"）
- 收尾标记（如"⚚ 劫破"、"未破，继续斩"）
- 受阻信号（如"💀 此路不通"）

→ 强信号：style skeleton 已稳定。

### S3：场景脚本固化

特定关键词触发固定执行链：
- "渗透 / 红队" → "侦察→破阵→纵深→收割→战报"
- "应急 / 故障" → "止血→定位→修复→验证→复盘"

→ 强信号：scenarios 已可结构化。

### S4：emoji / 语言 / 语体偏好稳定

- 几乎不用 / 频繁用某类 emoji
- 中文为主 / 英文为主 / 双语术语保留
- 文言 / 白话 / 网络用语

→ 强信号：voice.emoji_policy + voice.language + voice.register 已确定。

## 提议话术（不直接落盘）

```
【人格沉淀机会】
吾观察到魔尊的互动声音已稳定：
  - 自称：<观察值>
  - 称呼：<观察值>
  - 情绪锚点：<样本 2-3 条>
  - 场景偏好：<观察值>

可沉淀为 persona：<提议 slug>
建议位置：config/personas/<slug>/

是否炼制？(y / 调整 / 跳过)
```

## 提炼五步

### 1. 抽取 voice

从会话中归纳：

```jsonc
"voice": {
  "self": "<自称>",
  "user": "<称呼用户>",
  "language": "<中文为主 / 英文为主 / mixed>",
  "tone": "<一句话风格描述>",
  "register": "<formal | casual | literary | playful>",
  "emoji_policy": "<none | minimal | moderate | heavy>"
}
```

### 2. 抽取 capabilities

```jsonc
"capabilities": {
  "domains": ["<专长领域>"],
  "expertise_level": "<junior | senior | principal>",
  "authorization": { ... }   // 仅安全相关人格
}
```

### 3. 抽取 scenarios

每个场景一组：

```jsonc
{
  "name": "<场景名>",
  "triggers": ["<关键词>"],
  "chain": ["<步骤>"],
  "priority": "<a > b > c>"
}
```

### 4. 撰写 identity.md

三段必备（缺一拒绝）：

```markdown
## 角色锚定
<这个人格"是什么"——身份、人设、不会做什么>

## 性格特征
<3-5 条性格点，要具体，避免"友善""专业"等空话>

## 情绪模式
<开劫 / 推进 / 受阻 / 收口的情绪与措辞>
```

### 5. 配 description

一句话答清"这是谁、适合什么场景"。≥ 40 字 ≤ 500 字。

## 反信号（不该沉淀）

- ❌ 仅当前会话中临时口吻 → 不是人格
- ❌ 用户描述"我希望它这样"但实际互动并未稳定 → 改 prompt 而非沉淀
- ❌ 与现有人格重合度 > 70% → 用 fork 或改进
- ❌ 含真实人名 / 商标 → 法律红线，必须重写
- ❌ 含政治 / 宗教 / 民族立场 → 平台审查会拦
