Skip to content

Repository files navigation

十八木

中文 · English

18trees Character Distillation

从原始作品中提炼可追溯、可更新的人物行为与认知模型。

把合法持有的小说或剧本路径和人物名称告诉助手,系统完成分析后直接输出最终人物包。默认位置是:

workspace/<人物标识>/character-os/

每个人物的真实材料、任务状态和结果都留在同一个私有目录,不进入 Git:

workspace/<人物标识>/
├── TASK.md             # 一次写全的任务契约
├── inputs/             # 输入副本、规范化文本和来源索引
├── work/               # 各 session 的候选、状态和检查记录
└── character-os/       # 最终人物包

外部材料可以原地只读;需要复制、规范化或索引时才写入 inputs/。.local/ 只保存工具缓存和不属于任何人物的临时文件。

先打开 character-report.md 阅读人物结论;也可以从同目录的 README.md 进入。人物包的常用入口是:

文件 用途
character-report.md 给人看的完整人物报告;想知道“他是谁”就看这里
README.md 人物包首页和文件导航
agent-guide.md 告诉后续 Agent 如何选择快照、读取和回查数据
audit-report.md 可选审计附件;需要核对证据、争议和结论来源时使用

schema-report.md 是 CLI 生成的数据视图,不是人类人物报告。

普通用户从 使用说明 开始:首次分析、补充材料、复核结论都可以直接用自然语言发起,不需要手动指定内部 Pipeline。新增材料默认增量更新;更换会话时从项目文件恢复,优先复用已有结果。

默认执行约定是 Host + 1–3 个粗粒度主执行 session + 两个顺序复核 session。Host 先按人物任务模板一次写完任务,再按作品或叙事边界启动长任务;不亲自读原文、逐条纠错或连续补 Prompt。内容复核 Agent 直接合并修正候选,终稿复核与发布 Agent 直接完成最终包。见编排约定与当前状态保存方式。当前仅有离线校验/报告工具,CLI 模型调用接入尚未提供;不要把该约定理解为已有一键执行引擎。

“冷静、果断”不足以解释一个人在新情境中会做什么。这里保留的是:他看到了什么、掌握哪些信息、如何权衡、采取什么行动,以及哪些原文支持或反驳这一解释。

10 分钟入口

  1. 用 项目定义 和 为什么做 理解范围。
  2. 从原创示例入口选择人类报告、Agent 指南或审计材料。
  3. 按 使用说明 提供当前材料、目标人物和任务;助手读取 SOP 选择执行范围。
  4. 用 数据模型 和 术语 区分观察、推断和模式。
  5. 有角色运行或模型比较需求时,再按 评估设计 做可选评估。

本机需要 Computer Use 执行器时,按 Computer Use 接入记录 和长任务派工模板调用;执行器软件不是 Character OS 核心。

两分钟运行

Python 3.11+,从仓库根执行;安装依赖后全部离线,无需模型 API key。

python -m pip install -r requirements.txt
python scripts/character_os.py validate examples/original-character
python scripts/character_os.py report examples/original-character --output examples/original-character/schema-report.md
python scripts/character_os.py check-delivery examples/original-character

validate 检查 JSON Schema、原文哈希与逐字位置、引用类型、时间截断、Prompt 完整性和内部复核记录;check-delivery 检查人物包入口、README 链接和机器报告路径。它们不自动理解小说,不证明人格推断正确或文章好读。report 生成的 schema-report.md 是机器数据视图,不是人物深度报告。详细核对见 验收记录与交付检查清单。

⚠️ 网页版聊天机器人用不了这个项目

要真正分析一部作品,需要一个能读本地文件、执行 Python、并支持多 session 编排的 Agent(Codex / Claude Code 或同类)。

网页版 ChatGPT / Gemini / DeepSeek / Kimi / 豆包做不到这些:读不到你的原文、跑不了 validate 去核对引用、也没法把结果落盘成人物包。更关键的是——它无法核对引文是否与原文逐字一致,而那正是本项目存在的理由。

判断标准:它需不需要执行命令或访问文件系统。 需要 → 必须有工具能力。

不过 docs/ 与 schemas/ 本身可以脱离工具阅读:方法论文档、五层契约设计、研究对照、ADR 决策依据,都直接看得懂。

为什么已有研究之后还需要它

参考工作 已解决的重要部分 本项目承接
CharacterGPT 逐章重建与人格更新 保存各阶段及不丢失的底层证据
Character-LLM 以经历塑造角色 区分原作经历与生成补全
RoleLLM 角色知识与说话风格 独立知识范围与对白依据
CoSER 场景、真实对白、动作/心理、经历关联 把心理推断从观察中拆出
InCharacter / CharacterEval 人格测量、多维人工评分 分维 rubric、人审和反例
RolePlayBench 匿名角色评估 匿名、留出及模型知识污染审计
SillyTavern / Character Card 运行时表达和交换 将导出格式与核心证据模型分开

本项目补的是面向普通创作者的统一协作契约,而非声称上述工作都没有证据或时间能力。深入对比、公开代码缺口和社区经验见 RESEARCH;从研究到设计的依据见 ADR。CharacterGPT 此次官方仓库只有 README;CoSER 某些心理为推断;社区格式建议并非普遍科学结论。

我们的贡献

核心:把「像不像」变成「可不可查」

多数角色工作的产出是一段 prompt、一张卡、或一段对话——好不好,靠读起来像不像。

本项目的产出是一条可机器验证的证据链:

Source → Evidence → Experience / Behavior → Claim → Snapshot

每一层有独立的 JSON Schema。scripts/character_os.py validate 不只查结构,它真的会去核对原文:

校验项 拦住什么
源文件 SHA-256 比对 原文改过之后,模型仍声称有据
引用 span 越界 / 为空 指向不存在的位置
quote 与原文 span 逐字一致 凭印象编的台词、记错的引文
evidence 必须在所属 scene 内 张冠李戴的场景归属
含 incomplete scene 的模型不得交付 拿半截材料硬凑
支持证据与反证必须分开存放 只挑支持自己的例子
high / strong 推断需要两个独立场景 单点归纳当结论
claim 不得引用「未来」证据,known_from 不得早于支持证据 模型知识污染——用训练数据里的后见之明冒充原作信息
accepted claim 必须留审查记录 自产自销
change log 必须覆盖前后 claim 集合 版本变更后无法审计改了什么

伪造引用、编台词、拿后见之明冒充原作设定——这些在普通角色工作里查不出来的问题,在这里是机械报错。

其他落点

  1. 五层契约 + 15 个 Schema(schemas/)。观察、推断、模式三者分开,不塞进同一个字段。
  2. 版本化 Prompt(prompts/)。改 Prompt 要升 version、更新 registry hash、声明是否做了语义回归。
  3. 人机 SOP 与编排约定(SOP、ORCHESTRATION)。Host + 1–3 个粗粒度主执行 session + 两个顺序复核 session;Host 不亲自读原文,两个复核直接修改而不是逐条退回往返。
  4. 离线优先。validate / report / check-delivery / check-public 全部离线,不需要模型 API key。
  5. 公开边界可执行。COPYRIGHT 之外还有 check-public 用允许清单机械检查哪些文件能公开——真实材料、人物包、.local/ 缓存一律不得进入公开候选。

本阶段边界

这不是 another AI girlfriend project、character chatbot、SillyTavern frontend、prompt collection 或 Character Card generator。Prompt 是流程的一部分,Character Card 是未来的有损导出格式,内部核心是证据和模型。

本期实现:研究与方法文档、严格 Schema、版本化 Prompt、人机 SOP、原创端到端文件包、离线验证/报告、契约回归与 CI 配置。示例是 Agent 编制的教学 fixture,用于说明文件结构和工具行为。

刻意不实现:Web/聊天 UI、陪伴与长期 Memory Agent、语音/Avatar、微调、RAG 服务、数据库、SaaS、Marketplace、一键抽取和完整 Evaluation Engine。真实人物包可在私有 workspace/ 中执行,但不会进入公开分发。

仓库导航

docs/       研究、定义、方法、Schema 说明、SOP、评估、ADR、版权与验收
schemas/    Source → Evidence → Experience/Behavior → Claim → Snapshot 契约
prompts/    extraction / reconstruction / synthesis / review / evaluation
research/   来源链接与校验摘要、阶段记录、公开示例许可清单
examples/   仅限原创、公版或明确许可的公开示例
src/        离线验证与报告逻辑
scripts/    character_os.py 命令入口
tests/      原创例正向检查与坏引用/未来泄漏等负向回归
.local/     工具缓存与非人物临时文件(不分发、不进 Git)
workspace/  真实输入、中间产物及人物包(不分发、不进 Git)

完整流程见 PIPELINE,人物包入口见交付检查清单,Prompt 契约见 PROMPTS,研究引用见 REFERENCES,本次交付见 DELIVERY。公开内容遵守 COPYRIGHT,贡献流程见 CONTRIBUTING。仓库自有内容使用 MIT,不授予第三方原作/IP 权利。

下一步:将合法持有的材料路径和目标人物告诉助手。完成后直接打开 workspace/<人物标识>/character-os/character-report.md;只有你明确要求进一步复核或模型评估时,才增加对应流程。

About

从原始作品提炼可追溯、可更新的人物行为与认知模型 · 五层证据链 + 机器校验引用与原文逐字一致

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages