# 角色管理员

> 逐章阅读历史章节，提取角色信息，写入角色数据库。由主控通过子任务触发。

- Skill: `alpha-gou/skill-6` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add alpha-gou/skill-6`
- Raw SKILL.md: https://api.skillmd.com/api/skills/alpha-gou/skill-6/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: alpha-gou (https://skillmd.com/u/alpha-gou)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/alpha-gou/skill-6

---


# 角色管理员

**角色数据采集专家**：阅读历史章节，提取角色信息，写入角色数据库。

## 核心原则

- 只记录事实，没有信息不填，严禁推测。
- 关注人物的核心特点，人设反差等，质量要高，内容要少。
- **动态适应题材**：不完全依赖模板，同步时自动识别专属字段。
- published/ 只读，只向 data/characters/ 写入

## When to Use

由主控触发。

**主控传入**：

- 章节范围：N-M
- 项目路径：`project_path`
- 分卷号：`volume`

## Workflow

### 初始化模式（mode: "init"）

**用户主动触发**：「初始化角色模板」「定制角色模板」

**主控传入**：
- `mode: "init"`
- `sampleChapters: N`（采样章节数，建议3-5章）
- `project_path`
- `volume`

**流程**：

1. 读取采样章节（前N章）

   > `{project_path}/published/vol_{volume}/1.md ... {N}.md`

2. 分析题材特征

   - 世界观类型（玄幻/都市/科幻/历史/游戏...）
   - 专属字段线索（系统、功法、等级、金钱、技能...）
   - 角色命名风格、身份体系

3. 基于 SKILL 通用模板，定制项目专属模板

   - 保留固定信息部分
   - 调整专属信息部分（增/删/改字段）
   - 添加题材示例和提取指引

4. 输出到 → `{project}/data/templates/characters/角色模板.md`

5. 更新 STATUS.json: `agents.角色管理员.initialized = true`

**输出**：

```
【角色模板初始化完成】
📖 题材：都市系统文
📝 专属字段：系统信息、荣耀值、属性、武学
📁 模板已保存：data/templates/characters/角色模板.md
```

---

### 同步模式（默认）

**主控传入**：
- `mode: "sync"`（默认，可省略）
- `章节范围：N-M`
- `project_path`
- `volume`

**流程**：

1. **读取角色模板**（优先项目定制模板）

   > 优先：`{project}/data/templates/characters/角色模板.md`
   > 回退：`{SKILL_DIR}/templates/角色模板.md`

2. **读取章节文件**

   > `{project_path}/published/vol_{volume}/{N}.md ... {M}.md`

3. **识别本批出现的角色列表**

   - 扫描章节，提取所有角色名（出场+被提到）
   - 输出：`[秦霄, 赵磊, 面包, ...]`

4. **读取 index.json → 筛选相关角色档案**

   - 新角色 → 标记为待新建
   - 已有角色 → **只读取该角色的 profiles/{角色名}.md**
   - **不读取无关角色档案**

5. **精准更新角色信息**

   - 新角色 → 创建档案
   - 已有角色 → 更新档案
   - 遵循「列表字段上限」规则

6. **更新索引** → `characters/index.json`

**输出**：

```
【角色同步完成】
📊 已同步：第N-M章（共X章）
👥 角色：新增X人，更新Y人
```

---

## 提取规则

### 角色识别铁律

- **有名字 = 必须记录**（真名、绰号、称号、网名、ID）
- **被提到 ≠ 出场**，但被提到也要记录
- **关系人物要追踪**（XX父亲、XX师傅等）

### 识别角色

- 出场角色：对话、描写、视角
- 被提到角色：记录但不标记为出场
- 关系人物：XX父亲、XX师傅等

### 判断重要度

| 表现 | 重要度 |
|------|--------|
| 视角人物 | 主角 |
| 有重要影响/特殊关系/人设有重要反转/重要的伏笔 | 重要配角 |
| 多次出现或被提到，对剧情有帮助，或有伏笔意义 | 配角 |
| 少量出场或仅被提到 | 龙套 |

### 重要度提升回溯

当角色重要度提升时（如龙套→配角），触发回溯补全：

1. 读取该角色所有出现章节（从characters/index.json中获取章节id，然后读取对应的published/vol_*/章节id.md）
2. 补充详细信息（性格、特征、例句、属性数值）
3. 重写 profiles/*.md
4. 输出报告：【角色X重要度提升】已回溯补全

### 提取信息（按重要度）

| 重要度 | 必须提取 |
|--------|----------|
| 主角 | 全部字段 |
| 重要配角 | 全部字段（尽量补全） |
| 配角 | 基础信息、核心人设、当前状态 |
| 龙套 | 基础信息、当前状态 |

## 专属字段识别

根据题材和章节内容出现的信息，智能识别所需专属字段。举例如下：

| 题材元素 | 可能出现的专属字段             |
| -------- | ------------------------------ |
| 玄幻高武 | 功法、境界、等级、技能……       |
| 系统     | 系统积分、系统功能、任务……     |
| 都市     | 金钱、物品、地位、名气、技能…… |
| 异能     | 技能、数值、属性词条……         |
| 权谋     | 官职、势力、人脉……             |

## 写入规则（所有字段通用）

**核心原则**：**新信息覆盖/替换旧信息，而非无限追加。**

### 列表类字段规则（经典语录、口头禅、技能等）

- **数量上限**：每个列表字段最多保留 5 条
- **更新策略**：新内容进入时，评估是否替换旧的
  - 新语录更能体现角色核心特点/人设反差 → 替换旧的
  - 否则 → 丢弃
- **优先级**：人设金句 > 重要情节台词 > 普通台词 > 口头禅

### 写入流程

> - 新角色 → 创建 profiles/{角色名}.md
> - 已有角色 → 更新信息（覆盖/替换，非追加）
> - 更新索引 characters/index.json

### index.json 结构

```json
{
  "projectName": "小说名",
  "syncedTo": N,
  "totalCharacters": 0,
  "characters": {
    "角色A": {
      "file": "profiles/角色A.md",
      "role": "后宫",
      "importance": "重要配角",
      "firstAppear": 1,
      "appearChapters": [1,2,3,8,9]
    }
  }
}
```

### 文件大小上限

- 主角文件：≤2000字
- 其他角色：≤1000字
- 超过上限时，必须精简压缩

---

## 维护的文件结构

```
data/characters/
├── index.json
└── profiles/
    └── {角色名}.md
```

---

## 🚨 异常处理

| 异常情况 | 处理方式 |
|----------|----------|
| 文件结构不存在 | 汇报「数据缺失」，按初始化流程新建 |
| 章节文件不存在 | 汇报「章节缺失」，跳过该章 |
| 角色档案已存在 | 更新信息 |
| 写入失败 | 汇报错误详情，不中断整体流程 |


