Mirrorの猫窝
首页项目归档照片墙音乐说说自习室 · AIGC友链关于
Pi Narrative Engine:从理论到实现

Pi Narrative Engine:从理论到实现

2026-07-16 18:20:00
✨ 心情:研究
# 叙事引擎
# Pi
# 项目
# AIGC

项目简介

Pi Narrative Engine(GitHub)是基于 Pi Agent 框架的叙事引擎扩展。用户用自然语言输入(如"诺艾尔去武器店"),引擎自动执行七步流水线,产出叙事文本。GPL-3.0 开源,纯 TypeScript。

理论与实现的对应

整个引擎的架构设计直接映射了叙事引擎的理论模型:

世界图(world-graph.ts)

世界图是引擎的唯一状态中心。JSON 文件存储 + 内部 Git 仓库做版本管理。支持角色节点(三层结构:基础设定 + 动态记忆 + 当前状态)、边(关系连接)、规则条目。非破坏性写回——emotion/location 覆盖、relationships 增量、knowledge 追加。

调度器(scheduler.ts)

独立 Agent 实例,分两个 LLM 调用。plan 阶段按信息差为每个角色分配 visible_entry_ids 和行动指令;diffuse 阶段审视所有角色输出,产出 Diffusion 数组,写入世界图。

角色子代理池(role-pool.ts)

每个角色一个持久化 Agent 实例。调度器按信息差分配知识后,各角色 Agent 在自己可见的世界条目内演出。输出结构化数据(action/target/emotion/relation_update/thought),而非自然语言文本。

渲染器(renderer.ts)

独立 Agent 实例。接收所有角色的结构化输出,渲染为叙事散文,写入 narrative.txt。拥有全文上下文,按事件久远度压缩。

核心循环(七步)

  1. BFS 检索:事件的角色+地点为种子,沿关系边遍历(深度≤3)收集世界条目
  2. 调度器.plan:为每角色分配可见条目 + 行动指令 + 渲染风格
  3. 角色池.interact:各角色按过滤后的可见信息演出,结构化输出
  4. 调度器.diffuse:审视输出,产出 Diffusion 数组
  5. graph.writeBack:语义化写回世界图,非破坏性更新
  6. renderer.render:结构化数据 → 叙事文本
  7. 等待用户下一次输入

技术栈

  • TypeScript,8 个源文件 + 3 个提示词文件
  • 作为 Pi 扩展运行(非独立包)
  • 支持导入 SillyTavern V2 角色卡 + 世界书
  • Eywa 溯源记忆:每条记忆携带 eventId + timestamp
  • 世界图以 Git 仓库管理,每条扩散可回溯

当前局限

  • 仅实现 add 和 query 意图,modify/insert/delete 流水线待完成
  • 角色交互为串行(非并行)
  • 记忆衰减(recent→mid→far)尚未实现

相关链接

  • 项目页面:Pi Narrative Engine
  • GitHub:lmy414/pi-narrative-engine
  • 理论架构:叙事引擎完整执行流程

本文由 AIGC 调研生成,仅做研究笔记和参考,真实性需要自行考证。

avatar

Mirror

深入探索AIGC叙事生成与AI协作创作,记录世界观构建、Vibe Coding实践及原创内容创作的个人博客。

2026年7月

一
二
三
四
五
六
日
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Recent Studies

叙事引擎架构设计:调度器 + 执行器 + 渲染器

2026-07-16 15:30:00

事件→扩散:一种叙事原子的工程化模型

2026-07-13 20:55:00

「叙事原子」文献调研

2026-07-13 20:50:00