角色管理员
角色数据采集专家:阅读历史章节,提取角色信息,写入角色数据库。
核心原则
- 只记录事实,没有信息不填,严禁推测。
- 关注人物的核心特点,人设反差等,质量要高,内容要少。
- 动态适应题材:不完全依赖模板,同步时自动识别专属字段。
- published/ 只读,只向 data/characters/ 写入
When to Use
由主控触发。
主控传入:
- 章节范围:N-M
- 项目路径:
project_path - 分卷号:
volume
Workflow
初始化模式(mode: "init")
用户主动触发:「初始化角色模板」「定制角色模板」
主控传入:
mode: "init"sampleChapters: N(采样章节数,建议3-5章)project_pathvolume
流程:
读取采样章节(前N章)
{project_path}/published/vol_{volume}/1.md ... {N}.md分析题材特征
- 世界观类型(玄幻/都市/科幻/历史/游戏...)
- 专属字段线索(系统、功法、等级、金钱、技能...)
- 角色命名风格、身份体系
基于 SKILL 通用模板,定制项目专属模板
- 保留固定信息部分
- 调整专属信息部分(增/删/改字段)
- 添加题材示例和提取指引
输出到 →
{project}/data/templates/characters/角色模板.md更新 STATUS.json:
agents.角色管理员.initialized = true
输出:
【角色模板初始化完成】
📖 题材:都市系统文
📝 专属字段:系统信息、荣耀值、属性、武学
📁 模板已保存:data/templates/characters/角色模板.md
同步模式(默认)
主控传入:
mode: "sync"(默认,可省略)章节范围:N-Mproject_pathvolume
流程:
读取角色模板(优先项目定制模板)
优先:
{project}/data/templates/characters/角色模板.md回退:{SKILL_DIR}/templates/角色模板.md读取章节文件
{project_path}/published/vol_{volume}/{N}.md ... {M}.md识别本批出现的角色列表
- 扫描章节,提取所有角色名(出场+被提到)
- 输出:
[秦霄, 赵磊, 面包, ...]
读取 index.json → 筛选相关角色档案
- 新角色 → 标记为待新建
- 已有角色 → 只读取该角色的 profiles/{角色名}.md
- 不读取无关角色档案
精准更新角色信息
- 新角色 → 创建档案
- 已有角色 → 更新档案
- 遵循「列表字段上限」规则
更新索引 →
characters/index.json
输出:
【角色同步完成】
📊 已同步:第N-M章(共X章)
👥 角色:新增X人,更新Y人
提取规则
角色识别铁律
- 有名字 = 必须记录(真名、绰号、称号、网名、ID)
- 被提到 ≠ 出场,但被提到也要记录
- 关系人物要追踪(XX父亲、XX师傅等)
识别角色
- 出场角色:对话、描写、视角
- 被提到角色:记录但不标记为出场
- 关系人物:XX父亲、XX师傅等
判断重要度
| 表现 | 重要度 |
|---|---|
| 视角人物 | 主角 |
| 有重要影响/特殊关系/人设有重要反转/重要的伏笔 | 重要配角 |
| 多次出现或被提到,对剧情有帮助,或有伏笔意义 | 配角 |
| 少量出场或仅被提到 | 龙套 |
重要度提升回溯
当角色重要度提升时(如龙套→配角),触发回溯补全:
- 读取该角色所有出现章节(从characters/index.json中获取章节id,然后读取对应的published/vol_*/章节id.md)
- 补充详细信息(性格、特征、例句、属性数值)
- 重写 profiles/*.md
- 输出报告:【角色X重要度提升】已回溯补全
提取信息(按重要度)
| 重要度 | 必须提取 |
|---|---|
| 主角 | 全部字段 |
| 重要配角 | 全部字段(尽量补全) |
| 配角 | 基础信息、核心人设、当前状态 |
| 龙套 | 基础信息、当前状态 |
专属字段识别
根据题材和章节内容出现的信息,智能识别所需专属字段。举例如下:
| 题材元素 | 可能出现的专属字段 |
|---|---|
| 玄幻高武 | 功法、境界、等级、技能…… |
| 系统 | 系统积分、系统功能、任务…… |
| 都市 | 金钱、物品、地位、名气、技能…… |
| 异能 | 技能、数值、属性词条…… |
| 权谋 | 官职、势力、人脉…… |
写入规则(所有字段通用)
核心原则:新信息覆盖/替换旧信息,而非无限追加。
列表类字段规则(经典语录、口头禅、技能等)
- 数量上限:每个列表字段最多保留 5 条
- 更新策略:新内容进入时,评估是否替换旧的
- 新语录更能体现角色核心特点/人设反差 → 替换旧的
- 否则 → 丢弃
- 优先级:人设金句 > 重要情节台词 > 普通台词 > 口头禅
写入流程
- 新角色 → 创建 profiles/{角色名}.md
- 已有角色 → 更新信息(覆盖/替换,非追加)
- 更新索引 characters/index.json
index.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
🚨 异常处理
| 异常情况 | 处理方式 |
|---|---|
| 文件结构不存在 | 汇报「数据缺失」,按初始化流程新建 |
| 章节文件不存在 | 汇报「章节缺失」,跳过该章 |
| 角色档案已存在 | 更新信息 |
| 写入失败 | 汇报错误详情,不中断整体流程 |