[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74776":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":39,"readmeContent":40,"aiSummary":41,"trendingCount":16,"starSnapshotCount":16,"syncStatus":42,"lastSyncTime":43,"discoverSource":44},74776,"inkos","Narcooo\u002Finkos","Narcooo","Story Creation AI Agent for novel, scripts, interactive games, and IP content","",null,"TypeScript",7134,1348,30,146,0,28,242,1114,176,40.39,"GNU Affero General Public License v3.0",false,"master",true,[27,28,29,30,31,32,33,34,35,36,37,38],"agent","ai","ai-agent","ai-novel","ai-writing","chinese-novel","cli","cli-tool","creative-writing-ai","novel-ai","novel-generation","openclaw","2026-06-12 02:03:28","\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Flogo.svg\" width=\"120\" height=\"120\" alt=\"InkOS Logo\">\n  \u003Cimg src=\"assets\u002Finkos-text.svg\" width=\"240\" height=\"65\" alt=\"InkOS\">\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">Autonomous Novel Writing AI Agent\u003Cbr>\u003Csub>自动化小说写作 AI Agent\u003C\u002Fsub>\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@actalk\u002Finkos\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@actalk\u002Finkos.svg?color=cb3837&logo=npm\" alt=\"npm version\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-AGPL%20v3-blue.svg\" alt=\"License: AGPL-3.0\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNarcooo\u002Finkos\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FNarcooo\u002Finkos?style=flat&logo=github&color=yellow\" alt=\"GitHub stars\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@actalk\u002Finkos\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002F@actalk\u002Finkos?color=cb3837&logo=npm&label=downloads\" alt=\"npm downloads\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fclawhub.ai\u002Fnarcooo\u002Finkos\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🦞%20ClawHub-Skill-FF6B35?labelColor=1a1a1a\" alt=\"ClawHub Skill\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"README.en.md\">English\u003C\u002Fa> | 中文 | \u003Ca href=\"README.ja.md\">日本語\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\nAI Agent 自主写小说——写、审、改，全程接管。覆盖玄幻、仙侠、都市、科幻等多种风格，支持续写、番外、同人、仿写等创作形式。人工审核门控确保你始终掌控全局。已发布为 [OpenClaw](https:\u002F\u002Fclawhub.ai\u002Fnarcooo\u002Finkos) skill。\n\n**InkOS Studio 2.0 正式发布！** — 直接运行 `inkos` 启动本地 Web 工作台。书籍管理、章节审阅编辑、实时写作进度、市场雷达、数据分析、AI 检测、文风分析、题材管理、守护进程控制、真相文件编辑——CLI 能做的，Studio 全部可视化。\n\n**InkOS TUI 正式发布！** — 运行 `inkos tui` 进入全屏交互仪表盘。对话式创作、自然语言操作书籍、slash 命令补全、主题动效——TUI、Studio、OpenClaw 共享同一套交互内核。\n\n**v1.3.12 Studio 服务入口更新** — 聚合 API 分组命名更清晰，服务配置页补充官网 \u002F 文档 \u002F 模型页快捷入口，便于配置前核对模型、密钥和接入方式。\n\n**新增：短篇写作与封面制作！** — Studio 对话和 CLI 现在可以直接产出独立短篇：完整正文、大纲记录、审稿记录、简介卖点、封面提示词，并在配置封面服务后生成封面图。\n\n**Native English novel writing now supported！** Set `--lang en` to write in English. See [English README](README.en.md) for details.\n\n## 欢迎交流\n\n> 当前更新相对频繁，后续会持续新增功能与优化写作效果。\n> 欢迎加群反馈问题、提出需求，也欢迎关注项目动态 — 我们的目标是做最强的基于小说的内容生态创作 AI Agent。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002F15qun.jpg\" width=\"300\" alt=\"微信交流群\">\n\u003C\u002Fp>\n\n## 快速开始\n\n### 安装\n\n```bash\nnpm i -g @actalk\u002Finkos\n```\n\n### 通过 OpenClaw 使用 🦞\n\nInkOS 已发布为 [OpenClaw](https:\u002F\u002Fclawhub.ai\u002Fnarcooo\u002Finkos) Skill，可被任何兼容 Agent（Claude Code、OpenClaw 等）直接调用：\n\n```bash\nclawhub install inkos          # 从 ClawHub 安装 InkOS Skill\n```\n\n通过 npm 安装或克隆本项目时，`skills\u002FSKILL.md` 已包含在内，🦞 可直接读取——无需额外从 ClawHub 安装。\n\n安装后，Claw 应优先通过共享交互入口调用 InkOS：\n\n```bash\ninkos interact --json --message \"继续当前书，但把节奏再收紧一点\"\n```\n\n这条入口直接走和项目 TUI 相同的交互执行内核，因此 OpenClaw、TUI、Studio 共用同一套控制脑。返回的 JSON 包含：\n- 解析后的 request\n- assistant 文本回复\n- 更新后的 interaction session\n- execution state\n- pending decision\n- recent events\n\n`plan chapter` \u002F `compose chapter` \u002F `draft` \u002F `audit` \u002F `revise` \u002F `write next` 这些原子命令仍然保留，但更适合作为底层工具，而不是 OpenClaw 的首选入口。也可以在 [ClawHub](https:\u002F\u002Fclawhub.ai) 搜索 `inkos` 在线查看。\n\n### 配置\n\nInkOS 2.0 将 LLM 配置分成两条清晰路径：**Studio 用可视化服务配置**，**CLI \u002F daemon \u002F 部署环境支持 env 覆盖**。两者不会互相污染。\n\n#### 方式一：Studio 服务配置（推荐）\n\n适合本地写作、Web 工作台和可视化管理。\n\n```bash\ninkos init my-novel\ncd my-novel\ninkos\n```\n\n打开 Studio 后进入「模型配置」：\n\n1. 选择服务商，例如 Google Gemini、Moonshot、MiniMax、智谱、百炼或自定义端点。\n2. 粘贴 API Key，点击「测试连接」。\n3. 选择可用模型，保存配置。\n4. 回到书籍页面开始写作。\n\nStudio 运行时只使用：\n\n```text\nprovider bank 默认值\n→ inkos.json 里的 services \u002F 当前 service \u002F defaultModel\n→ .inkos\u002Fsecrets.json 里的 service API Key\n```\n\n即使检测到 `~\u002F.inkos\u002F.env` 或项目 `.env`，Studio 也只会展示提示，不会用 env 覆盖 service、model、baseUrl 或 API Key。API Key 存在项目内的 `.inkos\u002Fsecrets.json`，不会写进 `inkos.json`。\n\n#### 方式二：CLI \u002F daemon \u002F 部署环境的 env 配置\n\n适合终端批处理、服务器部署、CI、Docker、守护进程和一次性切模型。\n\n全局 env：\n\n```bash\ninkos config set-global \\\n  --provider \u003Copenai|anthropic|custom> \\\n  --base-url \u003CAPI 地址> \\\n  --api-key \u003C你的 API Key> \\\n  --model \u003C模型名>\n```\n\n也可以手动写 `~\u002F.inkos\u002F.env` 或项目 `.env`：\n\n```bash\nINKOS_LLM_PROVIDER=custom\nINKOS_LLM_BASE_URL=https:\u002F\u002Fapi.moonshot.cn\u002Fv1\nINKOS_LLM_API_KEY=sk-...\nINKOS_LLM_MODEL=kimi-k2.5\n\n# 可选\nINKOS_LLM_SERVICE=moonshot                         # 推荐写；不写时会尽量从 baseUrl 自动识别\nINKOS_LLM_TEMPERATURE=0.7\nINKOS_LLM_THINKING_BUDGET=0\nINKOS_DEFAULT_LANGUAGE=zh\nINKOS_LLM_EXTRA_top_p=0.9\n```\n\nCLI 合成顺序：\n\n```text\nStudio\u002Fproject service 配置\n→ .inkos\u002Fsecrets.json service key\n→ global ~\u002F.inkos\u002F.env\n→ project .env\n→ 当前进程环境变量\n→ CLI 参数\n```\n\n也就是说，CLI 默认可以复用 Studio 配好的服务和密钥；如果 env 里声明了 `INKOS_LLM_SERVICE`、`INKOS_LLM_MODEL`、`INKOS_LLM_BASE_URL` 或 `INKOS_LLM_API_KEY`，则作为覆盖层生效。旧 env 只写 `baseUrl + model + apiKey` 也能继续用，InkOS 会尽量从 baseUrl 反推 service。\n\n一次性指定服务或模型：\n\n```bash\ninkos write next --service google --model gemini-2.5-flash\ninkos write next --service moonshot --model kimi-k2.5 --no-stream\ninkos agent \"继续写下一章\" --api-key-env MOONSHOT_API_KEY\ninkos doctor --service minimaxCodingPlan --model MiniMax-M2.7\n```\n\n`--service` 会从 provider bank 自动推导 baseUrl、协议和兼容策略；`--model` 必须属于最终 service，否则会直接报错，避免把 Kimi 模型发到 Gemini 这类错配问题。\n\n#### 方式三：多模型路由（可选）\n\n给不同 Agent 分配不同模型，按需平衡质量与成本：\n\n```bash\n# 给不同 agent 配不同模型\u002F提供商\ninkos config set-model writer \u003Cmodel> --provider \u003Cprovider> --base-url \u003Curl> --api-key-env \u003CENV_VAR>\ninkos config set-model auditor \u003Cmodel> --provider \u003Cprovider>\ninkos config show-models        # 查看当前路由\n```\n\n未单独配置的 Agent 自动使用全局模型。\n\n#### 配置排查\n\n```bash\ninkos doctor\n```\n\n`doctor` 会显示当前 effective config mode、service\u002Fmodel\u002FAPI Key 来源，并尝试 API 连通性。常见模式：\n\n| 模式 | 含义 |\n|------|------|\n| `studio-project` | Studio 运行时：只使用 Studio\u002Fproject 配置和 secrets |\n| `cli-project` | CLI 运行时：以 Studio 配置为基础，再叠加 env 和 CLI 参数 |\n| `legacy-env` | 旧 env 模式：兼容老项目的纯 `.env` 配置 |\n\n如果服务测试失败，优先检查服务商、模型和协议是否匹配。Google Gemini 的 AI Studio API Key 可用于 Gemini OpenAI-compatible endpoint；InkOS 会自动禁用 Google 不支持的 OpenAI `store` 参数。MiniMax \u002F MiniMax CodingPlan 会优先使用可工作的非流式 transport，避免流式返回 usage 但无正文的问题。\n\n### v2.0 LLM 配置更新\n\n- **Studio \u002F CLI 配置隔离**：Studio 固定使用服务页配置和 `.inkos\u002Fsecrets.json`；CLI、daemon、部署环境支持 env 覆盖和一次性命令参数。\n- **Provider bank 能力表**：内置 Google Gemini、Moonshot、MiniMax、智谱、百炼、DeepSeek、硅基流动、PPIO、OpenRouter、Ollama、CodingPlan 等服务的 baseUrl、协议、模型和兼容策略。\n- **模型归属校验**：`--service google --model kimi-k2.5` 这类错配会直接报错，避免把请求发到错误服务商。\n- **Google Gemini 兼容修复**：AI Studio API Key 可直接用于 Gemini OpenAI-compatible endpoint，InkOS 会自动禁用 Google 不支持的 OpenAI `store` 参数。\n- **MiniMax transport 探测**：MiniMax \u002F MiniMax CodingPlan 自动使用可工作的 transport，规避流式 usage 正常但正文为空的问题。\n- **旧 env 兼容**：老的 `INKOS_LLM_BASE_URL + INKOS_LLM_MODEL + INKOS_LLM_API_KEY` 仍可用于 CLI；没有 `INKOS_LLM_SERVICE` 时会尝试从 baseUrl 反推服务商。\n\n### v1.2 更新\n\n**统一交互内核 + TUI 仪表盘 + Studio 助手**\n\n- **共享交互运行时**：TUI、Studio、`inkos interact`、OpenClaw Skill 共用同一套自然语言理解 + 执行内核，支持 15+ 种意图（写作、修订、重写、改名、导出、切换书籍等）\n- **Ink TUI 仪表盘**：`inkos` 直接进入全屏交互式仪表盘（Ink + React），对话式创作体验，slash 命令自动补全，主题动效，i18n 双语\n- **Studio 助手面板**：右侧 AI 助手面板接入共享交互内核，支持自然语言操作书籍——改名、写章、审计、导出等，实时显示执行状态\n- **对话式建书**：通过自然语言对话逐步构思书籍设定，草稿就绪后一键创建\n- **全书实体改名**：`把林烬改成张三` 或 `\u002Frename 林烬 => 张三`，全量扫描章节 + 真相文件，一次替换\n- **`inkos interact`**：共享交互 JSON 入口，OpenClaw \u002F 外部 Agent 可直接调用\n- **Thinking 模型温度夹制**：kimi-k2.5 等 thinking 模型自动强制 temperature=1，兼容 per-call 温度调参\n- **Studio 死代码清理**：移除未使用的 shadcn 组件和依赖，-2800 行\n\n### 写第一本书\n\n```bash\ninkos book create --title \"吞天魔帝\" --genre xuanhuan  # 创建新书\ninkos write next 吞天魔帝      # 写下一章（完整管线：草稿 → 审计 → 修订）\ninkos status                   # 查看状态\ninkos review list 吞天魔帝     # 审阅草稿\ninkos review approve-all 吞天魔帝  # 批量通过\ninkos export 吞天魔帝          # 导出全书\ninkos export 吞天魔帝 --format epub  # 导出 EPUB（手机\u002FKindle 阅读）\n```\n\n### 写完整短篇\n\n想直接生成一篇完整短篇，可以在 Studio 对话里说：\n\n```text\n写一篇 12 章短篇，方向是：都市婚姻反转，女主拿到账本证据后反杀。\n```\n\n也可以走 CLI：\n\n```bash\ninkos short run \\\n  --direction \"都市短篇 婚姻反转 女主证据反杀\" \\\n  --chapters 12 \\\n  --chars 1000\n```\n\n生成物会落在 `shorts\u002F\u003C故事名>\u002Ffinal\u002F`，包含 `full.md`、`sales-package.md`、`cover-prompt.md`，配置封面服务后还会生成 `cover.png`。\n\n### 单独制作封面\n\n如果只想给已有标题或简介做封面，不需要重跑短篇正文，在 Studio 对话里直接说：\n\n```text\n给《她签下离婚协议那天，他悔疯了》生成一张短篇封面，偏现代都市、强反转。\n```\n\n封面工具会独立生成 `covers\u002F\u003C标题>\u002Fcover-prompt.md` 和 `covers\u002F\u003C标题>\u002Fcover.png`。如果还没有配置封面服务，先在 Studio 的模型配置里设置封面服务和 API Key。\n\n生成后也可以继续通过 chat 改封面提示词，例如“把人物拉近一点、标题字更大、表情更冷笑”。系统会用新的 `coverPrompt` 重写 `cover-prompt.md` 并重生成封面，不需要重新写短篇。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshot-terminal.png\" width=\"700\" alt=\"终端截图\">\n\u003C\u002Fp>\n\n---\n\n## 核心特性\n\n### 多维度审计 + 去 AI 味\n\n连续性审计员从 33 个维度检查每一章草稿：角色记忆、物资连续性、伏笔回收、大纲偏离、叙事节奏、情感弧线等。内置 AI 痕迹检测维度，自动识别\"LLM 味\"表达（高频词、句式单调、过度总结），审计不通过自动进入修订循环。\n\n去 AI 味规则内置于写手 agent 的 prompt 层——词汇疲劳词表、禁用句式、文风指纹注入，从源头减少 AI 生成痕迹。`revise --mode anti-detect` 可对已有章节做专门的反检测改写。\n\n### 文风仿写\n\n`inkos style analyze` 分析参考文本，提取统计指纹（句长分布、词频特征、节奏模式）和 LLM 风格指南。`inkos style import` 将指纹注入指定书籍，后续所有章节自动采用该风格，修订者也会用风格标准做审计。\n\n### 创作简报\n\n`inkos book create --brief my-ideas.md` 传入你的脑洞、世界观设定、人设文档。建筑师 agent 会基于简报生成故事设定（`story_bible.md`）和创作规则（`book_rules.md`），而非凭空创作；同时把简报落盘到 `story\u002Fauthor_intent.md`，让这本书的长期创作意图不会只在建书时生效一次。\n\n### 输入治理控制面\n\n每本书现在都有两份长期可编辑的 Markdown 控制文档：\n\n- `story\u002Fauthor_intent.md`：这本书长期想成为什么\n- `story\u002Fcurrent_focus.md`：最近 1-3 章要把注意力拉回哪里\n\n写作前可以先跑：\n\n```bash\ninkos plan chapter 吞天魔帝 --context \"本章先把注意力拉回师徒矛盾\"\ninkos compose chapter 吞天魔帝\n```\n\n这会生成 `story\u002Fruntime\u002Fchapter-XXXX.intent.md`、`context.json`、`rule-stack.yaml`、`trace.json`。其中 `intent.md` 给人看，其他文件给系统执行和调试。`plan` \u002F `compose` 只编译本地文档和状态，不依赖在线 LLM，可在没配好 API Key 前先验证控制输入。\n\n### 字数治理\n\n`draft`、`write next`、`revise` 现在共享同一套保守型字数治理：\n\n- `--words` 指定的是目标字数，系统会自动推导一个允许区间，不承诺逐字精确命中\n- 中文默认按 `zh_chars` 计数，英文默认按 `en_words` 计数\n- 如果正文超出允许区间，InkOS 最多只会追加 1 次纠偏归一化（压缩或补足），不会直接硬截断正文\n- 如果 1 次纠偏后仍然超出 hard range，章节照常保存，但会在结果和 chapter index 里留下长度 warning \u002F telemetry\n\n### 续写已有作品\n\n`inkos import chapters` 从已有小说文本导入章节，自动逆向工程 7 个真相文件（世界状态、角色矩阵、资源账本、伏笔钩子等），支持 `第X章` 和自定义分割模式、断点续导。导入后 `inkos write next` 无缝接续创作。\n\n### 同人创作\n\n`inkos fanfic init --from source.txt --mode canon` 从原作素材创建同人书。支持四种模式：canon（正典延续）、au（架空世界）、ooc（性格重塑）、cp（CP 向）。内置正典导入器、同人专属审计维度和信息边界管控——确保设定不矛盾。\n\n### 多模型路由\n\n不同 Agent 可以走不同模型和 Provider。写手用 Claude（创意强），审计用 GPT-4o（便宜快速），雷达用本地模型（零成本）。`inkos config set-model` 按 agent 粒度配置，未配置的自动回退全局模型。\n\n### 守护进程 + 通知推送\n\n`inkos up` 启动后台循环自动写章。管线对非关键问题全自动运行，关键问题暂停等人工审核。通知推送支持 Telegram、飞书、企业微信、Webhook（HMAC-SHA256 签名 + 事件过滤）。日志写入 `inkos.log`（JSON Lines），`-q` 静默模式。\n\n### 本地模型兼容\n\n支持任何 OpenAI 兼容接口（Studio 里新增自定义服务，或 CLI 使用 `--provider custom` \u002F `INKOS_LLM_PROVIDER=custom`）。服务测试会尝试不同协议和流式开关组合，并保存或提示可用 transport。Fallback 解析器处理小模型不规范输出，流中断时自动恢复部分内容。\n\n### 可靠性保障\n\n每章自动创建状态快照，`inkos write rewrite` 可回滚任意章节。写手动笔前输出自检表（上下文、资源、伏笔、风险），写完输出结算表，审计员交叉验证。文件锁防止并发写入。写后验证器含跨章重复检测和 11 条硬规则自动 spot-fix。\n\n伏笔系统使用 Zod schema 校验——`lastAdvancedChapter` 必须是整数，`status` 只能是 open\u002Fprogressing\u002Fdeferred\u002Fresolved。LLM 输出的 JSON delta 在写入前经过 `applyRuntimeStateDelta` 做 immutable 更新 + `validateRuntimeState` 结构校验。坏数据直接拒绝，不会滚雪球。\n\n模型输出上限由 provider bank 的模型卡管理；`llm.extra` \u002F `INKOS_LLM_EXTRA_*` 中的保留键（max_tokens、temperature、model、messages、stream 等）会被自动过滤，防止意外覆盖核心请求参数。\n\n---\n\n## 工作原理\n\n每一章由多个 Agent 接力完成，全程零人工干预：\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshot-pipeline.png\" width=\"800\" alt=\"管线流程图\">\n\u003C\u002Fp>\n\n| Agent | 职责 |\n|-------|------|\n| **雷达 Radar** | 扫描平台趋势和读者偏好，指导故事方向（可插拔，可跳过） |\n| **规划师 Planner** | 读取作者意图 + 当前焦点 + 记忆检索结果，产出本章意图（must-keep \u002F must-avoid） |\n| **编排师 Composer** | 从全量真相文件中按相关性选择上下文，编译规则栈和运行时产物 |\n| **建筑师 Architect** | 规划章节结构：大纲、场景节拍、节奏控制 |\n| **写手 Writer** | 基于编排后的精简上下文生成正文（字数治理 + 对话引导） |\n| **观察者 Observer** | 从正文中过度提取 9 类事实（角色、位置、资源、关系、情感、信息、伏笔、时间、物理状态） |\n| **反射器 Reflector** | 输出 JSON delta（而非全量 markdown），由代码层做 Zod schema 校验后 immutable 写入 |\n| **归一化器 Normalizer** | 单 pass 压缩\u002F扩展，将章节字数拉入允许区间 |\n| **连续性审计员 Auditor** | 对照 7 个真相文件验证草稿，33 维度检查 |\n| **修订者 Reviser** | 修复审计发现的问题 — 关键问题自动修复，其他标记给人工审核 |\n\n如果审计不通过，管线自动进入\"修订 → 再审计\"循环，直到所有关键问题清零。\n\n### 长期记忆\n\n每本书维护 7 个真相文件作为唯一事实来源：\n\n| 文件 | 用途 |\n|------|------|\n| `current_state.md` | 世界状态：角色位置、关系网络、已知信息、情感弧线 |\n| `particle_ledger.md` | 资源账本：物品、金钱、物资数量及衰减追踪 |\n| `pending_hooks.md` | 未闭合伏笔：铺垫、对读者的承诺、未解决冲突 |\n| `chapter_summaries.md` | 各章摘要：出场人物、关键事件、状态变化、伏笔动态 |\n| `subplot_board.md` | 支线进度板：A\u002FB\u002FC 线状态、停滞检测 |\n| `emotional_arcs.md` | 情感弧线：按角色追踪情绪变化和成长 |\n| `character_matrix.md` | 角色交互矩阵：相遇记录、信息边界 |\n\n连续性审计员对照这些文件检查每一章草稿。如果角色\"记起\"了从未亲眼见过的事，或者拿出了两章前已经丢失的武器，审计员会捕捉到。\n\n从 0.6.0 起，真相文件的权威来源从 markdown 迁移到 `story\u002Fstate\u002F*.json`（Zod schema 校验）。Settler 不再输出完整 markdown 文件，而是输出 JSON delta，由代码层做 immutable apply + 结构校验后写入。markdown 文件仍然保留作为人类可读的投影。旧书首次运行时自动从 markdown 迁移到结构化 JSON，零人工操作。\n\nNode 22+ 环境下自动启用 SQLite 时序记忆数据库（`story\u002Fmemory.db`），支持按相关性检索历史事实、伏笔和章节摘要，避免全量注入导致的上下文膨胀。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshot-state.png\" width=\"800\" alt=\"长期记忆快照\">\n\u003C\u002Fp>\n\n### 控制面与运行时产物\n\n除了 7 个真相文件，InkOS 还把“护栏”和“自定义”拆成可审阅的控制层：\n\n- `story\u002Fauthor_intent.md`：长期作者意图\n- `story\u002Fcurrent_focus.md`：当前阶段的关注点\n- `story\u002Fruntime\u002Fchapter-XXXX.intent.md`：本章目标、保留项、避免项、冲突处理\n- `story\u002Fruntime\u002Fchapter-XXXX.context.json`：本章实际选入的上下文\n- `story\u002Fruntime\u002Fchapter-XXXX.rule-stack.yaml`：本章的优先级层和覆盖关系\n- `story\u002Fruntime\u002Fchapter-XXXX.trace.json`：本章输入编译轨迹\n\n这样 `brief`、卷纲、书级规则、当前任务不再混成一坨 prompt，而是先编译，再写作。\n\n### 创作规则体系\n\n写手 agent 内置 ~25 条通用创作规则（人物塑造、叙事技法、逻辑自洽、语言约束、去 AI 味），适用于所有题材。\n\n在此基础上，每个题材有专属规则（禁忌、语言约束、节奏、审计维度），每本书有独立的 `book_rules.md`（主角人设、数值上限、自定义禁令）、`story_bible.md`（世界观设定）、`author_intent.md`（长期方向）和 `current_focus.md`（近期关注点）。`volume_outline.md` 仍然是默认规划，但在 v2 输入治理模式下不再天然压过当前任务意图。\n\n## 使用模式\n\nInkOS 提供三种交互方式，底层共享同一组原子操作：\n\n### 1. 完整管线（一键式）\n\n```bash\ninkos write next 吞天魔帝          # 写草稿 → 审计 → 自动修订，一步到位\ninkos write next 吞天魔帝 --count 5 # 连续写 5 章\n```\n\n`write next` 现在默认走 `plan -> compose -> write` 的输入治理链路。若你需要回退到旧的 prompt 拼装路径，可在 `inkos.json` 中显式设置：\n\n```json\n{\n  \"inputGovernanceMode\": \"legacy\"\n}\n```\n\n默认值为 `v2`。`legacy` 仅作为显式 fallback 保留。\n\n### 2. 原子命令（可组合，适合外部 Agent 调用）\n\n```bash\ninkos plan chapter 吞天魔帝 --context \"本章重点写师徒矛盾\" --json\ninkos compose chapter 吞天魔帝 --json\ninkos draft 吞天魔帝 --context \"本章重点写师徒矛盾\" --json\ninkos audit 吞天魔帝 31 --json\ninkos revise 吞天魔帝 31 --json\n```\n\n每个命令独立执行单一操作，`--json` 输出结构化数据。`plan` \u002F `compose` 负责控制输入，`draft` \u002F `audit` \u002F `revise` 负责正文与质量链路。可被外部 AI Agent 通过 `exec` 调用，也可用于脚本编排。\n\n### 3. 自然语言 Agent 模式\n\n```bash\ninkos agent \"帮我写一本都市修仙，主角是个程序员\"\ninkos agent \"写下一章，重点写师徒矛盾\"\ninkos agent \"先扫描市场趋势，然后根据结果创建一本新书\"\n```\n\n内置 18 个工具（write_draft、plan_chapter、compose_chapter、audit_chapter、revise_chapter、scan_market、create_book、update_author_intent、update_current_focus、get_book_status、read_truth_files、list_books、write_full_pipeline、web_fetch、import_style、import_canon、import_chapters、write_truth_file），LLM 通过 tool-use 决定调用顺序。推荐的 Agent 工作流是：先调整控制面，再 `plan` \u002F `compose`，最后决定写草稿还是跑完整管线。\n\n## 实测数据\n\n用 InkOS 全自动跑了一本玄幻题材的《吞天魔帝》：\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fscreenshot-chapters.png\" width=\"800\" alt=\"生产数据\">\n\u003C\u002Fp>\n\n| 指标 | 数据 |\n|------|------|\n| 已完成章节 | 31 章 |\n| 总字数 | 452,191 字 |\n| 平均章字数 | ~14,500 字 |\n| 审计通过率 | 100% |\n| 资源追踪项 | 48 个 |\n| 活跃伏笔 | 20 条 |\n| 已回收伏笔 | 10 条 |\n\n## 命令参考\n\n| 命令 | 说明 |\n|------|------|\n| `inkos init [name]` | 初始化项目（省略 name 在当前目录初始化） |\n| `inkos book create` | 创建新书（`--genre`、`--platform`、`--chapter-words`、`--target-chapters`、`--brief \u003Cfile>` 传入创作简报） |\n| `inkos book update [id]` | 修改书设置（`--chapter-words`、`--target-chapters`、`--status`） |\n| `inkos book list` | 列出所有书籍 |\n| `inkos book delete \u003Cid>` | 删除书籍及全部数据（`--force` 跳过确认） |\n| `inkos genre list\u002Fshow\u002Fcopy\u002Fcreate` | 查看、复制、创建题材 |\n| `inkos plan chapter [id]` | 生成下一章的 `intent.md`（`--context` \u002F `--context-file` 传入当前指令） |\n| `inkos compose chapter [id]` | 生成下一章的 `context.json`、`rule-stack.yaml`、`trace.json` |\n| `inkos write next [id]` | 完整管线写下一章（`--words` 覆盖字数，`--count` 连写，`-q` 静默模式） |\n| `inkos write rewrite [id] \u003Cn>` | 重写第 N 章（恢复状态快照，`--force` 跳过确认，`--words` 覆盖字数） |\n| `inkos draft [id]` | 只写草稿（`--words` 覆盖字数，`-q` 静默模式） |\n| `inkos audit [id] [n]` | 审计指定章节 |\n| `inkos revise [id] [n]` | 修订指定章节 |\n| `inkos agent \u003Cinstruction>` | 自然语言 Agent 模式 |\n| `inkos review list [id]` | 审阅草稿 |\n| `inkos review approve-all [id]` | 批量通过 |\n| `inkos status [id]` | 项目状态 |\n| `inkos export [id]` | 导出书籍（`--format txt\u002Fmd\u002Fepub`、`--output \u003Cpath>`、`--approved-only`） |\n| `inkos radar scan` | 扫描平台趋势 |\n| `inkos fanfic init` | 从原作素材创建同人书（`--from`、`--mode canon\u002Fau\u002Fooc\u002Fcp`） |\n| `inkos config set-global` | 设置 CLI \u002F daemon \u002F 部署环境的全局 LLM env（`~\u002F.inkos\u002F.env`） |\n| `inkos config show-global` | 查看全局配置 |\n| `inkos config set\u002Fshow` | 查看\u002F更新项目配置 |\n| `inkos config set-model \u003Cagent> \u003Cmodel>` | 为指定 agent 设置模型覆盖（`--base-url`、`--provider`、`--api-key-env` 支持多 Provider 路由） |\n| `inkos config remove-model \u003Cagent>` | 移除 agent 模型覆盖（回退到默认） |\n| `inkos config show-models` | 查看当前模型路由 |\n| `inkos doctor` | 诊断配置问题（显示 effective config mode、来源、API 连通性和提供商兼容性提示） |\n| `inkos detect [id] [n]` | AIGC 检测（`--all` 全部章节，`--stats` 统计） |\n| `inkos style analyze \u003Cfile>` | 分析参考文本提取文风指纹 |\n| `inkos style import \u003Cfile> [id]` | 导入文风指纹到指定书 |\n| `inkos import canon [id] --from \u003Cparent>` | 导入正传正典到番外书 |\n| `inkos import chapters [id] --from \u003Cpath>` | 导入已有章节续写（`--split`、`--resume-from`） |\n| `inkos analytics [id]` \u002F `inkos stats [id]` | 书籍数据分析（审计通过率、高频问题、章节排名、token 用量） |\n| `inkos update` | 更新到最新版本 |\n| `inkos studio` \u002F `inkos` | 启动 Web 工作台（`-p` 指定端口，默认 4567；Studio 使用服务页配置，不使用 env 覆盖） |\n| `inkos up \u002F down` | 启动\u002F停止守护进程（`-q` 静默模式，自动写入 `inkos.log`） |\n\n`[id]` 参数在项目只有一本书时可省略，自动检测。所有命令支持 `--json` 输出结构化数据。`draft` \u002F `write next` \u002F `plan chapter` \u002F `compose chapter` 支持 `--context` 传入创作指导，`--words` 覆盖每章目标字数。`book create` 支持 `--brief \u003Cfile>` 传入创作简报（你的脑洞\u002F设定文档），Architect 会基于此生成设定而非凭空创作。`plan chapter` \u002F `compose chapter` 不要求在线 LLM，可在配置 API Key 之前先检查输入治理结果。\n\nCLI 运行时还支持一次性 LLM 覆盖参数：`--service`、`--model`、`--api-key-env`、`--base-url`、`--api-format \u003Cchat|responses>`、`--stream`、`--no-stream`。例如：\n\n```bash\ninkos write next --service google --model gemini-2.5-flash\ninkos up --service moonshot --model kimi-k2.5 --api-key-env MOONSHOT_API_KEY\n```\n\n## 路线图\n\n- [x] ~~`packages\u002Fstudio` Web UI 工作台（Vite + React + Hono）~~ — 已发布，`inkos studio` 启动\n- [ ] 互动小说（分支叙事 + 读者选择）\n- [ ] 局部干预（重写半章 + 级联更新后续 truth 文件）\n- [ ] 自定义 agent 插件系统\n- [ ] 平台格式导出（起点、番茄等）\n\n## 参与贡献\n\n欢迎贡献代码。提 issue 或 PR。\n\n```bash\npnpm install\npnpm dev          # 监听模式\npnpm test         # 运行测试\npnpm typecheck    # 类型检查\n```\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F#Narcooo\u002Finkos&type=date&legend=top-left\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Narcooo\u002Finkos&type=date&theme=dark&legend=top-left\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Narcooo\u002Finkos&type=date&legend=top-left\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Narcooo\u002Finkos&type=date&legend=top-left\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n## Skills Download History\n\n\u003Cdiv align=\"center\">\n\n\u003Ca href=\"https:\u002F\u002Fskill-history.com\u002Fnarcooo\u002Finkos\">\n  \u003Cimg alt=\"Skills Download History\" src=\"https:\u002F\u002Fskill-history.com\u002Fchart\u002Fnarcooo\u002Finkos.svg\" \u002F>\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\n## Repobeats\n\n![Alt](https:\u002F\u002Frepobeats.axiom.co\u002Fapi\u002Fembed\u002F024114415c1505a8c27fb121e3b392524e48f583.svg \"Repobeats analytics image\")\n\n## Contributors\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNarcooo\u002Finkos\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=Narcooo\u002Finkos\" \u002F>\n\u003C\u002Fa>\n\n## 许可证\n\n[AGPL-3.0](LICENSE)\n","InkOS 是一个自主小说写作的AI代理，能够自动完成小说的撰写、审核和修订过程。其核心功能包括支持多种风格的小说创作（如玄幻、仙侠等），并能进行续写、同人创作等多种形式的文本生成，同时通过人工审查环节确保内容质量。技术上，InkOS基于TypeScript开发，并作为OpenClaw技能发布，允许用户通过CLI工具或Web界面轻松访问。它特别适用于需要高效生成高质量文学作品的情境下，比如网络连载、快速原型测试或是辅助个人创作。",2,"2026-06-11 03:50:47","high_star"]