Skip to content

Repository files navigation

Storyforge-Agent

storyforge-agent 是一个默认调用外部大模型的小说写作后端,包含 FastAPI API、多 Agent 写作工作流、本地 RAG 记忆,以及可选的 Vite + React 工作台。当前是一个初步版本,ai对话调用子agent,还有一些问题,只能等到有空再进行修改。当前的创作工作流已经基本跑得通,如果还有bug要等后面再进行修改了。

功能

  • 多 Agent 写作工作流,支持世界观构建、大纲生成、角色模拟、章节起草、一致性检查、设定抽取,以及改写/续写流程。
  • 通过 Chroma 提供本地长期记忆和 RAG;也提供 mock embedding,便于离线开发。
  • 默认读取 .env 中的真实 LLM 配置;没有可用密钥或本地模型地址时会回退到 mock。
  • 可选配置 OpenAI 兼容接口、Anthropic 和 DashScope,用于真实模型调用。
  • 运行时支持 books/<book_id>/ 下的多书工作区。
  • 可选 React 工作台,用于本地 API 调试。

环境要求

  • Python 3.11+
  • Node.js 20+,仅可选前端需要
  • 可写的项目目录。应用会创建 memories/outputs/logs/rag_db/books/workflow_runs/workflow_sessions/ 等运行时目录。

快速开始

安装 Python 依赖:

python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt

创建本地环境配置:

cp .env.example .env

启动后端:

export NOVEL_AGENT_API_TOKEN=dev-token
python -m uvicorn api.routes:app --host 127.0.0.1 --port 8000

打开:

  • 状态页:http://127.0.0.1:8000/status
  • API 文档:http://127.0.0.1:8000/docs

大多数 API 端点都需要 x-novel-agent-token 请求头:

curl -H "x-novel-agent-token: dev-token" http://127.0.0.1:8000/roles

CLI 演示

CLI 演示会运行一个完整工作流,并把运行时输出写入项目目录。默认使用 .env/环境变量中的真实 LLM 配置:

python main.py demo

如果需要离线 mock 演示:

python main.py demo --mock

前端工作台

先启动后端,然后运行:

cd frontend
npm install
export VITE_NOVEL_AGENT_API_TOKEN=dev-token
npm run dev

如果后端运行在非默认端口:

export VITE_API_BASE_URL=http://127.0.0.1:8001
npm run dev

便捷启动脚本

macOS:

./start-dev.command --no-browser

Windows PowerShell:

.\start-dev.ps1 -NoBrowser

启动脚本会在需要时生成本地 API token,并让后端读取 .env/环境变量中的模型配置。

真实提供商配置

.env.example 复制为 .env,只填写你需要的值。请保持 .env 私有。

常用变量:

USE_REAL_LLM=true
USE_MOCK_LLM=false
USE_MOCK_EMBEDDING=false
LLM_PROVIDER=openai
LLM_BASE_URL=
LLM_MODEL=
LLM_API_KEY=
ANTHROPIC_API_KEY=
DASHSCOPE_API_KEY=
NOVEL_AGENT_API_TOKEN=dev-token

模型配置 UI 中的提供商密钥可使用如下环境变量:

NOVEL_AGENT_PROVIDER_API_KEY_DEEPSEEK=

config/model_config.example.json 展示了不含密钥的提供商元数据。

仓库结构

api/              FastAPI schema 和路由
agents/           Agent 实现
core/             设置、LLM 客户端、提示词加载、日志和工具函数
core/prompt_templates/
                  工作流所需的内置提示词模板
memory/           基于 JSON 的记忆/目录存储
rag/              Embedding、Chroma 向量库和检索代码
services/         服务层和工作流编排
frontend/         可选 Vite + React 工作台
tools/            可选导入/迁移辅助工具
docs/             公共 API 说明
skills/           项目 skill 文档

About

一个ai创作网文程序,基于rag检索冲突与固定工作流

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages