项目简介
OpenSpec 是一个企业级 AI 专业长文档生成平台,采用 RAG + 三智能体工作流架构,适用于建筑设计、招投标、汽车维修、医疗等需要生成结构化长文档的行业场景。
- GitHub:github.com/zhuzhaoyun/OpenSpec
- 开源协议:GPLv3
要解决的问题
在建筑设计、招投标等行业,从业者需要频繁产出几十页甚至上百页的专业文档。这些文档必须引用行业标准、前后数据一致、格式符合模板要求。
直接用 ChatGPT / 通义千问等通用大模型生成存在以下问题:
- 上下文丢失:写到第 30 页时前面的数据已经'忘了',前后矛盾
- 幻觉严重:编造不存在的国标编号,张冠李戴引用条文
- 无审核机制:单个 AI 自己写自己审,发现不了自身错误
- 无知识库:不知道企业用的哪版规范、哪些设计参数
系统架构
整体架构
┌─────────────────────────────┐ │ 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 计数: 精确控制篇幅


