|
@@ -5,7 +5,7 @@
|
|
|
<h1 align="center">InkOS</h1>
|
|
<h1 align="center">InkOS</h1>
|
|
|
|
|
|
|
|
<p align="center">
|
|
<p align="center">
|
|
|
- <strong>AI 小说写作 CLI</strong>
|
|
|
|
|
|
|
+ <strong>多智能体网文生产系统</strong>
|
|
|
</p>
|
|
</p>
|
|
|
|
|
|
|
|
<p align="center">
|
|
<p align="center">
|
|
@@ -21,7 +21,7 @@
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-用 AI 写长篇小说的命令行工具。五个 agent 接力完成写作、审计、修订,人类在最后审核把关。
|
|
|
|
|
|
|
+开源多智能体网文生产系统。AI 智能体自主完成写作、审计、修订的完整流程 — 人类审核门控让你始终掌控全局。
|
|
|
|
|
|
|
|
## 为什么需要 InkOS?
|
|
## 为什么需要 InkOS?
|
|
|
|
|
|
|
@@ -31,23 +31,25 @@
|
|
|
- **反信息泄漏** — 确保角色只知道他们亲眼见证过的事
|
|
- **反信息泄漏** — 确保角色只知道他们亲眼见证过的事
|
|
|
- **资源衰减** — 物资会消耗、物品会损坏,没有无限背包
|
|
- **资源衰减** — 物资会消耗、物品会损坏,没有无限背包
|
|
|
- **词汇疲劳检测** — 在读者发现之前就捕捉过度使用的词语
|
|
- **词汇疲劳检测** — 在读者发现之前就捕捉过度使用的词语
|
|
|
-- **修订循环** — 审计不通过就自动改,改完再审,直到没有硬伤
|
|
|
|
|
|
|
+- **自动修订** — 在人工审核之前修复数值错误和连续性断裂
|
|
|
|
|
|
|
|
## 工作原理
|
|
## 工作原理
|
|
|
|
|
|
|
|
-每一章由五个 agent 接力完成:
|
|
|
|
|
|
|
+InkOS 为每一章运行多智能体管线:
|
|
|
|
|
|
|
|
<p align="center">
|
|
<p align="center">
|
|
|
<img src="assets/screenshot-pipeline.png" width="800" alt="管线流程图">
|
|
<img src="assets/screenshot-pipeline.png" width="800" alt="管线流程图">
|
|
|
</p>
|
|
</p>
|
|
|
|
|
|
|
|
-| Agent | 职责 |
|
|
|
|
|
-|-------|------|
|
|
|
|
|
-| **雷达 Radar** | 扫描平台趋势和读者偏好(可插拔,可跳过) |
|
|
|
|
|
-| **建筑师 Architect** | 规划章节大纲、场景节拍、节奏 |
|
|
|
|
|
|
|
+| 智能体 | 职责 |
|
|
|
|
|
+|--------|------|
|
|
|
|
|
+| **雷达 Radar** | 扫描平台趋势和读者偏好,指导故事方向(可插拔,可跳过) |
|
|
|
|
|
+| **建筑师 Architect** | 规划章节结构:大纲、场景节拍、节奏控制 |
|
|
|
| **写手 Writer** | 根据大纲 + 当前世界状态生成正文 |
|
|
| **写手 Writer** | 根据大纲 + 当前世界状态生成正文 |
|
|
|
-| **审计员 Auditor** | 对照三大真相文件验证草稿 |
|
|
|
|
|
-| **修订者 Reviser** | 修复审计发现的问题,关键问题改完再审 |
|
|
|
|
|
|
|
+| **连续性审计员 Auditor** | 对照三大真相文件验证草稿 |
|
|
|
|
|
+| **修订者 Reviser** | 修复审计发现的问题 — 关键问题自动修复,其他标记给人工审核 |
|
|
|
|
|
+
|
|
|
|
|
+如果审计不通过,管线自动进入"修订 → 再审计"循环,直到所有关键问题清零。
|
|
|
|
|
|
|
|
### 三大真相文件
|
|
### 三大真相文件
|
|
|
|
|
|
|
@@ -59,35 +61,37 @@
|
|
|
| `particle_ledger.md` | 资源账本:物品、金钱、物资数量及衰减追踪 |
|
|
| `particle_ledger.md` | 资源账本:物品、金钱、物资数量及衰减追踪 |
|
|
|
| `pending_hooks.md` | 未闭合伏笔:铺垫、对读者的承诺、未解决冲突 |
|
|
| `pending_hooks.md` | 未闭合伏笔:铺垫、对读者的承诺、未解决冲突 |
|
|
|
|
|
|
|
|
-审计员对照这三个文件检查每一章草稿。角色"记起"了从未亲眼见过的事?捕捉。拿出了两章前丢失的武器?捕捉。
|
|
|
|
|
|
|
+连续性审计员对照这三个文件检查每一章草稿。如果角色"记起"了从未亲眼见过的事,或者拿出了两章前已经丢失的武器,审计员会捕捉到。
|
|
|
|
|
|
|
|
<p align="center">
|
|
<p align="center">
|
|
|
<img src="assets/screenshot-state.png" width="800" alt="三大真相文件快照">
|
|
<img src="assets/screenshot-state.png" width="800" alt="三大真相文件快照">
|
|
|
</p>
|
|
</p>
|
|
|
|
|
|
|
|
-### 内置创作规则
|
|
|
|
|
|
|
+### 内置创作规则体系
|
|
|
|
|
|
|
|
-写手 agent 内置 47 条创作规则,覆盖 6 个维度:
|
|
|
|
|
|
|
+写手 agent 内置了一套从大量网文创作实践中提炼的规则体系,覆盖 6 个维度:
|
|
|
|
|
|
|
|
-- **人物塑造** — 角色行为由"过往经历 + 当前利益 + 性格底色"驱动;配角必须有独立动机
|
|
|
|
|
-- **叙事技法** — Show don't tell、五感代入法、每章结尾必须设置钩子
|
|
|
|
|
|
|
+- **人物塑造铁律** — 角色行为由"过往经历 + 当前利益 + 性格底色"共同驱动;配角必须有独立动机
|
|
|
|
|
+- **叙事技法** — Show don't tell、五感代入法、每章结尾必须设置钩子、信息分层植入
|
|
|
- **逻辑自洽** — 三连反问自检、信息越界检查、关系改变必须事件驱动
|
|
- **逻辑自洽** — 三连反问自检、信息越界检查、关系改变必须事件驱动
|
|
|
- **语言约束** — 句式多样化、高疲劳词限制、情绪用细节传达
|
|
- **语言约束** — 句式多样化、高疲劳词限制、情绪用细节传达
|
|
|
-- **禁忌清单** — 禁止机械降神、反派降智、主角圣母
|
|
|
|
|
-- **数值验算** — 每次数值变动必须从账本取值验算
|
|
|
|
|
|
|
+- **禁忌清单** — 禁止机械降神、反派降智、主角圣母、特定句式和标点
|
|
|
|
|
+- **数值验算铁律** — 每次数值变动必须从账本取值验算,同质资源有衰减公式
|
|
|
|
|
+
|
|
|
|
|
+每本书还有自己的 `style_guide.md`(文风指南)和 `story_bible.md`(世界观设定),由建筑师 agent 在创建书籍时生成。
|
|
|
|
|
|
|
|
-每本书还有自己的 `style_guide.md`(文风指南)和 `story_bible.md`(世界观设定),建书时生成,可自行定制。
|
|
|
|
|
|
|
+## 三种使用模式
|
|
|
|
|
|
|
|
-## 三种用法
|
|
|
|
|
|
|
+InkOS 提供三种交互方式,底层共享同一组原子操作:
|
|
|
|
|
|
|
|
-### 1. 一键写(完整管线)
|
|
|
|
|
|
|
+### 1. 完整管线(一键式)
|
|
|
|
|
|
|
|
```bash
|
|
```bash
|
|
|
-inkos write next 吞天魔帝 # 写 → 审 → 改,一步到位
|
|
|
|
|
-inkos write next 吞天魔帝 --count 5 # 连写 5 章
|
|
|
|
|
|
|
+inkos write next 吞天魔帝 # 写草稿 → 审计 → 自动修订,一步到位
|
|
|
|
|
+inkos write next 吞天魔帝 --count 5 # 连续写 5 章
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-### 2. 拆开用(原子命令)
|
|
|
|
|
|
|
+### 2. 原子命令(可组合,适合外部 Agent 调用)
|
|
|
|
|
|
|
|
```bash
|
|
```bash
|
|
|
inkos draft 吞天魔帝 --context "本章重点写师徒矛盾" --json
|
|
inkos draft 吞天魔帝 --context "本章重点写师徒矛盾" --json
|
|
@@ -95,32 +99,42 @@ inkos audit 吞天魔帝 31 --json
|
|
|
inkos revise 吞天魔帝 31 --json
|
|
inkos revise 吞天魔帝 31 --json
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-每个命令只做一件事,`--json` 输出结构化数据。可以用 shell 脚本编排,也可以被 OpenClaw 等 AI agent 通过 `exec` 调用。
|
|
|
|
|
|
|
+每个命令独立执行单一操作,`--json` 输出结构化数据。可被 OpenClaw 等自主智能体通过 `exec` 调用,也可用于脚本编排。
|
|
|
|
|
|
|
|
-### 3. 自然语言(agent 模式)
|
|
|
|
|
|
|
+### 3. 自然语言 Agent 模式(LLM 自主编排)
|
|
|
|
|
|
|
|
```bash
|
|
```bash
|
|
|
inkos agent "帮我写一本都市修仙,主角是个程序员"
|
|
inkos agent "帮我写一本都市修仙,主角是个程序员"
|
|
|
inkos agent "写下一章,重点写师徒矛盾"
|
|
inkos agent "写下一章,重点写师徒矛盾"
|
|
|
-inkos agent "先看看市场趋势,再决定写什么"
|
|
|
|
|
|
|
+inkos agent "先扫描市场趋势,然后根据结果创建一本新书"
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-内置 9 个工具,LLM 通过 tool-use 决定调用哪些、什么顺序。自己提供题材时会跳过雷达。
|
|
|
|
|
|
|
+内置 9 个工具(write_draft、audit_chapter、revise_chapter、scan_market、create_book、get_book_status、read_truth_files、list_books、write_full_pipeline),LLM 通过 tool-use 自主决定调用顺序。
|
|
|
|
|
|
|
|
## 快速开始
|
|
## 快速开始
|
|
|
|
|
|
|
|
|
|
+### 安装
|
|
|
|
|
+
|
|
|
```bash
|
|
```bash
|
|
|
npm i -g @actalk/inkos
|
|
npm i -g @actalk/inkos
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 配置
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+inkos init # 初始化项目,生成 .env 模板
|
|
|
|
|
+# 编辑 .env,填入你的 API Key(支持所有 OpenAI 兼容接口)
|
|
|
|
|
+```
|
|
|
|
|
|
|
|
-inkos init # 初始化,生成 .env
|
|
|
|
|
-# 编辑 .env,填入 API Key(支持所有 OpenAI 兼容接口)
|
|
|
|
|
|
|
+### 使用
|
|
|
|
|
|
|
|
-inkos book create --title "吞天魔帝" --genre xuanhuan # 建书
|
|
|
|
|
-inkos write next 吞天魔帝 # 写下一章
|
|
|
|
|
-inkos status # 看状态
|
|
|
|
|
-inkos review list 吞天魔帝 # 审阅
|
|
|
|
|
-inkos export 吞天魔帝 # 导出
|
|
|
|
|
-inkos up # 挂机写
|
|
|
|
|
|
|
+```bash
|
|
|
|
|
+inkos book create --title "吞天魔帝" --genre xuanhuan # 创建新书
|
|
|
|
|
+inkos write next 吞天魔帝 # 写下一章(完整管线)
|
|
|
|
|
+inkos status # 查看状态
|
|
|
|
|
+inkos review list 吞天魔帝 # 审阅草稿
|
|
|
|
|
+inkos export 吞天魔帝 # 导出全书
|
|
|
|
|
+inkos up # 守护进程模式
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
<p align="center">
|
|
<p align="center">
|
|
@@ -132,28 +146,28 @@ inkos up # 挂机写
|
|
|
| 命令 | 说明 |
|
|
| 命令 | 说明 |
|
|
|
|------|------|
|
|
|------|------|
|
|
|
| `inkos init` | 初始化项目 |
|
|
| `inkos init` | 初始化项目 |
|
|
|
-| `inkos book create` | 建书(生成世界观 + 卷纲 + 文风指南) |
|
|
|
|
|
-| `inkos book list` | 列出所有书 |
|
|
|
|
|
-| `inkos write next <id>` | 写下一章(完整管线) |
|
|
|
|
|
-| `inkos write rewrite <id> <n>` | 重写第 N 章(回滚状态快照) |
|
|
|
|
|
-| `inkos draft <id>` | 只写草稿 |
|
|
|
|
|
|
|
+| `inkos book create` | 创建新书(生成世界观 + 卷纲 + 文风指南) |
|
|
|
|
|
+| `inkos book list` | 列出所有书籍 |
|
|
|
|
|
+| `inkos write next <id>` | 完整管线写下一章 |
|
|
|
|
|
+| `inkos write rewrite <id> <n>` | 重写第 N 章(恢复状态快照) |
|
|
|
|
|
+| `inkos draft <id>` | 只写草稿(不审不改) |
|
|
|
| `inkos audit <id> [n]` | 审计指定章节 |
|
|
| `inkos audit <id> [n]` | 审计指定章节 |
|
|
|
| `inkos revise <id> [n]` | 修订指定章节 |
|
|
| `inkos revise <id> [n]` | 修订指定章节 |
|
|
|
-| `inkos agent <instruction>` | 自然语言模式 |
|
|
|
|
|
-| `inkos review list/approve/reject` | 审阅 |
|
|
|
|
|
|
|
+| `inkos agent <instruction>` | 自然语言 Agent 模式 |
|
|
|
|
|
+| `inkos review list/approve/reject` | 审阅草稿 |
|
|
|
| `inkos review approve-all <id>` | 批量通过 |
|
|
| `inkos review approve-all <id>` | 批量通过 |
|
|
|
| `inkos status` | 项目状态 |
|
|
| `inkos status` | 项目状态 |
|
|
|
-| `inkos export <id>` | 导出为 txt/md |
|
|
|
|
|
|
|
+| `inkos export <id>` | 导出书籍为 txt/md |
|
|
|
| `inkos radar scan` | 扫描平台趋势 |
|
|
| `inkos radar scan` | 扫描平台趋势 |
|
|
|
-| `inkos config set/show` | 配置 |
|
|
|
|
|
-| `inkos doctor` | 诊断 |
|
|
|
|
|
-| `inkos up / down` | 守护进程 |
|
|
|
|
|
|
|
+| `inkos config set/show` | 查看/更新配置 |
|
|
|
|
|
+| `inkos doctor` | 诊断配置问题 |
|
|
|
|
|
+| `inkos up / down` | 启动/停止守护进程 |
|
|
|
|
|
|
|
|
-所有写入类命令支持 `--context` 传入创作指导,所有命令支持 `--json` 输出。
|
|
|
|
|
|
|
+所有命令支持 `--json` 输出结构化数据,`draft`/`write next`/`book create` 支持 `--context` 传入创作指导。
|
|
|
|
|
|
|
|
## 实测数据
|
|
## 实测数据
|
|
|
|
|
|
|
|
-用 InkOS 跑了一本玄幻题材的《吞天魔帝》:
|
|
|
|
|
|
|
+用 InkOS 全自动跑了一本玄幻题材的《吞天魔帝》:
|
|
|
|
|
|
|
|
<p align="center">
|
|
<p align="center">
|
|
|
<img src="assets/screenshot-chapters.png" width="800" alt="生产数据">
|
|
<img src="assets/screenshot-chapters.png" width="800" alt="生产数据">
|
|
@@ -169,52 +183,77 @@ inkos up # 挂机写
|
|
|
| 活跃伏笔 | 20 条 |
|
|
| 活跃伏笔 | 20 条 |
|
|
|
| 已回收伏笔 | 10 条 |
|
|
| 已回收伏笔 | 10 条 |
|
|
|
|
|
|
|
|
-## 特性
|
|
|
|
|
|
|
+## 核心特性
|
|
|
|
|
+
|
|
|
|
|
+### 状态快照 + 章节重写
|
|
|
|
|
+
|
|
|
|
|
+每章自动创建状态快照。使用 `inkos write rewrite <id> <n>` 可以回滚并重新生成任意章节 — 世界状态、资源账本、伏笔钩子全部恢复到该章写入前的状态。
|
|
|
|
|
+
|
|
|
|
|
+### 写入锁
|
|
|
|
|
|
|
|
-- **状态快照 + 章节重写** — 每章保存快照,`write rewrite` 可以回滚到任意章节重新生成
|
|
|
|
|
-- **写入锁** — 防止并发写入同一本书
|
|
|
|
|
-- **写前自检 + 写后结算** — 写手动笔前输出自检表,写完输出结算表,审计员交叉验证
|
|
|
|
|
-- **可插拔雷达** — `RadarSource` 接口,内置番茄/起点,可传自定义数据源或跳过
|
|
|
|
|
-- **守护进程** — `inkos up` 挂机按计划写,审计不过自动改,改不了推通知等人
|
|
|
|
|
-- **通知推送** — Telegram、飞书、企业微信
|
|
|
|
|
-- **外部 Agent 集成** — 原子命令 + `--json`,可被 OpenClaw 等 AI agent 调用
|
|
|
|
|
|
|
+基于文件的锁机制防止对同一本书的并发写入。
|
|
|
|
|
+
|
|
|
|
|
+### 写前自检 + 写后结算
|
|
|
|
|
+
|
|
|
|
|
+写手 agent 在动笔前必须输出自检表(上下文范围、当前资源、待回收伏笔、冲突概述、风险扫描),写完后输出结算表(资源变动、伏笔变动)。审计员对照结算表和正文内容做交叉验证。
|
|
|
|
|
+
|
|
|
|
|
+### 可插拔雷达
|
|
|
|
|
+
|
|
|
|
|
+雷达数据源通过 `RadarSource` 接口实现可插拔。内置番茄小说和起点中文网两个数据源,也可以传入自定义数据源或直接跳过雷达。用户自己提供题材时,agent 模式会自动跳过市场扫描。
|
|
|
|
|
+
|
|
|
|
|
+### 守护进程模式
|
|
|
|
|
+
|
|
|
|
|
+`inkos up` 启动自主循环,按计划写章。管线对非关键问题全自动运行,当审计员标记无法自动修复的问题时暂停等待人工审核。
|
|
|
|
|
+
|
|
|
|
|
+### 通知推送
|
|
|
|
|
+
|
|
|
|
|
+支持 Telegram、飞书、企业微信。守护进程模式下,写完一章或审计不通过都会推通知到手机。
|
|
|
|
|
+
|
|
|
|
|
+### 外部 Agent 集成
|
|
|
|
|
+
|
|
|
|
|
+原子命令 + `--json` 输出让 InkOS 可以被 OpenClaw 等自主智能体调用。OpenClaw 通过 `exec` 工具执行 `inkos draft`/`audit`/`revise`,读取 JSON 结果决定下一步操作。
|
|
|
|
|
|
|
|
## 项目结构
|
|
## 项目结构
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
inkos/
|
|
inkos/
|
|
|
├── packages/
|
|
├── packages/
|
|
|
-│ ├── core/ # agent、管线、状态管理
|
|
|
|
|
|
|
+│ ├── core/ # 智能体运行时、管线、状态管理
|
|
|
│ │ ├── agents/ # architect, writer, continuity, reviser, radar
|
|
│ │ ├── agents/ # architect, writer, continuity, reviser, radar
|
|
|
-│ │ ├── pipeline/ # runner, agent (tool-use), scheduler
|
|
|
|
|
-│ │ ├── state/ # 文件状态管理
|
|
|
|
|
-│ │ ├── llm/ # OpenAI 兼容接口
|
|
|
|
|
-│ │ ├── notify/ # Telegram, 飞书, 企微
|
|
|
|
|
-│ │ └── models/ # Zod schema
|
|
|
|
|
-│ └── cli/ # Commander.js (15 条命令)
|
|
|
|
|
-└── (规划中) studio/ # Web 审阅界面
|
|
|
|
|
|
|
+│ │ ├── pipeline/ # runner (原子操作 + 完整管线), agent (tool-use 编排), scheduler
|
|
|
|
|
+│ │ ├── state/ # 基于文件的状态管理器
|
|
|
|
|
+│ │ ├── llm/ # OpenAI 兼容接口 (流式)
|
|
|
|
|
+│ │ ├── notify/ # Telegram, 飞书, 企业微信
|
|
|
|
|
+│ │ └── models/ # Zod schema 校验
|
|
|
|
|
+│ └── cli/ # Commander.js 命令行 (15 条命令)
|
|
|
|
|
+│ └── commands/ # init, book, write, draft, audit, revise, agent, review, status, export...
|
|
|
|
|
+└── (规划中) studio/ # 网页审阅编辑界面
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+TypeScript 单仓库,pnpm workspaces 管理。
|
|
|
|
|
+
|
|
|
## 路线图
|
|
## 路线图
|
|
|
|
|
|
|
|
-- [x] 写作管线(雷达 → 建筑师 → 写手 → 审计 → 修订)
|
|
|
|
|
|
|
+- [x] 完整智能体管线(雷达 → 建筑师 → 写手 → 审计 → 修订)
|
|
|
- [x] 三大真相文件 + 连续性审计
|
|
- [x] 三大真相文件 + 连续性审计
|
|
|
-- [x] 内置创作规则(47 条)
|
|
|
|
|
-- [x] CLI 15 条命令
|
|
|
|
|
|
|
+- [x] 内置创作规则体系
|
|
|
|
|
+- [x] CLI 全套命令(15 条)
|
|
|
- [x] 状态快照 + 章节重写
|
|
- [x] 状态快照 + 章节重写
|
|
|
-- [x] 守护进程
|
|
|
|
|
-- [x] 通知推送
|
|
|
|
|
-- [x] 原子命令 + JSON 输出
|
|
|
|
|
-- [x] 自然语言 agent 模式
|
|
|
|
|
-- [x] 可插拔雷达
|
|
|
|
|
-- [x] 外部 Agent 集成
|
|
|
|
|
-- [ ] Web UI 审阅界面
|
|
|
|
|
-- [ ] 多模型路由
|
|
|
|
|
-- [ ] 自定义 agent 插件
|
|
|
|
|
-- [ ] 平台格式导出
|
|
|
|
|
|
|
+- [x] 守护进程模式
|
|
|
|
|
+- [x] 通知推送(Telegram / 飞书 / 企微)
|
|
|
|
|
+- [x] 原子命令 + JSON 输出(draft / audit / revise)
|
|
|
|
|
+- [x] 自然语言 Agent 模式(tool-use 编排)
|
|
|
|
|
+- [x] 可插拔雷达(RadarSource 接口)
|
|
|
|
|
+- [x] 外部 Agent 集成(OpenClaw 等)
|
|
|
|
|
+- [ ] `packages/studio` Web UI 审阅编辑界面
|
|
|
|
|
+- [ ] 多模型路由(不同 agent 用不同模型)
|
|
|
|
|
+- [ ] 自定义 agent 插件系统
|
|
|
|
|
+- [ ] 平台格式导出(起点、番茄等)
|
|
|
|
|
|
|
|
## 参与贡献
|
|
## 参与贡献
|
|
|
|
|
|
|
|
|
|
+欢迎贡献代码。提 issue 或 PR。
|
|
|
|
|
+
|
|
|
```bash
|
|
```bash
|
|
|
pnpm install
|
|
pnpm install
|
|
|
pnpm dev # 监听模式
|
|
pnpm dev # 监听模式
|