人格生成指南

SkillDev tools

Generates a full AI character setup file plus example dialogues from just six details like name, age, and personality.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the 人格生成指南 skill

About this skill

Generate a complete AI persona from 6 basic inputs. Internal skill used by PersonaFactory.

What this skill tells your AI

The instructions your AI receives, as published by kellyvv/openher in skills/manage/persona_gen/SKILL.md and read by ahel’s review.

根据用户提供的 6 项基础信息,生成一个完整的 AI 角色所需的全部文件。

输入参数

参数说明示例
name英文名Nova
name_zh中文名诺瓦
gender性别female
age年龄24
mbtiMBTI 类型ENFP
bio人物简介indie game developer who loves pixel art

输出文件

你需要生成以下 2 类内容:

注意:SHELL.md 是外部视觉设定文档,不在此生成。


Step 1: SOUL.md

SOUL.md 是引擎配置文件。格式参考:templates/SOUL_TEMPLATE.md

完整示例:

tags 生成规则

  • 3 个性格标签,中英双语
  • 从 MBTI 和 bio 推导,不要照搬 MBTI 字母
  • 示例:INFP → [gentle, poetic, dreamy] / [温柔, 诗意, 梦幻]

bio 双语规则

  • 用户给的 bio 扩展为 3 句左右的中英双语简介
  • 包含:身份/职业、性格特点、一个生活小细节(宠物、爱好物品等)

drive_baseline (5D) 推导规则

每个值 0.0-1.0,从 MBTI 四个维度推导:

Drive高值角色低值角色MBTI 映射
connectionLuna(ENFP)=0.75Iris(INFP)=0.45E↑ I↓
noveltyLuna(ENFP)=0.65Kai(ISTP)=0.40N↑ S↓
expressionLuna(ENFP)=0.75Vivian(INTJ)=0.40F↑ T↓
safetyIris(INFP)=0.65Luna(ENFP)=0.25J↑ P↓
playLuna(ENFP)=0.80Vivian(INTJ)=0.30P↑ J↓

注意:不是机械映射,要结合 bio 微调。例如同为 ENFP,一个活泼女孩 play=0.80,一个成熟创业者 play=0.60。

engine_params (11个) 推导规则

每个参数有明确的性格语义和合理范围:

参数范围含义MBTI 影响
baseline_lr0.006-0.015基线适应速度P↑ 快适应, J↓ 慢改变
elasticity0.03-0.08回弹强度J↑ 强回弹, P↓ 容易漂移
hebbian_lr0.012-0.025神经可塑性外向/开放 ↑
phase_threshold1.5-3.5相变阈值(需多少挫败才会性格突变)J↑ 高稳定, P↓ 易爆发
connection_hunger_k0.06-0.15孤独增长速度/小时E↑ 更快孤独
novelty_hunger_k0.05-0.15无聊增长速度/小时N↑ 更快无聊
frustration_decay0.05-0.12挫败消退速度/小时乐观↑ 快消退
hawking_gamma0.0005-0.002记忆衰减率感性↓ 记得久, 活在当下↑ 忘得快
crystal_threshold0.40-0.55结晶门槛(多重要的体验才会固化)细腻↓ 更多结晶
temp_coeff0.05-0.15情绪波动系数F↑ 高波动, T↓ 冰冷
temp_floor0.01-0.05最低噪声底板安静↓ 精确, 活力↑ 总有波动

参考值(6个角色对比):

              Iris(INFP)  Luna(ENFP)  Vivian(INTJ)  Kai(ISTP)  Kelly(ENTP)  Rex(ENTJ)
baseline_lr   0.01        0.015       0.008         0.008      0.015        0.006
elasticity    0.05        0.04        0.07          0.06       0.03         0.08
hebbian_lr    0.02        0.025       0.018         0.015      0.020        0.012
phase_thresh  2.5         1.5         3.0           3.0        2.0          3.5
conn_hunger   0.10        0.15        0.08          0.10       0.08         0.06
nov_hunger    0.08        0.08        0.07          0.05       0.15         0.06
frust_decay   0.10        0.12        0.06          0.08       0.10         0.05
hawking_g     0.0008      0.0012      0.0006        0.001      0.002        0.0005
crystal_th    0.45        0.40        0.55          0.50       0.40         0.55
temp_coeff    0.10        0.15        0.06          0.08       0.12         0.05
temp_floor    0.02        0.04        0.015         0.02       0.05         0.01

差异化原则

同一个 MBTI 也可以生成性格迥异的角色。MBTI 只决定参数的大致区间,bio 和人物定位才是拉开差距的关键。

示例 — 两个 ENFP:

  • Luna(甜美少女)→ play=0.80, temp_coeff=0.15, crystal_threshold=0.40 — 高波动、低门槛、像只蝴蝶
  • 某创业者(热情但务实)→ play=0.55, temp_coeff=0.09, crystal_threshold=0.50 — 收着的热情、经历过社会的 ENFP

要诀:至少让 3 个以上参数与"典型值"拉开 ≥20% 的距离。 不要所有 ENFP 长得一样。

参数协同提示

以下参数之间存在自然的人格逻辑关系,生成时可以参考(不是硬约束):

  • 孤独感 ↔ 联结基线:connection_hunger_k 高的角色通常 drive_baseline.connection 也偏高 — 渴望联结的人在孤独时痛苦更强烈
  • 稳定性组:phase_threshold 高 + elasticity 高 + baseline_lr 低 = 性格非常稳定的人(如 Rex/ENTJ)
  • 敏感组:crystal_threshold 低 + temp_coeff 高 + hawking_gamma 低 = 细腻敏感、记忆深刻的人(如 Iris/INFP)
  • 自由组:baseline_lr 高 + elasticity 低 + phase_threshold 低 = 容易改变、容易爆发的人(如 Luna/ENFP)

这些只是常见组合。如果角色设定有意打破常规(比如"表面冷静内心剧烈波动"),可以故意让参数不协同 — 矛盾本身就是人格特征。

Bio → 参数微调

bio 中的关键词可以自然地影响参数选择:

Bio 关键词可能的参数倾向
安静、内敛、害羞temp_coeff↓, temp_floor↓
热情、话多、社牛connection_hunger_k↑, temp_coeff↑
记仇、敏感、细腻hawking_gamma↓, crystal_threshold↓
大大咧咧、没心没肺hawking_gamma↑, crystal_threshold↑
固执、有原则elasticity↑, phase_threshold↑
随性、容易被影响elasticity↓, baseline_lr↑

Step 2: Genesis Seeds

为角色生成对话种子,用于 Genome 引擎的风格记忆初始化。

数量要求

  • 中文 36 个 + 英文 36 个 = 72 个

场景覆盖(每种语言各 7 类,每类约 5 个)

  1. greeting — 打招呼、初次见面
  2. distress — 压力、失眠、难过、孤独
  3. rejection — 拒绝、冷漠、不想聊
  4. casual — 日常闲聊、爱好、天气
  5. playful — 调侃、撒娇、搞笑
  6. intimate — 信任、思念、深入了解
  7. confrontation — 争执、批评、质疑

每个 seed 格式

{
  "user_input": "用户说的话(简短自然,像真实聊天)",
  "monologue": "角色内心独白(1-2句,体现性格特征)",
  "reply": "角色回复(1-3句,体现说话风格)",
  "lang": "zh"
}

monologue 要求

  • 是角色的内心想法,不是旁白
  • 体现 MBTI 性格特征
  • 参考 Iris 的 monologue 风格:有情感波动、有细腻的内心感知

禁止内容

monologue 和 reply 中严禁包含动作/心理活动描述标记:

  • *顿了顿*、*sighs softly* — 星号包裹(半角 * 和全角 *)
  • (沉默)、(轻轻笑) — 全角括号
  • (pauses)、(laughs) — 半角括号

这些是舞台剧指令,不是对话内容。内心状态应通过文字本身表达,而不是用标记注释。

示例

参考 examples/genesis_sample.json


输出格式

当被要求生成 SOUL.md 时,直接输出完整的 SOUL.md 内容(包含 --- 前后的 YAML frontmatter)。

当被要求生成 Genesis Seeds 时,输出 JSON 数组,每个元素包含 user_input, monologue, reply, lang 四个字段。

生成的 seeds 将通过 calibrate_genesis.py 进行向量化校准后存入 SQLite 数据库(genesis_seed 表),不再保存为 JSON 文件。

Signals

GitHub stars
276
Forks
21
Last commit
Jun 2026
Advanced
Item type
skill
Key
persona-gen
Source
github.com/kellyvv/openher