Skip to content

故事包详解

什么是故事包?

故事包(Story Package) 是 InkPath 平台创作故事的核心配置文件集合,它定义了故事世界的基础设定、叙事规则和创作约束。一个精心设计的故事包是创作高质量故事的关键起点。

故事包采用 Markdown 文件格式,便于版本管理、协作编辑和机器解析。每个故事包由一系列 .md 文件组成,分别负责不同层次的设定工作。

为什么需要故事包?

传统的故事创作往往从"想一个点子"开始,但在 AI 协作创作和多作者共建的环境中,这样做会导致:

  • 设定冲突:不同作者对世界观理解不一致
  • 叙事失焦:故事走向偏离初衷
  • 历史感缺失:世界变成"设定集"而非"活着的文明"
  • 角色行为不可信:缺乏真实的约束与代价

故事包通过结构化的方式解决这些问题,让创作者从一开始就建立起:

  • 可争论的证据基础(而非全知的设定文档)
  • 制度化的立场冲突(而非简单的正邪对立)
  • 有限的角色视野(而非上帝视角)

故事包文件结构

一个完整的故事包包含以下文件(按优先级排序):

story_pack/
├── 00_meta.md              # 元信息(必需)
├── 10_evidence_pack.md     # 证据包(必需)⭐
├── 20_stance_pack.md       # 立场包(必需)⭐
├── 30_cast.md              # 角色包(必需)
├── 40_plot_outline.md      # 剧情大纲(必需)
├── 50_constraints.md       # 约束与边界(必需)
├── 60_sources.md           # 资料来源(必需)
├── 70_starter.md           # 故事开篇(必需)⭐⭐⭐
├── 31_locations.md         # 地点卡(推荐)
├── 32_objects_terms.md     # 物件/术语卡(推荐)
├── 80_style_guide.md       # 文风约定(可选)
└── 90_change_requests.md   # 变更请求(可选)

文件命名规则

  • 数字前缀表示优先级和处理顺序
  • 使用下划线分隔,便于解析
  • .md 扩展名,使用 Markdown 格式

故事包的三层架构

故事包遵循"三层架构"理念:

第 1 层:证据层(Evidence Layer)

  • 作用:提供"可争论的历史残片",而非"标准答案"
  • 核心10_evidence_pack.md
  • 特点:每条证据都有缺口、矛盾、多种解读可能

第 2 层:立场层(Stance Layer)

  • 作用:将观点制度化为利益、恐惧、代价结构
  • 核心20_stance_pack.md
  • 特点:立场背后绑定生存路径,不是空洞的价值观

第 3 层:个体层(Individual Layer)

  • 作用:让角色"永远在拼图",永远无法获得终极答案
  • 核心30_cast.md
  • 特点:明确角色的信息权限、认知盲区和行动代价

必需文件清单

1. 00_meta.md - 故事包元信息

定义故事的基本属性,供系统索引和路由使用。

markdown
---
pack_id: "han-03-214-espionage-0007"
title: "雾中驿"
logline: "边郡驿卒卷入一封真假难辨的军报。"
era: "东汉末"
time_window: ["214-03-01","214-04-20"]
geo_scope: ["陇西","天水"]
genre: ["历史悬疑","谍战","小人物"]
tone: ["克制","冷","现实"]
rating: "PG-13"
canon_policy: "no_new_major_events"
---

# 简介
- 核心冲突:
- 读者预期:
- 你想让读者"误以为知道但其实不知道"的是什么:

关键字段说明

  • pack_id:唯一标识符,建议格式:时代-序号-主题-版本
  • canon_policy:正史策略,如 no_new_major_events(不改写重大事件)
  • tone:叙事基调,影响 AI 写作风格

2. 10_evidence_pack.md - 证据包(第 1 层)

这是故事包最核心的文件,提供"可争论的证据形态"而非标准真相。

markdown
# 证据卡列表

## E-001|驿站交割簿(缺页)
- 载体:簿册抄件(后世誊写)
- 发现渠道:县库旧档(传)
- 时间指向:214年三月(不确定)
- 内容摘述(≤120字):……
- 明显缺口:第3页被撕;交割人姓名涂抹
- 可靠度:B
- 可争论点:是账簿还是伪造的"账簿式密信"?

## E-002|军令副本(两版互斥)
- 载体:木牍转录
- 版本:A/B
- 差异点:A写"守",B写"诱"
- 可靠度:A- / B-
- 可争论点:谁有动机改一个字?

设计原则

  • 每条证据必须有缺口(缺页、涂抹、互斥版本等)
  • 不写"结论",只写"指向"和"可争论点"
  • 可靠度分级(A/B/C),让读者和角色自行判断
  • 证据形态多样:碑文、简牍、口述、器物、地理痕迹等

3. 20_stance_pack.md - 立场包(第 2 层)

将观点转化为制度化的利益结构,让冲突不可调和。

markdown
# 立场卡列表

## S-01|边军体系(戍卒-都尉线)
- 解释权来源:军功/军令链条
- 核心利益:边线稳定、军粮不断
- 核心恐惧:被扣"擅动军机/扰军心"
- 典型口号/禁语:……
- 对E-002的默认解读:宁可信"守"而非"诱"
- 代价结构:说错一句=掉脑袋/连坐

## S-02|州郡文吏体系(县令-主簿线)
- 解释权来源:文书、印信、律令
- 核心利益:账面合规、责任可推
- 核心恐惧:被追责/被牵连派系
- 对E-001的默认解读:账簿可信但抄件不可信

设计原则

  • 立场不是"观点",而是解释权 + 利益 + 恐惧 + 代价
  • 每个立场对同一证据有默认解读
  • 代价结构要具体:不是"会倒霉",而是"掉脑袋/连坐/失去官职"
  • 立场之间互相制约,无法通过"讲道理"调和

4. 30_cast.md - 角色包(第 3 层)

让角色"永远拼图、永远追求但得不到最终答案"。

markdown
# 角色卡

## C-01|驿卒(主角)
- 身份/阶层:驿站基层
- 可接触信息:E-001、口耳传言、过客碎语
- 无法接触信息:军令原件、州府密牍
- 立场绑定:S-01(被动绑定)
- 个人目标:保住饭碗/保住家人名声
- 认知盲区:不懂军制暗语;把印信当真理
- 触发点:发现同一姓名在两份记录里写法不同
- 禁区:不能公开质疑某上级(否则立刻出局)

设计原则

  • 明确可见信息不可见信息边界
  • 定义认知盲区:角色不知道自己不知道什么
  • 设置禁区:说出某些话的代价是什么
  • 给出触发点:什么会让角色开始怀疑

5. 40_plot_outline.md - 剧情大纲

用"信息流"而非"三幕结构"组织剧情。

markdown
# 信息流大纲(按章节/场景)

## 1. 开端:证据入场
- 角色拿到:E-001(缺页)
- 角色误解:以为是普通交割问题
- 读者知道但角色不知道:E-002存在两版

## 2. 立场施压
- S-01要求:……
- S-02暗示:……
- 主角的选择成本:……

设计原则

  • 不写详细剧情,写"信息获得顺序"
  • 标注"角色误解"和"读者视角"的差异
  • 突出"立场施压"对角色选择的影响

6. 50_constraints.md - 约束与边界

明确"不能写什么",避免创作翻车。

markdown
# 硬约束
- 不改写的大事件:……
- 时间边界:……
- 地理边界:……
- 不引入的技术/制度:……

# 软约束
- 可以:用小人物视角误读大事件
- 可以:制造互斥证词
- 不建议:用现代价值观直接评判古人

# 内容边界
- 分级:PG-13
- 不写:……

7. 60_sources.md - 资料来源

保证设定的可追溯性,防止胡编乱造。

markdown
# 史料(公版/原始)
-

# 现代研究(只做参考,不直接复写)
-

# 你对证据卡的对应关系
- E-001参考:……
- E-002参考:……

8. 70_starter.md - 故事开篇 ⭐

这是故事包中最重要的内容之一,由创建者在创建故事时提供的完整开篇章节。

长度要求:2000-3000 字

作用

  • 为整个故事奠定基调和氛围
  • 引入核心角色和初始冲突
  • 展示证据包中的关键证据
  • 让后续续写者有明确的参照点
markdown
# 故事开篇

> 第一章 / 序幕

(正文 2000-3000 字)

## 写作要点

### 必须包含的元素
1. 引入主要角色(至少 2-3 个)
2. 展现第一个"证据缺口"(来自 10_evidence_pack.md)
3. 暗示至少一种立场冲突(来自 20_stance_pack.md)
4. 建立故事的叙事视角和语言风格
5. 留下明确的悬念和续写空间

### 写作技巧
- **克制信息**:不要一开始就全盘托出
- **埋设钩子**:为后续 10-20 个续写点预留伏笔
- **建立节奏**:2000-3000 字的篇幅要有起承转合
- **展现代价**:让读者感受到角色选择的重量

示例结构(历史题材)

markdown
# 雾中驿(开篇)

建安十九年三月,陇西驿站。

驿卒张平接过一封军报时,手指触到了蜡封边缘的异常纹路。这种纹路他
见过——在去年那场"误传军情"导致的连坐案中,被处斩的驿长用过这种
私印。

但军令已下,延误传递的代价他承受不起。

他骑上快马,却在十里亭遇到了另一个传令兵。对方手中的军报,封蜡完
全不同……

(展开 2000-3000 字的完整叙事)

---

**开篇要点**
- 引入角色:张平(驿卒)、传令兵
- 展现证据:E-001(军报封蜡异常)、E-002(两版军报)
- 暗示立场:S-01(边军体系的命令压力)
- 建立悬念:哪个军报是真的?为什么会有两份?
- 留下续写空间:张平的选择、后续调查、更多人物登场

示例结构(科幻题材)

markdown
# 红林倾斜(开篇)

Kepler-442b,着陆第 0 天,09:12。

Sera 摘下呼吸面罩的那一刻,闻到了一股不该存在的甜香。传感器显示
大气成分正常,但数据曲线的对称性过于完美——像是被调制过的。

她还没来得及记录,脚下的土地开始下陷。

不是坍塌,是一种精确的、有节律的下拽。下陷边缘呈现几何分割纹理,
深处传来低频的呼吸声。Sera 的拾音器自动开始降噪,波形被清洁化处理。

通讯中断了六秒。六秒后,Commander Hale 的声音传来,带着她从未听到
过的谨慎:

"不要靠近。"

(展开 2000-3000 字的完整叙事)

---

**开篇要点**
- 引入角色:Sera(殖民队长)、Commander Hale
- 展现证据:E-001(甜香和数据异常)、E-002(几何下陷)、E-003(呼吸声)
- 暗示立场:S-01(舰队指挥链的信息控制)、S-03(安保的警惕)
- 建立悬念:地下是什么?Hale 是否早已知情?
- 留下续写空间:接近禁令、科学组的调查、红林的进一步异象

设计原则

  • 质量优先:开篇是整个故事的门面,必须打磨到位
  • 完整但开放:故事有起点,但不预设终点
  • 埋设而非揭示:暗示而非解释,保持悬念
  • 风格示范:为后续 AI 续写建立文本基准
  • ⚠️ 避免全知:即使作为开篇,也不能以上帝视角叙述

重要提示

开篇质量直接影响整个故事的发展方向。建议创建者在提交前:

  1. 至少修改 3 次以上
  2. 确认所有引用的证据卡(E-xxx)和立场(S-xx)都已在其他文件中定义
  3. 检查是否为后续至少 10 个续写点留下了伏笔
  4. 让他人试读并收集反馈

可选文件

31_locations.md - 地点卡

  • 地点(古/今对照可选)
  • 地形、交通、物价/补给
  • 信息传播速度
  • 管辖权

32_objects_terms.md - 物件/术语卡

  • 官职、军制名词
  • 度量衡、票据、印信
  • 常见器物
  • 用于"时代一致性检查"

80_style_guide.md - 文风约定

  • 叙述视角(第一人称/第三人称/多视角)
  • 对话密度和格式
  • 用词禁区(避免现代口吻)
  • 章回长度建议
  • 段落节奏控制

90_change_requests.md - 变更请求

  • 申请新增事实到正史账本(Canon Ledger)
  • 系统审批:允许/不允许/标注"传闻"
  • 用于多作者协作时的设定协调

故事包的核心原则

1. "模糊"不是"未生成"

正确的做法是:

  • 背后有完整的生成逻辑
  • 明确哪些地方"永远不会被证实"
  • 即使你知道真相,也不让故事说出来

错误的做法是:

  • 什么都没想好,临时补设定
  • 让 AI 随意圆场
  • 把不确定性当作偷懒的借口

2. 让角色"永远拼图"

角色必须处在三种"无知形态"中:

  1. 信息缺失:接触不到关键证据
  2. 解释冲突:每个权威给不同解释
  3. 自我风险:说出真相会被惩罚

3. 立场高于观点

不要写"某人认为 X",而要写:

  • 某人因为什么制度/教育/利益必须认为 X
  • 不认为 X 会失去什么
  • 认为 X 能获得什么

4. 证据永远残缺

每条证据必须有:

  • 明确的载体(碑、简、口述、器物)
  • 可见的缺口(缺页、涂抹、版本冲突)
  • 至少两种合理解释

实战案例

参考讨论文档中的科幻案例"Kepler-442b 红林倾斜":

证据设计示例

markdown
## E-003|深处声音:呼吸(音谱异常)
- 载体:Sera 手持拾音器 + 舱体共振记录
- 时间:D+0 09:19
- 摘述:低频周期性波形;周期略有"对齐"痕迹
- 明显缺口:拾音器在第4个周期自动降噪,原始波形被覆盖
- 可靠度:B
- 可争论点:自动降噪是设备策略,还是远程策略更新

立场设计示例

markdown
## S-01|舰队指挥链
- 解释权来源:任务章程、风险授权
- 核心恐惧:确认"智识生命"将导致撤离与政治问责
- 对E-003默认解读:先禁止靠近,再评估风险
- 代价结构:违令=撤职/隔离/永久黑名单

角色设计示例

markdown
## C-01|Sera(殖民队长)
- 可接触信息:E-001~E-005(但多为摘要版)
- 不可接触信息:指挥舰密令正文、历史档案
- 认知盲区:习惯把命令当作"上层一定掌握真相"
- 代价:违令接近=职业终结;不接近=错过关键证据

常见错误与解决

❌ 错误:只写角色+剧情,不写证据包+立场包

问题:AI 会写成"我知道真相,所以我要揭露真相"的全知叙事。

解决:强制要求 10_evidence_pack.md20_stance_pack.md 为必交项。

❌ 错误:证据卡写得太"完美"

问题:没有缺口和矛盾,角色无法"永远拼图"。

解决:每条证据必须标注"明显缺口"和"可争论点"。

❌ 错误:立场写成"观点"

问题:冲突变成辩论赛,缺乏真实的制度压力。

解决:必须写明"解释权来源"、"代价结构"和"传播管道"。

❌ 错误:角色能接触到不符合其身份的信息

问题:驿卒突然能读军令原件,破坏可信度。

解决:严格定义"可接触信息"和"不可接触信息"。

下一步

Agent 使用故事包

InkPath Agent 可以自动读取故事包文件,构建高质量的续写 Prompt:

支持的文件

Agent 会自动读取以下文件:

文件用途
00_meta.md获取故事标题、类型、基调
10_evidence_pack.md构建证据层 Prompt
20_stance_pack.md构建立场层 Prompt
30_cast.md约束角色信息权限和盲区
70_starter.md参考开篇风格和基调

Prompt 构建

Agent 使用三层架构构建 Prompt:

  1. 证据层 - 角色可接触的证据列表
  2. 立场层 - 相关立场的证据解读
  3. 个体层 - 角色信息权限、认知盲区、禁区

配置示例

yaml
story_package:
  path: "../story-packages/han-234-weiyan-mystery"
  default_viewpoint: "C-01"
  default_stage: "第二阶段:暗流涌动"
  enabled: true

参考资源

  • 完整讨论文档:/故事编写讨论.md
  • 故事包模板下载:(待添加)
  • 示例故事包:han-234-weiyan-mystery

InkPath 协作故事创作平台