### CHANGELOG # Changelog [English](CHANGELOG.en.md) | 中文 ## v1.7.2 ### Release Focus Agent Skills 兼容与单一 Skill 内核更新:InkOS 现在直接读取标准 `SKILL.md` 能力包,Chat Agent 可以根据用户意图自主调用,也可以由用户通过输入框 `+` 按钮或 `@skill-id` 强制启用。旧的 InkOS 私有 Skill 协议、关键词触发器和并行上下文规划器已被完整替换,不再叠加两套实现。 ### Agent Skills - 新增基于 pi-agent 工具循环的 `use_skill`:模型先读取可用 Skill 的名称与描述,再通过结构化工具调用激活所需专业能力 - Studio 支持导入包含 `SKILL.md` 的完整文件夹,静态参考资料会一并保存到项目 `.agents/skills/`;外部脚本不会被自动执行 - 支持项目 `skills/`、`.agents/skills/`,以及用户级 `~/.agents/skills/`、`~/.openclaw/skills/` 等标准位置 - 用户可在 Chat 输入区选择并强制启用 Skill;一次性意图激活不会永久污染后续会话或切换书籍后的上下文 - Studio 项目设置统一展示 Skill 来源,并支持删除项目导入的 Skill;删除后立即从 Agent 与选择列表中移除 ### Compatibility - 删除旧 `.inkos/skills` 私有加载路径,以及 `whenToUse`、`promptPacks`、`toolHints`、`contextNeeds` 等 InkOS 专用字段 - 提示词包继续由 Studio“项目设置 → 提示词”独立管理,不再伪装成 Skill 能力 - 旧 Skill 请迁移为标准目录:保留 `SKILL.md` 与静态参考资料,通过 Studio 重新导入或放入 `.agents/skills/` ## v1.7.1 ### Release Focus 剧情多线推演与不中断的 Studio 协作更新:长篇作者可以在落笔前生成、横向比较并核验多条非正史未来分支;选择分支只保存候选计划,不改正文、大纲或正史。同时,写章等生产任务进入后台任务系统,用户可以继续聊天、刷新恢复进度、重试失败消息,并获得更可靠的任务与数据边界。 ### Major Features - 新增长篇剧情多线推演:基于当前正史生成 2-5 条隔离分支,比较未来章节节拍、人物决定、预计变化、风险、作者意图匹配度和不确定项 - Studio Chat 新增横向分支比较卡,可采用候选、重新核验过期推演;采用后只写入 `selected-branch-plan.md`,不会修改正文、设定、大纲或运行时正史 - CLI 新增 `inkos forecast create / show / select`,与 Core 的推演 schema、存储、上下文指纹、agent 和 runner 共用同一套非正史边界 - 新增整书备份 / 恢复与最新章节安全删除;删除章节时同步回滚章节状态,避免正文和运行时状态错位 ### Collaboration And Task Reliability - `write_next` 接入 Studio 后台任务系统;生产任务运行时仍可继续对话,不再用一个长请求占住整个 Chat - 任务进度按 execution id 归属并持久化,刷新后可恢复正确任务卡;终态快照不会提前关闭仍在流式输出的聊天 - 新增失败消息重试、会话删除时中止对应生产任务、服务重启后清理僵尸任务快照等恢复路径 - 单任务槽改为原子预留;生产期间阻止冲突的书籍写操作,同时允许只读工具和剧情推演继续工作 - 修复直接调用终态工具后,刷新会话可能丢失工具卡的问题;完成态继续以真实 tool result 为准 ### Data Safety And Compatibility - 章节局部修改会同步维护章节索引字数,避免正文已变而统计仍停留在旧值 - 修复短篇确认与 runner 的长度校验不一致,并让短篇输出语言服从用户本轮要求 - 修复切换或回放任务快照时复活旧 Play 选项、删除会话后继续追加 transcript 等边界问题 - 更新 Xiaomi MiMo API 端点,并改进 Studio 事件归类,避免无 task id 或会话压缩事件污染后台任务卡 ## v1.7.0 ### Release Focus 多语言创作与长任务可靠性大版本:新增完整的长文翻译 / 本地化工作流,并把英文能力扩展到短篇、剧本、分镜、互动影游、Studio 与 CLI。与此同时,Chat 导入已有小说、可配置审稿修订、写锁自动恢复和中断信号传递,让长篇协作与跨平台运行更稳定。 ### Major Features - 新增翻译 / 本地化工作流:支持导入 EPUB、文本型 PDF、TXT 和 Markdown,按章节与语义段翻译,维护术语表并执行章节审校,可导出 TXT、Markdown 或 EPUB - Studio 新增翻译工作台:可使用自然语言填写任意源语言 / 目标语言,创建项目、运行翻译、在网页内对照查看原文与译文、阅读审校报告并导出完整文件 - CLI 新增 `inkos translate init / run / export`;Studio Chat 也可通过确认动作创建翻译项目,不要求用户记忆 `zh`、`en` 等语言缩写 - 短篇、剧本、分镜和互动影游管线新增英文提示词分支;Studio 动态界面与 CLI 环境语言回退同步补齐,英文不再只是外层 UI 翻译 - Chat 新增 `import_chapters` 工具:可把本地文件 / 目录及对话附件中的已有小说导入为真实章节,自动逆向生成设定并重放章节状态;与只保存参考资料的 `ingest_material` 明确分工(#324) ### Collaboration And Control - 修订判断标准新增 `writing.revisionGate`:支持 strict、lenient、always 三档,并可按项目或单本书覆盖;未落盘时返回前后审稿指标和具体剩余问题(#326) - CLI 遵守单本书的 `writing.reviewMode`;新增 `inkos auto [book-id] <目标章号>` 连续写作到指定章节(#307) - 通知渠道支持纯文本格式;`write next / write rewrite / auto / revise / audit` 支持通过 `--notify` 发送完成或失败通知(#308) - Studio 可默认展开操作详情,read / grep 等工具结果也能直接查看,降低“做了但看不到结果”的不透明感(#306) ### Reliability And Compatibility - 写锁升级为带所有权、心跳和租约的跨进程锁:同进程遗留锁、进程已退出的锁和过期锁会自动恢复;活跃冲突返回 `BOOK_BUSY`,不再要求用户手工删除 `.write.lock`(#337) - Studio 中止操作会沿 pi-agent、写作管线和模型请求向下传播,避免界面已停止但后台仍继续写盘 - OpenRouter、NewAPI、kkaiapi、PPIO、硅基流动等动态模型服务不再用静态白名单拦截用户模型;OpenRouter 探测改用长期存在的 `openrouter/auto`(#300) - MiniMax 默认启用 reasoning 分离,并统一剥离响应开头完整的 think 块,避免思考内容混入章节或聊天正文(#329) - 上传附件和翻译源文件统一返回 POSIX 项目相对路径,修复 Windows 与其他平台之间的路径不一致 ## v1.6.3 ### Hotfix - 修复 `@actalk/inkos@1.6.2` / `@actalk/inkos-studio@1.6.2` 发布到 npm 时 registry manifest 泄漏 `workspace:*` 的问题;Windows / npm 全局升级请直接安装 `1.6.3` 或更新到 `latest` - 发布校验现在会拒绝 publishable manifest 中的 `workspace:` 依赖,避免同类安装错误复发 - MiniMax 官方 OpenAI-compatible 接入新增 `MiniMax-M3` 模型卡,并对 `MiniMax-M3*` 默认发送 `thinking: { "type": "disabled" }`,减少接口默认返回 thinking 内容的问题 ## v1.6.2 ### Release Focus Chat 协作与可调提示词热更新:在 v1.6.0 的互动影游 / Skill 系统基础上,补齐用户上传文件、图片附件、长任务中断、材料归档检索和 Studio 提示词包编辑。核心目标是让 Chat 更像真实创作工作台:能看用户给的材料,能停下长任务,能把外部资料沉淀为可检索参考,也能让用户直接调整关键提示词。 ### Improvements - Studio Chat 支持上传文本 / Markdown / 图片附件;文本材料会进入 LLM 上下文,图片会作为多模态输入传给支持视觉的模型 - 新增长任务中断能力,用户可在 Chat 中主动停止当前 agent turn,避免长任务卡死后只能刷新 - 新增材料归档与检索工具:外部材料可保存到项目材料库,并在后续写作 / 讨论中用 evidence trace 检索引用 - 新增 Studio 提示词包编辑器:在“项目设置 → 提示词”集中查看和调整 longform、Play、互动影游等内置 prompt pack;修改保存为项目级覆盖文件,不改内置默认值 - Runtime Skill 可继续提供 prompt pack、上下文需求和专业规则;提示词包编辑器让这些规则能被人直接检查和微调 - 修复 Studio Chat 旧章修订时丢失本轮对话要求的问题:`sub_agent(reviser)` 现在会把用户本轮“重写 / 重修 / 调整方向”的话作为一次性修订 brief 传入长篇管线 - 修订未落盘时返回更具体的判定信息:展示修订前后 blocking / critical / AI-tell 指标、应用标准和剩余问题,不再只返回笼统的 “kept original chapter” - 调整疑似章节正文未落盘兜底:不再默认引导“写下一章”,并避免把“第 N 章修改指令 / 重写方案”误判成正文 ### Verification Notes - 真实模型验收:`kkaiapi / deepseek-v4-flash` 能在回答中返回上传 Markdown 的唯一暗号,证明文档内容进入 LLM 上下文 - 真实模型验收:`kkaiapi / gpt-5.5` 能识别上传 PNG 的主体颜色,证明图片附件进入多模态输入链路 ## v1.6.0 ### Release Focus 互动影游与 Skill 系统大版本:把 InkOS 的创作入口从“小说 + Play”继续扩展到互动影游、剧本、分镜和可插拔专业能力。Studio Chat 现在可以按用户意图调用外部 / 内置 skills,也能在需要真实资料时生成可追溯研究报告,同时修复几类影响长任务继续推进和用户协作编辑的稳定性问题。 ### Major Features - 新增互动影游创作与工作台能力:支持分支剧情、变量 / 旗标、角色关系、结局、节点图片和可导出的交互项目包 - 新增 runtime Skill 系统:内置 / 外部 skill 可被自动匹配或用户强制指定,用于给 Chat / 创作入口注入专业规则、提示词包和上下文需求 - 新增联网研究工具 `research_web`:可用于世界观、年代、职业、地域、市场和事实核查,输出带 sources / queryLog / unknowns / confidence 的 Markdown 参考报告 - Studio Skill UI 支持选择、强制使用和添加外部 skill,让专业能力不再只能写死在系统提示词里 - 剧本、分镜、互动影游入口与 Chat action surface 对齐,重动作继续走确认卡,生成结果可在 Studio 内查看和导出 ### Reliability And Fixes - 修复 `patch_chapter_text` 只能精确命中文本的问题;现在轻微改写的目标段落可用高置信段落定位兜底,仍无法确认时继续明确失败,避免误改 - 修复审计 / 多章操作失败时可能把 `chapters/index.json` 写成空数组的问题;保存层会从磁盘章节文件重建索引,防止已有章节在 UI 中消失 - 修复多渠道同模型切换后会话丢失 bookId 的回归风险,并补充测试锁定 session-bound bookId 传递 - 研究报告保存为 `.inkos/research/` 下的参考材料,不直接污染 story truth、角色卡或正文 ## v1.5.0 ### Release Focus InkOS Play 与创作工作台大版本:把 InkOS 从“自动写下一章”的管线工具推进到更完整的 Story Creation AI Agent。长篇、短篇、同人、番外、仿写、续写、封面和开放世界互动开始共享同一套 Studio Chat / CLI / TUI 交互内核,并围绕指令遵循、上下文管理和可视化体验做了系统性整理。 ### Major Features - 新增 **InkOS Play** 开放世界 / 分支互动入口:支持自由动作、可点击选择、世界契约、非固定时间推进、角色 agent、物品 / 证据 / 关系状态、HUD 和自动配图 - Studio 创作入口重组为一等入口:长篇小说、短篇小说、同人创作、番外创作、仿写创作、续写创作、分支互动、开放世界都可从工作台直接启动 - Play 世界状态可视化升级:侧边 HUD 展示世界时间、当前位置、面对对象、持有物、关系和配图;生成图进入对话流,可滚动回看 - 新增 / 完善番外、仿写、续写等创作链路,让已有 IP、设定和文风可以继续派生新内容 - Studio Chat、TUI 和 CLI 统一到 action surface:普通讨论、确认建书、短篇、封面、Play、长篇写章和重写续写不再依赖散落关键词抢跑 ### Context And Reliability - 长篇上下文进入 protected / compressible 分层:作者意图、当前焦点、活跃伏笔等高优先级内容不被静默压掉,旧历史和低相关背景只在超限时做语义压缩 - Composer 增加 outline 段级选择,避免整本设定文件直接撑爆上下文窗口 - 会话恢复改为摘要 + 最近对话,降低旧工具结果和历史消息淹没当前指令的问题 - provider / Studio 主 Chat 出网边界补齐上下文窗口守卫,超限时明确报错而不是等上游 400 - 弱模型格式鲁棒性增强:Planner / Architect 的模型输出协议从脆弱 YAML 前置转向更宽容的 Markdown / 宿主抽取,减少 MiniMax 等模型因格式偏差直接中断 - 审稿、修订和失败态更倾向于暴露真实问题,不再把模型口头声明当成完成结果 ### Studio UX - Studio 左侧导航、Play 对话区、查看世界面板、配图按钮、生成物预览和字体尺寸做了整体整理 - Play 配图支持角色、物品、证据、时刻等对象,图像显示在对话上下文里,不再只作为固定面板预览 - 模型配置、封面服务、聚合 API 入口和错误提示进一步区分:InkOS 执行错误、模型供应商错误和图片生成错误不再混在一起 - README 和 Skill 文档同步更新为 Story Creation AI Agent 定位,并展示 v1.5.0 Studio Play 实测截图 ### Bug Fixes - 修复 TUI / Studio / Chat 多处自然语言入口各自解释用户意图导致的执行不一致问题 - 修复建书不完整时可能被下游当作成功创建的问题,完成态以真实产物和工具结果为准 - 修复 Play HUD 持有物、关系边、状态值本地化、图片展示和选择按钮重复显示等问题 - 修复长篇 writer / reviewer / reviser 在格式解析失败时可能把解析错误误当成正文问题继续改稿的问题 - 修复多个 UI 截图、README 架构图、Kimi 合作展示和 1.5.0 发布图在 GitHub README 中渲染错位的问题 ## v1.4.1 ### Release Focus Windows / provider 热修与长篇写作提速配置化:修复 MiniMax 默认端点不通的问题,保留长篇默认一轮自动修稿的速度收益,同时允许项目把自动修稿轮数配置回 3。 ### Improvements - 长篇章节写作的自动审稿修稿轮数新增 `writing.reviewRetries` 项目配置,默认仍为 1;需要更强修稿时可执行 `inkos config set writing.reviewRetries 3` - Studio 写章链路会读取同一项目配置,CLI 和 Studio 行为保持一致 - README / 开发说明同步 v1.4.1 的 MiniMax 与长篇写作配置变化 ### Bug Fixes - 修复 MiniMax 默认 provider 仍指向已不可用的 Anthropic 端点,导致 Windows 原生环境测试连接失败的问题 - 修复 MiniMax endpoint 元数据覆盖逻辑过宽,可能影响其他服务商路由判断的问题 ## v1.4.0 ### Release Focus 短篇写作与 Studio Chat 协作大版本:新增公开短篇生产链路、封面制作工具、普通聊天持久化会话和生成物预览,并修复长篇长度归一化可能被输出上限截断的问题。 ### Improvements - 新增独立短篇写作链路:Studio Chat 和 CLI 可生成完整短篇正文、大纲记录、审稿记录、简介卖点和封面提示词 - 新增封面制作能力:支持单独生成 / 重做封面,并在 Studio 消息中直接预览生成后的封面图 - Studio 普通聊天支持项目级持久化 session,刷新或重启后可继续查看、切换、改名和删除会话 - Chat 可直接编辑项目内生成文本产物,适合调整章节、封面提示词、简介等文件后再继续使用 InkOS 写作链路 - 服务配置页新增封面生成配置区,封面文本模型和图片模型分工更清晰 ### Bug Fixes - 修复短篇 / 封面工具执行结果中的图片路径只显示文本、不渲染预览的问题 - 修复 Studio 工具调用详情在消息恢复后丢失的问题 - 修复 `LengthNormalizerAgent` 显式设置 `maxTokens` 可能导致长章节压缩 / 扩写输出被截断的问题 ## v1.3.12 ### Release Focus Studio 服务配置体验小版本:把聚合服务入口放到更顺手的位置,补充官网 / 文档 / 模型页快捷访问,并把服务分组文案统一为“聚合 API”。 ### Improvements - Studio 服务列表和服务详情页为重点聚合服务补充外部快捷入口,配置前可直接打开官网、文档和模型列表 - 聚合服务分组标题统一为“聚合 API”,避免误导性表达 ## v1.3.11 ### Release Focus Studio 服务与聚合模型接入更新:新增 kkaiapi 服务选项,修复自定义/本地 OpenAI-compatible 服务测试误用兜底模型、API Key 中文字符导致连接崩溃、服务配置删除缺失等问题,并补齐雷达历史、题材管理刷新和长篇多线比例落地。 ### Improvements - 新增 kkaiapi 聚合模型服务选项,Studio / CLI 服务配置可以直接选择并测试 - Studio 新建书籍改走共享对话交互内核,避免建书入口和真实创作链路行为分叉 - 雷达扫描结果持久化为历史记录,Studio 可浏览既有 scan 结果 - 长篇大纲 / 章纲会更明确承接用户设定的多线比例,减少“比例写了但结构里没体现”的情况 ### Bug Fixes - 修复自定义服务连接测试误用全局兜底模型或错误协议,导致 llama.cpp / 本地 OpenAI-compatible 服务被误判不可用的问题 - 修复 API Key 或请求头含中文等非 ASCII 字符时触发 ByteString 转换异常的问题 - 修复 Studio 缺少删除自定义服务 / 模型配置入口的问题 - 修复题材管理保存后文件已生成但 Studio 列表不刷新的问题 - 修复 `hooks.json` 里 hook id 可能出现重复横线或异常标点的问题 ## v1.3.10 ### Release Focus 建书 platform 热修:修复 `sub_agent.platform` 参数在网页和命令行建书时可能因中文/别名输入触发 schema 校验失败的问题,并把新书创建链路统一收口到合法平台值。 ### Bug Fixes - 修复建书过程中工具调用报 `Validation failed for tool "sub_agent": - platform: must be equal to constant`,导致无法生成书籍文件的问题 - 统一 Studio、CLI、TUI、agent create-book 链路的平台别名归一化,`番茄` / `fanqie` / `番茄小说` 等输入会落到合法枚举 - 对未知平台值降级为 `other`,避免错误平台 id 写入书籍配置后继续影响后续流程 - 更新 README 微信交流群二维码为 13 群 ## v1.3.9 ### Release Focus Studio 建书与书籍设置热修:修复新建书籍链路被已有书籍 session 劫持的问题,并恢复可见的书籍设置页入口。 ### Bug Fixes - 修复 Studio 新建书籍 `/new`、`/create` 没有绑定独立 orphan session,导致建书请求可能被当前书籍工作台 session 接管的问题 - 修复建书完成后无法可靠跳转到新书 Chat 工作台的问题 - 恢复书籍设置页路由:`#/book/:id` 继续作为 Chat 工作台,`#/book/:id/settings` 用于修改书籍配置 - 修复 Dashboard 书籍菜单里的“书籍设置”实际打开 Chat 工作台的问题 ## v1.3.8 ### Release Focus 本地模型热修:修复 1.3.7 后 Ollama / 本地 OpenAI-compatible 端点在建书与续写链路里的配置回归,确保 Studio 与 CLI 都能继续使用无 API key 的本地模型。 ### Bug Fixes - 修复 Studio 服务测试、模型列表与建书链路强制要求 API key,导致 Ollama / 本地端点不可用的问题 - 修复 Studio 新建书籍页面实际 `/agent` 建书路径没有正确传递空 key 本地模型 client 的问题 - 修复 CLI / Studio 使用 Ollama 动态模型名时被内置模型表误拦的问题 - 修复 `write next --context` 没有真正进入章节规划和正文写作提示词的问题 ## v1.3.7 ### Release Focus 长篇写作质量收紧:把近期验证过的网文写法规则落到 Writer、Planner、Architect 与后置校验中,重点改善开篇抓人、章节密度、伏笔兑现、段落节奏和架构稿完整性。 ### Improvements - **网文写作规则入链路**:Writer prompt 新增看点密度、移动端段落、开篇第一屏、章节断章和人物行动动机等写作约束,让模型更少写空转铺垫和报告式正文 - **Planner / Architect 对齐写作目标**:章节规划和书籍架构稿更明确地承接黄金开篇、章节目标、hook 账和段落式 foundation 输出要求 - **Hook 兑现更具体**:hook ledger 要求 advance / resolve 项在正文里有可定位的动作、物件、对话或事件兑现,减少“账本里有、正文里没有”的断层 - **段落密度规则收紧**:强调密度来自语义和场景推进,不是把正文切成电报体;连续短段会被后置规则识别 ### Bug Fixes - 修复 Architect 在扩展输出时可能漏掉 5 个 foundation SECTION 块的问题 - 修复 hook ledger payoff 检查过于宽松,导致侧面暗示也可能被误判为兑现的问题 - 修复写作 prompt 对段落尺寸描述不够明确,模型容易在“1-3 点密度”规则下过度碎段的问题 ## v1.3.6 ### Release Focus v13 书籍创建流程迁移:建书输出升级为段落式架构稿、卷级地图与一人一卡角色目录,并补齐旧书升级路径。 ### Improvements - **段落式架构稿**:Architect 生成 `outline/story_frame.md`、`outline/volume_map.md` 与 `roles/` 角色卡,保留 legacy shim 兼容旧读取路径 - **旧书升级路径**:agent architect 支持 `revise=true`,可把旧条目式架构稿转换为 Phase 5 布局;升级前会备份原架构稿,升级时不重置运行时状态文件 - **真相文件注入**:Agent 会把当前书籍 truth files 注入上下文;旧布局书会提示可升级到段落式架构稿 - **基础设定输出预算修复**:分离 `maxTokens` fallback 与 `maxTokensCap` 硬上限,避免 Architect 大输出被默认配置误裁 - **README 统计**:补充 Skills Download History 图表,并同步中文、英文、日文 README ### Bug Fixes - 修复 Phase 5 二次升级时读取 shim 导致信息丢失的问题 - 修复 reviseFoundation 会重置 `current_state` / `pending_hooks` / runtime logs 的问题 - 修复角色改名或删除后旧 role 卡残留的问题 ## v1.3.5 ### Improvements - **Session / Sidebar 体验重构**:Studio 引入 per-session runtime,`pendingBookArgs` 下沉到 session 级,session SSE 监听从 `App.tsx` 抽离;sidebar 支持按书折叠、草稿会话延迟展示、会话列表不再点击重排 - **会话标题简化**:不再走 LLM 生成标题;第一条用户消息直接成为 session title,并对历史 session 做 lazy migration - **Draft Session 工作流**:新建会话延迟到第一条消息才持久化,未发送消息的草稿会话不会落盘,也不会在侧边栏出现 - **Session 列表性能提升**:`listBookSessions` 改为并发读取并返回轻量 summary,避免侧边栏一次读取大量完整 session 文件 ### Bug Fixes - **模型列表缓存修复**:`/services/:service/models` 的缓存 key 现在包含 `resolvedBaseUrl`,custom 服务切换端点后不再错误复用旧模型列表 - **会话删除确认弹窗定位**:`ConfirmDialog` 改走 portal,避免被 sidebar 的 containing block 锁在侧栏内 - **测试清理**:移除 `server.test.ts` 里已废弃的 `updateSessionTitle` mock 残留 ## v1.3.4 ### Bug Fixes - **依赖版本钉死**:固定 `@mariozechner/pi-ai` / `pi-agent-core` 到 `0.67.1`,降低 npm 镜像滞后导致全局安装失败的概率 - **服务探测与模型列表提速**:`GET /models` 回到快路径,`knownModels` 服务不再走慢 probe;`/models` 不可用时会返回服务自己的 `knownModels` - **服务验证更可靠**:`/models` 返回 `401/403` 时直接短路;服务详情页保存前先走 `/test` 验 key,页面加载时也会用 `/test` 校验真实连接状态 - **完整模型列表返回**:服务测试接口不再默认裁成 50 个模型 ### Improvements - **agent 通用文件工具面恢复**:`edit` 回归正常工具面,并新增 `write` 工具用于创建/覆盖写文件,路径仍限制在 `books/` 下 - **`sub_agent` 最小控制面扩展**:新增 `writer.chapterWordCount`、`reviser.mode`、`exporter.format`、`exporter.approvedOnly` - **修订入口统一**:book-mode 下整章修订收敛到 `sub_agent(reviser)`,减少模型在 `revise_chapter` 与 `sub_agent` 之间摇摆 ## v1.3.3 ### Bug Fixes - **聊天建书标题显式化**:agent 建书现在要求显式传入 `title`,`initBook` / `book.json` 直接吃结构化标题,不再允许空标题初始化 - **真实 EPUB 导出统一**:CLI、Studio 下载、共享交互层与 agent exporter 统一复用同一套真实 EPUB 实现,不再出现一条真 EPUB、一条假 HTML、一条未实现的分裂状态 - **高风险写作动作收口**:book-mode agent 对改设定、改名、局部修文、章节重写/精修优先使用 deterministic 工具,不再默认退回脆弱的通用 `edit` ### Improvements - **TUI 普通聊天对齐 agent/session**:TUI 的普通输入改走本地 agent session 形式,保留少量本地控制命令 fast-path,进一步向 Studio 的交互模型靠拢 - **写作控制面更清晰**:agent prompt 明确区分重操作子代理与高风险 deterministic 写作工具,减少“模型理解了,但工具接不住”这类断层 ## v1.3.2 ### Bug Fixes - **恢复 `architect` foundation 输出预算**:重新固定 `maxTokens: 16384`,降低本地模型与 LM Studio 在建书阶段因输出截断导致 foundation 缺段的概率 - **恢复旧的 OpenAI-compatible 兼容路径**:`provider=openai + 自定义兼容 baseUrl` 不再被错误送入更激进的 `custom fetch` 路径,Google/Gemma 一类旧兼容场景回归 - **自定义 Anthropic-compatible 原生 transport**:`service=custom` 且 `provider=anthropic` 也改走原生请求链,不再强绑 SDK - **Windows Studio 启动修复**:`inkos studio` 在 Windows 下不再因绝对路径 loader 被当成非法 ESM URL 而崩溃 - **Bootstrap 项目回退到 env 配置**:空目录 auto-init 后的 Studio 项目,在未配置服务时会回退到全局 `.inkos/.env`,`book create` 不再先死在缺 key - **统一服务路由真相**:`config-loader`、`service-resolver`、Studio 服务探测、`doctor` 统一从同一份 `service-presets` 读取 provider/api/chatBaseUrl/modelsBaseUrl,减少同一服务在不同链路上各猜一遍的问题 ### 改进 - **空目录直接启动**:`inkos` / `inkos studio` 现在会自动初始化最小项目骨架并启动 Studio,不再要求显式先跑 `init` - **Studio 自动探测 transport**:服务测试会自动尝试候选模型、`chat/responses` 与流式开关组合,尽量自动匹配可用配置 - **`doctor` 增强**:不再只死盯当前单一模型/单一组合,支持多 model、多协议、多流式探测 - **建书聊天 fresh session**:再次进入“创建书籍”时会清空旧对话,不再沿用上一次建书聊天记录 - **聊天模型选择器搜索**:Studio model picker 支持搜索过滤 - **侧栏刷新更克制**:读操作不再触发无意义 sidebar 刷新,只在写操作后刷新 - **服务保存流程更真实**:保存 API Key 后会走真实 `/test` 探测,而不是只靠 `/models` ## v1.3.1 ### Bug Fixes - **MiniMax baseUrl 修正**:从 `api.minimax.chat` 更正为 `api.minimaxi.com`(当前 OpenAI 兼容端点) - **多服务 baseUrl 隔离**:agent 对话中选择非默认服务时,不再泄漏默认服务的 baseUrl(如 moonshot URL 被错误用于 minimax 请求) - **resolveServiceModel 始终使用 preset**:不再直接使用 pi-ai 内置 model 对象(可能指向国际端点或错误的 API 格式),始终用 preset 的 baseUrl 和 api 格式构造 model - **agent 建书后侧边栏刷新**:通过 agent 对话建书后,侧边栏书籍列表自动刷新(之前只有 POST /books/create 才广播 `book:created`) - **`pnpm dev` 并行启动**:加 `--parallel`,解决 core tsc --watch 阻塞 studio 启动的问题 ### 改进 - **MiniMax knownModels**:MiniMax 不支持 `GET /models`,改为硬编码 7 个模型(M2.7/M2.5/M2.1 及其 highspeed 版本 + M2) - **测试连接不再发消息**:移除 chat completion 测试,只通过 `/models` + fallback 验证,秒回 - **custom 服务 URL 自动补 /v1**:`https://example.com`、`https://example.com/`、`https://example.com/v1` 三种写法等价 - **agent 系统提示词**:禁止 emoji、结构化内容用列表/表格、章节索引管理指引 ### 测试 - 新增回归测试:service-presets(MiniMax baseUrl + knownModels)、service-resolver(preset 覆盖 pi-ai)、normalizeBaseUrl ## v1.3.0 ### Release Focus Studio 2.0 正式发布。`inkos` 现在默认直接启动 Studio,本地 Web 工作台成为主入口;TUI 保留为 `inkos tui`。 ### 新功能 - **Studio 2.0 默认入口**:`inkos` 直接启动 Studio,首页、服务商管理、写作工作台统一为新的主交互入口 - **自定义 OpenAI-compatible 服务**:Studio 现支持自定义 `baseUrl`、协议类型(`chat` / `responses`)与流式开关,兼容更多中转站和聚合网关 - **配置来源切换**:Studio 新增 `.env` 与 Studio 配置的显式切换,不再只能被目录里的 `INKOS_LLM_*` 被动覆盖 - **原生 custom transport**:对 `custom` 服务新增原生 fetch 请求链,减少对 SDK 路径的单点依赖,提升兼容性 ### 改进 - **服务测试更真实**:服务页测试不再只测 `/models`,还会执行最小生成探测,避免“测试连接通过但聊天失败”的假阳性 - **服务保存流程优化**:保存成功后自动返回服务商管理页,顶部首页和返回入口更醒目 - **密钥回填**:服务详情页会重新加载已保存的 key,避免重新打开后误以为 key 丢失 - **错误可见性增强**:Studio 聊天不再用 `Acknowledged.` 掩盖空回复,会直接显示真实上游错误 ### Bug Fixes - 修复 `llm.services + defaultModel + secrets` 与运行时加载契约不一致的问题 - 修复 `custom:*` 服务在测试连接、模型列表与 `/api/v1/agent` 之间链路不一致的问题 - 修复 `inkos` 启动 Studio 时因未设置默认模型而直接抛出 `llm.model` 校验错误 - 修复自定义服务非流式 / SSE 返回被误当作普通 JSON 解析的问题 ## v1.2.0 ### Release Focus 统一交互内核——TUI、Studio、`inkos interact`、OpenClaw Skill 共享同一套自然语言理解和执行运行时。 ### 新功能 - **共享交互运行时**(`packages/core/src/interaction/`):自然语言路由器(15+ intent)、会话管理、编辑事务控制器、事件追踪、阶段遥测 - **Ink TUI 仪表盘**:`inkos` 直接进入全屏 Ink + React 仪表盘,对话式创作,slash 命令 Tab 补全,主题动效(writing/auditing/revising/planning 各有独立动画),i18n 中英双语 - **Studio 助手面板**:右侧 AI 助手接入共享交互内核,自然语言操作书籍(写章、改名、审计、导出),SSE 实时状态推送,执行阶段图标 - **对话式建书**:通过 Studio 助手自然语言对话逐步构思书籍概念、设定、目标章数,草稿就绪后一键创建 - **全书实体改名**:`把林烬改成张三` / `/rename 林烬 => 张三`,全量扫描章节 + 真相文件一次替换 - **单章文本替换**:`/replace 5 旧文本 => 新文本`,精确修补指定章节 - **`inkos interact --json`**:共享交互 JSON 入口,返回 request / response / session / events,供 OpenClaw 和外部 Agent 直接调用 - **Thinking 模型温度夹制**(PR #174):kimi-k2.5 等 thinking 模型自动 temperature=1,兼容 per-call 温度调参,每模型只 warn 一次 ### 改进 - Studio ChatBar 去重:`executeCommand()` 提取公共逻辑,消除 handleSubmit/handleQuickCommand 80 行重复 - Studio ChatBar SSE effect 用 `loadingRef` 替代 stale closure - Studio 下拉菜单 z-index 修复:移除 paper-sheet 的 transform(消除 stacking context),菜单打开时 card 提升 z-50 - Studio agent 响应修复:使用 `result.responseText` 而非 `session.messages.at(-1)` - TUI 主题扩展:语义色(成功/错误/活跃/空闲)+ 角色色(用户/助手/系统) - TUI 状态徽标:✓ 完成 / ✗ 失败 / ✎ 写作 / ◇ 规划 / ◈ 等待决策 - TUI i18n 修复:`stageLabels` 移入 TuiCopy,消除 hardcoded 状态字符串 - Studio 死代码清理(PR #176):移除未使用的 shadcn 组件、`dotenv`、`shadcn`、`tw-animate-css`、`class-variance-authority`,-2800 行 ### Bug Fixes - Studio ChatBar 助手回复丢失:session 历史覆盖导致 response 被静默丢弃 - Studio BookMenu 下拉被下层 card 遮挡:fadeIn 动画的 transform 创建 stacking context - Studio GenreManager 用 `window.confirm` 替换为 `ConfirmDialog` - Studio BookDetail Nav `toTruth` 类型断言 hack 修复 - Studio ChapterReader/Dashboard approve/reject 缺失错误处理 - ChatBar curly quote 编码导致 esbuild 解析失败 --- ## v1.1.1 ### Release Focus - 回退到稳定的 `v6 + bugfix` 主线,替换掉不稳定的 `v8` 最新版本 ### Bug Fixes - **#151** — Architect section 解析支持 `book-rules` / `Book Rules` / 全角冒号等标题漂移,不再因 `book_rules` 区块轻微变形而创建失败 - **#152** — State validator 改为 fail-closed:空响应直接报错,并恢复多行 JSON 平衡提取,避免 `passed` 字段丢失时被误判 - **#154** — 后写规则增加正文章节号指称检测,拦截 `第33章` / `Chapter 33` 一类叙述 - **#155** — `repair-state` 支持对最新 `state-degraded` 章节进行同章重算,不再报 `delta chapter N goes backwards` ### Improvements - `ai-tells` / `sensitive-words` 增加中英双语规则路径,英文书修订链不再混入中文 issue - import / continuation / series 的 prompt 与语言传递补齐,foundation reviewer 结果能更稳定回灌 - reviser 修订链重新接入 `hookDebtBlock`,局部修订时能看到 hook 债务证据 --- ## v1.1.0 写作管线全面升级。通过 Meta-Harness 方法论驱动的多轮 autoresearch 实验,从零模式质量从 75 分提升至 92 分,同人模式从 39 分提升至 82+ 分。 ### 新功能 - **Foundation Reviewer**:建书时新增独立审核 Agent,5 维度百分制打分(原作 DNA 保留、新叙事空间、核心冲突、开篇节奏、节奏可行性),不达 80 分自动驳回并将审核意见反馈给 Architect 重新生成 - **新时空要求**:同人模式(canon/au/ooc/cp)必须设计原创分岔点,不允许复述原作剧情 - **Hook Seed Excerpt**:伏笔回收时,Composer 从 chapter_summaries 提取原始种子场景的原文片段注入 Writer 上下文,替代了复杂的 lifecycle pressure 系统 - **Review Reject 回滚**:`inkos review reject` 回滚 state 到被拒章节之前的快照,丢弃下游章节和记忆索引 - **State Validation Recovery**:state 校验失败自动重试 settler,仍失败则降级保存,支持 `inkos write repair-state` 手动修复 - **Audit Drift 隔离**:审计纠偏写入独立的 `audit_drift.md`,不再追加到 `current_state.md` - **标题坍缩修复**:检测近期标题主题聚集,从正文提取新关键词重生标题 - **Hook 预算提示**:活跃伏笔 ≥10 时显示预算警告,引导优先回收旧债 - **章节结尾摘要**:提取最近 3 章结尾句注入上下文,防止结构性重复 - **情绪/节奏检测**:mood 单调和标题聚集检测,序列级 warning 不计入修订 blockingCount - **同人风格提取**:`fanfic init` 和 `import chapters` 自动生成 style_guide.md + style_profile.json - **Governed 路径补全**:续写/同人的 parent_canon.md 和 fanfic_canon.md 通过 Governed 路径注入 Writer - **自定义 HTTP Headers**:`INKOS_LLM_HEADERS` 环境变量注入自定义 HTTP 头 ### Bug Fixes - 章节号污染修复:叙事文本中的数字不再被误解析为章节进度 - hook 排序修复:mustAdvance 从降序修正为升序(选最久未推进的) - Outline 匹配修复:支持章节范围格式,防止 Chapter 1 误匹配 Chapter 10 - approve 不覆盖快照、style 提取 graceful degrade、Studio 热加载 LLM 配置、主题持久化 --- ## v1.0.2 ### Bug Fixes - **#127** — 修复 Studio Web 创建书籍时的误报失败:后台仍在异步创建时,前端延长等待窗口,不再过早提示 `Book not found` - 段落碎片检测忽略纯对话行,减少误报 --- ## v1.0.0 InkOS Studio + 稳定性加固。从 CLI 工具升级为 CLI + Web 工作台。 ### InkOS Studio - `inkos studio` 启动本地 Web 工作台(Vite + React + Hono,默认端口 4567) - 书籍管理:创建、删除、导出(TXT/MD/EPUB)、配置 - 章节审阅与编辑:批准/拒绝、行内编辑、多模式修订(polish/spot-fix/rewrite/anti-detect) - 实时写作进度:SSE 推送生成状态 - 市场雷达:AI 驱动的平台/题材趋势分析 - 数据分析:字数统计、审计通过率、章节排名、token 用量 - AI 检测:扫描章节 AI 生成痕迹 - 文风分析与导入:分析参考文本、注入写作风格 - 题材管理:创建/自定义题材(疲劳词、节奏规则、审计维度) - 守护进程控制:启停后台写作、查看事件日志 - 真相文件编辑器:按书查看和编辑知识库 - 配置编辑器:LLM 提供商、模型路由、通知 ### Bug Fixes - unknown hook 在 resolve/defer 时不再抛异常,改为跳过 - Studio 创建书后等待完成再路由跳转 - Studio 异步创建失败时错误暴露给用户 - validator false positive:只在硬矛盾时 fail,减少误报 ### Chore - 清理 studio 合并带入的无关文件(.playwright-cli/、.superpowers/、推广文档) - untrack docs/ 和 autoresearch/,加入 .gitignore - SKILL.md 升级到 v2.2.0,新增 Studio workflow section - 三语 README 更新 Studio 发布公告和路线图 --- ## v0.6.3 ### Bug Fixes - **#113/#109** — StateValidator JSON 解析从贪婪正则改为平衡括号解析器,LLM 追加 markdown 不再导致解析失败 - **#114** — status 命令章节数改为数实际文件,不再受 poisoned runtime state 影响 - **#110** — book creation 改为原子操作(临时目录 → rename),失败不留半成品 - **#92/#93** — agent 执行层硬限制:write_draft 校验顺序写入、revise_chapter 校验目标章存在、write_truth_file 拦截进度篡改、import_chapters 要求 ≥2 章 - **#90** — 段落形态检测移到落盘前(覆盖 normalize + auto revise 后的最终内容) - **#94** — 标题去重:writer prompt 加约束 + post-write validator 检测 + 自动改名 ### Improvements - **#111** — SKILL.md 补齐 13 个缺失命令(eval, consolidate, write rewrite, book update/delete, plan/compose, studio, fanfic show/refresh, genre create/copy) - **#95** — doctor 命令新增版本迁移检测(识别 pre-v0.6 旧格式书籍) - **#103** — 补充 rewrite 端到端回归测试(rewrite 2 → next 应为 3) - 新增 `inkos eval` 命令 — 结构化质量评估报告 - SKILL.md 版本升级到 2.1.0 ## v0.6.2 ### Bug Fixes - **伏笔崩溃** (#99/#101/#104) — duplicate active hook family 不再崩溃,改为自动吸收合并;新增 hook 仲裁机制降低重复频率 - **本地 LLM** (#100) — 本地/self-hosted OpenAI-compatible 端点(Ollama 等)不再要求 API key - **0 字章节** (#105) — truth rebuild 不再覆盖最终章节内容 - **章号错误** (#108/#98) — poisoned manifest 在 bootstrap 时自动归一化到真实进度 - **坏章节写入** (#88) — state validator 空响应直接报错,章节文件保存移到校验通过之后 - **Provider 400** (#91) — streaming provider fallback 错误提示优化 ### Improvements - **段落质量** (#90) — 新增短段落检测和段落密度漂移 warning - **Agent 工具约束** (#92/#93) — agent 工具描述加强边界约束,system prompt 新增禁止性规则 - Windows 兼容:tar 命令加 --force-local - README 描述更新,OpenClaw 链接指向 skill 页面 ## v0.6.1 - 修复 emphasized hook id 标准化 - 修复 poisoned runtime state 恢复 ## v0.6 结构化状态 + 伏笔治理 + 字数治理。 重点解决三个长篇写作的系统性问题:**20+ 章后上下文膨胀导致写作变慢甚至 400 报错**、**伏笔只加不收、回收率接近 0%**、**字数偏差 50%+ 且 normalizer 可能毁章**。 ### 架构 - 管线升级为 10-agent:新增 Planner、Composer、Observer、Reflector、Normalizer - 真相文件迁移到 `story/state/*.json`(Zod 校验),Settler 输出 JSON delta 而非全量 markdown,旧书自动迁移 - Node 22+ 启用 SQLite 时序记忆数据库(`story/memory.db`),按相关性检索历史事实 - `createRequire` 修复 ESM 下 node:sqlite 加载 ### 伏笔治理 - Planner 生成 `hookAgenda`(mustAdvance / eligibleResolve / staleDebt),排班伏笔推进与回收 - Settler working set 扩展为 `selected ∪ recent ∪ agenda ∪ dormant debt`,堵住检索盲区 - hookOps 新增 `mention` 语义——"只是被提到"不再更新 `lastAdvancedChapter`,防止假推进 - `analyzeHookHealth`:active 超上限 / 连续无推进 / stale 未处置 / 新开不回收 → 审计 warning - `evaluateHookAdmission`:重复 hook 家族自动拦截,防止伏笔膨胀 ### 字数治理 - `LengthSpec`(target / softMin-softMax / hardMin-hardMax)+ `countingMode`(zh_chars / en_words) - 审计前 + 修订后各一次归一化机会,不暴力截断 - 安全网:归一化结果 <25% 原文直接拒绝,`stripCommonWrappers` 删超 50% 回退原文 ### 质量 - 跨章重复检测(中文 6 字 ngram / 英文 3 词短语) - 对话驱动引导(互动场景优先对话交锋) - English variance brief(反重复短语/开头/结尾注入) - 多角色场景阻力要求(至少一轮带阻力的直接交锋) ### Bug 修复 - 用户 `INKOS_LLM_MAX_TOKENS` 作为全局上限生效(#87) - `stripReservedKeys` 防止 `llm.extra` 覆盖 max_tokens / temperature - 章节摘要去重:append 前去重 + bootstrap 加载时去重 + JSON 自动修复 - `consolidate` 正则支持全角括号卷边界格式 - 双语 CLI 输出和日志 - Runtime state 中毒恢复 --- ## v0.5.0 英文原生写作 + 系统稳定性修复。 ### 英文小说写作 - 10 个英文题材(LitRPG、Progression Fantasy、Isekai、Romantasy、Sci-Fi、Cozy Fantasy、Tower Climber、Dungeon Core、System Apocalypse、Cultivation) - `--lang en` 贯穿全管道:Architect 生成英文设定、Writer 英文创作、Settler 英文 truth files、Auditor 英文审计、Reviser 英文修订 - 英文写后验证器:AI-tell 词检测(delve/tapestry/testament 等)、段落长度、疲劳词 - 章节标题自动切换:`Chapter X:` vs `第X章` - EPUB 导出 lang 标签适配 ### 系统稳定性 - 原子写入锁:`acquireBookLock` 从 stat+write 改为 `open("wx")` 排他创建,消除竞态 - 调度器防重入:上一轮写作/雷达未完成时跳过新 tick - 修订一致性:revision 链使用 `finalContent` 而非原始内容,spot-fix 不再丢失 - Agent override 客户端隔离:不同 API key 的 agent 不再共用连接 - Daemon pid 清理:启动失败时自动删除残留 pid 文件 - Studio 启动修复:构建后的 JS 用 node 而非 tsx 启动 - Import resume 计数修正:`--resume-from` 正确报告实际处理数 ### CLI 增强 - `inkos book delete `:删除书籍及全部数据(`--force` 跳过确认) - `inkos status --chapters`:显示每章状态和 failed 章节的 critical issues - 审计 JSON 解析容错(#51) - `write_truth_file` agent 工具(#53) - 审计漂移纠偏自动注入状态卡(#52) --- ## v0.4.6 日志系统 + 流式兼容性 + 本地模型容错 + CLI 增强。 ### 结构化日志 - 新增 Logger 模块:ANSI 颜色输出(INFO=cyan, WARN=yellow, ERROR=red),JSON Lines 文件日志 - `inkos up` 自动写入 `inkos.log`,守护进程重启后可追溯 - `write next`、`draft`、`up` 支持 `-q, --quiet` 静默模式 - LLM 流式心跳:模型思考期间每 30 秒汇报进度(已接收字符数、中文字数) - 管线内 17 处 `process.stderr.write` 替换为结构化 logger ### 流式兼容性 - Stream 自动降级:streaming 失败时自动用 sync 重试,中转站不支持 SSE 也能用 - 流中断部分内容恢复:已接收 ≥500 字符时返回截断内容而非报错(#21) - 错误诊断增强:400/401/403/429/Connection error 附带 baseUrl、model 上下文和排查建议 - `inkos doctor` 失败时给出针对性 hints(检查 baseUrl、试 stream:false、检查 API Key) ### Bug 修复 - `rewrite` 快照恢复:`particle_ledger.md` 从必需改为可选,非数值题材不再报错(#37) - `rewrite` 第 1 章:`initBook` 末尾生成 snapshot-0,chapter 1 可正确恢复(#34) - 本地小模型空章节:`parseCreativeOutput` 增加 3 级 fallback(markdown heading → 正文标签 → 最长散文块),Qwen/Ollama 不再返回空内容(#13) ### CLI 增强 - `book create --brief `:传入创作简报,Architect 基于你的脑洞生成设定(#43) - `write rewrite` 第 1 章时正确恢复到 snapshot-0(之前跳过恢复) --- ## v0.4 (v0.4.0 – v0.4.5) 续写 + 番外写作 + 文风仿写 + 多 Provider 路由 + 写后验证器 + 审计闭环加固。 ### 续写已有作品 把已有的小说(单文件或章节目录)导入 InkOS,系统自动拆章、逆向工程生成全套真相文件(世界状态、伏笔、角色矩阵等),之后直接 `write next` 续写。 ```bash inkos import chapters 我的小说 --from 已有章节/ # 从目录导入 inkos import chapters 我的小说 --from 全书.txt # 从单文件导入(自动按"第X章"拆分) inkos import chapters 我的小说 --from 全书.txt --split "Chapter\\s+\\d+" # 自定义分章正则 inkos write next 我的小说 # 无缝续写 ``` 单文件模式自动按 `第X章` 分章,也支持 `--split ` 自定义。导入中断可用 `--resume-from ` 断点续导。 ### 番外写作(Spinoff) 基于已有书创建前传、后传、外传或 if 线。番外和正传共享世界观和角色,但有独立剧情线。 ```bash inkos import canon 烈焰前传 --from 吞天魔帝 # 导入正传正典到番外 inkos write next 烈焰前传 # 写手自动读取正典约束 ``` 导入后生成 `story/parent_canon.md`,包含正传的世界规则、角色快照(含信息边界)、关键事件时间线、伏笔状态。写手在动笔前参照正典,审计员自动激活 4 个番外专属维度: | 维度 | 审查内容 | |------|----------| | 正传事件冲突 | 番外事件是否与正典约束表矛盾 | | 未来信息泄露 | 角色是否引用了分歧点之后才揭示的信息 | | 世界规则跨书一致性 | 番外是否违反正传世界规则(力量体系、地理、阵营) | | 番外伏笔隔离 | 番外是否越权回收正传伏笔 | 检测到 `parent_canon.md` 自动激活,无需额外配置。 ### 文风仿写 喂入真人小说片段,系统提取统计指纹 + 生成风格指南,后续每章自动注入写手 prompt。 ```bash inkos style analyze 参考小说.txt # 分析:句长、TTR、修辞特征 inkos style import 参考小说.txt 吞天魔帝 --name 某作者 # 导入文风到书 ``` 产出两个文件: - `style_profile.json` — 统计指纹(句长分布、段落长度、词汇多样性、修辞密度) - `style_guide.md` — LLM 生成的定性风格指南(节奏、语气、用词偏好、禁忌) 写手每章读取风格指南,审计员在文风维度对照检查。 ### 写后验证器 11 条确定性规则,零 LLM 成本,每章写完立刻触发: | 规则 | 说明 | |------|------| | 禁止句式 | 「不是……而是……」 | | 禁止破折号 | 「——」 | | 转折词密度 | 仿佛/忽然/竟然等,每 3000 字 ≤ 1 次 | | 高疲劳词 | 题材疲劳词单章每词 ≤ 1 次 | | 元叙事 | 编剧旁白式表述 | | 报告术语 | 分析框架术语不入正文 | | 作者说教 | 显然/不言而喻等 | | 集体反应 | 「全场震惊」类套话 | | 连续了字 | ≥ 6 句连续含「了」 | | 段落过长 | ≥ 2 个段落超 300 字 | | 本书禁忌 | book_rules.md 中的禁令 | 验证器发现 error 级违规时,自动触发 `spot-fix` 模式定点修复,不等 LLM 审计。 ### 审计-修订闭环加固 实测发现 `rewrite` 模式引入 6 倍 AI 标记词,现在: - 自动修订模式从 `rewrite` 改为 `spot-fix`(只改问题句,不碰其余正文) - 修订后对比 AI 标记数,如果修订反而增多 AI 痕迹,丢弃修订保留原文 - 再审温度锁 0(消除审计随机性,同一章不再出现 0-6 个 critical 的波动) - `polish` 模式加固边界(禁止增删段落、改人名、加新情节) ### 多 Provider 路由 不同 agent 可以走不同 API 提供商——不只是换模型名,是完全不同的 API 地址和 Key。例如写手用便宜模型高速出稿,审计员用强模型精审: ```bash inkos config set-model writer gpt-4o-mini # 简单模型覆盖 inkos config set-model auditor gemini-2.5-flash \ --base-url https://generativelanguage.googleapis.com/v1beta/openai \ --provider openai \ --api-key-env GEMINI_API_KEY # 走 Gemini API inkos config set-model reviser claude-sonnet-4-20250514 \ --base-url https://api.anthropic.com \ --provider anthropic \ --api-key-env ANTHROPIC_API_KEY # 走 Anthropic API inkos config show-models # 查看路由全景 ``` 每个 agent 独立配置 `--base-url`、`--provider`、`--api-key-env`、`--no-stream`。未覆盖的 agent 使用项目默认模型。 ### 数据分析 ```bash inkos analytics 吞天魔帝 # 审计通过率、高频问题类别、问题最多的章节 inkos analytics 吞天魔帝 --json # 结构化输出 ``` ### 其他 v0.4 变更 - 审计维度从 26 扩展到 33(+4 番外维度 + dim 27 敏感词 + dim 32 读者期待管理 + dim 33 大纲偏离检测) - 审计员联网搜索:年代考据题材可联网核实真实事件/人物/地理(原生搜索能力) - 调度器重写:AI 节奏(默认 15 分钟一轮)、并行书处理、立即重试、每日上限 - 修订者新增 `spot-fix` 模式(定点修复) - `book_rules.md` 的 `additionalAuditDimensions` 支持中文名称匹配 - 全部 5 个题材激活 dim 24-26(支线停滞/弧线平坦/节奏单调) - `inkos export` 支持 `--format md`、`--output `、`--approved-only` - 写后验证器「连续了字」阈值从 4 句上调至 6 句(减少中文叙事误报) - 安全加固:`init`/`book create`/`import chapters` 防覆盖检查、`config set` 类型推断 + key 校验、`update` 防降级、`doctor` 项目外可测 API、状态显示一致性、`genre show` 拒绝无效 ID --- ## v0.3 创作规则三层分离 + 跨章记忆 + AIGC 检测 + Webhook。 ### 跨章记忆与写作质量 Writer 每章自动生成摘要、更新支线/情感/角色矩阵,全部追加到真相文件。后续章节加载全量上下文,长线伏笔不再丢失。 | 真相文件 | 用途 | |----------|------| | `chapter_summaries.md` | 各章摘要:出场人物、关键事件、状态变化、伏笔动态 | | `subplot_board.md` | 支线进度板:A/B/C 线状态追踪 | | `emotional_arcs.md` | 情感弧线:按角色追踪情绪、触发事件、弧线方向 | | `character_matrix.md` | 角色交互矩阵:相遇记录、信息边界 | ### AIGC 检测 | 功能 | 说明 | |------|------| | AI 痕迹审计 | 纯规则检测(不走 LLM):段落等长、套话密度、公式化转折、列表式结构,自动合并到审计结果 | | AIGC 检测 API | 外部 API 集成(GPTZero / Originality / 自定义端点),`inkos detect` 命令 | | 文风指纹学习 | 从参考文本提取 StyleProfile(句长、TTR、修辞特征),注入 Writer prompt | | 反检测改写 | ReviserAgent `anti-detect` 模式,检测→改写→重检测循环 | | 检测反馈闭环 | `detection_history.json` 记录每次检测/改写结果,`inkos detect --stats` 查看统计 | ```bash inkos style analyze reference.txt # 分析参考文本文风 inkos style import reference.txt 吞天魔帝 # 导入文风到书 inkos detect 吞天魔帝 --all # 全书 AIGC 检测 inkos detect --stats # 检测统计 ``` ### Webhook + 智能调度 管线事件 POST JSON 到配置 URL(HMAC-SHA256 签名),支持事件过滤(`chapter-complete`、`audit-failed`、`pipeline-error` 等)。守护进程增加质量门控:审计失败自动重试(调高 temperature)、连续失败暂停书籍。 ### 题材自定义 内置 5 个题材,每个题材带一套完整的创作规则:章节类型、禁忌清单、疲劳词、语言铁律、审计维度。 | 题材 | 自带规则 | |------|----------| | 玄幻 | 数值系统、战力体系、同质吞噬衰减公式、打脸/升级/收益兑现节奏 | | 仙侠 | 修炼/悟道节奏、法宝体系、天道规则 | | 都市 | 年代考据、商战/社交驱动、法律术语年代匹配、无数值系统 | | 恐怖 | 氛围递进、恐惧层级、克制叙事、无战力审计 | | 通用 | 最小化兜底 | 创建书时指定题材,对应规则自动生效: ```bash inkos book create --title "吞天魔帝" --genre xuanhuan ``` 题材规则可以查看、复制到项目中修改、或从零创建: ```bash inkos genre list # 查看所有题材 inkos genre show xuanhuan # 查看玄幻的完整规则 inkos genre copy xuanhuan # 复制到项目中,随意改 inkos genre create wuxia --name 武侠 # 从零创建新题材 ``` 复制到项目后,增删禁忌、调整疲劳词、修改节奏规则、自定义语言铁律——改完下次写章自动生效。 每个题材有专属语言铁律(带 ✗→✓ 示例),写手和审计员同时执行: - **玄幻**:✗ "火元从12缕增加到24缕" → ✓ "手臂比先前有力了,握拳时指骨发紧" - **都市**:✗ "迅速分析了当前的债务状况" → ✓ "把那叠皱巴巴的白条翻了三遍" - **恐怖**:✗ "感到一阵恐惧" → ✓ "后颈的汗毛一根根立起来" ### 单本书规则 每本书有独立的 `book_rules.md`,建筑师 agent 创建书时自动生成,也可以随时手改。写在这里的规则注入每一章的 prompt: ```yaml protagonist: name: 林烬 personalityLock: ["强势冷静", "能忍能杀", "有脑子不是疯狗"] behavioralConstraints: ["不圣母不留手", "对盟友有温度但不煽情"] numericalSystemOverrides: hardCap: 840000000 resourceTypes: ["微粒", "血脉浓度", "灵石"] prohibitions: - 主角关键时刻心软 - 无意义后宫暧昧拖剧情 - 配角戏份喧宾夺主 fatigueWordsOverride: ["瞳孔骤缩", "不可置信"] # 覆盖题材默认 ``` 主角人设锁定、数值上限、自定义禁令、疲劳词覆盖——每本书的规则独立调整,不影响题材模板。 ### 33 维度审计 审计细化为 33 个维度,按题材自动启用对应的子集: OOC检查、时间线、设定冲突、战力崩坏、数值检查、伏笔、节奏、文风、信息越界、词汇疲劳、利益链断裂、年代考据、配角降智、配角工具人化、爽点虚化、台词失真、流水账、知识库污染、视角一致性、段落等长、套话密度、公式化转折、列表式结构、支线停滞、弧线平坦、节奏单调、敏感词检查、正传事件冲突、未来信息泄露、世界规则跨书一致性、番外伏笔隔离、读者期待管理、大纲偏离检测 dim 20-23(AI 痕迹)+ dim 27(敏感词)由纯规则引擎检测,不消耗 LLM 调用。dim 28-31(番外维度)检测到 `parent_canon.md` 自动激活。dim 32(读者期待管理)、dim 33(大纲偏离检测)始终开启。 ### 去 AI 味 5 条通用规则 + 每个题材的专属语言规则,控制 AI 标记词密度和叙述习惯: - AI 标记词限频:仿佛/忽然/竟然/不禁/宛如/猛地,每 3000 字 ≤ 1 次 - 叙述者不替读者下结论,只写动作 - 禁止分析报告式语言("核心动机""信息落差"不入正文) - 同一意象渲染不超过两轮 - 方法论术语不入正文 词汇疲劳审计 + AI 痕迹审计(dim 20-23)双重检测。文风指纹注入进一步降低 AI 文本特征。 ### 其他 v0.3 变更 - 支持 OpenAI + Anthropic 原生 + 所有 OpenAI 兼容接口 - 修订者支持 polish / rewrite / rework / anti-detect / spot-fix 五种模式 - 无数值系统的题材不生成资源账本 - 所有命令支持 `--json` 结构化输出,OpenClaw / 外部 Agent 可直接解析 - book-id 自动检测:项目只有一本书时省略 book-id - `inkos update` 一键更新、`inkos init` 支持当前目录初始化 - API 错误附带中文诊断提示,`inkos doctor` 含 API 连通性测试 --- ### CONTRIBUTING # Contributing ## Setup ```bash git clone https://github.com/Narcooo/inkos.git cd inkos pnpm install pnpm build pnpm test ``` Node ≥ 20, pnpm ≥ 9. ## Project Structure ``` packages/ core/ # Agents, pipeline, state management, LLM providers cli/ # Commander.js commands (22 commands) ``` Monorepo managed with pnpm workspaces. `cli` depends on `core` via `workspace:*`. ## Development ```bash pnpm dev # Watch mode (both packages) pnpm build # Build once pnpm test # Run all tests pnpm typecheck # Type-check without emitting ``` ## Commit Convention ``` : ``` Types: `feat`, `fix`, `refactor`, `docs`, `test`, `chore`, `perf`, `ci` Keep commits atomic — one logical change per commit. Split new files, interface changes, tests, and docs into separate commits when they're non-trivial. ## Pull Request Checklist - [ ] `pnpm build` passes - [ ] `pnpm test` passes (all existing + new tests) - [ ] `pnpm typecheck` passes - [ ] New features have tests - [ ] No unrelated formatting changes (keep diffs focused) - [ ] Commit messages follow the convention above ## Code Style - TypeScript, strict mode - 2-space indentation - Immutable patterns: `{ ...obj, key: value }` over mutation - Functions < 50 lines, files < 800 lines - Errors must surface, not be swallowed (`catch { }` without re-throw needs a comment) - Publishable package manifests must use registry-installable internal versions, not `workspace:*`; `pnpm` links local packages through the workspace config during development. ## Adding a CLI Command 1. Create `packages/cli/src/commands/.ts` 2. Export a `Command` instance 3. Register it in `packages/cli/src/index.ts` 4. Add `--json` output support 5. Support book-id auto-detection when only one book exists ## Adding a Genre 1. Create `packages/core/genres/.md` with YAML frontmatter 2. Define: `chapterTypes`, `fatigueWords`, `numericalSystem`, `powerScaling`, `pacingRule`, `satisfactionTypes`, `auditDimensions`, `language` 3. Add genre body (prohibitions, language rules, narrative guidance) ## Testing Tests live next to source in `__tests__/` directories. We use Vitest. ```bash pnpm --filter @actalk/inkos-core test # Core tests only pnpm --filter @actalk/inkos test # CLI tests only ``` For features touching the LLM pipeline, mock the LLM calls — don't make real API requests in tests. ## Questions? Open an issue or check existing ones: https://github.com/Narcooo/inkos/issues --- ### README

InkOS Logo InkOS

Story Creation AI Agent
面向长短篇小说、剧本剧作、互动影游、IP 内容与多语言翻译的创作智能体系统

npm version License: AGPL-3.0 GitHub stars npm downloads ClawHub Skill

English | 中文 | 日本語

InkOS 网页版上线! 立刻体验

--- InkOS 是一个面向故事创作与多语言翻译的 AI Agent 系统:长篇连载、独立短篇、剧本剧作、同人番外、仿写续写、互动影游、开放世界和长文翻译,都可以从同一个工作台开始。支持 Studio、TUI、CLI 交互形式,把创意、设定、角色、记忆、审稿、修订、封面、互动状态和跨语言交付交给智能体统一管理。

Kimi Open Source Friends
🎉🎉 InkOS 入选首批 KIMI 开源合作伙伴 🎉🎉

Kimi 赞助 InkOS

感谢 [Kimi](https://www.kimi.com/code/?aff=inkos) 赞助本项目![Kimi K3](https://www.kimi.com/blog/kimi-k3) 是 Moonshot AI 迄今能力最强的模型,也是全球首个开源 3T 级模型,拥有原生视觉能力与 100 万 Token 上下文。搭配 InkOS,K3 可以参与长短篇小说、剧本、互动影游与多语言内容的规划、写作、审稿和修订;InkOS 则持续管理角色、设定、伏笔与故事状态,让长篇创作更连贯、更可控。 **InkOS Studio 已支持 Moonshot(Kimi)。前往 Kimi 开放平台([中文站](https://platform.kimi.com/?aff=inkos)|[Global](https://platform.kimi.ai/?aff=inkos))获取 API Key,即可开始创作。** > 💡 **写小说,先给 Agent 接一层专业数据** —— 写小说不只缺模型,更缺素材。推荐搭配 [**火花数据API(huohuaapi)**](https://huohuaapi.com/):按调用计费的小说 / 网文创作数据,让 Agent 动笔前先查小说正文、章节结构、人物设定、文风和创作方法等带来源素材,而不是只靠 Prompt 硬凑一份“剧情提纲”。 ## v1.7 - 多语言创作、剧情推演与不中断协作 InkOS 1.7 把跨语言交付、长篇推演和持续协作汇入同一套 Agent 工作台。你可以翻译整本作品、比较多条非正史未来、在后台写作时继续聊天,也可以让 Chat 读取资料、导入旧稿、调整提示词、修订章节并安全恢复创作现场。 - **模型配置** — Studio 内置多服务配置、模型路由和封面服务配置;也支持 [kkaiapi](https://kkaiapi.com/) / OpenRouter 等全球主流模型聚合入口,以及自定义 OpenAI-compatible 服务。 - **剧情多线推演**:Studio Chat 与 CLI 可基于当前正史创建、核验和选择 2-5 条隔离的候选未来,横向比较章节节拍、人物决定、预计变化、风险和作者意图匹配度;采用分支只保存计划,不会提前修改正文、设定或故事状态。 - **完整翻译工作台**:支持 EPUB、文本型 PDF、TXT、Markdown,按章节和语义段翻译,维护术语表、生成对照审校报告,并导出 TXT、Markdown 或 EPUB;Studio、Chat 与 `inkos translate init / run / export` 共用同一能力。 - **跨语言原生创作**:短篇、剧本、分镜和互动影游补齐英文创作链路,Studio 动态界面与 CLI 语言回退同步完善,不只是增加一个翻译菜单。 - **附件、材料库与可编辑提示词**:Chat 可读取文本、Markdown 和图片;外部资料可归档并按证据来源检索;长篇、Play、互动影游等提示词可在 Studio 中查看和调整。 - **已有作品直接进入系统**:Chat 可从本地文件、目录或附件导入真实章节,自动逆向生成设定并重放章节状态,而不是只把原文当作临时上下文。 - **写作时仍可继续聊天**:章节等生产任务在后台推进,允许继续对话、中断任务和重试失败消息;刷新或重启后可恢复正确进度、终态与完整工具卡片。 - **审稿、修订与连续写作可控**:支持 strict、lenient、always 三档修订标准、项目级和书级覆盖,以及单书自动或手动审稿;CLI 新增 `inkos auto` 和完成 / 失败通知,修订未落盘时会显示前后指标和剩余问题。 - **创作数据与并发更安全**:支持整书备份 / 恢复、最新章节删除与状态回滚,局部编辑同步更新索引字数;异常写锁可恢复,冲突写入会明确返回 `BOOK_BUSY`,完成态只来自真实工具结果和文件。 - **模型、安装与跨平台体验更稳定**:MiniMax 内置接入默认分离思考内容;OpenRouter、kkaiapi 等动态模型服务不再被静态模型名单误拦;修复 npm 发布包泄漏 `workspace:*` 导致的升级失败,并统一操作详情、通知和跨平台项目路径。 ## v1.6.0 - 互动影游与 Skill 系统 InkOS 1.6.0 把开放世界继续推进到互动影游、剧本和分镜工作台,同时引入可插拔 Skill 系统:专业能力可以由 Chat Agent 按用户意图调用,也可以由用户强制指定。写作、互动、研究和导出继续共享同一套 action surface,重动作确认后再执行,产物可以在 Studio 内查看和导出。 - **互动影游**:新增分支剧情、变量 / 旗标、角色关系、结局、节点图片和交互项目导出,适合做互动剧、互动影游和多结局脚本。 - **Agent Skills**:直接兼容标准 `SKILL.md` 专业能力包;Chat Agent 可按用户意图调用,用户也可用 `@skill-id` 强制指定。Skill 只提供专业指导和静态参考资料,不再绑定 InkOS 私有字段、提示词包或上下文规划器。 - **联网研究**:新增 `research_web`,用于世界观、职业、年代、市场和事实核查,生成带来源、查询记录和可信度的 Markdown 参考报告。 - **协作编辑稳定性**:局部章节编辑、章节索引恢复、多渠道模型切换后的 bookId 传递都补了回归保护。

InkOS 互动影游剧情树实测截图

## v1.5.0 - InkOS Play 发布,开放世界,用想象力游玩 InkOS Play 发布和 Studio 体验升级:你可以用一句自然语言创建开放世界,让角色、物品、证据、关系和时间一起推进;也可以继续写长篇、做短篇、生成封面、改设定和查状态。系统会记住世界发生了什么,并在需要时把该看的上下文带给模型。 - **InkOS Play**:新增开放世界与分支互动。支持自由动作、可点击选择、世界契约、非固定时间推进、角色 agent、物品 / 证据 / 关系状态、HUD 和自动配图。 - **Studio UX**:开始创作、我的创作、会话记录、查看世界、配图与生成物预览都重新整理,Play 可以像文字游戏一样滚动游玩,而不是藏在命令行里。 - **记忆与上下文**:长篇和互动世界都开始进入“按任务取上下文”的模式。故事状态、Markdown 投影、SQLite 记忆、会话摘要和 protected / compressible 语义压缩共同工作,降低旧历史淹没当前指令的问题。 - **指令遵循**:Studio Chat、TUI 和 CLI 的自然语言入口统一到 action surface。普通讨论、确认建书、短篇、封面、Play、长篇写章和重写续写不再靠散落关键词抢跑,重动作先确认,完成态来自真实工具结果。 - **创作入口**:长篇、短篇、同人、番外、仿写、续写、封面制作和开放世界都成为 Studio 的一等入口。 - **模型与错误边界**:弱模型格式不稳时更少直接崩溃;模型服务错误、InkOS 执行错误和图片生成错误会更清楚地区分,方便判断是配置、供应商还是系统问题。

InkOS Play Studio 开放世界界面

**长篇小说** — 从创作简报建书,生成世界观、角色、卷纲、章节意图,按“写作 → 审稿 → 必要修订 → 状态结算”推进。上下文按 protected / compressible 分层组织,避免长书越写越乱。 **剧情多线推演** — 在写下一章前,基于当前正史生成 2-5 条彼此隔离的未来分支,并在 Studio Chat 中横向比较章节节拍、人物决定、预计变化、风险和作者意图匹配度。采用分支只会保存 `selected-branch-plan.md` 候选计划,不会修改正文、大纲或正史状态;正史变化后旧推演会标记为过期。 **InkOS Short** — Studio Chat 和 CLI 可以直接产出独立短篇:完整正文、大纲记录、审稿记录、简介卖点、封面提示词,并在配置封面服务后生成封面图。 **InkOS Play** — 新增开放世界与分支互动。你可以用自然语言指定世界契约、时间推进方式、角色 agent、物品 / 证据 / 关系规则和视觉风格;系统维护世界状态、可点击选择、自由动作、HUD 和自动配图。 **Studio Chat** — 普通聊天、建书、短篇、封面、互动世界都走同一套 action surface。重动作先确认,生成物可预览,可通过聊天修改章节、封面提示词、世界状态和持久化文本产物。 **Native English novel writing now supported!** Set `--lang en` to write in English. See [English README](README.en.md) for details. ## 欢迎交流 > 当前更新相对频繁,后续会持续新增功能与优化写作效果。 > 欢迎加群反馈问题、提出需求,也欢迎关注项目动态 — 我们的目标是做最强的基于小说的内容生态创作 AI Agent。

微信交流群

## 快速开始 ### 安装 ```bash npm i @actalk/inkos ``` ### 通过 OpenClaw 使用 🦞 InkOS 已发布为 [OpenClaw](https://clawhub.ai/narcooo/inkos) Skill,可被任何兼容 Agent(Claude Code、OpenClaw 等)直接调用: ```bash clawhub install inkos # 从 ClawHub 安装 InkOS Skill ``` 通过 npm 安装或克隆本项目时,`skills/SKILL.md` 已包含在内,🦞 可直接读取——无需额外从 ClawHub 安装。 安装后,Claw 应优先通过共享交互入口调用 InkOS: ```bash inkos interact --json --message "继续当前书,但把节奏再收紧一点" ``` 这条入口直接走和项目 TUI 相同的交互执行内核,因此 OpenClaw、TUI、Studio 共用同一套控制脑。当前 JSON 输出包含 assistant 文本回复和 interaction session 信息;真正的执行结果以工具结果和落盘文件为准,不从模型口头声明推断完成。 `plan chapter` / `compose chapter` / `draft` / `audit` / `revise` / `write next` 这些原子命令仍然保留,但更适合作为底层工具,而不是 OpenClaw 的首选入口。也可以在 [ClawHub](https://clawhub.ai) 搜索 `inkos` 在线查看。 ### Agent Skills InkOS 直接使用标准 `SKILL.md` 作为专业能力扩展,不再维护一套 InkOS 私有 Skill 协议。Skill 只向 Chat Agent 提供专业说明和静态参考资料,不会增加执行权限;创建、写入、编辑和生成图片仍然由 InkOS 工具与确认闸门控制。 可用方式: - 放到标准目录:项目 `skills/`、`.agents/skills/`,或用户目录 `~/.agents/skills/`、`~/.openclaw/skills/`。Studio 也可以导入包含 `SKILL.md` 的完整文件夹和静态参考资料;项目导入统一保存到 `.agents/skills/`。 - 或设置 `INKOS_SKILL_DIRS=/abs/path/to/skills`,可指向单个 skill 目录,也可指向包含多个 skill 子目录的目录。多个目录按系统分隔符分隔。 - 在 Chat 里用 `@skill-id` 强制本轮使用,例如:`@detective-play 做一个证据链驱动的开放世界`。 - 不写 `@skill-id` 时,Chat Agent 根据用户当前意图决定是否调用 `use_skill`;不再通过 session 类型、关键词或字符串包含匹配机械启用。 - 外部 Skill 只提供指令和静态参考资料,InkOS 不会自动执行其中的脚本;它也不会绕过现有工具权限与确认闸门。 提示词配置不是 Skill。Studio 的 **项目设置 → 提示词** 单独管理 prompt packs,项目级覆盖文件写入 `prompt//.md`,例如 `prompt/play/renderer.md`、`prompt/longform/writer.md`。 最小 `SKILL.md` 示例: ```md --- name: Detective Play description: Detective evidence and suspect-board play. --- Use evidence chains; do not turn clues into generic atmosphere. ``` ### 配置 当前 InkOS 将 LLM 配置分成两条清晰路径:**Studio 用可视化服务配置**,**CLI / daemon / 部署环境支持 env 覆盖**。两者不会互相污染。 #### 方式一:Studio 服务配置(推荐) 适合本地写作、Web 工作台和可视化管理。 ```bash inkos init my-novel cd my-novel inkos ``` 打开 Studio 后进入「模型配置」: 1. 选择服务商,例如 Google Gemini、Moonshot、MiniMax、智谱、百炼或自定义端点。 2. 粘贴 API Key,点击「测试连接」。 3. 选择可用模型,保存配置。 4. 回到书籍页面开始写作。 Studio 运行时只使用: ```text provider bank 默认值 → inkos.json 里的 services / 当前 service / defaultModel → .inkos/secrets.json 里的 service API Key ``` 即使检测到 `~/.inkos/.env` 或项目 `.env`,Studio 也只会展示提示,不会用 env 覆盖 service、model、baseUrl 或 API Key。API Key 存在项目内的 `.inkos/secrets.json`,不会写进 `inkos.json`。 #### 方式二:CLI / daemon / 部署环境的 env 配置 适合终端批处理、服务器部署、CI、Docker、守护进程和一次性切模型。 全局 env: ```bash inkos config set-global \ --provider \ --base-url \ --api-key <你的 API Key> \ --model <模型名> ``` 也可以手动写 `~/.inkos/.env` 或项目 `.env`: ```bash INKOS_LLM_PROVIDER=custom INKOS_LLM_BASE_URL=https://api.moonshot.cn/v1 INKOS_LLM_API_KEY=sk-... INKOS_LLM_MODEL=kimi-k2.5 # 可选 INKOS_LLM_SERVICE=moonshot # 推荐写;不写时会尽量从 baseUrl 自动识别 INKOS_LLM_TEMPERATURE=0.7 INKOS_LLM_THINKING_BUDGET=0 INKOS_DEFAULT_LANGUAGE=zh INKOS_LLM_EXTRA_top_p=0.9 ``` CLI 合成顺序: ```text Studio/project service 配置 → .inkos/secrets.json service key → global ~/.inkos/.env → project .env → 当前进程环境变量 → CLI 参数 ``` 也就是说,CLI 默认可以复用 Studio 配好的服务和密钥;如果 env 里声明了 `INKOS_LLM_SERVICE`、`INKOS_LLM_MODEL`、`INKOS_LLM_BASE_URL` 或 `INKOS_LLM_API_KEY`,则作为覆盖层生效。旧 env 只写 `baseUrl + model + apiKey` 也能继续用,InkOS 会尽量从 baseUrl 反推 service。 一次性指定服务或模型: ```bash inkos write next --service google --model gemini-2.5-flash inkos write next --service moonshot --model kimi-k2.5 --no-stream inkos agent "继续写下一章" --api-key-env MOONSHOT_API_KEY inkos doctor --service minimaxCodingPlan --model MiniMax-M2.7 ``` `--service` 会从 provider bank 自动推导 baseUrl、协议和兼容策略;`--model` 必须属于最终 service,否则会直接报错,避免把 Kimi 模型发到 Gemini 这类错配问题。 #### 方式三:多模型路由(可选) 给不同 Agent 分配不同模型,按需平衡质量与成本: ```bash # 给不同 agent 配不同模型/提供商 inkos config set-model writer --provider --base-url --api-key-env inkos config set-model auditor --provider inkos config show-models # 查看当前路由 ``` 未单独配置的 Agent 自动使用全局模型。 #### 配置排查 ```bash inkos doctor ``` `doctor` 会显示当前 effective config mode、service/model/API Key 来源,并尝试 API 连通性。常见模式: | 模式 | 含义 | | ---------------- | ----------------------------------------- | | `studio-project` | Studio 运行时:只使用 Studio/project 配置和 secrets | | `cli-project` | CLI 运行时:以 Studio 配置为基础,再叠加 env 和 CLI 参数 | | `legacy-env` | 旧 env 模式:兼容老项目的纯 `.env` 配置 | 如果服务测试失败,优先检查服务商、模型和协议是否匹配。Google Gemini 的 AI Studio API Key 可用于 Gemini OpenAI-compatible endpoint;InkOS 会自动禁用 Google 不支持的 OpenAI `store` 参数。MiniMax 默认走官方 OpenAI-compatible `/v1/chat/completions`,并优先使用可工作的非流式 transport,避免流式返回 usage 但无正文的问题;`MiniMax-M3*` 会默认关闭 thinking 返回,M2.x thinking 由上游限制无法关闭。 ### LLM 配置更新 - **Studio / CLI 配置隔离**:Studio 固定使用服务页配置和 `.inkos/secrets.json`;CLI、daemon、部署环境支持 env 覆盖和一次性命令参数。 - **Provider bank 能力表**:内置 Google Gemini、Moonshot、MiniMax、智谱、百炼、DeepSeek、硅基流动、火山、腾讯混元、文心、讯飞星火、OpenRouter、kkaiapi、Ollama、CodingPlan 等服务的 baseUrl、协议、模型和兼容策略。 - **模型归属校验**:`--service google --model kimi-k2.5` 这类错配会直接报错,避免把请求发到错误服务商。 - **Google Gemini 兼容修复**:AI Studio API Key 可直接用于 Gemini OpenAI-compatible endpoint,InkOS 会自动禁用 Google 不支持的 OpenAI `store` 参数。 - **MiniMax transport 探测**:MiniMax / MiniMax CodingPlan 使用官方 OpenAI-compatible `/v1` 入口,并自动使用可工作的非流式 transport,规避流式 usage 正常但正文为空的问题。 - **旧 env 兼容**:老的 `INKOS_LLM_BASE_URL + INKOS_LLM_MODEL + INKOS_LLM_API_KEY` 仍可用于 CLI;没有 `INKOS_LLM_SERVICE` 时会尝试从 baseUrl 反推服务商。 ### 当前交互入口 **Studio Chat + CLI + TUI 共用同一套执行面** - **Studio Chat**:讨论、建书、短篇、封面、Play、编辑持久化文件都从同一个对话入口发起;重动作会先展示确认卡。 - **开始创作入口**:长篇小说、短篇小说、同人创作、番外创作、仿写创作、续写创作、分支互动、开放世界都可以从 Studio 顶部入口进入。 - **TUI 仪表盘**:`inkos tui` 进入终端全屏交互,适合键盘流用户。 - **外部 Agent 入口**:`inkos interact --json --message "..."` 仍是 OpenClaw / 其他 agent 的结构化入口。 - **原子命令保留**:`plan` / `compose` / `draft` / `audit` / `revise` / `write next` 仍适合脚本和高级用户。 ### 写第一本书 ```bash inkos book create --title "吞天魔帝" --genre xuanhuan # 创建新书 inkos write next 吞天魔帝 # 写下一章(草稿 → 审计 → 按配置修订) inkos status # 查看状态 inkos review list 吞天魔帝 # 审阅草稿 inkos review approve-all 吞天魔帝 # 批量通过 inkos export 吞天魔帝 # 导出全书 inkos export 吞天魔帝 --format epub # 导出 EPUB(手机/Kindle 阅读) ``` ### 写完整短篇 想直接生成一篇完整短篇,可以在 Studio 对话里说: ```text 写一篇 12 章短篇,方向是:都市婚姻反转,女主拿到账本证据后反杀。 ``` 也可以走 CLI: ```bash inkos short run \ --direction "都市短篇 婚姻反转 女主证据反杀" \ --chapters 12 \ --chars 1000 ``` 生成物会落在 `shorts/<故事名>/final/`,包含 `full.md`、`sales-package.md`、`cover-prompt.md`,配置封面服务后还会生成 `cover.png`。 ### 单独制作封面 如果只想给已有标题或简介做封面,不需要重跑短篇正文,在 Studio 对话里直接说: ```text 给《她签下离婚协议那天,他悔疯了》生成一张短篇封面,偏现代都市、强反转。 ``` 封面工具会独立生成 `covers/<标题>/cover-prompt.md` 和 `covers/<标题>/cover.png`。如果还没有配置封面服务,先在 Studio 的模型配置里设置封面服务和 API Key。 生成后也可以继续通过 chat 改封面提示词,例如“把人物拉近一点、标题字更大、表情更冷笑”。系统会用新的 `coverPrompt` 重写 `cover-prompt.md` 并重生成封面,不需要重新写短篇。 ### 启动开放世界 / 分支互动 在 Studio Chat 里选择「开放世界」或「分支互动」,直接用自然语言描述你想玩的世界: ```text 做一个魔兽风格的边境哨塔开放世界。时间不是固定回合,巡逻是一小时,练功可以跨几天。装备有稀有度,但不要数值面板,用材质和光泽体现。 ``` 系统会生成世界、角色、物品、证据、关系、当前场景和可选动作。开放世界支持自由输入动作;分支互动会给出可点击选项。配置封面 / 图片服务后,角色、物品、证据、场景都可以生成图,并在对话流里滚动显示。 --- ## 核心特性 ### Studio Chat + Action Surface Studio Chat 不再只是问答框。它可以创建长篇、跑短篇、生成封面、启动 Play、编辑持久化文本文件,并在需要执行重动作前给出确认。普通讨论会直接回答;明确创作动作才进入工具执行。 ### InkOS Play:开放世界与分支互动 Play 维护一个可持续推进的世界状态:角色、地点、物品、证据、关系、时间、场景和 HUD。它不是固定 RPG 模板,你可以用自然语言定义世界契约:修仙装备可以有稀有感,恋爱本可以有心动层级,侦探本可以有证据生命周期。系统把这些规则写进世界状态,再用于后续叙事和配图。 ### 多维度审计 + 去 AI 味 连续性审计员从 37 个维度检查每一章草稿:角色记忆、物资连续性、伏笔回收、大纲偏离、叙事节奏、情感弧线等。内置 AI 痕迹检测维度,自动识别"LLM 味"表达(高频词、句式单调、过度总结)。默认长篇写作链路最多自动修订一次;如果你更看重自动闭环,可以通过 `writing.reviewRetries` 调整修订轮数。 去 AI 味规则内置于写手 agent 的 prompt 层——词汇疲劳词表、禁用句式、文风指纹注入,从源头减少 AI 生成痕迹。`revise --mode anti-detect` 可对已有章节做专门的反检测改写。 ### 文风仿写 `inkos style analyze` 分析参考文本,提取统计指纹(句长分布、词频特征、节奏模式)和 LLM 风格指南。`inkos style import` 将指纹注入指定书籍,后续所有章节自动采用该风格,修订者也会用风格标准做审计。 ### 创作简报 `inkos book create --brief my-ideas.md` 传入你的脑洞、世界观设定、人设文档。建筑师 agent 会基于简报生成故事设定(`story_bible.md`)和创作规则(`book_rules.md`),而非凭空创作;同时把简报落盘到 `story/author_intent.md`,让这本书的长期创作意图不会只在建书时生效一次。 ### 输入治理控制面 每本书现在都有两份长期可编辑的 Markdown 控制文档: - `story/author_intent.md`:这本书长期想成为什么 - `story/current_focus.md`:最近 1-3 章要把注意力拉回哪里 写作前可以先跑: ```bash inkos plan chapter 吞天魔帝 --context "本章先把注意力拉回师徒矛盾" inkos compose chapter 吞天魔帝 ``` 这会生成 `story/runtime/chapter-XXXX.intent.md`、`context.json`、`rule-stack.yaml`、`trace.json`。其中 `intent.md` 给人看,其他文件给系统执行和调试。`plan` 会调用 LLM 生成章节意图;`compose` 只编译本地文档和状态,可在没配好 API Key 前先验证控制输入。 ### 字数治理 `draft`、`write next`、`revise` 现在共享同一套保守型字数治理: - `--words` 指定的是目标字数,系统会自动推导一个允许区间,不承诺逐字精确命中 - 中文默认按 `zh_chars` 计数,英文默认按 `en_words` 计数 - 如果正文超出允许区间,InkOS 最多只会追加 1 次纠偏归一化(压缩或补足),不会直接硬截断正文 - 如果 1 次纠偏后仍然超出 hard range,章节照常保存,但会在结果和 chapter index 里留下长度 warning / telemetry ### 续写已有作品 `inkos import chapters` 从已有小说文本导入章节,自动重建结构化状态、章节摘要、伏笔、角色关系和可读 Markdown 投影,支持 `第X章` 和自定义分割模式、断点续导。导入后 `inkos write next` 可继续创作。 ### 同人创作 `inkos fanfic init --from source.txt --mode canon` 从原作素材创建同人书。支持四种模式:canon(正典延续)、au(架空世界)、ooc(性格重塑)、cp(CP 向)。内置正典导入器、同人专属审计维度和信息边界管控——确保设定不矛盾。 ### 多模型路由 不同 Agent 可以走不同模型和 Provider。写手用 Claude(创意强),审计用 GPT-4o(便宜快速),雷达用本地模型(零成本)。`inkos config set-model` 按 agent 粒度配置,未配置的自动回退全局模型。 ### 守护进程 + 通知推送 `inkos up` 启动后台循环自动写章。管线会自动推进可处理的非关键问题;需要人工判断的问题会暂停并留下可审结果。通知推送支持 Telegram、飞书、企业微信、Webhook(HMAC-SHA256 签名 + 事件过滤)。日志写入 `inkos.log`(JSON Lines),`-q` 静默模式。 ### 本地模型兼容 支持任何 OpenAI 兼容接口(Studio 里新增自定义服务,或 CLI 使用 `--provider custom` / `INKOS_LLM_PROVIDER=custom`)。服务测试会尝试不同协议和流式开关组合,并保存或提示可用 transport。Fallback 解析器处理小模型不规范输出,流中断时自动恢复部分内容。 ### 可靠性保障 每章自动创建状态快照,`inkos write rewrite` 可回滚任意章节。写手动笔前输出自检表(上下文、资源、伏笔、风险),写完输出结算表,审计员交叉验证。文件锁防止并发写入。写后验证器含跨章重复检测和十余条硬规则自动 spot-fix。 伏笔系统使用 Zod schema 校验——`lastAdvancedChapter` 必须是整数,`status` 只能是 open/progressing/deferred/resolved。LLM 输出的 JSON delta 在写入前经过 `applyRuntimeStateDelta` 做 immutable 更新 + `validateRuntimeState` 结构校验。坏数据直接拒绝,不会滚雪球。 模型输出上限由 provider bank 的模型卡管理;`llm.extra` / `INKOS_LLM_EXTRA_*` 中的保留键(max_tokens、temperature、model、messages、stream 等)会被自动过滤,防止意外覆盖核心请求参数。 --- ## 工作原理 InkOS 现在有两条主要运行线:长篇 / 短篇生产线负责生成可交付文本;Play 运行线负责持续互动世界。它们共享模型配置、Studio Chat、确认动作和产物预览,但状态结构不同。

InkOS 整体系统架构

长篇每一章默认按“规划 → 编排 → 写作 → 审计 → 必要修订 → 状态同步”运行:

InkOS 章节生产管线

| Agent | 职责 | | ------------------- | ----------------------------------------------------------------- | | **雷达 Radar** | 扫描平台趋势和读者偏好,指导故事方向(可插拔,可跳过) | | **规划师 Planner** | 读取作者意图 + 当前焦点 + 记忆检索结果,产出本章意图(must-keep / must-avoid) | | **编排师 Composer** | 从结构化状态、控制文档和 Markdown 投影中按任务选择上下文,编译规则栈和运行时产物 | | **建筑师 Architect** | 建书、导入或番外初始化时生成基础设定:故事框架、规则、角色与长期控制文件 | | **写手 Writer** | 基于编排后的精简上下文生成正文(字数治理 + 对话引导) | | **观察者 Observer** | 从正文中过度提取 9 类事实(角色、位置、资源、关系、情感、信息、伏笔、时间、物理状态) | | **反射器 Reflector** | 输出 JSON delta(而非全量 markdown),由代码层做 Zod schema 校验后 immutable 写入 | | **归一化器 Normalizer** | 仅在正文明显偏离 hard range 时单 pass 压缩/扩展 | | **连续性审计员 Auditor** | 对照结构化状态、控制文档和章节上下文验证草稿,执行连续性与质量检查 | | **修订者 Reviser** | 修复审计发现的关键问题;默认最多自动修订一次,可通过 `writing.reviewRetries` 调整,其他问题标记给人工审核 | 如果审计不通过,默认管线只做一次"修订 → 再审计";仍未解决的问题会保留在结果和状态里,交给人工或后续命令继续处理。需要更强自动闭环时,可以运行 `inkos config set writing.reviewRetries 3` 把修订轮数调高。 ### 长期记忆 每本书的权威记忆由三层组成: | 层 | 用途 | | -------------------- | ------------------------------------------------------------------------------------------- | | `story/state/*.json` | 权威结构化状态:当前状态、伏笔、章节摘要等,经过 Zod schema 校验 | | `story/*.md` | 人类可读投影:`current_state.md`、`pending_hooks.md`、`chapter_summaries.md`、`character_matrix.md` 等 | | `story/memory.db` | Node 22+ 自动启用的 SQLite 时序记忆库,用于相关事实、伏笔和摘要检索 | 连续性审计员对照这些状态检查每一章草稿。如果角色"记起"了从未亲眼见过的事,或者拿出了两章前已经丢失的武器,审计员会捕捉到。 Settler 不再要求模型输出完整 markdown 文件,而是输出 JSON delta,由代码层做 immutable apply + 结构校验后写入。Markdown 文件保留为人类可读投影。旧书首次运行时会从 legacy Markdown 自动迁移到结构化 JSON。 Node 22+ 环境下自动启用 SQLite 时序记忆数据库(`story/memory.db`),支持按相关性检索历史事实、伏笔和章节摘要,避免全量注入导致的上下文膨胀。

InkOS 长期记忆与状态

### 控制面与运行时产物 除了运行时状态,InkOS 还把“护栏”和“自定义”拆成可审阅的控制层: - `story/author_intent.md`:长期作者意图 - `story/current_focus.md`:当前阶段的关注点 - `story/runtime/chapter-XXXX.intent.md`:本章目标、保留项、避免项、冲突处理 - `story/runtime/chapter-XXXX.context.json`:本章实际选入的上下文 - `story/runtime/chapter-XXXX.rule-stack.yaml`:本章的优先级层和覆盖关系 - `story/runtime/chapter-XXXX.trace.json`:本章输入编译轨迹 这样 `brief`、卷纲、书级规则、当前任务不再混成一坨 prompt,而是先编译,再写作。 ### 创作规则体系 写手 agent 内置 ~25 条通用创作规则(人物塑造、叙事技法、逻辑自洽、语言约束、去 AI 味),适用于所有题材。 在此基础上,每个题材有专属规则(禁忌、语言约束、节奏、审计维度),每本书有独立的 `book_rules.md`(主角人设、数值上限、自定义禁令)、`story_bible.md`(世界观设定)、`author_intent.md`(长期方向)和 `current_focus.md`(近期关注点)。`volume_outline.md` 仍然是默认规划,但在 v2 输入治理模式下不再天然压过当前任务意图。 ## 使用模式 InkOS 提供四种交互方式,底层共享同一组原子操作: ### 1. 完整管线(一键式) ```bash inkos write next 吞天魔帝 # 写草稿 → 审计 → 按配置自动修订 inkos write next 吞天魔帝 --count 5 # 连续写 5 章 ``` `write next` 现在默认走 `plan -> compose -> write` 的输入治理链路,审计后的自动修订轮数默认是 1。若你需要回退到旧的 prompt 拼装路径,可在 `inkos.json` 中显式设置: ```json { "inputGovernanceMode": "legacy" } ``` 默认值为 `v2`。`legacy` 仅作为显式 fallback 保留。 ### 2. 原子命令(可组合,适合外部 Agent 调用) ```bash inkos plan chapter 吞天魔帝 --context "本章重点写师徒矛盾" --json inkos compose chapter 吞天魔帝 --json inkos draft 吞天魔帝 --context "本章重点写师徒矛盾" --json inkos audit 吞天魔帝 31 --json inkos revise 吞天魔帝 31 --json ``` 每个命令独立执行单一操作,`--json` 输出结构化数据。`plan` / `compose` 负责控制输入,`draft` / `audit` / `revise` 负责正文与质量链路。可被外部 AI Agent 通过 `exec` 调用,也可用于脚本编排。 ### 3. 自然语言 Agent 模式 ```bash inkos agent "帮我写一本都市修仙,主角是个程序员" inkos agent "写下一章,重点写师徒矛盾" inkos agent "先扫描市场趋势,然后根据结果创建一本新书" ``` Agent 模式暴露的是按场景收窄后的工具集:建书、读写控制面、规划、编排、写作、审稿、修订、短篇、封面、Play 等能力会按当前 session 类型开放。推荐的 Agent 工作流是:先调整控制面,再 `plan` / `compose`,最后决定写草稿还是跑完整管线。 ### 4. Studio Play 模式 Studio 里的「开放世界」和「分支互动」是交互式创作入口。它们不要求你先建书,也不要求写死 RPG 数值。你可以描述“世界怎样运行、时间怎样推进、角色是否自主行动、物品和证据怎样影响故事”,系统会生成可继续玩的世界,并把每回合状态写回本地。 ## Studio 实测截图与生成结果

InkOS Studio 开始创作入口

InkOS Short 手机封面
短篇封面

InkOS Play 恋爱互动
恋爱互动

InkOS Play 侦探互动
侦探互动

InkOS Play 物品配图
物品配图

第一张是当前 Studio 的本地实测截图。后面四张来自 InkOS Short 和 InkOS Play 的真实本地生成结果:短篇封面用于手机端缩略图点击,Play 图用于展示开放世界、侦探证据、互动场景和物品视觉能力。 ## 命令参考 | 命令 | 说明 | | ------------------------------------------- | ------------------------------------------------------------------------------------------ | | `inkos init [name]` | 初始化项目(省略 name 在当前目录初始化) | | `inkos book create` | 创建新书(`--genre`、`--platform`、`--chapter-words`、`--target-chapters`、`--brief ` 传入创作简报) | | `inkos book update [id]` | 修改书设置(`--chapter-words`、`--target-chapters`、`--status`) | | `inkos book list` | 列出所有书籍 | | `inkos book delete ` | 删除书籍及全部数据(`--force` 跳过确认) | | `inkos genre list/show/copy/create` | 查看、复制、创建题材 | | `inkos plan chapter [id]` | 生成下一章的 `intent.md`(`--context` / `--context-file` 传入当前指令) | | `inkos compose chapter [id]` | 生成下一章的 `context.json`、`rule-stack.yaml`、`trace.json` | | `inkos write next [id]` | 完整管线写下一章(`--words` 覆盖字数,`--count` 连写,`-q` 静默模式) | | `inkos write rewrite [id] ` | 重写第 N 章(恢复状态快照,`--force` 跳过确认,`--words` 覆盖字数) | | `inkos draft [id]` | 只写草稿(`--words` 覆盖字数,`-q` 静默模式) | | `inkos audit [id] [n]` | 审计指定章节 | | `inkos revise [id] [n]` | 修订指定章节 | | `inkos agent ` | 自然语言 Agent 模式 | | `inkos review list [id]` | 审阅草稿 | | `inkos review approve-all [id]` | 批量通过 | | `inkos status [id]` | 项目状态 | | `inkos export [id]` | 导出书籍(`--format txt/md/epub`、`--output `、`--approved-only`) | | `inkos radar scan` | 扫描平台趋势 | | `inkos fanfic init` | 从原作素材创建同人书(`--from`、`--mode canon/au/ooc/cp`) | | `inkos short run` | 生成独立短篇包(正文、简介卖点、封面提示词、可选封面图) | | `inkos eval [id]` | 生成质量评估报告(支持 `--json`、章节范围) | | `inkos consolidate [id]` | 归并长篇章节摘要,降低长书上下文压力 | | `inkos forecast create/show/select` | 生成、核验并选择长篇的非正史剧情分支;选择只保存候选计划,不修改正史 | | `inkos interact` | 外部 agent / CLI 自然语言入口(`--json`、`--message`、`--book`) | | `inkos config set-global` | 设置 CLI / daemon / 部署环境的全局 LLM env(`~/.inkos/.env`) | | `inkos config show-global` | 查看全局配置 | | `inkos config set/show` | 查看/更新项目配置 | | `inkos config set-model ` | 为指定 agent 设置模型覆盖(`--base-url`、`--provider`、`--api-key-env` 支持多 Provider 路由) | | `inkos config remove-model ` | 移除 agent 模型覆盖(回退到默认) | | `inkos config show-models` | 查看当前模型路由 | | `inkos doctor` | 诊断配置问题(显示 effective config mode、来源、API 连通性和提供商兼容性提示) | | `inkos detect [id] [n]` | AIGC 检测(`--all` 全部章节,`--stats` 统计) | | `inkos style analyze ` | 分析参考文本提取文风指纹 | | `inkos style import [id]` | 导入文风指纹到指定书 | | `inkos import canon [id] --from ` | 导入正传正典到番外书 | | `inkos import chapters [id] --from ` | 导入已有章节续写(`--split`、`--resume-from`) | | `inkos analytics [id]` / `inkos stats [id]` | 书籍数据分析(审计通过率、高频问题、章节排名、token 用量) | | `inkos update` | 更新到最新版本 | | `inkos studio` / `inkos` | 启动 Web 工作台(`-p` 指定端口,默认 4567;Studio 使用服务页配置,不使用 env 覆盖) | | `inkos tui` | 启动终端全屏 TUI | | `inkos up / down` | 启动/停止守护进程(`-q` 静默模式,自动写入 `inkos.log`) | `[id]` 参数在项目只有一本书时可省略,自动检测。所有命令支持 `--json` 输出结构化数据。`draft` / `write next` / `plan chapter` / `compose chapter` 支持 `--context` 传入创作指导,`--words` 覆盖每章目标字数。`book create` 支持 `--brief ` 传入创作简报(你的脑洞/设定文档),Architect 会基于此生成设定而非凭空创作。`plan chapter` 会调用 LLM 生成章节意图;`compose chapter` 不要求在线 LLM,可在配置 API Key 之前先检查输入治理结果。 CLI 运行时还支持一次性 LLM 覆盖参数:`--service`、`--model`、`--api-key-env`、`--base-url`、`--api-format `、`--stream`、`--no-stream`。例如: ```bash inkos write next --service google --model gemini-2.5-flash inkos up --service moonshot --model kimi-k2.5 --api-key-env MOONSHOT_API_KEY ``` ## 路线图 - ~~`packages/studio` Web UI 工作台(Vite + React + Hono)~~ — 已发布,`inkos` 或 `inkos studio` 启动 - ~~互动小说 / 开放世界(分支叙事 + 自由动作 + 自动配图)~~ — Studio Play 已落地 - 局部干预(重写半章 + 级联更新后续 truth 文件) - 自定义 agent 插件系统 - 平台格式导出(起点、番茄等) ## 参与贡献 欢迎贡献代码。提 issue 或 PR。 ```bash pnpm install pnpm dev # 监听模式 pnpm test # 运行测试 pnpm typecheck # 类型检查 ``` ## Star History Star History Chart ## Skills Download History ## Repobeats ## Contributors Contributors ## 致谢 InkOS 的 agent 运行时构建在 [pi](https://github.com/badlogic/pi-mono)(`@mariozechner/pi-ai` 与 `@mariozechner/pi-agent-core`,作者 Mario Zechner)之上。感谢 pi 提供的扎实底座。 本开源项目已链接并认可 [LINUX DO](https://linux.do/) 社区,感谢社区成员的反馈、测试与讨论。 ## 许可证 [AGPL-3.0](LICENSE) ---