gemini-writer
基于Gemini 3 Flash的自主写作代理,支持百万token上下文的长篇小说创作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于Gemini 3 Flash的自主写作代理,支持百万token上下文的长篇小说创作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2025年初,一位独立开发者 Doriandarko 在深夜里陷入了困境:他正在创作一部长篇科幻小说,但灵感断断续续,每次重新提笔都要花大量时间回顾前面的情节。更糟糕的是,每当故事写到关键转折点,思路就像被卡住了一样再也推进不下去。
他尝试过各种 AI 写作辅助工具——让 ChatGPT 生成情节大纲、用 Claude 润色段落文字——但这些工具都有一个共同的局限:它们只能被动响应你的指令,无法主动推进一个需要300页以上、贯穿多条故事线的长篇叙事。你需要不断告诉AI"接下来该怎么写",这个过程本身就打断了创作的心流状态。
于是他写了一个 Python 脚本,让 Gemini 3 Flash 成为真正的"写作代理"——不仅能理解用户的创作意图,还能自主规划章节、创建文件、管理上下文,在长达百万 token 的创作空间中持续推进故事。
这个脚本,就是 Gemini Writing Agent。
Gemini Writing Agent 的本质是一个基于 ReAct(Reasoning + Acting)模式的自主代理系统,与 AutoGPT、Claude Code 等知名代理框架一脉相承。但它将代理能力聚焦在一个垂直场景:长篇创意写作。
项目的核心文件结构非常精简:writer.py 是主程序入口,utils.py 负责工具定义和令牌估算,tools/ 目录下是三个核心工具的实现——文件创建、Markdown 写入、上下文压缩。
整个代理运行循环的设计值得玩味:
用户输入提示词
↓
Gemini Thinking Mode 推理("我需要先做什么?")
↓
决定调用工具 → create_project / write_file / compress_context
↓
执行工具 → 创建文件夹 / 写入Markdown / 压缩对话历史
↓
将工具结果反馈给模型 → 继续推理下一步
↓
(循环迭代,最多300轮)
这种设计背后的洞察是:写作是一个需要大量中间状态管理的任务。AI不仅要生成文字,还要记住已经写了什么、当前在哪个章节、还剩多少创作空间——而这些状态都需要通过外部工具来维护,而不是全部塞进 prompt。
Gemini Writing Agent 充分利用了 Gemini 1M token 的超大上下文窗口,这是一个非常大胆的设计决策。
项目将压缩阈值设置为 90 万 token,这意味着在触发压缩之前,AI可以"看到"几乎整部小说的全部内容——包括每个章节的细节、人物的性格变化、埋下的伏笔是否回收。这种能力在传统 Transformer 架构中是不可想象的,因为 4K/8K/32K 的上下文窗口根本无法容纳一部长篇小说的全部信息。
上下文压缩工具的实现也颇为精巧。它不会简单地截断早期对话,而是调用 Gemini 本身对历史内容进行摘要,生成一个压缩版上下文文件,其中保留了关键情节节点、人物设定和未解悬念。这样即使在写作进行到中后期,AI依然对故事全局有清晰认知。
项目支持三种创作格式:长篇小说、单本书籍、短篇小说集。这三种格式在生成逻辑上有细微差异——短篇集需要 AI 在多个相对独立的故事之间保持风格一致性,而长篇小说则需要更强的跨章节情节连贯性。
Recovery Mode(恢复模式)则体现了对长周期创作场景的深刻理解:当脚本意外中断(比如终端崩溃、关机),用户可以通过 --recover 参数加载之前保存的上下文摘要文件,从中断处继续创作,而不需要重新开始。
项目依赖非常精简:仅 google-genai(Gemini 官方 SDK)、httpx(HTTP 客户端)和 python-dotenv(环境变量管理)。这种极简主义选择让项目安装过程异常顺畅——一条 uv pip install -r requirements.txt 即可完成所有依赖安装。
核心模型使用 gemini-3-flash-preview,这是 Google 在 2025 年初发布的预览版本,支持 Thinking Mode(思考模式)。Thinking Mode 允许模型在生成正式回复之前先生成内部推理链,这对需要复杂规划的写作任务尤为重要——AI可以在"内心独白"中梳理情节逻辑,确认逻辑自洽后再输出文字。
代码质量方面,虽然项目只有约 500 行 Python 代码,但模块划分清晰、注释完整、类型提示充分,体现了开发者良好的工程习惯。唯一的缺憾是完全没有测试套件(requirements.txt 中没有任何测试依赖),这也是当前版本的一个明显短板。
作为一个纯命令行工具,Gemini Writing Agent 的部署体验极为简洁:
环境要求: Python 3.10+、一个有效的 Gemini API Key。无需 GPU、无需 Docker、不需要任何服务器资源——它就是一个在你本地终端运行的脚本。
安装步骤: 复制 .env.example 为 .env,填入 GEMINI_API_KEY(从 Google AI Studio 获取),运行 uv pip install -r requirements.txt,完成。全程不超过 3 分钟。
使用方式: 直接 python writer.py "你的创作指令" 或进入交互模式输入提示词。对于有经验的用户来说,上手几乎是零门槛的。
局限之处: 没有 Web UI,对于不熟悉命令行的用户有一定门槛。另外由于纯本地运行,每个用户的 API 调用成本由自己承担(Gemini API 按 token 计费),长篇小说的创作可能产生可观的 API 费用。
Gemini Writing Agent 的出现,折射出 AI 应用正在从"工具"向"代理"演进的趋势。传统的 AI 写作辅助是"你说我做"的单次交互模式,而自主代理则意味着 AI 能够在给定目标后自主规划、执行、调整——这实际上是向真正的"AI写作者"迈进了一步。
这个项目虽然代码量不大,但它是少数几个真正将 Agent 能力用于创意写作而非代码生成的实验性项目之一。它的意义不在于最终产出的文学作品质量(这取决于模型能力),而在于验证了一种可能性:AI不仅能辅助人类写作,还能独立承担长周期、复杂规划的创作任务。
随着 Gemini、Claude 等模型的上下文窗口持续扩大、推理能力不断增强,这类工具的能力上限也将水涨船高。如果你对 AI 创作有浓厚兴趣,这个项目是一个值得研究源码、亲手实验的优秀起点。