📦Narcooo / inkos
← 返回首页
Story Creation AI Agent for novel, scripts, translation, interactive games, and IP content
⚖️ AGPL-3.0#ai-writing#chinese-novel#creative-writing-ai#novel-generation#ai-agent📅 创建于 2026-03-12🔄 更新于 2026-10-24
🔗 GitHub TypeScript

📄 仓库 README

在 GitHub 查看 ↗
来自 GitHub 仓库自述文件 · 版权归原作者所有

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 赞助本项目!Kimi K3 是 Moonshot AI 迄今能力最强的模型,也是全球首个开源 3T 级模型,拥有原生视觉能力与 100 万 Token 上下文。搭配 InkOS,K3 可以参与长短篇小说、剧本、互动影游与多语言内容的规划、写作、审稿和修订;InkOS 则持续管理角色、设定、伏笔与故事状态,让长篇创作更连贯、更可控。

kkaiapi 首页

kkaiapi|一个 Key 调模型,一个 MCP 接数据与工具。
支持 Claude、GPT、Gemini、DeepSeek 等主流模型,按量付费、共用余额,用于 InkOS 写作、审稿与封面生成。
查看模型与价格 → · InkOS 接入指南 → · MCP 接入 →

💡 写小说,先给 Agent 接一层专业数据 —— 写小说不只缺模型,更缺素材。推荐搭配 火花数据API(huohuaapi):按调用计费的小说 / 网文创作数据,让 Agent 动笔前先查小说正文、章节结构、人物设定、文风和创作方法等带来源素材,而不是只靠 Prompt 硬凑一份“剧情提纲”。

v2.0.0 - 统一 Pi Agent Harness 与专业创作内核

本分支为 2.0 开发版本,使用本地构建进行验证。旧项目先运行 inkos work migrate --json 查看升级清单,再运行 inkos work migrate --apply 导入统一创作库;原目录与早期版本清单备份会保留,冲突不会覆盖已有作品。

迁移会转换 1.x 的书籍默认配置、规则和状态快照,保留正文、原始目录及未填写的历史信息。旧写作控制字段保留在原件中,2.0 使用 Profile 的操作策略。缺少运行时状态的项目以草稿进入创作库,需完成状态重建后再继续生产。

本地开发与真实生产验收统一使用 kkaiapi(https://api.kkaiapi.com/v1):文字按 DeepSeek V4 Flash / Pro 分工,封面使用 gpt-image-2。在项目 llm.cover 中配置服务和模型,CLI 与 Studio 读取同一配置,封面可复用 kkaiapi 服务密钥。

已有短篇可以在作品对话中要求按审稿意见整篇修订,或运行 inkos short revise <story-id> --instruction "修复审稿指出的时间线与证据链问题"。系统会更新相关章节、大纲和销售包,再次审稿,并保留原稿版本。

InkOS 2.0 把“Chat Agent 调工具”和“各类作品管线”收敛成一套围绕 pi-agent 的生产 harness。模型负责理解、提议和调用能力;InkOS 负责确认、上下文、状态、原子落盘和产物真实性。长篇、短篇、剧本、分镜、互动影游、Play 与翻译继续保留各自的专业方法,但共享同一套执行、检索、观测和恢复基础设施。

  • 模型配置:Studio 内置多服务配置、模型路由和封面服务配置;支持 kkaiapi / OpenRouter 等全球主流模型聚合入口,以及自定义 OpenAI Chat Completions、OpenAI Responses 和 Anthropic Messages 服务。
  • 单一生产 Harness:Studio Chat、TUI、inkos interact 与生产 worker 共用 pi-agent 工具循环和结构化 action/result;既有 pipeline 降为可直接调用、可中断、可观测的确定性能力,不再维护平行的自然语言决策内核。
  • 19 个内置专业 Skills:长篇写作 / 审稿、商业短篇、Play、剧本、分镜、互动影游、翻译、拆稿、市场研究、导入、封面与去 AI 味都拥有独立 SKILL.md;各作品类型复用 Skill 架构,不复用不适合自己的长篇提示词。
  • 统一本地检索:故事记忆、材料库和 Skill 参考资料共用 SQLite FTS5 / BM25 检索投影;原始文件仍是权威来源,索引可重建,检索结果保留来源与位置。
  • 书籍参考资料绑定:导入材料可以显式绑定到某本书并声明用途,写作时按当前任务检索相关段落,而不是把所有文件全文塞进上下文。
  • 安全章节工作区:正文、状态、伏笔和运行快照先在章节工作区内校验,再原子提交;失败不会出现“状态已推进、正文未落盘”。Studio 可查看改写工作区和真实审稿问题。
  • 跨作品生产一致性:Short、剧本、分镜、互动影游、Play 与翻译接入统一 run snapshot、Skill 绑定、字数观测、取消信号和失败恢复,同时保留各自的状态模型与创作规则。
  • 长任务与模型调用更稳:多章写作按一个可恢复任务顺序执行;首 Token / 流式空闲超时、过期状态修复和原子文件集降低被动卡住或半完成的概率。
  • TUI 对齐 Studio:新增 /new、/short、/play、/cover、/write 明确入口,结构化 /confirm / /cancel,会话级 /model 切换和明暗终端自适应配色;普通自由文本仍交给 Agent 理解。
  • 模型与工作台补齐:新增 LM Studio 本地服务,动态模型目录和外部母本导入可持久化;Studio 支持自定义封面 Base URL、宽屏章节预览和安全章节重写。

InkOS 互动影游剧情树实测截图 InkOS Play Studio 开放世界界面

主要创作形态

长篇小说 — 从创作简报建书,生成世界观、角色、卷纲和章节意图;写作、审稿、修订、状态结算都是可独立调用、可追溯的 Harness action。上下文按 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 for details.

欢迎交流

当前更新相对频繁,后续会持续新增功能与优化写作效果。 欢迎加群反馈问题、提出需求,也欢迎关注项目动态 — 我们的目标是做最强的基于小说的内容生态创作 AI Agent。

微信交流群

快速开始

安装

需要 Node.js 22.16 或更高版本。

npm i -g @actalk/inkos

通过 OpenClaw 使用 🦞

InkOS 已发布为 OpenClaw Skill,可被任何兼容 Agent(Claude Code、OpenClaw 等)直接调用:

clawhub install inkos          # 从 ClawHub 安装 InkOS Skill

通过 npm 安装或克隆本项目时,skills/SKILL.md 已包含在内,🦞 可直接读取——无需额外从 ClawHub 安装。

安装后,Claw 应优先通过共享交互入口调用 InkOS:

inkos interact --json --message "继续当前书,但把节奏再收紧一点"

这条入口直接走和项目 TUI 相同的交互执行内核,因此 OpenClaw、TUI、Studio 共用同一套控制脑。当前 JSON 输出包含 assistant 文本回复和 interaction session 信息;真正的执行结果以工具结果和落盘文件为准,不从模型口头声明推断完成。

底层规划、上下文组装、写作和审稿由同一 Harness action 调度,不再作为平行入口暴露。也可以在 ClawHub 搜索 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 导入同 ID 的项目 Skill 作为覆盖;Agent 文件只保留动态任务、上下文和工具协议。

最小 SKILL.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 工作台和可视化管理。

inkos init my-novel
cd my-novel
inkos

请从启动日志显示的本机地址打开 Studio。默认本地服务只接受同源浏览器请求;自定义嵌入或反向代理可通过服务启动参数 allowedOrigins 明确配置可信来源。

打开 Studio 后进入「模型配置」:

  1. 选择服务商,例如 Google Gemini、Moonshot、MiniMax、智谱、百炼或自定义端点。
  2. 选择协议类型:OpenAI Chat Completions、OpenAI Responses 或 Anthropic Messages;自定义端点应按上游实际协议选择。
  3. 粘贴 API Key,点击「测试连接」。
  4. 选择可用模型,保存配置。
  5. 回到书籍页面开始写作。

Studio 运行时只使用:

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:

inkos config set-global \
  --provider <openai|anthropic|custom> \
  --base-url <API 地址> \
  --api-key <你的 API Key> \
  --model <模型名>

也可以手动写 ~/.inkos/.env 或项目 .env:

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 合成顺序:

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。

一次性指定服务或模型:

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 分配不同模型,按需平衡质量与成本:

# 给不同 agent 配不同模型/提供商
inkos config set-model writer <model> --provider <provider> --base-url <url> --api-key-env <ENV_VAR>
inkos config set-model auditor <model> --provider <provider>
inkos config show-models        # 查看当前路由

未单独配置的 Agent 自动使用全局模型。

配置排查

inkos doctor

doctor 会显示当前 effective config mode、service/model/API Key 来源,并尝试 API 连通性。常见模式:

模式 含义
studio-project Studio 运行时:只使用 Studi

📈 近 7 天 Star 趋势

每日新增 Star(柱)与累计 Star(线)· 数据来自 GitHub

🏆 排名变化趋势

在各榜单中的排名历史(数字越小越靠前)

📋 历史上榜记录

每次快照的详细数据
日期 榜单 排名 周期新增 总 STAR