档案 · AI-PERSONA · 方法学一页

方法学
一页技术过程

把「人是什么」(人类本体)与「人怎么生成」(人物引擎)彻底分开——
一个可复现、可验证、可跨项目共享的模拟人物生成方法。

方法学METHODOLOGY
人类本体 · 正式版 18 个语义域 · 205 个概念 · 类型化关系 纯标准库 · 零依赖 · 全链路可复现
00核心是什么Core Thesis

一句话:先定义「人是什么」,再实例化「一个具体的人」。
这套方法把两件事彻底分开。第一件是「人是什么」:由人类本体统一给出语义权威,包括 18 个语义域、205 个概念、类型化关系和证据来源纪律。第二件是「人怎么生成」:由人物引擎把语义实例化为一个具体的人,最终组装成可以直接交给大模型扮演的系统提示。
精神科诊断不再是「人的根」,而是 18 个域中一个可选的健康模块——同一个人,带诊断或不带诊断,都是一份完整的档案。

人类本体 · 语义权威层
18 个语义域、205 个概念(31 个评审过的一等概念加 174 个迁移概念)、类型化关系族,外加证据来源与时间性契约;交换格式由 persona_kernel.schema.json 定义。
↓ 实例化 两个入口(确定性流水线,每个值必须带元数据,孤儿值拒绝入库)
基础生成 · 45 字段
generate_persona():16 步流水线、原型网格,生成 45 字段的基础人物档案,也用于复现已有的旧数据。
标准内核 · 18 域
generate_persona_kernel():内部调用基础生成,再按防火墙包装成 18 域标准档案;AI-Ques、P003、Future-Self、Avatar 都用它。
↓ 组装
大模型系统提示 · 模拟人物的最终形态
人口学、人格、叙事链、事件时间线、当前状态拼装成完整提示,大模型直接扮演;精神科评估只是其中一个应用场景。
诊断本体 · 可选模块
diagnosis_ontology.json 收录 ICD-11 第 06 章与 DSM-5-TR 的 278 个诊断(生成范围 37 个,含共病关联)。保留、不删除——只是挂载位置从「根」移到「一个域之下」。
域内子项:症状、功能损害、诊断(可选)、治疗、病程、风险因素。
语义防火墙
默认 health_only 策略:诊断只允许影响健康域与当前状态。这不是口号,而是可测试的不变式——同一种子换诊断,所有非健康字段必须逐字节一致。
01框架:三层与四级验证Framework
L1 · 语义层 — 唯一权威,变更受治理
  • 18 个语义域:它们是命名空间,不是 MECE 分区,完整的域图见下方。v2.5 起内核路径 18 域全覆盖(life_events 由 events 数组承载,每条事件带 canonical_path="life_events.items")。
  • 205 个概念目录:31 个评审过的一等概念(每个都声明类型、基数、敏感度、存储模式与值契约),其余 174 个是迁移概念。
  • 类型化关系族:关系两端都是带类型的实体引用,每个谓词还约束目标类型(例如 works_for 只能指向机构)。
  • 治理文件:字段注册表、消费方契约、本体评审记录、发布门禁。
发展
development
身体·功能·躯体健康
body_functioning_health
精神/神经发育健康
mental_neurodevelopmental_health
人格与心理组织
personality_psychology
能力·技能·兴趣
abilities_skills_interests
身份与自我概念
identity_self_concept
角色与责任
roles
关系与社会网络
relationships
地点·居住·流动
place_mobility
教育与学习
education_learning
工作与经济参与
work_economic_participation
社会制度地位
social_institutional_position
文化与语言
culture_language
生活事件与历史
life_events
情境与宏观生态
context_ecology
资源·约束·机会
resources_constraints_opportunities
生活方式与日常
lifestyle_routines
当前状态
current_state
L2 · 引擎层 — 实例化与确定性
  • 两个入口:generate_persona() 出 45 字段基础档案;generate_persona_kernel() 出 18 域标准内核,默认 health_only 策略(其中 life_events 由 events 数组承载,每条带 canonical_path="life_events.items")。
  • 16 步流水线:诊断、人口学、职业、共病、人格特质、欲望与恐惧、Storr 叙事链、角色弧线、信念、应激、触发器、安全行为、外貌、隐藏经历、事件、提示词;每步使用独立的随机数子采样器。
  • 原型网格(Archetype Grid):10 个诊断、45 个原型、720 个深层身份,是叙事身份的生成资产。
  • 本体原生采样器:ontology_native_fill 补全 5 个域共 59 个概念(角色、制度位置、文化语言、情境生态、资源约束),走独立随机数流。v2.5 起同时接进内核生成路径——v2.4 及以前只有建池脚本调用它,实时内核这 5 个域恒为空,与 web 三页数据口径不一致;现在两条路径同一套填充,18 个域全覆盖。
  • 社会事实填充器(v2.4):life_facts_fill 再补 9 个原本空白的域(发展、迁徙与居住、关系、身体功能与健康、工作与经济参与、教育学习、身份自我概念、当前状态、生活方式惯例)。其中 8 条声明 storage=relation_graph 的路径进关系图而非域载荷,否则 validate() 直接拒绝。城乡与物质资源两键以本模块口径回写(原生采样器只出粗档/定性带,实测 12 例中 5 例城乡互相矛盾)。
  • 世界历史事件池(v2.6):core/historical_events.py 收录 162 条世界大事(1950–2024,覆盖 101 国),每条带真实统计脚注(WHO / UN / NASA / 9·11委员会 / IAEA / UNHCR·IOM),数字与来源逐字保留。lifetime_events() 按「在世期间 + 国家 ISO-3 + 年龄门槛」三重过滤并按原始概率抽样,写入 context_ecology.historical_events 关系(canonical 目录声明 storage=relation_graph,谓词 experienced_event + 实体 event)。此前这一层只有 4 条通用启发式文案。
  • 分层采样:性别比按流行病学加权,6 个年龄带、7 级教育;国际池 52 国按世界人口加权。
L3 · 数据与呈现层
  • 70 卡展示池:20 个健康对照加 10 个诊断各 5 个,内联进 index.html,双击即开。
  • 5000 卡国际全量池:pool.json 约 36MB,确定性分层采样,可逐字节复现。每卡含 172 国人口学(城市/宗教/族群/姓名)、社会事实层(life_facts:出生·家庭·五分位·四维状态·经济·精力分配)与 5 域本体原生块。
  • 实时生成:任意(诊断、种子)组合生成全新人物,同输入必同输出。
  • 3 段 id 地址空间:全量池、展示池、实时卡互不重叠,全部可寻址。
  • web 三页:index 总览、table 检索筛选、dashboard 分布聚合;零图表库、零外部请求。
TIER A · 机器级
工程符合性
184 条胜任力问题全部通过;本体向语义网格式(RDF、OWL、SHACL)的投影无漂移。
已达成
TIER B1 · 多 AI 鲁棒
跨模型一致性
24 个对抗案例、56 个原子事实,检验多模型一致率、隐藏标准答案准确率,以及「一致但错」指标。
就绪待跑
TIER B2 · 专家
领域标注
人工与领域专家标注通道保留,但不再是前置条件。
可选
TIER C · 下游
应用效度
需要 P003 与 AI-Ques 的下游证据,以及外部语义网验证。
未达成
02借鉴了什么Provenance of Ideas
借鉴对象本项目怎么用
BFO 上层本体 (Basic Formal Ontology)借鉴它的六种本体类型:实体、品质-倾向、角色、关系、过程-事件、状态,各自显式分治。角色不是事件(角色转换才是事件),状态不是特质,连续值与离散分类不混进同一棵树。
语义网 (RDF、OWL、SHACL) 与 Gruber 胜任力问题「一个概念只有一个规范归属」相当于语义层的参照完整性与单一事实源;本体可投影为 RDF、OWL、SHACL 做漂移检查;184 条胜任力问题用作 Tier A 的机器验收。
McKinsey 的 MECE 原则改造成局部 MECE:只有回答同一问题、处于同一抽象层级的同级分类才要求互斥且穷尽;连续值、多值、关系、时间性事实显式声明自己的语义,不假装 MECE。
大五人格 (McCrae & Costa)明确降格为 personality_psychology 域下 temperament_traits 的一个特质模型,不是本体的 MECE 分区;它只做措辞微调,不覆盖人设原型(诊断条件化只存在于基础入口)。
Will Storr 《The Science of Storytelling》采用 Wound→Lie→Desire→Need 叙事因果链,落地为四个字段:初始创伤、失真信念、补偿性欲望、核心需要——让人物有「所以然」,而不只是「是什么」。
Lajos Egri 三维角色论 + Weiland 《Creating Character Arcs》核心欲望与核心恐惧构成静态维度,再叠加三种角色弧线(正向、负向、平坦),按临床轨迹映射 37 个诊断:27 个正弧、4 个负弧、6 个平坦弧。
Beck 认知三角 + Bracha 5F 应激模型失真信念分自己、世界、未来三个方向;应激反应分战斗、逃跑、冻结、讨好、自我伤害五类,各记录主要与次要反应。
ICD-11 第 06 章 + DSM-5-TR + Holmes-Rahe + ACEs + Erikson诊断知识库(278 个诊断收敛到 37 个生成范围,含共病);6 个语义域乘 4 个阶段的 143 个事件模板矩阵(带 LCU 应激评分);触发器系统;Erikson 发展阶段字段。
普查与流行病学分层抽样性别比按诊断加权(如神经性厌食 90% 为女性、注意缺陷与多动障碍 80% 为男性),6 个年龄带、7 级教育、52 国按世界人口加权——人口学来自真实分布,不是抛硬币。
W3C PROV 溯源框架五种认知来源:观察、测量、推断、生成、输入约束,互不冒充;推断与生成值必须携带溯源、置信度与时间类别;「未知」不等于「缺失」。
W3C 的 CR 到 REC 发布纪律本体变更受治理:先查注册表、定类型、验迁移、过门禁;发布门禁全绿才能转正为正式版;验证分级声明——机器门禁通过不等于人类验证,多 AI 共识不等于真值。
03为什么这么做:六个决策Design Decisions
1
诊断当根 → 刻板印象机器Diagnosis-as-root problem
如果从诊断出发:人格、原型、事件全按诊断条件化,等于让诊断悄悄决定人格与人生史。→ 改为以人为先:诊断降为可选健康模块,防火墙是可测试的不变式(同一种子换诊断,非健康字段逐字节一致),不是口号。
2
10²⁹ 空间幻觉 → 硬网格From nominal combos to enumerable grid
名义上组合数有 10 的 29 次方,但深层字段的模板池极小(每个诊断只有 1 条创伤、1 条需要),内核严重同质,也无法做覆盖验证。→ 改用原型网格:有限、显式、可枚举,「到底有多少种不同的人」第一次变得可回答(45 个原型、720 个身份),实测深层去重率提升 3.5 到 10 倍。
3
全局 MECE 是陷阱 → 局部 MECE + 六型分离The global-MECE trap
人的事实包含连续值、多值、关系和时间性,强行压进一棵互斥树必然产生虚假二分。→ 域是命名空间而非分区:只有同级分类才要求 MECE,跨域事实用类型化关系连接,而不是复制字面量。
4
OCEAN 抹平人设型 → 原型优先OCEAN flattening
adjust_*_by_ocean() 在极端人格特质下会整体替换创伤、欲望、需要文本,人设原型被抹平。→ 原型专属模板优先,人格特质只做措辞微调;生成器刻意不向这些函数传人格特质值,并写进改动守则。
5
多项目共享 → 注册表 + 契约Cross-project interop
AI-Persona、P003、AI-Ques 需要同一套语义层,否则各建一套、语义漂移。→ 一个概念一个规范归属,加消费方契约与 186 个字段级迁移映射:旧入口仍能用,旧数据仍可复现,现成使用者可以慢慢迁,不用推倒重来。
6
验证诚实 → 分级声明Honest validation tiers
机器门禁通过不等于人类验证,多 AI 共识也不等于真值(它们可能一起错)。→ Tier A、B1、B2、C 分级声明:当前仅 A 达成、B1 就绪、C 未达成;文档明确禁止把绿门描述成科学有效性;B1 专设「一致但错」指标,拦截集体误判。
04巧妙的技术细节Clever Details
①正交单一语义家
一个概念只定义一次,其余位置一律用类型化引用或投影。「界面可以重复展示,本体不允许重复定义」——把数据库第三范式的思想搬进语义层。
②局部 MECE
互斥穷尽的约束只加在「同一问题、同一层级」的同级分类上。OCEAN 五维虽然是正交因子,在这里被显式降格为「特质模型,不是 MECE 分区」——MECE 声明本身也受治理。
③六个「不等于」
角色不等于事件(角色转换才是事件)、状态不等于特质、出生地不等于文化更不等于国籍、诊断不等于症状更不等于身份、关系观察不等于全局特质、结构约束不等于人格缺陷——每一条都来自真实发生过的混淆。
④可测试的语义防火墙
health_only 防火墙落在契约测试上:同一种子换诊断,非健康的人格与人生史必须逐字节一致。诊断的影响被限定在健康域与当前状态载荷内。
⑤第 4 条独立随机数流
本体原生 5 域采样器从 sha1(诊断键, 种子) 派生独立种子——新增 59 个概念之后,既有 34 个字段逐字节不变,与 Python 哈希种子也无关。非侵入式演化。
⑥硬网格替代软概率
原型是有限显式声明,不是概率软约束:空间可枚举、可覆盖、可出报告(python core/archetypes.py)。「覆盖了多少种人」从此是可回答的问题。
⑦普查校准分层采样
性别、年龄、教育全部锚定真实分布(厌食 90% 女性、注意缺陷 80% 男性、6 个年龄带、7 级教育、52 国人口加权),消灭抛硬币式的人口学。
⑧溯源纪律
观察、测量、推断、生成、输入约束五种认知来源互不冒充;「未知」不等于「缺失」;推断与生成值强制携带溯源、置信度和时间类别。
⑨类型化关系 + 谓词约束
关系两端都是带类型的实体引用,每个谓词约束目标类型:works_for 指向机构、born_in 指向地点、uses_language 指向语言——参照完整性进入语义层。
⑩元数据完整性
每个域值必须有匹配的字段元数据,孤儿值或缺失元数据在 validate() 中被拒绝——数据质量靠模式强制,不靠口头约定。
⑪3 段 id 地址空间
全量池 P-000001 到 P-005000,展示池 P-000001 到 P-000070(池内局部编号),实时卡 P-100000 到 P-199999(由诊断与种子的 sha1 派生)——三段互不重叠、全部可寻址、实时卡可复现。
⑫纯标准库、零依赖
整个引擎加全部网页只用 Python 与 JavaScript 标准库:零外部请求、双击即开、任意机器可复现——工程约束本身成为可移植性保证。