5 个 AI Agent 协作,将专家经验与技术主题自动转化为结构化的企业知识文章。
输入: "为新人撰写RAG系统入门指南" → 输出: 12000字的知识文章,含案例类比与可运行代码
git clone https://github.com/daydreamer0213/KnowledgeFlow.git
cd KnowledgeFlow
pip install -r requirements.txt
cp .env.example .env # 编辑,填入 DEEPSEEK_API_KEY
streamlit run main.py浏览器打开 http://localhost:8501,输入你的知识主题,按提示确认每一步。
用户输入 → 需求对齐 → 知识树构建 → 主题规划 → Writer×N (并行) → Reviewer×N (并行)
HITL ✓ HITL ✓ HITL ✓ ↓
accept / retry
| Agent | 模型 | 职责 |
|---|---|---|
| 需求对齐 | Pro | 多轮对话收集知识领域、受众水平、内容目标 |
| 知识树构建 | Flash | 梳理知识领域,按认知顺序列出单一概念知识点 |
| 主题规划 | Flash | 将知识点归组为知识主题(≤5-7主题),每主题3个点 |
| 撰写 | Pro ×N并行 | 逐主题撰写:场景切入 → 案例类比 → 原理 → 代码示例 → 应用思考 |
| 审查 | Flash ×N并行 | 三级质量门:空内容拦截 → 清单审查 → 结构检查 |
- 人在回路 — 4 个审批节点,用户可以确认/修改中间产物
- 并行生产 — LangGraph
Send()fan-out,6 个主题同时撰写而非逐主题串行 - 三级审查 — Tier1 免费拦截空内容/超短内容;Tier2 跨主题结构审查;Tier3 逐主题内容审查;minor 不阻断
- 增量重试 — 只重写有问题的主题,复用审查结果
- 受众分层 — 入门受众 2400字/主题×5主题,进阶受众 2800字/主题×6主题,专家受众 3200字/主题×7主题
# 安装
pip install -r requirements.txt
# 开发测试(从项目根目录执行,python -m pytest 会自动把当前目录加入 PYTHONPATH)
pip install -r requirements-ci.txt # 带上 pytest
python -m pytest tests/ -v # 336 tests, ~2s
# 跳过集成测试
python -m pytest tests/ -m "not integration" -v
# 无头管线测试(全自动,不启动 UI)
python run_headless.py --timeout 600
# 启动
streamlit run main.py下面是一份由 KnowledgeFlow 真实跑通全流程后生成的 RAG 入门指南(输入:“我想学RAG,我是初学者,学到能够通过AI应用开发面试的程度”)。
- 生成耗时:约 180 秒
- 主题数:5 个
- 文章字数:约 11,900 字
- 审查结果:通过(3 个 minor 问题,未阻断)
大语言模型有两大短板:知识截止日和幻觉。知识截止日意味着模型训练完成后,世界仍在变化,它却一无所知。RAG(检索增强生成)同时解决这两个问题——不给模型"裸答",先帮它查资料再作答。
📄 查看完整生成文章 📊 查看流程摘要(JSON)
KnowledgeFlow/
├── main.py # Streamlit 入口
├── run_headless.py # 无头测试脚本
├── src/
│ ├── agents/
│ │ ├── nodes.py # 11 个 Agent/流程节点
│ │ └── prompts.py # 系统提示词
│ ├── graph/
│ │ ├── builder.py # LangGraph 图 + 路由
│ │ ├── state.py # KnowledgeFlowState
│ │ └── session.py # Streamlit ↔ LangGraph
│ ├── config.py # 深度规则、工具限制
│ ├── schemas.py # Pydantic 数据契约
│ ├── llm_utils.py # LLM 调用、JSON 提取
│ ├── monitor.py # Token 追踪 + JSONL 日志
│ ├── tools/ # Web 搜索、向量检索
│ ├── rag/ # ChromaDB + BGE + BM25
│ └── ui/ # Streamlit 组件
├── tests/ # 336 tests, ~2s
├── docs/design.md # 设计文档
├── examples/ # 真实运行样例输出
├── data/ # ChromaDB + SQLite (gitignored)
└── outputs/ # 生成知识文章 (gitignored)
详见 docs/design.md.