类似Openai的DeepResearch,还以写教案,写基金,写报告,只需开发自己的搜索引擎即可。
WriterAgent 是一个基于大语言模型的智能论文综述写作智能体,旨在通过一个直观的 Web 界面,引导用户高效完成从主题确定、大纲生成到内容撰写和二次编辑的全过程。
撰写的示例文章: 城市绿地对居民心理健康的积极影响:机制、量化与规划策略.docx
| 主页 | 大纲生成 |
![]() |
![]() |
| 内容撰写 | 内容编辑 |
![]() |
![]() |
- 智能大纲生成: 根据输入的主题,智能生成结构化、逻辑清晰的综述大纲。
- 自动化内容撰写: 基于确认后的大纲,多智能体协作完成各章节内容的详细撰写。
- 内容二次编辑: 在生成内容后,可通过右键菜单调用模型进行局部内容的修改和润色。
- 一键导出: 支持将最终完成的综述内容导出为
.docx文件。
本项目采用前后端分离的微服务架构,由多个独立的智能体(Agent)协作完成复杂的写作任务。
graph TD
subgraph Frontend
U[用户输入主题]
end
subgraph Backend Services
M[Main API Gateway]
O[大纲 Agent]
C[内容 Agent]
R[(检索服务)]
E[检查 Agent]
end
subgraph Output
F[最终文稿 .docx]
end
U --> M
M --> O
O --> R
M --> C
C --> R
C --> X{内容检查}
X -- 不合格 --> E
E --> C
X -- 合格 --> F
WriterAgent/
├── backend/ # 后端服务
│ ├── main_api/ # API 网关
│ ├── main_outline/ # 大纲生成 Agent
│ ├── main_content/ # 内容生成 Agent
│ └── search_api/ # 统一搜索服务
│ └── mock_api/ # 直接模拟体验,代替上面的4个API,只启动这个和前端即可模拟
├── frontend_nextjs/ # 前端应用 (Next.js)
├── train/ # AI 模型训练脚本
├── doc/ # 文档和项目图片
└── docker-compose.yml # Docker 编排文件
- 添加右键编辑的Agent
- 整理训练代码
- 前端兼容适配Meraid流程图
- 前端: Next.js, React, TypeScript, Tailwind CSS
- 后端: Python, FastAPI
- AI/LLM: Google Gemini, LangGraph, Agent Development Kit (ADK)
- 部署: Docker, Docker Compose
推荐使用 Docker 进行一键部署,这是最简单快捷的方式。
git clone https://github.com/johnson7788/WriterAgent
cd WriterAgentcustom_model.md 在启动服务前,您需要配置必要的 API 密钥。
-
项目中
backend/下的每个服务目录(main_api,main_outline,main_content,search_api)都包含一个env_template文件。 -
您需要为 每一个 服务复制一份
.env文件,并填入您的 API 密钥。示例 (在项目根目录执行):
# 为 main_api 创建 .env 文件 cp backend/main_api/env_template backend/main_api/.env # 为 main_outline 创建 .env 文件 cp backend/main_outline/env_template backend/main_outline/.env # ...为其他后端服务重复此操作
-
编辑
.env文件,例如backend/main_api/.env,并填入对应的API。
完成上述配置后,执行以下命令来构建并启动所有服务:
普通启动
cd backend
python start_backend.py
# 或者docker启动
docker-compose up --build -d服务启动成功后,打开浏览器并访问 http://localhost:3000。
如果您希望对代码进行修改和调试,可以采用手动方式分别启动前后端服务。
- Python: 3.11+
- Node.js: 18.x+
- Git
# 1. 安装所有后端服务的依赖
# (建议在独立的虚拟环境中操作)
pip install -r backend/requirements.txt
# 2. 配置环境变量
# 参照 "快速入门"部分的第 3 步,为每个后端服务创建并配置 .env 文件。
# 3. 依次启动各个后端服务
# 每个服务都需要一个独立的终端窗口
# 启动 Main API (端口 7800)
python backend/main_api/main.py
# 启动 Outline Agent (端口 10050)
python backend/main_outline/main_api.py
# 启动 Content Agent (端口 10051)
python backend/main_content/main_api.py
# 启动 Search API (端口 10052)
python backend/search_api/main.py# 1. 进入前端目录并安装依赖
cd frontend_nextjs
npm install
# 2. 启动前端开发服务器
npm run dev打开浏览器并访问 http://localhost:3000。
如何保持匀速输出内容,即使后端按段落间隔输出。 queue_average.py
- 添加右键编辑正文的接口
- 内部和外部知识库的结合(ragflow)
欢迎各种形式的贡献!如果您有任何想法或建议,请随时提交 Pull Request 或创建 Issue。
完全FREE
如果您在使用中遇到问题或有任何疑问,欢迎通过以下方式联系我:




