跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonSaaSAI算法

基于 LangGraph + RAGFlow 的三智能体长文档生成平台 OpenSpec

OpenSpec 是基于 LangGraph 和 RAGFlow 的企业级长文档生成平台,采用三智能体(Researcher、Generator、Auditor)工作流架构解决通用大模型在专业文档生成中上下文丢失、幻觉严重及缺乏审核的问题。系统通过 RAG 检索知识库确保内容准确性,结合 Prompt 管理和 API 接口支持灵活部署,适用于建筑、招投标、医疗等多个行业的结构化文档生成场景。

锁机制发布于 2026/3/23更新于 2026/9/109K 浏览
基于 LangGraph + RAGFlow 的三智能体长文档生成平台 OpenSpec

项目简介

OpenSpec 是一个企业级 AI 专业长文档生成平台,采用 RAG + 三智能体工作流架构,适用于建筑设计、招投标、汽车维修、医疗等需要生成结构化长文档的行业场景。

  • GitHub:github.com/zhuzhaoyun/OpenSpec
  • 开源协议:GPLv3

要解决的问题

在建筑设计、招投标等行业,从业者需要频繁产出几十页甚至上百页的专业文档。这些文档必须引用行业标准、前后数据一致、格式符合模板要求。

直接用 ChatGPT / 通义千问等通用大模型生成存在以下问题:

  1. 上下文丢失:写到第 30 页时前面的数据已经'忘了',前后矛盾
  2. 幻觉严重:编造不存在的国标编号,张冠李戴引用条文
  3. 无审核机制:单个 AI 自己写自己审,发现不了自身错误
  4. 无知识库:不知道企业用的哪版规范、哪些设计参数

系统架构

整体架构
 ┌─────────────────────────────┐ │ Knowledge Base (RAG) │ │ Standards / Cases / Docs │ └──┬────────────┬────────────┬─┘ │ │ │ query on query on query on demand demand demand │ │ │ ┌────────┐ ┌──────────▼─┐ ┌─────▼─────┐ ┌▼──────────┐ ┌────────┐ │ Input │──▶│ Researcher │──▶│ Generator │──▶│ Auditor │──▶│ Export │ │ │ │ │ │ │ │ │ │ │ └────────┘ └────────────┘ └─────▲─────┘ └─────┬─────┘ └────────┘ │ │ └── revise ──────┘ 
三智能体工作流

基于 LangGraph 构建有向图状态机,三个智能体各司其职,每个智能体在发现上下文不足时自主查询知识库:

1. Researcher(检索智能体)

从知识库检索规范条文、历史案例、参考资料。

researcher_tools = [retrieve_case, retrieve_standard]
researcher_llm = llm.bind_tools(researcher_tools)

循环控制:

  • MAX_RESEARCH_LOOPS = 3(硬性上限)
  • MIN_CONTENT_THRESHOLD = 1000(字符最小阈值)
  • 支持提前退出:内容充足 / 连续空结果 / LLM 判断资料足够

执行策略为两步式:先流式输出推理链(思考阶段),再生成 Tool Calls 调用检索工具(行动阶段)。

2. Generator(生成智能体)

基于检索上下文逐章生成内容。

核心能力:

  • 跨章节关联:提取已生成章节 extract_previous_chapters(),做参数一致性检查
  • 关联章节分析:find_related_chapters() 确保引用关系正确
  • 智能 Token 计数:calculate_available_tokens() 精确控制篇幅
  • 后处理:检测 XX、___ 等占位符替换为 [待填写]

上下文来源:从 Researcher 产出的 ToolMessage 中提取检索结果(最多保留 30 条)。

3. Auditor(校验智能体)

审核生成内容的质量。

auditor_tools = [retrieve_standard, retrieve_case]
auditor_llm = llm.bind_tools(auditor_tools)

五维度校验:

维度说明
逻辑一致性开头声明数量与表格数据是否匹配
参数合理性数值是否在规范允许范围内
规范符合性国标编号是否正确引用
内容完整性必要章节和数据是否完整
格式规范性符号、单位是否正确

校验结果:pass → 结束;revise → 带修改意见打回 Generator 重写。

控制参数:MAX_AUDIT_LOOPS = 1,MAX_AUDITOR_TOOL_CALLS = 5。

RAG 知识库

基于 RAGFlow 实现,提供两类检索工具:

@tooldefretrieve_case(query:str)->str:
    """从知识库检索历史案例"""
    return _retrieve_from_kb(query, CASE_KB_IDS, "案例库")

@tooldefretrieve_standard(query:str)->str:
    """从知识库检索行业规范"""
    return _retrieve_from_kb(query, STAND_KB_IDS, "规范库")

通用检索函数:

def _retrieve_from_kb(query, kb_ids, kb_name):
    rag_object = RAGFlow(api_key=RAGFLOW_API_KEY, base_url=RAGFLOW_BASE_URL)
    chunks = rag_object.retrieve(
        question=query,
        dataset_ids=kb_ids,
        page=1,
        page_size=10,
        similarity_threshold=0.55
    )
    # 返回格式:【来源:XXX | 相关度:0.95】内容...

支持动态知识库:set_kb_ids() 可在基础库上追加企业特定知识库,retrieve_from_project_kb() 支持按项目 ID 查询。

Prompt 管理

所有 Prompt 通过 Langfuse 统一管理:

prompt_manager = PromptManager()
researcher_prompt = prompt_manager.get_prompt("langchain_researcher")
generator_prompt = prompt_manager.get_prompt("construction_agent_system")
auditor_prompt = prompt_manager.get_prompt("langchain_auditor")

支持在线调整 Prompt,无需改代码重新部署。

API 接口
# 流式生成(单章节,支持审核)
POST /chat/stream
# 参数:message, project_id, template, enable_audit, document_id, chapter_name...

# 批量生成(多章节,非流式)
POST /chat/batch
# 简化流水线:Researcher → Generate,无 Auditor

技术栈

层级技术说明
前端Vue 3 + TypeScript + ViteSPA
后端Spring Boot 3 + Java 17RESTful API
AI 工作流Python + LangGraph + LangChain状态机式多智能体编排
知识检索RAGFlow向量检索,支持多知识库
Prompt & 可观测性LangfusePrompt 管理 + LLM 调用追踪 + 成本分析
数据库PostgreSQL项目和文档数据
部署Docker Compose一键部署全部服务

项目结构

apps/
├── web/ # Vue 3 前端
├── backend/ # Spring Boot 后端
└── agent/ # AI Agent(核心)
    ├── service/workflow/
    │   ├── construction_agent.py # 完整流程(Router + 三智能体)
    │   ├── batch_construction_agent.py # 批量生成(无 Auditor)
    │   └── rag_graph.py # RAG 简化流程
    ├── service/tools/
    │   └── construction_tools.py # RAG 检索工具
    └── api/
        └── workflow_api.py # API 端点

应用场景

领域知识库内容生成文档
建筑设计国标/地方标准、历史设计说明施工图设计说明、可研报告
招投标历史方案、施工规范、企业资质投标技术方案
汽车维修维修手册、故障案例、配件标准维修技术手册
医疗健康临床指南、诊疗规范临床试验报告

快速部署

git clone https://github.com/zhuzhaoyun/OpenSpec.git
cd OpenSpec
cp deploy/docker/.env.example deploy/docker/.env
# 编辑 .env,填入以下必要配置:
# RAGFLOW_API_KEY, RAGFLOW_BASE_URL, DASHSCOPE_API_KEY
cd deploy/docker
docker compose up -d

关键环境变量:

变量说明必填
RAGFLOW_API_KEYRAGFlow API 密钥是
RAGFLOW_BASE_URLRAGFlow 服务地址是
DASHSCOPE_API_KEYLLM API 密钥(默认通义千问)是
LANGFUSE_SECRET_KEYLangfuse 私钥否
LANGFUSE_PUBLIC_KEYLangfuse 公钥否

启动后访问 http://localhost 即可使用。

目录

  1. 项目简介
  2. 要解决的问题
  3. 系统架构
  4. 整体架构
  5. 三智能体工作流
  6. 1. Researcher(检索智能体)
  7. 2. Generator(生成智能体)
  8. 3. Auditor(校验智能体)
  9. RAG 知识库
  10. Prompt 管理
  11. API 接口
  12. 流式生成(单章节,支持审核)
  13. 参数:message, projectid, template, enableaudit, documentid, chaptername...
  14. 批量生成(多章节,非流式)
  15. 简化流水线:Researcher → Generate,无 Auditor
  16. 技术栈
  17. 项目结构
  18. 应用场景
  19. 快速部署
  20. 编辑 .env,填入以下必要配置:
  21. RAGFLOWAPIKEY, RAGFLOWBASEURL, DASHSCOPEAPIKEY

更多推荐文章

查看全部
  • VS Code Copilot 接入第三方 OpenAI 兼容模型实战
  • 前端预览 DOC 文件的两种方案及注意事项
  • 小米手机端 AI Agent 落地,重构智能家居底层逻辑
  • 用 Qt 6 和 C++ 做一个桌面天气预报程序
  • 默认安全治理实践:水平越权检测与前端安全防控
  • MySQL 联合查询详解:JOIN 类型与多表关联实战
  • LlamaFactory 大模型微调实战指南
  • 前端动画库深度解析:从 CSS 到 Framer Motion 与 GSAP
  • 腾讯混元 Image 2.1 GGUF 格式本地部署指南
  • 本地 AI 量化分析平台搭建:Docker 部署与波浪理论实战
  • Web 聊天室消息加解密方案详解
  • Flowise 实战:Web Scraping 与文档问答一体化方案
  • System Verilog 教程:从基础概念到高级验证
  • Rust 语言发展历程与核心特性深度解析
  • C++11 详解:列表初始化、右值引用与移动语义
  • 大模型 RAG 技术详解:架构、优势与实战案例
  • AIGC 电商实战:厘清品牌叙事与商品素材的 AI 应用边界
  • Python 复现 FactSet Revere 供应链断裂与重构指标测度
  • MC.JS WEBMC1.8 与传统 JavaScript 开发效率对比
  • OpenClaw 与 Telegram 机器人集成指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online