WriteHERE
WriteHERE 是一款开源的长文本生成框架,旨在通过模拟人类的自适应规划能力,彻底改变 AI 写作方式。传统 AI 写作工具往往受限于僵化的固定流程,难以应对复杂多变的创作需求;而 WriteHERE 则能动态拆解写作任务,实时调整策略,从而更灵活地完成小说创作或技术报告生成等长篇幅内容。
该项目的核心亮点在于其独特的“异构递归规划”机制。它不仅能将宏大的写作目标层层分解为可执行的子任务,还能无缝融合信息检索、逻辑推理与内容撰写三种关键能力。这种动态适应的过程让 AI 不再机械地按部就班,而是像人类作家一样,根据上下文语境随时优化写作路径。实测表明,WriteHERE 在虚构故事和非虚构报告的生成都显著优于当前主流方法。
鉴于其完全开源(MIT 协议)且代码架构透明,WriteHERE 特别适合 AI 研究人员、开发者以及对大模型应用有深度探索需求的技术团队使用。用户需要具备一定的编程基础(Python/Node.js),并配置相应的大模型 API 密钥即可部署。无论是希望复现前沿论文成果的研究者,还是想要构建自定义写作引擎的开发者,都能从中获得强大的技术支持与灵活的扩展空间。
使用场景
某科技公司的技术文档工程师需要在一周内完成一份包含竞品分析、架构对比及实施指南的复杂《年度 AI 基础设施技术白皮书》。
没有 WriteHERE 时
- 流程僵化:传统工具按固定模板线性生成,一旦中途发现数据缺失或逻辑断层,必须人工打断并重新调整全文结构,效率极低。
- 内容割裂:检索到的竞品信息与自身的推理分析往往脱节,导致报告前后观点不一致,需要大量人工校对来弥合逻辑鸿沟。
- 缺乏应变:在撰写过程中若需临时增加新的技术章节,原有工作流无法动态适应,往往导致整篇文档风格不统一或结构崩塌。
- 深度不足:生成的长文容易陷入车轱辘话,难以像人类专家那样将复杂的子任务拆解为层层递进的深度论述。
使用 WriteHERE 后
- 递归规划:WriteHERE 自动将白皮书拆解为“市场现状”、“技术选型”、“落地案例”等可管理的子任务,并按逻辑依赖关系有序执行,无需人工干预流程。
- 异构融合:在写作中实时调用搜索接口获取最新竞品数据,并将其与模型推理能力无缝结合,确保每一个论点都有据可依且逻辑自洽。
- 动态适应:当发现某个技术章节需要扩展时,WriteHERE 能即时调整后续写作计划,动态重组内容结构,保持全文风格与逻辑的高度连贯。
- 类人创作:模拟人类专家的写作思维,通过不断的“规划 - 执行 - 反思”循环,产出结构严谨、内容深度的专业长文,大幅减少后期修改成本。
WriteHERE 通过类人的自适应规划机制,将繁琐的长文写作转化为灵活的动态决策过程,显著提升了专业技术文档的生产质量与效率。
运行环境要求
- 未说明
未说明
未说明

快速开始
📝 WriteHERE
基于异构递归规划的开源写作项目
WriteHERE 是一个开源框架,通过类人自适应规划彻底革新长篇写作。与遵循僵化工作流的传统 AI 写作工具不同,WriteHERE 能够动态分解写作任务,并整合三大核心能力:
- 递归规划:将复杂写作任务拆解为可管理的子任务
- 异构集成:无缝结合检索、推理和创作
- 动态适应:根据上下文实时调整写作过程
我们的评估表明,该方法在小说写作和技术报告生成方面均持续优于当前最先进的方法。
🎉 最新消息
- [2025年9月] 我们的论文已被 EMNLP 2025 接受为口头报告。苏州见!🎊
🔍 概述
不同于依赖预设工作流程和僵化思维模式的传统方法,该框架:
- 通过交织递归任务分解与执行的规划机制,消除了工作流限制
- 通过整合不同类型的任务,促进异构任务分解
- 在写作过程中动态适应,类似于人类的写作行为
我们在小说写作和技术报告生成上的评估表明,该方法在所有评估指标上均持续优于当前最先进的方法。
🌐 开源理念
WriteHERE 的开发秉持以下核心原则:
- 完全开源:所有代码均在 MIT 许可证下免费提供使用、修改和分发
- 非商业性:专为研究和教育目的开发,不涉及商业利益
- 完全透明:整个系统架构和决策过程对用户完全公开
- 社区驱动:我们欢迎来自社区的贡献、反馈和协作改进
🚀 快速入门
前置条件
- Python 3.6+
- Node.js 14+(用于前端)
- API 密钥,包括:
- OpenAI(GPT 模型)
- Anthropic(Claude 模型)
- SerpAPI(用于报告生成中的搜索功能)
快速启动
您可以通过两种方式使用 WriteHERE:带可视化界面或不带可视化界面。
不带可视化界面运行
当您不需要实时可视化或希望将引擎用于批量处理时,这是更简单的方式。
- 设置环境:
python -m venv venv
source venv/bin/activate
pip install -v -e .
# 根据示例创建 api_key.env 文件
cp recursive/api_key.env.example recursive/api_key.env
# 编辑文件以添加您的密钥
nano recursive/api_key.env
- 直接运行引擎:
cd recursive
python engine.py --filename <input_file> --output-filename <output_file> --done-flag-file <done_file> --model <model_name> --mode <story|report>
生成故事的示例:
python engine.py --filename ../test_data/meta_fiction.jsonl --output-filename ./project/story/output.jsonl --done-flag-file ./project/story/done.txt --model gpt-4o --mode story
生成报告的示例:
python engine.py --filename ../test_data/qa_test.jsonl --output-filename ./project/qa/result.jsonl --done-flag-file ./project/qa/done.txt --model claude-3-sonnet --mode report
带可视化界面运行
此选项提供了一个 Web 界面,可实时可视化并监控写作过程。
- 一步式设置与启动:
./setup_env.sh # 一次性设置环境
./start.sh # 启动应用
这将:
- 创建一个干净的 Python 虚拟环境
- 安装所有必需的依赖项
- 在端口 5001 上启动后端服务器
- 在端口 3000 上启动前端
- 自动打开浏览器访问 http://localhost:3000
您也可以使用命令行参数自定义端口:
./start.sh --backend-port 8080 --frontend-port 8000
对于 Anaconda/Miniconda 用户
如果您使用 Anaconda 并遇到依赖冲突,请使用:
./run_with_anaconda.sh
该脚本会创建一个名为 'writehere' 的专用 Anaconda 环境,安装正确的依赖项并同时启动两个服务器。
您还可以通过此脚本自定义端口:
./run_with_anaconda.sh --backend-port 8080 --frontend-port 8000
手动安装
如果您更倾向于手动设置各个组件:
后端设置
- 创建 Python 虚拟环境:
python -m venv venv
source venv/bin/activate
- 安装主要依赖项:
pip install -v -e .
- 安装后端服务器依赖项:
pip install -r backend/requirements.txt
- 启动后端服务器:
cd backend
python server.py
若需使用自定义端口:
python server.py --port 8080
首页设置
- 安装前端依赖项:
cd frontend
npm install
- 启动前端开发服务器:
npm start
若需使用自定义端口:
PORT=8000 npm start
故障排除
如遇任何问题,请查阅 故障排除指南,获取常见问题及解决方案。
✨ 特性
- 递归任务分解:将复杂写作任务拆解为可管理的子任务
- 动态集成:无缝结合检索、推理和创作任务
- 自适应工作流:根据上下文和需求灵活调整写作过程
- 多用途应用:支持创意小说和技术报告生成
- 用户友好界面:直观的 Web 界面,便于交互
- 实时可视化:可查看智能体的工作“思考过程”
- 透明运行:所有智能体的决策和过程对用户可见
- 完全可定制:可根据需求修改提示词、参数和工作流
📂 项目结构
.
├── backend/ # 后端 Flask 服务器
├── frontend/ # React 前端
├── recursive/ # 核心引擎实现
│ ├── agent/ # 智能体实现及提示词
│ ├── executor/ # 任务执行模块
│ ├── llm/ # 语言模型集成
│ ├── utils/ # 工具函数和辅助程序
│ ├── cache.py # 缓存机制,提升效率
│ ├── engine.py # 核心规划与执行引擎
│ ├── graph.py # 任务图表示
│ ├── memory.py # 内存管理
│ ├── test_run_report.sh # 生成报告的脚本
│ └── test_run_story.sh # 生成故事的脚本
├── test_data/ # 测试用示例数据
└── start.sh # 一体化启动脚本
📊 实时任务可视化
使用可视化界面时,您可以实时查看任务执行过程。当智能体在生成内容时,您可以看到:
- 任务的层次化分解
- 当前正在处理的任务
- 每个任务的状态(待处理、进行中、已完成)
- 每个任务的类型(检索、推理、组合)
这种可视化能够让您深入了解智能体的“思考过程”,帮助您理解复杂的写作任务是如何被逐步拆解并解决的。
👥 贡献说明
我们欢迎社区成员为 WriteHERE 的改进贡献力量!以下是几种参与方式:
代码贡献
- fork 仓库,并在
main分支上创建您的功能分支 - 按照安装说明搭建开发环境
- 进行代码修改,确保遵循项目的编码风格和规范
- 为新增功能添加测试
- 运行测试套件,确保所有测试通过
- 提交 pull request,并清晰描述您的改动及其优势
Bug 报告与功能请求
- 使用 Issues 标签页报告 bug 或提出新功能建议
- 对于 bug,请提供详细的复现步骤、预期行为和实际行为
- 对于功能请求,请描述您希望实现的功能以及它将如何使项目受益
文档改进
- 通过修复错误、添加示例或澄清说明来完善文档
- 文档更改可以像代码更改一样通过 pull request 提交
社区支持
- 在 Issues 区域回答其他用户的问题
- 与社区分享您的使用经验和案例
开发指南
- 遵循现有代码风格和架构
- 为新函数、类和模块编写文档
- 编写清晰的提交信息,解释更改的目的
- 保持 pull request 的单一性,每次只针对一个功能或 bug 修复
通过为 WriteHERE 做出贡献,您同意您的贡献将采用项目的 MIT 许可证进行授权。
📚 引用
如果您在研究中使用了本代码,请引用我们的论文:
@misc{xiong2025heterogeneousrecursiveplanning,
title={超越提纲:基于语言模型的自适应长文写作中的异构递归规划},
author={Ruibin Xiong 和 Yimeng Chen 和 Dmitrii Khizbullin 和 Mingchen Zhuge 和 Jürgen Schmidhuber},
year={2025},
eprint={2503.08275},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2503.08275}
}
⚖️ 许可证
本项目为开源项目。您可以自由地将代码用于研究、教育和个人目的,并对其进行修改和分发。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
opencode
OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。