onto-agent
🌌 OntoAgent
Modern Engineering & Learning RAG Pipeline
基于 LangChain + LangGraph + ChromaDB + 混合检索 (Dense + BM25 + RRF) 的全链路工程级检索增强生成与自反思智能体系统。
📖 项目背景与设计哲学
在构建企业级 RAG 系统时,初学者与工程团队常常遇到三大核心痛点:
专有名词与型号漏检:纯向量检索(Dense Retrieval)依靠余弦相似度,对特定错误码(如
504 Gateway Timeout)、系统术语(如Cache-Aside、Raft、P0事故)经常匹配失灵。上下文信息割裂:传统定长切块(Fixed Chunking)往往将段落中途切断,丢失了章节标题和父级业务上下文。
模型幻觉与答非所问:传统单向线性 Chain(检索 $\rightarrow$ 塞入 Prompt $\rightarrow$ 生成)缺乏自省与纠错能力,一旦召回了无关噪音,大模型容易凭空捏造。
OntoAgent 的解决方案:
打造一套最小闭环、具备真实落地能力且学习曲线友好的 RAG 全链路工程系统:
结构感知切分:保留 Markdown 标题层级路径并注入元数据;
双路融合检索:Chroma 稠密语义检索 + BM25 稀疏关键字检索,由 RRF (Reciprocal Rank Fusion) 倒数排名融合算法统一定位;
LangGraph Self-RAG:通过状态机实现“相关度自审 $\rightarrow$ 自适应查询改写 $\rightarrow$ 约束生成 $\rightarrow$ 幻觉校验”的完整反思闭环;
统一模型协议:全面兼容 OpenAI 标准协议,无缝接入 DeepSeek、阿里云百炼 (Bailian)、硅基流动或本地 Ollama。
Related MCP server: code-intel
🏛️ 架构全景图
graph TD
subgraph Ingestion["1. 数据摄入与结构解析"]
Files["文档源 (Markdown / TXT / PDF)"] --> Loader["DocumentLoader"]
Loader --> Splitter["HierarchicalSplitter"]
Splitter --> EnrichedChunks["结构增强切片 (注入 heading_path 与元数据)"]
end
subgraph Storage["2. 存储与多路索引"]
EnrichedChunks --> Chroma["ChromaDB 本地向量库 (Dense Embedding)"]
EnrichedChunks --> BM25["BM25 倒排索引 (Sparse Keyword Index)"]
end
subgraph Retrieval["3. 混合检索与 RRF 融合"]
UserQuery["用户查询"] --> DenseSearch["向量相似度检索"]
UserQuery --> SparseSearch["BM25 关键词匹配"]
Chroma --> DenseSearch
BM25 --> SparseSearch
DenseSearch & SparseSearch --> RRF["RRF 倒数排名融合 (Reciprocal Rank Fusion)"]
RRF --> Candidates["Top-K 高质候选上下文"]
end
subgraph AgenticGraph["4. LangGraph Self-RAG 智能体工作流"]
Candidates --> GradeDocs["节点 1: 文档相关性自检"]
GradeDocs -->|无有效证据 & 未超重试上限| RewriteQuery["节点 2: 查询自适应改写 (Query Rewrite)"]
RewriteQuery --> UserQuery
GradeDocs -->|命中相关证据| Generate["节点 3: 约束生成 (带明确引用标号 [1][2])"]
Generate --> CheckHallucination["节点 4: 事实幻觉校验"]
CheckHallucination --> FinalAnswer["最终高质量交付结果"]
end🚀 快速上手
1. 环境准备
推荐使用 Python 3.10+ 环境:
git clone https://github.com/your-username/Onto-agent.git
cd Onto-agent
# 安装依赖
pip install -r requirements.txt
# 以可编辑模式安装当前包
pip install -e .2. 配置环境变量
复制配置模板并填入您的模型 API Key(支持 DeepSeek / 阿里云百炼 / 硅基流动 / 本地 Ollama 等):
cp .env.example .env在 .env 中根据您的实际 Provider 填写:
OPENAI_API_KEY=your_api_key_here
OPENAI_API_BASE=https://api.deepseek.com/v1
LLM_MODEL=deepseek-chat
# Embedding 配置 (留空则默认复用上述配置,也可使用硅基流动 BGE-M3 或 OpenAI text-embedding-3-small)
EMBEDDING_MODEL=text-embedding-3-small💻 命令行使用 (CLI)
OntoAgent 提供了直观美观的终端交互工具:
1. 文档入库 (Ingest)
将技术文档、操作手册或设计文档解析切块并存入本地知识库:
onto-agent ingest ./data/samples控制台将输出切片数量及 Chroma / BM25 索引统计。
2. 单次检索问答 (Query)
执行单次问答,查看 LangGraph 智能体的完整推理轨迹、相关度打分与引用来源:
onto-agent query "分布式系统的断路器熔断条件是什么?"3. 终端多轮交互式对话 (Chat)
进入沉浸式知识问答模式:
onto-agent chat4. 知识库状态与清空
# 查看知识库切片总量与当前配置
onto-agent status
# 清空本地向量库与 BM25 倒排索引
onto-agent reset📚 阶梯式教学实战教程 (tutorials/)
本项目为 RAG 初学者提供了 4 个递进式独立实验脚本,每个脚本均可单文件直接运行:
教程脚本 | 核心内容 | 学习目标 |
Naive RAG 50行极简跑通 | 彻底搞懂 Document -> Splitter -> Chroma -> Retrieval -> Prompt 基础全链路。 | |
分块策略与元数据增强 | 直观对比固定字数切块与 Markdown 标题层级切块的差异,理解元数据在消除语义漂移中的价值。 | |
多路召回与 RRF 融合 | 剖析专有名词场景下 BM25 与向量检索的互补性,运行并计算 RRF 倒数排名融合打分。 | |
LangGraph Self-RAG 状态机 | 掌握 StateGraph、Node、Conditional Edge 设计,观察查询自适应改写与防幻觉机制。 |
运行任意教程:
python tutorials/01_naive_rag.py
python tutorials/02_chunking_and_metadata.py
python tutorials/03_hybrid_retrieval_rrf.py
python tutorials/04_self_rag_langgraph.py🧪 自动化测试
运行测试套件验证全链路各组件:
pytest tests/test_rag.py -v📜 开源协议
本项目采用 Apache-2.0 许可证。
This server cannot be deployed
Maintenance
Related MCP Connectors
Code intelligence platform for AI agents. 20 tools for architecture, security & impact analysis.
Codebase intelligence for AI agents — dead code, blast radius, ownership.
AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Related MCP Servers
- AlicenseBqualityCmaintenanceTransforms codebases into structural knowledge graphs for AI agents and developers, providing precise architectural awareness and dependency mapping.1537MIT
- AlicenseNot gradedqualityCmaintenanceProvides semantic code search and code insights via a knowledge graph, enabling AI to understand, navigate, and modify complex projects with deep dependency and architecture analysis.MIT
- AlicenseNot gradedqualityDmaintenanceSupercharges AI coding agents with semantic code intelligence, providing pre-built knowledge graphs for surgical context, faster answers, and fewer tool calls.MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI coding agents with persistent architectural memory of codebases, enabling impact analysis, test generation, and code generation with reduced token usage.MIT