enterprise-knowledge-mcp
企业知识助手
一个智能体AI企业知识助手,使用RAG、LangGraph、MCP、RAGAS、Ollama和LangSmith回答企业政策文档中的问题。
该系统从企业PDF中检索相关信息,使用LangGraph工作流生成基于事实的响应,使用RAGAS评估响应,并通过LangSmith提供可观测性。
1. 项目概述
企业知识助手旨在使用企业文档中包含的信息回答自然语言问题。
该应用不依赖LLM的预训练知识,而是采用检索增强生成工作流:
加载企业PDF文档。
将文档拆分为更小的块。
将块转换为嵌入向量。
将嵌入向量存储在ChromaDB中。
将用户问题与知识库进行语义匹配。
LangGraph检索代理通过MCP集成获取相关上下文。
响应代理基于检索到的上下文生成答案。
评估代理使用RAGAS评估生成的答案。
LangSmith提供端到端追踪和可观测性。
知识来源
该项目使用以下企业文档:
Remote_Work_Policy.pdfEmployee_Handbook.pdf
Related MCP server: Corporate Tools MCP Server
2. 主要特性
企业文档问答
检索增强生成(RAG)
企业文档语义搜索
ChromaDB向量数据库
HuggingFace嵌入向量
LangGraph代理编排
自定义MCP服务器
基于MCP工具的企业知识检索
LangGraph检索代理主动使用MCP
Ollama LLM推理
使用
gpt-oss:120b-cloud生成响应RAGAS评估
忠实度评估
答案相关性评估
LangSmith追踪和可观测性
逐节点LangGraph执行可视化
来源归属
模块化Python架构
3. 架构概览
flowchart TD
A[User Question] --> B[LangGraph Orchestrator]
B --> C[Retriever Agent]
C --> D[MCP Client]
D --> E[Custom MCP Server]
E --> F[search_enterprise_knowledge]
F --> G[ChromaDB Vector Search]
G --> H[Relevant Document Chunks]
H --> C
C --> I[Response Agent]
I --> J[gpt-oss:120b-cloud]
J --> K[Evaluator Agent]
K --> L[RAGAS]
L --> M[Final Answer + Evaluation]
B -. tracing .-> N[LangSmith]高层流程
User Question
|
v
LangGraph
|
v
Retriever Agent
|
v
MCP Client
|
v
MCP Server
|
v
search_enterprise_knowledge
|
v
ChromaDB
|
v
Retrieved Context
|
v
Response Agent
|
v
gpt-oss:120b-cloud
|
v
Evaluator Agent
|
v
RAGAS
|
v
Final Answer4. 技术栈
技术 用途
Python 核心应用
LangChain LLM和RAG组件
LangGraph 代理工作流编排
ChromaDB 向量数据库
HuggingFace 文档嵌入向量
Ollama LLM推理接口
gpt-oss:120b-cloud 响应生成
qwen3:4b 评估模型
RAGAS RAG评估
MCP 基于工具的知识访问
LangSmith 可观测性和追踪
PyPDF PDF文档加载
python-dotenv 环境配置
5. 项目结构
enterprise-knowledge-assistant/
│
├── data/
│ ├── Remote_Work_Policy.pdf
│ └── Employee_Handbook.pdf
│
├── chroma_db/
│
├── mcp_server/
│ └── server.py
│
├── src/
│ ├── agents/
│ │ ├── retriever_agent.py
│ │ ├── response_agent.py
│ │ └── evaluator_agent.py
│ │
│ ├── rag/
│ │ ├── loader.py
│ │ ├── embeddings.py
│ │ ├── vectorstore.py
│ │ └── retriever.py
│ │
│ ├── graph.py
│ ├── state.py
│ └── config.py
│
├── scripts/
│ ├── ingest.py
│ └── run.py
│
├── screenshots/
│ ├── EKA1.png
│ ├── EKA2.png
│ ├── EKA3.png
│ ├── EKA4.png
│ ├── EKA5.png
│ ├── EKA6.png
│ └── EKA7.png
│
├── .env
├── .gitignore
├── requirements.txt
└── README.md将
.env保持在源代码控制之外。API密钥和机密信息绝不能提交到GitHub。
6. RAG设计
6.1 文档来源
知识库包含企业PDF文档:
Remote_Work_Policy.pdf
Employee_Handbook.pdf
Leave_Policy.pdfPDF使用pypdf加载。
每个页面都带有来源和页码元数据进行处理,以便将检索到的信息与其来源文档关联。
6.2 文档加载
摄取管道为:
PDF Documents
|
v
PyPDF
|
v
Page-level Text Extraction
|
v
Source + Page Metadata加载器逐页提取文本并存储:
文档文本
来源文件名
页码
6.3 分块策略
该项目使用RecursiveCharacterTextSplitter。
当前配置:
chunk_size = 800
chunk_overlap = 120重叠有助于保留相邻块之间的上下文。
分块有助于:
提高检索精度
减少不必要的上下文
保持提示词可控
保留有意义的政策章节
6.4 嵌入模型
该项目使用:
BAAI/bge-small-en-v1.5通过HuggingFaceEmbeddings实现。
嵌入向量在本地使用CPU配置生成,并在相似度搜索前进行归一化。
6.5 向量数据库
该项目使用:
ChromaDB集合:
enterprise_knowledge持久化向量数据库:
./chroma_db6.6 检索
检索器对ChromaDB执行语义相似度搜索。
当前默认检索数量为:
TOP_K = 4检索到的块作为上下文传递给响应代理。
7. LangGraph设计
LangGraph编排智能体AI工作流。
图
START
|
v
Retriever Agent
|
v
Response Agent
|
v
Evaluator Agent
|
v
END7.1 节点1 --- 检索代理
职责
为用户的问题检索相关的企业知识。
处理过程
Question
|
v
MCP Client
|
v
MCP Server
|
v
search_enterprise_knowledge
|
v
RAG / ChromaDB
|
v
Relevant Context输出
检索到的上下文
来源信息
检索代理在正常LangGraph执行期间主动调用MCP工具。
7.2 节点2 --- 响应代理
职责
使用用户问题和检索到的企业上下文生成最终答案。
模型
gpt-oss:120b-cloud输入
用户问题
检索到的上下文
输出
基于事实的自然语言响应。
7.3 节点3 --- 评估代理
职责
评估生成的答案。
指标
忠实度
答案相关性
评分和解释被添加到最终应用结果中。
8. MCP集成
该项目包含一个用于企业知识检索的自定义MCP服务器。
MCP服务器
mcp_server/server.pyMCP服务器使用MCP Python SDK实现。
MCP工具
search_enterprise_knowledge
使用自然语言查询搜索企业知识库。
示例:
search_enterprise_knowledge(
query="What are the key requirements for employees working remotely?"
)get_document_sources
返回可用的企业文档来源。
8.1 LangGraph主动使用MCP
这是项目的关键要求。
MCP集成在正常LangGraph执行期间被主动使用。它不仅仅是独立的服务器。
执行流程为:
LangGraph Retriever Agent
|
v
MCP Client
|
v
MCP Server
|
v
search_enterprise_knowledge
|
v
RAG Search
|
v
Retrieved Context应用输出明确确认了调用:
NODE 1: RETRIEVER AGENT
Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.这证明LangGraph节点在执行期间主动使用了MCP集成。
8.2 验证MCP工具
从项目根目录:
python -c "import asyncio; from mcp_server.server import mcp; tools=asyncio.run(mcp.list_tools()); print([t.name for t in tools])"预期输出:
['search_enterprise_knowledge', 'get_document_sources']9. RAGAS评估
RAGAS评估生成响应的质量。
收集的指标
忠实度
衡量生成的答案是否得到检索上下文的支持。
答案相关性
衡量生成的响应是否回答了用户的问题。
评估流程
Retrieved Context
|
v
Generated Answer
|
+----------------------+
| |
v v
Faithfulness Answer Relevancy
| |
+----------+-----------+
|
v
RAGAS Result评估示例
最近一次成功的应用执行产生:
Faithfulness: 0.9500
Answer Relevancy: 0.9500
Interpretation: Excellent评分可能因问题、检索到的上下文、生成的响应、评估模型和评估条件而异。
10. LangSmith可观测性
LangSmith为智能体AI工作流提供可观测性。
它可以检查:
LangGraph执行
各个图节点
LLM调用
输入和输出
执行延迟
评估结果
工作流行为
示例配置:
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=<your-langsmith-api-key>
LANGSMITH_PROJECT=enterprise-knowledge-assistant不要将API密钥提交到GitHub。
11. 设置说明
前提条件
Python 3.10+
Ollama
Git
创建虚拟环境
Windows
python -m venv venv
venv\Scripts\activateLinux/macOS
python3 -m venv venv
source venv/bin/activate安装依赖
python -m pip install -r requirements.txt配置环境
在项目根目录创建.env:
OLLAMA_BASE_URL=http://localhost:11434
LLM_MODEL=gpt-oss:120b-cloud
EVALUATOR_MODEL=qwen3:4b
EMBEDDING_MODEL=BAAI/bge-small-en-v1.5
VECTOR_DB_PATH=./chroma_db
COLLECTION_NAME=enterprise_knowledge
TOP_K=4
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=<your-langsmith-api-key>
LANGSMITH_PROJECT=enterprise-knowledge-assistant12. 文档摄取
将企业PDF放入:
data/
├── Remote_Work_Policy.pdf
└── Employee_Handbook.pdf运行:
python -m scripts.ingest摄取管道为:
PDF
|
v
Text Extraction
|
v
Chunking
|
v
Embedding Generation
|
v
ChromaDB13. 运行应用
摄取之后:
python -m scripts.run您将看到:
============================================================
ENTERPRISE KNOWLEDGE ASSISTANT
============================================================
Ask your question:输入一个自然语言问题。
14. 示例问题
What are the key requirements for employees working remotely?What is the remote work policy?What are the rules regarding working from another city or country?What information security requirements apply to remote workers?What should an employee do if internet or power issues prevent them from working remotely?15. 预期执行
一次成功的运行遵循以下顺序:
============================================================
NODE 1: RETRIEVER AGENT
============================================================
Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.
============================================================
NODE 2: RESPONSE AGENT
============================================================
Generated answer:
...
============================================================
NODE 3: EVALUATOR AGENT
============================================================
Running local evaluation...
EVALUATION RESULTS
----------------------------------------
Faithfulness: 0.9500
Answer Relevancy: 0.9500
Interpretation: Excellent最终结果包含:
问题
生成的答案
来源
RAGAS评分
评估解释
16. 证据和截图
将所有截图放入screenshots/目录。
EKA1 --- LangSmith可观测性
展示LangGraph工作流的LangSmith追踪和可观测性。

EKA2 --- 应用启动
展示应用启动和用户问题。

EKA3 --- RAGAS评估结果
展示RAGAS评估结果。

EKA4 --- 最终应用输出
展示应用生成的最终答案。

EKA5 --- MCP工具调用
展示检索代理调用:
Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.这是MCP在图执行期间被主动使用的直接证据。

EKA6 --- RAGAS评估和最终结果
展示评估代理、忠实度、答案相关性、解释和生成的结果。

EKA7 --- 最终输出、来源和RAGAS
展示最终答案、MCP来源信息和RAGAS评分。

17. 需求符合性
该项目在RAG、LangGraph、MCP、评估、可观测性和最终响应生成方面满足指定的企业知识助手需求。
需求 | 状态 | 实现 |
企业知识来源 | 已满足 | 使用PyPDF加载企业PDF文档,包括 |
RAG实现 | 已满足 | 文档使用递归文本拆分进行分块( |
LangGraph | 已满足 | 一个 |
MCP集成 | 已满足 | 自定义MCP服务器暴露 |
RAGAS评估 | 已满足 | 评估代理计算忠实度和答案相关性,并显示评估结果和解释。示例结果:0.95忠实度,0.95答案相关性 — 优秀。 |
可观测性 | 已满足 | LangSmith追踪提供对LangGraph执行、各个节点、LLM调用、输入、输出、延迟、检索到的上下文和评估结果的可视性。 |
图执行追踪 | 已满足 | 在应用输出和LangSmith中均捕获了检索代理、响应代理和评估代理的逐节点执行。 |
最终应用输出 | 已满足 | 应用生成基于事实的最终答案,包含用户问题、生成的响应、来源信息、RAGAS评分和评估解释。 |
总体状态
所有指定的项目需求均已实现并满足。
完整工作流为:
企业PDF → RAG检索 → MCP工具 → LangGraph智能体 → LLM响应 → RAGAS评估 → LangSmith可观测性 → 最终输出
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables hybrid search over policies using Reciprocal Rank Fusion and provides grounded, context-aware answers via a LangGraph agent with COSTAR prompting.3
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search HR policies, create IT support tickets, and send external emails with configurable security levels and human-in-the-loop validation.
- FlicenseNot gradedqualityCmaintenanceEnables querying company knowledge base using RAG, providing accurate answers from internal documents via MCP.
- FlicenseNot gradedqualityBmaintenanceEnables SQL query execution and knowledge base search via RAG agent through two tools.
Related MCP Connectors
Your company's brain for AI agents. Cited, permission-aware knowledge across every system.
Shared, permission-aware company context for AI agents, with provenance, approvals and audit.
Search your knowledge bases from any AI assistant using hybrid RAG.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Shruti-Gorhe/enterprise-knowledge-assistant'
If you have feedback or need assistance with the MCP directory API, please join our Discord server