Repository files navigation

Novel CLI

Novel CLI 是一个基于多 LLM Provider 的小说知识库 CLI Agent 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

本项目基于 Kimi CLI 进行二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。


架构概览

架构图

Novel CLI 采用五层架构设计:

  • 智能体层 — novel-unified-v3 Agent,五步查询管线 + 子智能体委托
  • 核心工具层 — 4 大知识库工具(SearchEntity / SearchGraph / SearchCorpus / ReadChapter)+ PostgreSQL 存储
  • 调试工具 — novel-debug Web 调试(工具测试场 + 轨迹构建器)
  • 评估框架 — novel-eval(用例生成 → 执行评估 → 评分报告)
  • 可视化前端 — viewer-app(Dashboard / CaseDetail / Compare / Trend)

数据流:用户提问 → Agent 五步管线 → 工具层 → PostgreSQL → 结果回注 → 回答用户


核心设计

Agent 系统

Novel CLI 的 Agent 系统基于 Soul 抽象层,支持内置和 YAML 声明式外置 Agent:

  • Soul 抽象层 — CLI / Web / ACP 三种界面统一入口,Agent 与前端解耦
  • 内置 Agentdefault 基础 Agent(--agent default
  • 外置 Agent — YAML 声明式配置,放置在 agents/ 目录

novel-unified-v3(主力版本)

v3 是当前主力 Agent,核心机制:

五步查询管线 — 严格的顺序检索,每步输出为下一步输入:

实体搜索 → 图谱概览 → 图谱详情 → 语料检索 → 章节精读

子智能体委托 — 多实体任务时自动触发:

准备(确认 entity_ids) → 分发(并行启动 novel-researcher) → 汇总(收集合并结果)

防幻觉机制 — 强制要求每条信息必须有检索来源,不得编造。

工具集(11 个):AskUserQuestion、ReadFile、WriteFile、StrReplaceFile、Glob、Grep、SearchEntity、SearchGraph、SearchCorpus、ReadChapter、Agent(子智能体委托,v3 新增)

novel-unified-v2 对比

维度v2v3
工具数量1011(新增 Agent)
子智能体不支持支持 novel-researcher
多实体处理串行查询并行委托
复杂任务能力中等
novel-cli --agent-file agents/novel-unified-v3/agent.yaml --book 西游记

详细的 Agent 开发指南见 Agent 开发指南

知识库工具链

src/novel_cli/tools/novel/ 提供四个专用工具,构成完整的小说知识库检索能力:

工具说明关键参数
SearchEntity实体搜索(人物、物品、势力)query, search_mode (vector/name), top_k
SearchGraph关系图谱查询entity_id, rel_type
SearchCorpus关键词语料检索keyword, chapter_ids, context_size
ReadChapter章节精读(句级范围)chapter_id, start, end

存储层基于 PostgreSQL,包含 EntityStorePG、GraphStorePG、CorpusStore 三个存储引擎。

工具间协作关系:

  • SearchEntity 返回 entity_id → 供 SearchGraph 使用
  • SearchGraph 返回 chapter_ids → 供 SearchCorpus 使用
  • ReadChapter 作为补充,在 SearchCorpus 结果不足时精读原文

评估框架

packages/novel_eval + viewer-app 构成完整的评估体系:

双评估任务:

任务评估对象评分维度
tool_usage工具使用质量tool_selection / param_quality / call_efficiency / result_utilization
skill_generation设定生成能力上述 4 维度 + setting_completeness + format_compliance

三步流程:

novel-eval generate --task tool_usage --book 凡人修仙传 # 用例生成
novel-eval run cases.yaml # 执行评估
novel-eval view # 可视化查看

viewer-app 四页面:

  • Dashboard — 雷达图 + 直方图 + 错误模式统计
  • CaseDetail — 消息链 + 工具时间线 + 评分拆解
  • Compare — 多 Agent 横评对比
  • Trend — 时间趋势 + 回归检测

详细使用指南见 评估框架指南

评估结果分析 Skill — Claude Code 内置的 agent-eval-analyzer Skill 可自动分析评估结果,从工具选择、参数质量、调用效率、结果利用四个维度定位优化方向,输出结构化问题清单到 docs/agent-issues/。在 Claude Code 中直接说"分析 agent 评估结果"即可触发。

调试工具

src/novel_debug 提供 Web 调试界面,两个核心功能:

  • 工具测试场 — 直接调用 SearchEntity / SearchGraph / SearchCorpus,跳过 Agent 循环,快速验证工具行为
  • 轨迹构建器 — 手动模拟工具调用流程,生成 wire.jsonl,适用于构建评估黄金轨迹
uv run python -m novel_debug # 启动调试 Web 界面(默认 http://localhost:9004)

详细使用指南见 调试工具指南

Web 界面

web/ 提供浏览器端的完整对话体验:

技术栈: React 19 + TypeScript + Vite + Tailwind CSS + Radix UI

核心特性:

  • 书籍选择器 — 自动列出知识库书籍,切换分析目标
  • Agent 切换 — 启动时通过 --agent / --agent-file 指定
  • 会话管理 — 创建 / 删除 / 重命名 / 归档 / 分支(fork)
  • 实时对话 — WebSocket 流式通信,工具调用审批
  • 文件管理 — 上传 / 下载 / Git diff 查看
novel-cli web # 本地访问
novel-cli web --network # 局域网访问
novel-cli web --public --auth-token secret # 公网访问
novel-cli web --book 西游记 --agent default # 指定书籍和 Agent

详细使用指南见 Web 界面指南


模块导航

模块路径说明详细文档
核心 CLIsrc/novel_cli/Agent 运行时、LLM 抽象、会话管理CLI 参考
知识库工具src/novel_cli/tools/novel/4 大搜索工具CLI 参考
Web 界面web/React 前端 + FastAPI 后端Web 指南
评估框架packages/novel_eval/用例生成、执行评估、评分报告评估指南
可视化前端viewer-app/评估结果可视化评估指南
调试工具src/novel_debug/工具测试场、轨迹构建器调试指南
Agent 配置agents/外置 Agent 规格文件Agent 指南
配置文件~/.novel/config.tomlProvider / Model / 行为偏好配置详解

快速上手

# 1. 安装
uv sync
# 2. 配置环境变量
cp docker/.env.example docker/.env
# 编辑 docker/.env,修改 POSTGRES_PASSWORD 和 EMBEDDING_API_KEY# 3. 启动数据库cd docker && docker compose -p novel-cli up -d &&cd ..
# 4. 导入数据
uv run python scripts/import_pg_data.py tables create
uv run python scripts/import_pg_data.py import --book 西游记
# 5. 配置 Provider
novel-cli setup
# 6. 开始使用
novel-cli --book 西游记

完整安装和配置指南见 快速上手


致谢

本项目基于 Kimi CLI 二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。LICENSE (Apache 2.0) 和 NOTICE 均继承自上游项目。

About

Novel CLI 是一个基于多 LLM Provider 的**小说知识库 CLI Agent** 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Novel CLI

Novel CLI 是一个基于多 LLM Provider 的小说知识库 CLI Agent 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

本项目基于 Kimi CLI 进行二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。


架构概览

架构图

Novel CLI 采用五层架构设计:

  • 智能体层 — novel-unified-v3 Agent,五步查询管线 + 子智能体委托
  • 核心工具层 — 4 大知识库工具(SearchEntity / SearchGraph / SearchCorpus / ReadChapter)+ PostgreSQL 存储
  • 调试工具 — novel-debug Web 调试(工具测试场 + 轨迹构建器)
  • 评估框架 — novel-eval(用例生成 → 执行评估 → 评分报告)
  • 可视化前端 — viewer-app(Dashboard / CaseDetail / Compare / Trend)

数据流:用户提问 → Agent 五步管线 → 工具层 → PostgreSQL → 结果回注 → 回答用户


核心设计

Agent 系统

Novel CLI 的 Agent 系统基于 Soul 抽象层,支持内置和 YAML 声明式外置 Agent:

  • Soul 抽象层 — CLI / Web / ACP 三种界面统一入口,Agent 与前端解耦
  • 内置 Agentdefault 基础 Agent(--agent default
  • 外置 Agent — YAML 声明式配置,放置在 agents/ 目录

novel-unified-v3(主力版本)

v3 是当前主力 Agent,核心机制:

五步查询管线 — 严格的顺序检索,每步输出为下一步输入:

实体搜索 → 图谱概览 → 图谱详情 → 语料检索 → 章节精读

子智能体委托 — 多实体任务时自动触发:

准备(确认 entity_ids) → 分发(并行启动 novel-researcher) → 汇总(收集合并结果)

防幻觉机制 — 强制要求每条信息必须有检索来源,不得编造。

工具集(11 个):AskUserQuestion、ReadFile、WriteFile、StrReplaceFile、Glob、Grep、SearchEntity、SearchGraph、SearchCorpus、ReadChapter、Agent(子智能体委托,v3 新增)

novel-unified-v2 对比

维度v2v3
工具数量1011(新增 Agent)
子智能体不支持支持 novel-researcher
多实体处理串行查询并行委托
复杂任务能力中等
novel-cli --agent-file agents/novel-unified-v3/agent.yaml --book 西游记

详细的 Agent 开发指南见 Agent 开发指南

知识库工具链

src/novel_cli/tools/novel/ 提供四个专用工具,构成完整的小说知识库检索能力:

工具说明关键参数
SearchEntity实体搜索(人物、物品、势力)query, search_mode (vector/name), top_k
SearchGraph关系图谱查询entity_id, rel_type
SearchCorpus关键词语料检索keyword, chapter_ids, context_size
ReadChapter章节精读(句级范围)chapter_id, start, end

存储层基于 PostgreSQL,包含 EntityStorePG、GraphStorePG、CorpusStore 三个存储引擎。

工具间协作关系:

  • SearchEntity 返回 entity_id → 供 SearchGraph 使用
  • SearchGraph 返回 chapter_ids → 供 SearchCorpus 使用
  • ReadChapter 作为补充,在 SearchCorpus 结果不足时精读原文

评估框架

packages/novel_eval + viewer-app 构成完整的评估体系:

双评估任务:

任务评估对象评分维度
tool_usage工具使用质量tool_selection / param_quality / call_efficiency / result_utilization
skill_generation设定生成能力上述 4 维度 + setting_completeness + format_compliance

三步流程:

novel-eval generate --task tool_usage --book 凡人修仙传 # 用例生成
novel-eval run cases.yaml # 执行评估
novel-eval view # 可视化查看

viewer-app 四页面:

  • Dashboard — 雷达图 + 直方图 + 错误模式统计
  • CaseDetail — 消息链 + 工具时间线 + 评分拆解
  • Compare — 多 Agent 横评对比
  • Trend — 时间趋势 + 回归检测

详细使用指南见 评估框架指南

评估结果分析 Skill — Claude Code 内置的 agent-eval-analyzer Skill 可自动分析评估结果,从工具选择、参数质量、调用效率、结果利用四个维度定位优化方向,输出结构化问题清单到 docs/agent-issues/。在 Claude Code 中直接说"分析 agent 评估结果"即可触发。

调试工具

src/novel_debug 提供 Web 调试界面,两个核心功能:

  • 工具测试场 — 直接调用 SearchEntity / SearchGraph / SearchCorpus,跳过 Agent 循环,快速验证工具行为
  • 轨迹构建器 — 手动模拟工具调用流程,生成 wire.jsonl,适用于构建评估黄金轨迹
uv run python -m novel_debug # 启动调试 Web 界面(默认 http://localhost:9004)

详细使用指南见 调试工具指南

Web 界面

web/ 提供浏览器端的完整对话体验:

技术栈: React 19 + TypeScript + Vite + Tailwind CSS + Radix UI

核心特性:

  • 书籍选择器 — 自动列出知识库书籍,切换分析目标
  • Agent 切换 — 启动时通过 --agent / --agent-file 指定
  • 会话管理 — 创建 / 删除 / 重命名 / 归档 / 分支(fork)
  • 实时对话 — WebSocket 流式通信,工具调用审批
  • 文件管理 — 上传 / 下载 / Git diff 查看
novel-cli web # 本地访问
novel-cli web --network # 局域网访问
novel-cli web --public --auth-token secret # 公网访问
novel-cli web --book 西游记 --agent default # 指定书籍和 Agent

详细使用指南见 Web 界面指南


模块导航

模块路径说明详细文档
核心 CLIsrc/novel_cli/Agent 运行时、LLM 抽象、会话管理CLI 参考
知识库工具src/novel_cli/tools/novel/4 大搜索工具CLI 参考
Web 界面web/React 前端 + FastAPI 后端Web 指南
评估框架packages/novel_eval/用例生成、执行评估、评分报告评估指南
可视化前端viewer-app/评估结果可视化评估指南
调试工具src/novel_debug/工具测试场、轨迹构建器调试指南
Agent 配置agents/外置 Agent 规格文件Agent 指南
配置文件~/.novel/config.tomlProvider / Model / 行为偏好配置详解

快速上手

# 1. 安装
uv sync
# 2. 配置环境变量
cp docker/.env.example docker/.env
# 编辑 docker/.env,修改 POSTGRES_PASSWORD 和 EMBEDDING_API_KEY# 3. 启动数据库cd docker && docker compose -p novel-cli up -d &&cd ..
# 4. 导入数据
uv run python scripts/import_pg_data.py tables create
uv run python scripts/import_pg_data.py import --book 西游记
# 5. 配置 Provider
novel-cli setup
# 6. 开始使用
novel-cli --book 西游记

完整安装和配置指南见 快速上手


致谢

本项目基于 Kimi CLI 二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。LICENSE (Apache 2.0) 和 NOTICE 均继承自上游项目。

About

Novel CLI 是一个基于多 LLM Provider 的**小说知识库 CLI Agent** 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Novel CLI

Novel CLI 是一个基于多 LLM Provider 的小说知识库 CLI Agent 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

本项目基于 Kimi CLI 进行二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。


架构概览

架构图

Novel CLI 采用五层架构设计:

  • 智能体层 — novel-unified-v3 Agent,五步查询管线 + 子智能体委托
  • 核心工具层 — 4 大知识库工具(SearchEntity / SearchGraph / SearchCorpus / ReadChapter)+ PostgreSQL 存储
  • 调试工具 — novel-debug Web 调试(工具测试场 + 轨迹构建器)
  • 评估框架 — novel-eval(用例生成 → 执行评估 → 评分报告)
  • 可视化前端 — viewer-app(Dashboard / CaseDetail / Compare / Trend)

数据流:用户提问 → Agent 五步管线 → 工具层 → PostgreSQL → 结果回注 → 回答用户


核心设计

Agent 系统

Novel CLI 的 Agent 系统基于 Soul 抽象层,支持内置和 YAML 声明式外置 Agent:

  • Soul 抽象层 — CLI / Web / ACP 三种界面统一入口,Agent 与前端解耦
  • 内置 Agentdefault 基础 Agent(--agent default
  • 外置 Agent — YAML 声明式配置,放置在 agents/ 目录

novel-unified-v3(主力版本)

v3 是当前主力 Agent,核心机制:

五步查询管线 — 严格的顺序检索,每步输出为下一步输入:

实体搜索 → 图谱概览 → 图谱详情 → 语料检索 → 章节精读

子智能体委托 — 多实体任务时自动触发:

准备(确认 entity_ids) → 分发(并行启动 novel-researcher) → 汇总(收集合并结果)

防幻觉机制 — 强制要求每条信息必须有检索来源,不得编造。

工具集(11 个):AskUserQuestion、ReadFile、WriteFile、StrReplaceFile、Glob、Grep、SearchEntity、SearchGraph、SearchCorpus、ReadChapter、Agent(子智能体委托,v3 新增)

novel-unified-v2 对比

维度v2v3
工具数量1011(新增 Agent)
子智能体不支持支持 novel-researcher
多实体处理串行查询并行委托
复杂任务能力中等
novel-cli --agent-file agents/novel-unified-v3/agent.yaml --book 西游记

详细的 Agent 开发指南见 Agent 开发指南

知识库工具链

src/novel_cli/tools/novel/ 提供四个专用工具,构成完整的小说知识库检索能力:

工具说明关键参数
SearchEntity实体搜索(人物、物品、势力)query, search_mode (vector/name), top_k
SearchGraph关系图谱查询entity_id, rel_type
SearchCorpus关键词语料检索keyword, chapter_ids, context_size
ReadChapter章节精读(句级范围)chapter_id, start, end

存储层基于 PostgreSQL,包含 EntityStorePG、GraphStorePG、CorpusStore 三个存储引擎。

工具间协作关系:

  • SearchEntity 返回 entity_id → 供 SearchGraph 使用
  • SearchGraph 返回 chapter_ids → 供 SearchCorpus 使用
  • ReadChapter 作为补充,在 SearchCorpus 结果不足时精读原文

评估框架

packages/novel_eval + viewer-app 构成完整的评估体系:

双评估任务:

任务评估对象评分维度
tool_usage工具使用质量tool_selection / param_quality / call_efficiency / result_utilization
skill_generation设定生成能力上述 4 维度 + setting_completeness + format_compliance

三步流程:

novel-eval generate --task tool_usage --book 凡人修仙传 # 用例生成
novel-eval run cases.yaml # 执行评估
novel-eval view # 可视化查看

viewer-app 四页面:

  • Dashboard — 雷达图 + 直方图 + 错误模式统计
  • CaseDetail — 消息链 + 工具时间线 + 评分拆解
  • Compare — 多 Agent 横评对比
  • Trend — 时间趋势 + 回归检测

详细使用指南见 评估框架指南

评估结果分析 Skill — Claude Code 内置的 agent-eval-analyzer Skill 可自动分析评估结果,从工具选择、参数质量、调用效率、结果利用四个维度定位优化方向,输出结构化问题清单到 docs/agent-issues/。在 Claude Code 中直接说"分析 agent 评估结果"即可触发。

调试工具

src/novel_debug 提供 Web 调试界面,两个核心功能:

  • 工具测试场 — 直接调用 SearchEntity / SearchGraph / SearchCorpus,跳过 Agent 循环,快速验证工具行为
  • 轨迹构建器 — 手动模拟工具调用流程,生成 wire.jsonl,适用于构建评估黄金轨迹
uv run python -m novel_debug # 启动调试 Web 界面(默认 http://localhost:9004)

详细使用指南见 调试工具指南

Web 界面

web/ 提供浏览器端的完整对话体验:

技术栈: React 19 + TypeScript + Vite + Tailwind CSS + Radix UI

核心特性:

  • 书籍选择器 — 自动列出知识库书籍,切换分析目标
  • Agent 切换 — 启动时通过 --agent / --agent-file 指定
  • 会话管理 — 创建 / 删除 / 重命名 / 归档 / 分支(fork)
  • 实时对话 — WebSocket 流式通信,工具调用审批
  • 文件管理 — 上传 / 下载 / Git diff 查看
novel-cli web # 本地访问
novel-cli web --network # 局域网访问
novel-cli web --public --auth-token secret # 公网访问
novel-cli web --book 西游记 --agent default # 指定书籍和 Agent

详细使用指南见 Web 界面指南


模块导航

模块路径说明详细文档
核心 CLIsrc/novel_cli/Agent 运行时、LLM 抽象、会话管理CLI 参考
知识库工具src/novel_cli/tools/novel/4 大搜索工具CLI 参考
Web 界面web/React 前端 + FastAPI 后端Web 指南
评估框架packages/novel_eval/用例生成、执行评估、评分报告评估指南
可视化前端viewer-app/评估结果可视化评估指南
调试工具src/novel_debug/工具测试场、轨迹构建器调试指南
Agent 配置agents/外置 Agent 规格文件Agent 指南
配置文件~/.novel/config.tomlProvider / Model / 行为偏好配置详解

快速上手

# 1. 安装
uv sync
# 2. 配置环境变量
cp docker/.env.example docker/.env
# 编辑 docker/.env,修改 POSTGRES_PASSWORD 和 EMBEDDING_API_KEY# 3. 启动数据库cd docker && docker compose -p novel-cli up -d &&cd ..
# 4. 导入数据
uv run python scripts/import_pg_data.py tables create
uv run python scripts/import_pg_data.py import --book 西游记
# 5. 配置 Provider
novel-cli setup
# 6. 开始使用
novel-cli --book 西游记

完整安装和配置指南见 快速上手


致谢

本项目基于 Kimi CLI 二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。LICENSE (Apache 2.0) 和 NOTICE 均继承自上游项目。

About

Novel CLI 是一个基于多 LLM Provider 的**小说知识库 CLI Agent** 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Novel CLI

Novel CLI 是一个基于多 LLM Provider 的小说知识库 CLI Agent 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

本项目基于 Kimi CLI 进行二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。


架构概览

架构图

Novel CLI 采用五层架构设计:

  • 智能体层 — novel-unified-v3 Agent,五步查询管线 + 子智能体委托
  • 核心工具层 — 4 大知识库工具(SearchEntity / SearchGraph / SearchCorpus / ReadChapter)+ PostgreSQL 存储
  • 调试工具 — novel-debug Web 调试(工具测试场 + 轨迹构建器)
  • 评估框架 — novel-eval(用例生成 → 执行评估 → 评分报告)
  • 可视化前端 — viewer-app(Dashboard / CaseDetail / Compare / Trend)

数据流:用户提问 → Agent 五步管线 → 工具层 → PostgreSQL → 结果回注 → 回答用户


核心设计

Agent 系统

Novel CLI 的 Agent 系统基于 Soul 抽象层,支持内置和 YAML 声明式外置 Agent:

  • Soul 抽象层 — CLI / Web / ACP 三种界面统一入口,Agent 与前端解耦
  • 内置 Agentdefault 基础 Agent(--agent default
  • 外置 Agent — YAML 声明式配置,放置在 agents/ 目录

novel-unified-v3(主力版本)

v3 是当前主力 Agent,核心机制:

五步查询管线 — 严格的顺序检索,每步输出为下一步输入:

实体搜索 → 图谱概览 → 图谱详情 → 语料检索 → 章节精读

子智能体委托 — 多实体任务时自动触发:

准备(确认 entity_ids) → 分发(并行启动 novel-researcher) → 汇总(收集合并结果)

防幻觉机制 — 强制要求每条信息必须有检索来源,不得编造。

工具集(11 个):AskUserQuestion、ReadFile、WriteFile、StrReplaceFile、Glob、Grep、SearchEntity、SearchGraph、SearchCorpus、ReadChapter、Agent(子智能体委托,v3 新增)

novel-unified-v2 对比

维度v2v3
工具数量1011(新增 Agent)
子智能体不支持支持 novel-researcher
多实体处理串行查询并行委托
复杂任务能力中等
novel-cli --agent-file agents/novel-unified-v3/agent.yaml --book 西游记

详细的 Agent 开发指南见 Agent 开发指南

知识库工具链

src/novel_cli/tools/novel/ 提供四个专用工具,构成完整的小说知识库检索能力:

工具说明关键参数
SearchEntity实体搜索(人物、物品、势力)query, search_mode (vector/name), top_k
SearchGraph关系图谱查询entity_id, rel_type
SearchCorpus关键词语料检索keyword, chapter_ids, context_size
ReadChapter章节精读(句级范围)chapter_id, start, end

存储层基于 PostgreSQL,包含 EntityStorePG、GraphStorePG、CorpusStore 三个存储引擎。

工具间协作关系:

  • SearchEntity 返回 entity_id → 供 SearchGraph 使用
  • SearchGraph 返回 chapter_ids → 供 SearchCorpus 使用
  • ReadChapter 作为补充,在 SearchCorpus 结果不足时精读原文

评估框架

packages/novel_eval + viewer-app 构成完整的评估体系:

双评估任务:

任务评估对象评分维度
tool_usage工具使用质量tool_selection / param_quality / call_efficiency / result_utilization
skill_generation设定生成能力上述 4 维度 + setting_completeness + format_compliance

三步流程:

novel-eval generate --task tool_usage --book 凡人修仙传 # 用例生成
novel-eval run cases.yaml # 执行评估
novel-eval view # 可视化查看

viewer-app 四页面:

  • Dashboard — 雷达图 + 直方图 + 错误模式统计
  • CaseDetail — 消息链 + 工具时间线 + 评分拆解
  • Compare — 多 Agent 横评对比
  • Trend — 时间趋势 + 回归检测

详细使用指南见 评估框架指南

评估结果分析 Skill — Claude Code 内置的 agent-eval-analyzer Skill 可自动分析评估结果,从工具选择、参数质量、调用效率、结果利用四个维度定位优化方向,输出结构化问题清单到 docs/agent-issues/。在 Claude Code 中直接说"分析 agent 评估结果"即可触发。

调试工具

src/novel_debug 提供 Web 调试界面,两个核心功能:

  • 工具测试场 — 直接调用 SearchEntity / SearchGraph / SearchCorpus,跳过 Agent 循环,快速验证工具行为
  • 轨迹构建器 — 手动模拟工具调用流程,生成 wire.jsonl,适用于构建评估黄金轨迹
uv run python -m novel_debug # 启动调试 Web 界面(默认 http://localhost:9004)

详细使用指南见 调试工具指南

Web 界面

web/ 提供浏览器端的完整对话体验:

技术栈: React 19 + TypeScript + Vite + Tailwind CSS + Radix UI

核心特性:

  • 书籍选择器 — 自动列出知识库书籍,切换分析目标
  • Agent 切换 — 启动时通过 --agent / --agent-file 指定
  • 会话管理 — 创建 / 删除 / 重命名 / 归档 / 分支(fork)
  • 实时对话 — WebSocket 流式通信,工具调用审批
  • 文件管理 — 上传 / 下载 / Git diff 查看
novel-cli web # 本地访问
novel-cli web --network # 局域网访问
novel-cli web --public --auth-token secret # 公网访问
novel-cli web --book 西游记 --agent default # 指定书籍和 Agent

详细使用指南见 Web 界面指南


模块导航

模块路径说明详细文档
核心 CLIsrc/novel_cli/Agent 运行时、LLM 抽象、会话管理CLI 参考
知识库工具src/novel_cli/tools/novel/4 大搜索工具CLI 参考
Web 界面web/React 前端 + FastAPI 后端Web 指南
评估框架packages/novel_eval/用例生成、执行评估、评分报告评估指南
可视化前端viewer-app/评估结果可视化评估指南
调试工具src/novel_debug/工具测试场、轨迹构建器调试指南
Agent 配置agents/外置 Agent 规格文件Agent 指南
配置文件~/.novel/config.tomlProvider / Model / 行为偏好配置详解

快速上手

# 1. 安装
uv sync
# 2. 配置环境变量
cp docker/.env.example docker/.env
# 编辑 docker/.env,修改 POSTGRES_PASSWORD 和 EMBEDDING_API_KEY# 3. 启动数据库cd docker && docker compose -p novel-cli up -d &&cd ..
# 4. 导入数据
uv run python scripts/import_pg_data.py tables create
uv run python scripts/import_pg_data.py import --book 西游记
# 5. 配置 Provider
novel-cli setup
# 6. 开始使用
novel-cli --book 西游记

完整安装和配置指南见 快速上手


致谢

本项目基于 Kimi CLI 二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。LICENSE (Apache 2.0) 和 NOTICE 均继承自上游项目。

About

Novel CLI 是一个基于多 LLM Provider 的**小说知识库 CLI Agent** 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Novel CLI

Novel CLI 是一个基于多 LLM Provider 的小说知识库 CLI Agent 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

本项目基于 Kimi CLI 进行二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。


架构概览

架构图

Novel CLI 采用五层架构设计:

  • 智能体层 — novel-unified-v3 Agent,五步查询管线 + 子智能体委托
  • 核心工具层 — 4 大知识库工具(SearchEntity / SearchGraph / SearchCorpus / ReadChapter)+ PostgreSQL 存储
  • 调试工具 — novel-debug Web 调试(工具测试场 + 轨迹构建器)
  • 评估框架 — novel-eval(用例生成 → 执行评估 → 评分报告)
  • 可视化前端 — viewer-app(Dashboard / CaseDetail / Compare / Trend)

数据流:用户提问 → Agent 五步管线 → 工具层 → PostgreSQL → 结果回注 → 回答用户


核心设计

Agent 系统

Novel CLI 的 Agent 系统基于 Soul 抽象层,支持内置和 YAML 声明式外置 Agent:

  • Soul 抽象层 — CLI / Web / ACP 三种界面统一入口,Agent 与前端解耦
  • 内置 Agentdefault 基础 Agent(--agent default
  • 外置 Agent — YAML 声明式配置,放置在 agents/ 目录

novel-unified-v3(主力版本)

v3 是当前主力 Agent,核心机制:

五步查询管线 — 严格的顺序检索,每步输出为下一步输入:

实体搜索 → 图谱概览 → 图谱详情 → 语料检索 → 章节精读

子智能体委托 — 多实体任务时自动触发:

准备(确认 entity_ids) → 分发(并行启动 novel-researcher) → 汇总(收集合并结果)

防幻觉机制 — 强制要求每条信息必须有检索来源,不得编造。

工具集(11 个):AskUserQuestion、ReadFile、WriteFile、StrReplaceFile、Glob、Grep、SearchEntity、SearchGraph、SearchCorpus、ReadChapter、Agent(子智能体委托,v3 新增)

novel-unified-v2 对比

维度v2v3
工具数量1011(新增 Agent)
子智能体不支持支持 novel-researcher
多实体处理串行查询并行委托
复杂任务能力中等
novel-cli --agent-file agents/novel-unified-v3/agent.yaml --book 西游记

详细的 Agent 开发指南见 Agent 开发指南

知识库工具链

src/novel_cli/tools/novel/ 提供四个专用工具,构成完整的小说知识库检索能力:

工具说明关键参数
SearchEntity实体搜索(人物、物品、势力)query, search_mode (vector/name), top_k
SearchGraph关系图谱查询entity_id, rel_type
SearchCorpus关键词语料检索keyword, chapter_ids, context_size
ReadChapter章节精读(句级范围)chapter_id, start, end

存储层基于 PostgreSQL,包含 EntityStorePG、GraphStorePG、CorpusStore 三个存储引擎。

工具间协作关系:

  • SearchEntity 返回 entity_id → 供 SearchGraph 使用
  • SearchGraph 返回 chapter_ids → 供 SearchCorpus 使用
  • ReadChapter 作为补充,在 SearchCorpus 结果不足时精读原文

评估框架

packages/novel_eval + viewer-app 构成完整的评估体系:

双评估任务:

任务评估对象评分维度
tool_usage工具使用质量tool_selection / param_quality / call_efficiency / result_utilization
skill_generation设定生成能力上述 4 维度 + setting_completeness + format_compliance

三步流程:

novel-eval generate --task tool_usage --book 凡人修仙传 # 用例生成
novel-eval run cases.yaml # 执行评估
novel-eval view # 可视化查看

viewer-app 四页面:

  • Dashboard — 雷达图 + 直方图 + 错误模式统计
  • CaseDetail — 消息链 + 工具时间线 + 评分拆解
  • Compare — 多 Agent 横评对比
  • Trend — 时间趋势 + 回归检测

详细使用指南见 评估框架指南

评估结果分析 Skill — Claude Code 内置的 agent-eval-analyzer Skill 可自动分析评估结果,从工具选择、参数质量、调用效率、结果利用四个维度定位优化方向,输出结构化问题清单到 docs/agent-issues/。在 Claude Code 中直接说"分析 agent 评估结果"即可触发。

调试工具

src/novel_debug 提供 Web 调试界面,两个核心功能:

  • 工具测试场 — 直接调用 SearchEntity / SearchGraph / SearchCorpus,跳过 Agent 循环,快速验证工具行为
  • 轨迹构建器 — 手动模拟工具调用流程,生成 wire.jsonl,适用于构建评估黄金轨迹
uv run python -m novel_debug # 启动调试 Web 界面(默认 http://localhost:9004)

详细使用指南见 调试工具指南

Web 界面

web/ 提供浏览器端的完整对话体验:

技术栈: React 19 + TypeScript + Vite + Tailwind CSS + Radix UI

核心特性:

  • 书籍选择器 — 自动列出知识库书籍,切换分析目标
  • Agent 切换 — 启动时通过 --agent / --agent-file 指定
  • 会话管理 — 创建 / 删除 / 重命名 / 归档 / 分支(fork)
  • 实时对话 — WebSocket 流式通信,工具调用审批
  • 文件管理 — 上传 / 下载 / Git diff 查看
novel-cli web # 本地访问
novel-cli web --network # 局域网访问
novel-cli web --public --auth-token secret # 公网访问
novel-cli web --book 西游记 --agent default # 指定书籍和 Agent

详细使用指南见 Web 界面指南


模块导航

模块路径说明详细文档
核心 CLIsrc/novel_cli/Agent 运行时、LLM 抽象、会话管理CLI 参考
知识库工具src/novel_cli/tools/novel/4 大搜索工具CLI 参考
Web 界面web/React 前端 + FastAPI 后端Web 指南
评估框架packages/novel_eval/用例生成、执行评估、评分报告评估指南
可视化前端viewer-app/评估结果可视化评估指南
调试工具src/novel_debug/工具测试场、轨迹构建器调试指南
Agent 配置agents/外置 Agent 规格文件Agent 指南
配置文件~/.novel/config.tomlProvider / Model / 行为偏好配置详解

快速上手

# 1. 安装
uv sync
# 2. 配置环境变量
cp docker/.env.example docker/.env
# 编辑 docker/.env,修改 POSTGRES_PASSWORD 和 EMBEDDING_API_KEY# 3. 启动数据库cd docker && docker compose -p novel-cli up -d &&cd ..
# 4. 导入数据
uv run python scripts/import_pg_data.py tables create
uv run python scripts/import_pg_data.py import --book 西游记
# 5. 配置 Provider
novel-cli setup
# 6. 开始使用
novel-cli --book 西游记

完整安装和配置指南见 快速上手


致谢

本项目基于 Kimi CLI 二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。LICENSE (Apache 2.0) 和 NOTICE 均继承自上游项目。

About

Novel CLI 是一个基于多 LLM Provider 的**小说知识库 CLI Agent** 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Novel CLI

Novel CLI 是一个基于多 LLM Provider 的小说知识库 CLI Agent 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

本项目基于 Kimi CLI 进行二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。


架构概览

架构图

Novel CLI 采用五层架构设计:

  • 智能体层 — novel-unified-v3 Agent,五步查询管线 + 子智能体委托
  • 核心工具层 — 4 大知识库工具(SearchEntity / SearchGraph / SearchCorpus / ReadChapter)+ PostgreSQL 存储
  • 调试工具 — novel-debug Web 调试(工具测试场 + 轨迹构建器)
  • 评估框架 — novel-eval(用例生成 → 执行评估 → 评分报告)
  • 可视化前端 — viewer-app(Dashboard / CaseDetail / Compare / Trend)

数据流:用户提问 → Agent 五步管线 → 工具层 → PostgreSQL → 结果回注 → 回答用户


核心设计

Agent 系统

Novel CLI 的 Agent 系统基于 Soul 抽象层,支持内置和 YAML 声明式外置 Agent:

  • Soul 抽象层 — CLI / Web / ACP 三种界面统一入口,Agent 与前端解耦
  • 内置 Agentdefault 基础 Agent(--agent default
  • 外置 Agent — YAML 声明式配置,放置在 agents/ 目录

novel-unified-v3(主力版本)

v3 是当前主力 Agent,核心机制:

五步查询管线 — 严格的顺序检索,每步输出为下一步输入:

实体搜索 → 图谱概览 → 图谱详情 → 语料检索 → 章节精读

子智能体委托 — 多实体任务时自动触发:

准备(确认 entity_ids) → 分发(并行启动 novel-researcher) → 汇总(收集合并结果)

防幻觉机制 — 强制要求每条信息必须有检索来源,不得编造。

工具集(11 个):AskUserQuestion、ReadFile、WriteFile、StrReplaceFile、Glob、Grep、SearchEntity、SearchGraph、SearchCorpus、ReadChapter、Agent(子智能体委托,v3 新增)

novel-unified-v2 对比

维度v2v3
工具数量1011(新增 Agent)
子智能体不支持支持 novel-researcher
多实体处理串行查询并行委托
复杂任务能力中等
novel-cli --agent-file agents/novel-unified-v3/agent.yaml --book 西游记

详细的 Agent 开发指南见 Agent 开发指南

知识库工具链

src/novel_cli/tools/novel/ 提供四个专用工具,构成完整的小说知识库检索能力:

工具说明关键参数
SearchEntity实体搜索(人物、物品、势力)query, search_mode (vector/name), top_k
SearchGraph关系图谱查询entity_id, rel_type
SearchCorpus关键词语料检索keyword, chapter_ids, context_size
ReadChapter章节精读(句级范围)chapter_id, start, end

存储层基于 PostgreSQL,包含 EntityStorePG、GraphStorePG、CorpusStore 三个存储引擎。

工具间协作关系:

  • SearchEntity 返回 entity_id → 供 SearchGraph 使用
  • SearchGraph 返回 chapter_ids → 供 SearchCorpus 使用
  • ReadChapter 作为补充,在 SearchCorpus 结果不足时精读原文

评估框架

packages/novel_eval + viewer-app 构成完整的评估体系:

双评估任务:

任务评估对象评分维度
tool_usage工具使用质量tool_selection / param_quality / call_efficiency / result_utilization
skill_generation设定生成能力上述 4 维度 + setting_completeness + format_compliance

三步流程:

novel-eval generate --task tool_usage --book 凡人修仙传 # 用例生成
novel-eval run cases.yaml # 执行评估
novel-eval view # 可视化查看

viewer-app 四页面:

  • Dashboard — 雷达图 + 直方图 + 错误模式统计
  • CaseDetail — 消息链 + 工具时间线 + 评分拆解
  • Compare — 多 Agent 横评对比
  • Trend — 时间趋势 + 回归检测

详细使用指南见 评估框架指南

评估结果分析 Skill — Claude Code 内置的 agent-eval-analyzer Skill 可自动分析评估结果,从工具选择、参数质量、调用效率、结果利用四个维度定位优化方向,输出结构化问题清单到 docs/agent-issues/。在 Claude Code 中直接说"分析 agent 评估结果"即可触发。

调试工具

src/novel_debug 提供 Web 调试界面,两个核心功能:

  • 工具测试场 — 直接调用 SearchEntity / SearchGraph / SearchCorpus,跳过 Agent 循环,快速验证工具行为
  • 轨迹构建器 — 手动模拟工具调用流程,生成 wire.jsonl,适用于构建评估黄金轨迹
uv run python -m novel_debug # 启动调试 Web 界面(默认 http://localhost:9004)

详细使用指南见 调试工具指南

Web 界面

web/ 提供浏览器端的完整对话体验:

技术栈: React 19 + TypeScript + Vite + Tailwind CSS + Radix UI

核心特性:

  • 书籍选择器 — 自动列出知识库书籍,切换分析目标
  • Agent 切换 — 启动时通过 --agent / --agent-file 指定
  • 会话管理 — 创建 / 删除 / 重命名 / 归档 / 分支(fork)
  • 实时对话 — WebSocket 流式通信,工具调用审批
  • 文件管理 — 上传 / 下载 / Git diff 查看
novel-cli web # 本地访问
novel-cli web --network # 局域网访问
novel-cli web --public --auth-token secret # 公网访问
novel-cli web --book 西游记 --agent default # 指定书籍和 Agent

详细使用指南见 Web 界面指南


模块导航

模块路径说明详细文档
核心 CLIsrc/novel_cli/Agent 运行时、LLM 抽象、会话管理CLI 参考
知识库工具src/novel_cli/tools/novel/4 大搜索工具CLI 参考
Web 界面web/React 前端 + FastAPI 后端Web 指南
评估框架packages/novel_eval/用例生成、执行评估、评分报告评估指南
可视化前端viewer-app/评估结果可视化评估指南
调试工具src/novel_debug/工具测试场、轨迹构建器调试指南
Agent 配置agents/外置 Agent 规格文件Agent 指南
配置文件~/.novel/config.tomlProvider / Model / 行为偏好配置详解

快速上手

# 1. 安装
uv sync
# 2. 配置环境变量
cp docker/.env.example docker/.env
# 编辑 docker/.env,修改 POSTGRES_PASSWORD 和 EMBEDDING_API_KEY# 3. 启动数据库cd docker && docker compose -p novel-cli up -d &&cd ..
# 4. 导入数据
uv run python scripts/import_pg_data.py tables create
uv run python scripts/import_pg_data.py import --book 西游记
# 5. 配置 Provider
novel-cli setup
# 6. 开始使用
novel-cli --book 西游记

完整安装和配置指南见 快速上手


致谢

本项目基于 Kimi CLI 二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。LICENSE (Apache 2.0) 和 NOTICE 均继承自上游项目。

About

Novel CLI 是一个基于多 LLM Provider 的**小说知识库 CLI Agent** 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Novel CLI

Novel CLI 是一个基于多 LLM Provider 的小说知识库 CLI Agent 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

本项目基于 Kimi CLI 进行二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。


架构概览

架构图

Novel CLI 采用五层架构设计:

  • 智能体层 — novel-unified-v3 Agent,五步查询管线 + 子智能体委托
  • 核心工具层 — 4 大知识库工具(SearchEntity / SearchGraph / SearchCorpus / ReadChapter)+ PostgreSQL 存储
  • 调试工具 — novel-debug Web 调试(工具测试场 + 轨迹构建器)
  • 评估框架 — novel-eval(用例生成 → 执行评估 → 评分报告)
  • 可视化前端 — viewer-app(Dashboard / CaseDetail / Compare / Trend)

数据流:用户提问 → Agent 五步管线 → 工具层 → PostgreSQL → 结果回注 → 回答用户


核心设计

Agent 系统

Novel CLI 的 Agent 系统基于 Soul 抽象层,支持内置和 YAML 声明式外置 Agent:

  • Soul 抽象层 — CLI / Web / ACP 三种界面统一入口,Agent 与前端解耦
  • 内置 Agentdefault 基础 Agent(--agent default
  • 外置 Agent — YAML 声明式配置,放置在 agents/ 目录

novel-unified-v3(主力版本)

v3 是当前主力 Agent,核心机制:

五步查询管线 — 严格的顺序检索,每步输出为下一步输入:

实体搜索 → 图谱概览 → 图谱详情 → 语料检索 → 章节精读

子智能体委托 — 多实体任务时自动触发:

准备(确认 entity_ids) → 分发(并行启动 novel-researcher) → 汇总(收集合并结果)

防幻觉机制 — 强制要求每条信息必须有检索来源,不得编造。

工具集(11 个):AskUserQuestion、ReadFile、WriteFile、StrReplaceFile、Glob、Grep、SearchEntity、SearchGraph、SearchCorpus、ReadChapter、Agent(子智能体委托,v3 新增)

novel-unified-v2 对比

维度v2v3
工具数量1011(新增 Agent)
子智能体不支持支持 novel-researcher
多实体处理串行查询并行委托
复杂任务能力中等
novel-cli --agent-file agents/novel-unified-v3/agent.yaml --book 西游记

详细的 Agent 开发指南见 Agent 开发指南

知识库工具链

src/novel_cli/tools/novel/ 提供四个专用工具,构成完整的小说知识库检索能力:

工具说明关键参数
SearchEntity实体搜索(人物、物品、势力)query, search_mode (vector/name), top_k
SearchGraph关系图谱查询entity_id, rel_type
SearchCorpus关键词语料检索keyword, chapter_ids, context_size
ReadChapter章节精读(句级范围)chapter_id, start, end

存储层基于 PostgreSQL,包含 EntityStorePG、GraphStorePG、CorpusStore 三个存储引擎。

工具间协作关系:

  • SearchEntity 返回 entity_id → 供 SearchGraph 使用
  • SearchGraph 返回 chapter_ids → 供 SearchCorpus 使用
  • ReadChapter 作为补充,在 SearchCorpus 结果不足时精读原文

评估框架

packages/novel_eval + viewer-app 构成完整的评估体系:

双评估任务:

任务评估对象评分维度
tool_usage工具使用质量tool_selection / param_quality / call_efficiency / result_utilization
skill_generation设定生成能力上述 4 维度 + setting_completeness + format_compliance

三步流程:

novel-eval generate --task tool_usage --book 凡人修仙传 # 用例生成
novel-eval run cases.yaml # 执行评估
novel-eval view # 可视化查看

viewer-app 四页面:

  • Dashboard — 雷达图 + 直方图 + 错误模式统计
  • CaseDetail — 消息链 + 工具时间线 + 评分拆解
  • Compare — 多 Agent 横评对比
  • Trend — 时间趋势 + 回归检测

详细使用指南见 评估框架指南

评估结果分析 Skill — Claude Code 内置的 agent-eval-analyzer Skill 可自动分析评估结果,从工具选择、参数质量、调用效率、结果利用四个维度定位优化方向,输出结构化问题清单到 docs/agent-issues/。在 Claude Code 中直接说"分析 agent 评估结果"即可触发。

调试工具

src/novel_debug 提供 Web 调试界面,两个核心功能:

  • 工具测试场 — 直接调用 SearchEntity / SearchGraph / SearchCorpus,跳过 Agent 循环,快速验证工具行为
  • 轨迹构建器 — 手动模拟工具调用流程,生成 wire.jsonl,适用于构建评估黄金轨迹
uv run python -m novel_debug # 启动调试 Web 界面(默认 http://localhost:9004)

详细使用指南见 调试工具指南

Web 界面

web/ 提供浏览器端的完整对话体验:

技术栈: React 19 + TypeScript + Vite + Tailwind CSS + Radix UI

核心特性:

  • 书籍选择器 — 自动列出知识库书籍,切换分析目标
  • Agent 切换 — 启动时通过 --agent / --agent-file 指定
  • 会话管理 — 创建 / 删除 / 重命名 / 归档 / 分支(fork)
  • 实时对话 — WebSocket 流式通信,工具调用审批
  • 文件管理 — 上传 / 下载 / Git diff 查看
novel-cli web # 本地访问
novel-cli web --network # 局域网访问
novel-cli web --public --auth-token secret # 公网访问
novel-cli web --book 西游记 --agent default # 指定书籍和 Agent

详细使用指南见 Web 界面指南


模块导航

模块路径说明详细文档
核心 CLIsrc/novel_cli/Agent 运行时、LLM 抽象、会话管理CLI 参考
知识库工具src/novel_cli/tools/novel/4 大搜索工具CLI 参考
Web 界面web/React 前端 + FastAPI 后端Web 指南
评估框架packages/novel_eval/用例生成、执行评估、评分报告评估指南
可视化前端viewer-app/评估结果可视化评估指南
调试工具src/novel_debug/工具测试场、轨迹构建器调试指南
Agent 配置agents/外置 Agent 规格文件Agent 指南
配置文件~/.novel/config.tomlProvider / Model / 行为偏好配置详解

快速上手

# 1. 安装
uv sync
# 2. 配置环境变量
cp docker/.env.example docker/.env
# 编辑 docker/.env,修改 POSTGRES_PASSWORD 和 EMBEDDING_API_KEY# 3. 启动数据库cd docker && docker compose -p novel-cli up -d &&cd ..
# 4. 导入数据
uv run python scripts/import_pg_data.py tables create
uv run python scripts/import_pg_data.py import --book 西游记
# 5. 配置 Provider
novel-cli setup
# 6. 开始使用
novel-cli --book 西游记

完整安装和配置指南见 快速上手


致谢

本项目基于 Kimi CLI 二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。LICENSE (Apache 2.0) 和 NOTICE 均继承自上游项目。

About

Novel CLI 是一个基于多 LLM Provider 的**小说知识库 CLI Agent** 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Novel CLI

Novel CLI 是一个基于多 LLM Provider 的小说知识库 CLI Agent 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

本项目基于 Kimi CLI 进行二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。


架构概览

架构图

Novel CLI 采用五层架构设计:

  • 智能体层 — novel-unified-v3 Agent,五步查询管线 + 子智能体委托
  • 核心工具层 — 4 大知识库工具(SearchEntity / SearchGraph / SearchCorpus / ReadChapter)+ PostgreSQL 存储
  • 调试工具 — novel-debug Web 调试(工具测试场 + 轨迹构建器)
  • 评估框架 — novel-eval(用例生成 → 执行评估 → 评分报告)
  • 可视化前端 — viewer-app(Dashboard / CaseDetail / Compare / Trend)

数据流:用户提问 → Agent 五步管线 → 工具层 → PostgreSQL → 结果回注 → 回答用户


核心设计

Agent 系统

Novel CLI 的 Agent 系统基于 Soul 抽象层,支持内置和 YAML 声明式外置 Agent:

  • Soul 抽象层 — CLI / Web / ACP 三种界面统一入口,Agent 与前端解耦
  • 内置 Agentdefault 基础 Agent(--agent default
  • 外置 Agent — YAML 声明式配置,放置在 agents/ 目录

novel-unified-v3(主力版本)

v3 是当前主力 Agent,核心机制:

五步查询管线 — 严格的顺序检索,每步输出为下一步输入:

实体搜索 → 图谱概览 → 图谱详情 → 语料检索 → 章节精读

子智能体委托 — 多实体任务时自动触发:

准备(确认 entity_ids) → 分发(并行启动 novel-researcher) → 汇总(收集合并结果)

防幻觉机制 — 强制要求每条信息必须有检索来源,不得编造。

工具集(11 个):AskUserQuestion、ReadFile、WriteFile、StrReplaceFile、Glob、Grep、SearchEntity、SearchGraph、SearchCorpus、ReadChapter、Agent(子智能体委托,v3 新增)

novel-unified-v2 对比

维度v2v3
工具数量1011(新增 Agent)
子智能体不支持支持 novel-researcher
多实体处理串行查询并行委托
复杂任务能力中等
novel-cli --agent-file agents/novel-unified-v3/agent.yaml --book 西游记

详细的 Agent 开发指南见 Agent 开发指南

知识库工具链

src/novel_cli/tools/novel/ 提供四个专用工具,构成完整的小说知识库检索能力:

工具说明关键参数
SearchEntity实体搜索(人物、物品、势力)query, search_mode (vector/name), top_k
SearchGraph关系图谱查询entity_id, rel_type
SearchCorpus关键词语料检索keyword, chapter_ids, context_size
ReadChapter章节精读(句级范围)chapter_id, start, end

存储层基于 PostgreSQL,包含 EntityStorePG、GraphStorePG、CorpusStore 三个存储引擎。

工具间协作关系:

  • SearchEntity 返回 entity_id → 供 SearchGraph 使用
  • SearchGraph 返回 chapter_ids → 供 SearchCorpus 使用
  • ReadChapter 作为补充,在 SearchCorpus 结果不足时精读原文

评估框架

packages/novel_eval + viewer-app 构成完整的评估体系:

双评估任务:

任务评估对象评分维度
tool_usage工具使用质量tool_selection / param_quality / call_efficiency / result_utilization
skill_generation设定生成能力上述 4 维度 + setting_completeness + format_compliance

三步流程:

novel-eval generate --task tool_usage --book 凡人修仙传 # 用例生成
novel-eval run cases.yaml # 执行评估
novel-eval view # 可视化查看

viewer-app 四页面:

  • Dashboard — 雷达图 + 直方图 + 错误模式统计
  • CaseDetail — 消息链 + 工具时间线 + 评分拆解
  • Compare — 多 Agent 横评对比
  • Trend — 时间趋势 + 回归检测

详细使用指南见 评估框架指南

评估结果分析 Skill — Claude Code 内置的 agent-eval-analyzer Skill 可自动分析评估结果,从工具选择、参数质量、调用效率、结果利用四个维度定位优化方向,输出结构化问题清单到 docs/agent-issues/。在 Claude Code 中直接说"分析 agent 评估结果"即可触发。

调试工具

src/novel_debug 提供 Web 调试界面,两个核心功能:

  • 工具测试场 — 直接调用 SearchEntity / SearchGraph / SearchCorpus,跳过 Agent 循环,快速验证工具行为
  • 轨迹构建器 — 手动模拟工具调用流程,生成 wire.jsonl,适用于构建评估黄金轨迹
uv run python -m novel_debug # 启动调试 Web 界面(默认 http://localhost:9004)

详细使用指南见 调试工具指南

Web 界面

web/ 提供浏览器端的完整对话体验:

技术栈: React 19 + TypeScript + Vite + Tailwind CSS + Radix UI

核心特性:

  • 书籍选择器 — 自动列出知识库书籍,切换分析目标
  • Agent 切换 — 启动时通过 --agent / --agent-file 指定
  • 会话管理 — 创建 / 删除 / 重命名 / 归档 / 分支(fork)
  • 实时对话 — WebSocket 流式通信,工具调用审批
  • 文件管理 — 上传 / 下载 / Git diff 查看
novel-cli web # 本地访问
novel-cli web --network # 局域网访问
novel-cli web --public --auth-token secret # 公网访问
novel-cli web --book 西游记 --agent default # 指定书籍和 Agent

详细使用指南见 Web 界面指南


模块导航

模块路径说明详细文档
核心 CLIsrc/novel_cli/Agent 运行时、LLM 抽象、会话管理CLI 参考
知识库工具src/novel_cli/tools/novel/4 大搜索工具CLI 参考
Web 界面web/React 前端 + FastAPI 后端Web 指南
评估框架packages/novel_eval/用例生成、执行评估、评分报告评估指南
可视化前端viewer-app/评估结果可视化评估指南
调试工具src/novel_debug/工具测试场、轨迹构建器调试指南
Agent 配置agents/外置 Agent 规格文件Agent 指南
配置文件~/.novel/config.tomlProvider / Model / 行为偏好配置详解

快速上手

# 1. 安装
uv sync
# 2. 配置环境变量
cp docker/.env.example docker/.env
# 编辑 docker/.env,修改 POSTGRES_PASSWORD 和 EMBEDDING_API_KEY# 3. 启动数据库cd docker && docker compose -p novel-cli up -d &&cd ..
# 4. 导入数据
uv run python scripts/import_pg_data.py tables create
uv run python scripts/import_pg_data.py import --book 西游记
# 5. 配置 Provider
novel-cli setup
# 6. 开始使用
novel-cli --book 西游记

完整安装和配置指南见 快速上手


致谢

本项目基于 Kimi CLI 二次开发,继承了其 CLI Agent 核心框架、Soul 抽象层、Web 界面等基础设施。LICENSE (Apache 2.0) 和 NOTICE 均继承自上游项目。

About

Novel CLI 是一个基于多 LLM Provider 的**小说知识库 CLI Agent** 工具。支持智谱 AI、Kimi、Anthropic、OpenAI、Google GenAI、OpenRouter 等多个平台,提供交互式 Shell、Web 界面、ACP 协议等多种使用方式。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages