mirror of
https://github.com/Narcooo/inkos.git
synced 2026-09-01 04:28:39 +08:00
docs(readme): fix audit metrics and replace screenshots with SVG architecture diagrams
This commit is contained in:
@@ -377,10 +377,14 @@ inkos compose chapter 吞天魔帝
|
||||
|
||||
InkOS 现在有两条主要运行线:长篇 / 短篇生产线负责生成可交付文本;Play 运行线负责持续互动世界。它们共享模型配置、Studio Chat、确认动作和产物预览,但状态结构不同。
|
||||
|
||||
<p align="center">
|
||||
<img src="assets/arch-system.svg" width="900" alt="整体系统架构">
|
||||
</p>
|
||||
|
||||
长篇每一章默认按“规划 → 编排 → 写作 → 审计 → 必要修订 → 状态同步”运行:
|
||||
|
||||
<p align="center">
|
||||
<img src="assets/screenshot-pipeline.png" width="800" alt="管线流程图">
|
||||
<img src="assets/arch-pipeline.svg" width="900" alt="章节生产管线">
|
||||
</p>
|
||||
|
||||
| Agent | 职责 |
|
||||
@@ -415,7 +419,7 @@ Settler 不再要求模型输出完整 markdown 文件,而是输出 JSON delta
|
||||
Node 22+ 环境下自动启用 SQLite 时序记忆数据库(`story/memory.db`),支持按相关性检索历史事实、伏笔和章节摘要,避免全量注入导致的上下文膨胀。
|
||||
|
||||
<p align="center">
|
||||
<img src="assets/screenshot-state.png" width="800" alt="长期记忆快照">
|
||||
<img src="assets/arch-memory.svg" width="900" alt="长期记忆与状态">
|
||||
</p>
|
||||
|
||||
### 控制面与运行时产物
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1040 420" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,'PingFang SC',system-ui,sans-serif">
|
||||
<defs>
|
||||
<marker id="a2" markerWidth="8" markerHeight="8" refX="6.5" refY="4" orient="auto"><path d="M0,0 L7,4 L0,8 Z" fill="#cdbfa3"/></marker>
|
||||
<marker id="a2g" markerWidth="8" markerHeight="8" refX="6.5" refY="4" orient="auto"><path d="M0,0 L7,4 L0,8 Z" fill="#cf9a52"/></marker>
|
||||
<filter id="s2" x="-20%" y="-30%" width="140%" height="170%"><feDropShadow dx="0" dy="3" stdDeviation="4" flood-color="#5b3a1e" flood-opacity="0.12"/></filter>
|
||||
<style>
|
||||
.t2{ fill:#2d1b0e; font-size:23px; font-weight:800; letter-spacing:.02em; }
|
||||
.nm2{ fill:#3a2817; font-size:15px; font-weight:700; }
|
||||
.nm2k{ fill:#c0532f; font-size:15px; font-weight:800; }
|
||||
.nm2g{ fill:#9a6a1e; font-size:15px; font-weight:800; }
|
||||
.pth{ font-family:ui-monospace,Menlo,monospace; fill:#a85433; font-size:13px; font-weight:600; }
|
||||
.pthn{ font-family:ui-monospace,Menlo,monospace; fill:#6b4a2a; font-size:13px; font-weight:600; }
|
||||
.d2{ fill:#7a6a55; font-size:12px; }
|
||||
.hd2{ fill:#2d1b0e; font-size:14px; font-weight:800; }
|
||||
.c2{ fill:#fffdf6; stroke:#ece0c4; stroke-width:1.2; rx:13; }
|
||||
.c2k{ fill:#fdeee7; stroke:#f0cdbd; }
|
||||
.c2g{ fill:#fbf2db; stroke:#ecdbac; }
|
||||
.lay{ fill:#fffdf6; stroke:#ece0c4; stroke-width:1.2; rx:15; }
|
||||
.layk{ fill:#fdeee7; stroke:#f0cdbd; }
|
||||
.ln2{ stroke:#cdbfa3; stroke-width:1.5; fill:none; marker-end:url(#a2); }
|
||||
.ln2g{ stroke:#cf9a52; stroke-width:1.5; fill:none; stroke-dasharray:5 5; marker-end:url(#a2g); }
|
||||
.al2{ fill:#9a8a72; font-size:11.5px; }
|
||||
.alg2{ fill:#a87a36; font-size:11.5px; }
|
||||
</style>
|
||||
</defs>
|
||||
<rect x="0" y="0" width="1040" height="420" fill="#fdf8ec" rx="18"/>
|
||||
<text class="t2" x="44" y="56">长期记忆与状态</text>
|
||||
<rect x="46" y="68" width="58" height="3" rx="1.5" fill="#e76f51"/>
|
||||
|
||||
<rect class="c2 c2k" x="44" y="92" width="150" height="56" filter="url(#s2)"/>
|
||||
<text class="nm2k" x="64" y="125">写手正文</text>
|
||||
<rect class="c2" x="232" y="92" width="150" height="56" filter="url(#s2)"/>
|
||||
<text class="nm2" x="252" y="125">提取九类事实</text>
|
||||
<rect class="c2" x="420" y="92" width="150" height="56" filter="url(#s2)"/>
|
||||
<text class="nm2" x="440" y="125">结构化增量</text>
|
||||
<rect class="c2" x="608" y="92" width="150" height="56" filter="url(#s2)"/>
|
||||
<text class="nm2" x="628" y="125">不可变写入</text>
|
||||
<rect class="c2 c2g" x="796" y="92" width="160" height="56" filter="url(#s2)"/>
|
||||
<text class="nm2g" x="816" y="125">结构校验 ✓</text>
|
||||
|
||||
<path class="ln2" d="M194,120 L230,120"/>
|
||||
<path class="ln2" d="M382,120 L418,120"/>
|
||||
<path class="ln2" d="M570,120 L606,120"/>
|
||||
<path class="ln2" d="M758,120 L794,120"/>
|
||||
|
||||
<rect class="lay layk" x="44" y="216" width="296" height="150" filter="url(#s2)"/>
|
||||
<text class="hd2" x="66" y="248">权威结构化状态</text>
|
||||
<text class="pth" x="66" y="276">story/state/*.json</text>
|
||||
<text class="d2" x="66" y="304">当前状态 · 伏笔 · 章节摘要</text>
|
||||
<text class="d2" x="66" y="326">逐字段校验,坏数据直接拒绝</text>
|
||||
<text class="d2" x="66" y="348">本书唯一权威来源</text>
|
||||
|
||||
<rect class="lay" x="372" y="216" width="296" height="150" filter="url(#s2)"/>
|
||||
<text class="hd2" x="394" y="248">人类可读投影</text>
|
||||
<text class="pthn" x="394" y="276">story/*.md</text>
|
||||
<text class="d2" x="394" y="304">当前状态 · 待兑现伏笔</text>
|
||||
<text class="d2" x="394" y="326">章节摘要 · 角色矩阵</text>
|
||||
<text class="d2" x="394" y="348">从权威状态渲染,给人看</text>
|
||||
|
||||
<rect class="lay" x="700" y="216" width="296" height="150" filter="url(#s2)"/>
|
||||
<text class="hd2" x="722" y="248">时序记忆库</text>
|
||||
<text class="pthn" x="722" y="276">story/memory.db</text>
|
||||
<text class="d2" x="722" y="304">本地数据库,22 版以上自动启用</text>
|
||||
<text class="d2" x="722" y="326">按相关性检索事实 / 伏笔 / 摘要</text>
|
||||
<text class="d2" x="722" y="348">避免全量注入撑爆上下文</text>
|
||||
|
||||
<path class="ln2" d="M876,148 C876,184 192,184 192,214"/>
|
||||
<text class="al2" x="430" y="180">校验通过 · 写入权威状态</text>
|
||||
<path class="ln2" d="M340,290 L370,290"/><text class="al2" x="343" y="283">渲染</text>
|
||||
<path class="ln2" d="M668,290 L698,290"/><text class="al2" x="668" y="283">索引</text>
|
||||
<path class="ln2g" d="M848,366 C848,398 192,398 192,368"/>
|
||||
<text class="alg2" x="430" y="412">写下一章前 · 按相关性检索</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1040 430" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,'PingFang SC',system-ui,sans-serif">
|
||||
<defs>
|
||||
<marker id="a1" markerWidth="8" markerHeight="8" refX="6.5" refY="4" orient="auto"><path d="M0,0 L7,4 L0,8 Z" fill="#cdbfa3"/></marker>
|
||||
<marker id="a1g" markerWidth="8" markerHeight="8" refX="6.5" refY="4" orient="auto"><path d="M0,0 L7,4 L0,8 Z" fill="#cf9a52"/></marker>
|
||||
<filter id="s1" x="-20%" y="-30%" width="140%" height="170%"><feDropShadow dx="0" dy="3" stdDeviation="4" flood-color="#5b3a1e" flood-opacity="0.12"/></filter>
|
||||
<style>
|
||||
.t{ fill:#2d1b0e; font-size:23px; font-weight:800; letter-spacing:.02em; }
|
||||
.nm{ fill:#3a2817; font-size:16px; font-weight:700; }
|
||||
.nmk{ fill:#c0532f; font-size:16px; font-weight:800; }
|
||||
.nmg{ fill:#9a6a1e; font-size:16px; font-weight:800; }
|
||||
.d{ fill:#7a6a55; font-size:12px; }
|
||||
.c{ fill:#fffdf6; stroke:#ece0c4; stroke-width:1.2; rx:14; }
|
||||
.ck{ fill:#fdeee7; stroke:#f0cdbd; }
|
||||
.cg{ fill:#fbf2db; stroke:#ecdbac; }
|
||||
.opt{ fill:#fcf6e6; stroke:#ece0c4; stroke-dasharray:3 4; }
|
||||
.ln{ stroke:#cdbfa3; stroke-width:1.5; fill:none; marker-end:url(#a1); }
|
||||
.lng{ stroke:#cf9a52; stroke-width:1.5; fill:none; stroke-dasharray:5 5; marker-end:url(#a1g); }
|
||||
.al{ fill:#9a8a72; font-size:11.5px; }
|
||||
.alg{ fill:#a87a36; font-size:11.5px; }
|
||||
</style>
|
||||
</defs>
|
||||
<rect x="0" y="0" width="1040" height="430" fill="#fdf8ec" rx="18"/>
|
||||
<text class="t" x="44" y="56">章节生产管线</text>
|
||||
<rect x="46" y="68" width="58" height="3" rx="1.5" fill="#e76f51"/>
|
||||
|
||||
<rect class="opt" x="540" y="36" width="300" height="28" rx="14"/>
|
||||
<text class="d" x="558" y="54">建筑师 · 建书 / 导入 / 番外时生成设定</text>
|
||||
<rect class="opt" x="852" y="36" width="148" height="28" rx="14"/>
|
||||
<text class="d" x="870" y="54">雷达 · 趋势(可跳过)</text>
|
||||
|
||||
<rect class="c" x="44" y="120" width="166" height="78" filter="url(#s1)"/>
|
||||
<text class="nm" x="66" y="156">规划师</text><text class="d" x="66" y="180">章节意图 · 取舍</text>
|
||||
<rect class="c" x="246" y="120" width="166" height="78" filter="url(#s1)"/>
|
||||
<text class="nm" x="268" y="156">编排师</text><text class="d" x="268" y="180">上下文 · 规则栈</text>
|
||||
<rect class="c ck" x="448" y="120" width="166" height="78" filter="url(#s1)"/>
|
||||
<text class="nmk" x="470" y="156">写手</text><text class="d" x="470" y="180">生成正文 · 字数治理</text>
|
||||
<rect class="c" x="650" y="120" width="166" height="78" filter="url(#s1)"/>
|
||||
<text class="nm" x="672" y="156">审计员</text><text class="d" x="672" y="180">三十七维度连续性</text>
|
||||
<rect class="c" x="852" y="120" width="148" height="78" filter="url(#s1)"/>
|
||||
<text class="nm" x="874" y="156">修订者</text><text class="d" x="874" y="180">修复关键问题</text>
|
||||
|
||||
<path class="ln" d="M210,159 L244,159"/>
|
||||
<path class="ln" d="M412,159 L446,159"/>
|
||||
<path class="ln" d="M614,159 L648,159"/>
|
||||
<path class="ln" d="M816,159 L850,159"/>
|
||||
<text class="al" x="752" y="152">未过</text>
|
||||
<path class="ln" d="M924,198 C924,236 735,236 733,200"/>
|
||||
<text class="al" x="788" y="232">再审 · 至多一轮</text>
|
||||
|
||||
<rect class="c" x="246" y="300" width="166" height="74" filter="url(#s1)"/>
|
||||
<text class="nm" x="268" y="334">观察者</text><text class="d" x="268" y="357">提取九类事实</text>
|
||||
<rect class="c" x="448" y="300" width="166" height="74" filter="url(#s1)"/>
|
||||
<text class="nm" x="470" y="334">反射器</text><text class="d" x="470" y="357">结构化增量</text>
|
||||
<rect class="c cg" x="650" y="300" width="200" height="74" filter="url(#s1)"/>
|
||||
<text class="nmg" x="672" y="334">状态结算</text><text class="d" x="672" y="357">校验后写回权威状态</text>
|
||||
|
||||
<path class="ln" d="M500,198 C500,272 360,262 348,298"/>
|
||||
<text class="al" x="506" y="262">正文</text>
|
||||
<path class="ln" d="M412,337 L446,337"/>
|
||||
<path class="ln" d="M614,337 L648,337"/>
|
||||
<path class="lng" d="M650,345 C320,384 128,300 127,200"/>
|
||||
<text class="alg" x="300" y="402">写下一章前 · 按相关性检索记忆</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg viewBox="0 0 1040 600" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,'PingFang SC',system-ui,sans-serif">
|
||||
<defs>
|
||||
<marker id="a3" markerWidth="8" markerHeight="8" refX="6.5" refY="4" orient="auto"><path d="M0,0 L7,4 L0,8 Z" fill="#cdbfa3"/></marker>
|
||||
<marker id="a3g" markerWidth="8" markerHeight="8" refX="6.5" refY="4" orient="auto"><path d="M0,0 L7,4 L0,8 Z" fill="#cf9a52"/></marker>
|
||||
<filter id="s3" x="-20%" y="-30%" width="140%" height="170%"><feDropShadow dx="0" dy="3" stdDeviation="4" flood-color="#5b3a1e" flood-opacity="0.12"/></filter>
|
||||
<style>
|
||||
.t3{ fill:#2d1b0e; font-size:23px; font-weight:800; letter-spacing:.02em; }
|
||||
.pl{ fill:#3a2817; font-size:14.5px; font-weight:600; }
|
||||
.bandt{ fill:#c0532f; font-size:19px; font-weight:800; }
|
||||
.nm3k{ fill:#c0532f; font-size:16px; font-weight:800; }
|
||||
.memt{ fill:#c0532f; font-size:18px; font-weight:800; }
|
||||
.d3{ fill:#7a6a55; font-size:12.5px; }
|
||||
.pill{ fill:#fffdf6; stroke:#ece0c4; stroke-width:1.2; rx:23; }
|
||||
.band{ fill:#fdeee7; stroke:#f0cdbd; stroke-width:1.3; rx:16; }
|
||||
.c3{ fill:#fffdf6; stroke:#ece0c4; stroke-width:1.2; rx:15; }
|
||||
.mem{ fill:#fdece4; stroke:#f0c9b6; stroke-width:1.4; rx:16; }
|
||||
.share{ fill:#fcf6e6; stroke:#ece0c4; stroke-dasharray:3 4; rx:14; }
|
||||
.ln3{ stroke:#cdbfa3; stroke-width:1.5; fill:none; marker-end:url(#a3); }
|
||||
.ln3g{ stroke:#cf9a52; stroke-width:1.6; fill:none; marker-end:url(#a3g); }
|
||||
.al3g{ fill:#a87a36; font-size:11.5px; }
|
||||
</style>
|
||||
</defs>
|
||||
<rect x="0" y="0" width="1040" height="600" fill="#fdf8ec" rx="18"/>
|
||||
<text class="t3" x="44" y="56">整体系统</text>
|
||||
<rect x="46" y="68" width="58" height="3" rx="1.5" fill="#e76f51"/>
|
||||
<rect class="share" x="664" y="36" width="336" height="28" rx="14"/>
|
||||
<text class="d3" x="682" y="54">底层共享:模型配置 · 多模型路由 · 封面 / 图片服务</text>
|
||||
|
||||
<rect class="pill" x="150" y="92" width="170" height="46" filter="url(#s3)"/><text class="pl" x="200" y="120">Studio 对话</text>
|
||||
<rect class="pill" x="345" y="92" width="150" height="46" filter="url(#s3)"/><text class="pl" x="395" y="120">命令行</text>
|
||||
<rect class="pill" x="520" y="92" width="150" height="46" filter="url(#s3)"/><text class="pl" x="558" y="120">终端面板</text>
|
||||
<rect class="pill" x="695" y="92" width="170" height="46" filter="url(#s3)"/><text class="pl" x="748" y="120">OpenClaw</text>
|
||||
|
||||
<path class="ln3" d="M235,138 L 470,178"/>
|
||||
<path class="ln3" d="M420,138 L 500,178"/>
|
||||
<path class="ln3" d="M595,138 L 540,178"/>
|
||||
<path class="ln3" d="M780,138 L 570,178"/>
|
||||
|
||||
<rect class="band" x="120" y="180" width="800" height="76" filter="url(#s3)"/>
|
||||
<text class="bandt" x="150" y="215">统一执行面</text>
|
||||
<text class="d3" x="150" y="239">重动作先确认 · 完成态来自真实工具结果 · 生成物可预览可编辑</text>
|
||||
|
||||
<path class="ln3" d="M380,256 L 320,294"/>
|
||||
<path class="ln3" d="M660,256 L 720,294"/>
|
||||
|
||||
<rect class="c3" x="120" y="296" width="382" height="118" filter="url(#s3)"/>
|
||||
<text class="nm3k" x="146" y="330">长篇 / 短篇生产线</text>
|
||||
<text class="d3" x="146" y="358">规划 → 编排 → 写作 → 审计 → 修订 → 结算</text>
|
||||
<text class="d3" x="146" y="382">产出:书 · 章节 · 短篇 · 封面 · 审稿记录</text>
|
||||
<text class="d3" x="146" y="406">权威状态存为结构化文件,可长期续写</text>
|
||||
|
||||
<rect class="c3" x="538" y="296" width="382" height="118" filter="url(#s3)"/>
|
||||
<text class="nm3k" x="564" y="330">互动世界运行线</text>
|
||||
<text class="d3" x="564" y="358">开放世界 / 分支互动 · 世界契约 · 时间推进</text>
|
||||
<text class="d3" x="564" y="382">自由动作或可点击选择,每回合写回世界</text>
|
||||
<text class="d3" x="564" y="406">状态:角色 · 物品 · 证据 · 关系 · 面板 · 配图</text>
|
||||
|
||||
<path class="ln3g" d="M280,414 L 280,470"/>
|
||||
<path class="ln3g" d="M342,470 L 342,416"/>
|
||||
<text class="al3g" x="200" y="448">装配 ↑ / 写回 ↓</text>
|
||||
<path class="ln3g" d="M698,414 L 698,470"/>
|
||||
<path class="ln3g" d="M760,470 L 760,416"/>
|
||||
<text class="al3g" x="772" y="448">↑ 装配 / ↓ 写回</text>
|
||||
|
||||
<rect class="mem" x="120" y="472" width="800" height="96" filter="url(#s3)"/>
|
||||
<text class="memt" x="150" y="508">记忆与上下文 · 按需插拔</text>
|
||||
<text class="d3" x="150" y="534">按相关性检索装配 · 常驻 / 可压缩分层 · 接近上下文窗口才语义压缩</text>
|
||||
<text class="d3" x="150" y="556">权威状态 story/state · 可读投影 story/*.md · 时序检索 story/memory.db</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.6 KiB |
Reference in New Issue
Block a user