Skip to main content
Glama
Shruti-Gorhe

enterprise-knowledge-mcp

by Shruti-Gorhe

Корпоративный ассистент знаний

Агентный ИИ-ассистент корпоративных знаний, который отвечает на вопросы из корпоративных политик и документов, используя RAG, LangGraph, MCP, RAGAS, Ollama и LangSmith.

Система извлекает релевантную информацию из корпоративных PDF-файлов, использует рабочий процесс LangGraph для формирования обоснованного ответа, оценивает ответ с помощью RAGAS и обеспечивает наблюдаемость через LangSmith.


1. Обзор проекта

Корпоративный ассистент знаний предназначен для ответов на вопросы на естественном языке с использованием информации, содержащейся в корпоративных документах.

Вместо того чтобы полагаться только на предобученные знания LLM, приложение следует рабочему процессу генерации с расширенным поиском (Retrieval-Augmented Generation):

  1. Загружаются корпоративные PDF-документы.

  2. Документы разбиваются на более мелкие фрагменты.

  3. Фрагменты преобразуются в эмбеддинги.

  4. Эмбеддинги сохраняются в ChromaDB.

  5. Вопрос пользователя семантически сопоставляется с базой знаний.

  6. Агент-поисковик LangGraph получает релевантный контекст через интеграцию MCP.

  7. Агент ответа генерирует ответ, основанный на извлечённом контексте.

  8. Агент-оценщик оценивает сгенерированный ответ с помощью RAGAS.

  9. LangSmith обеспечивает сквозную трассировку и наблюдаемость.

Источники знаний

В проекте используются корпоративные документы, такие как:

  • Remote_Work_Policy.pdf

  • Employee_Handbook.pdf


Related MCP server: Corporate Tools MCP Server

2. Ключевые возможности

  • Ответы на вопросы по корпоративным документам

  • Генерация с учётом поиска (RAG)

  • Семантический поиск по корпоративным документам

  • Векторная база данных ChromaDB

  • Эмбеддинги HuggingFace

  • Оркестрация агентов LangGraph

  • Пользовательский MCP-сервер

  • Поиск корпоративных знаний на основе MCP-инструментов

  • Активное использование MCP агентом-поителем LangGraph

  • Инференс LLM через Ollama

  • gpt-oss:120b-cloud для генерации ответов

  • Оценка RAGAS

  • Оценка достоверности (Faithfulness)

  • Оценка релевантности ответа (Answer Relevancy)

  • Трассировка и наблюдаемость 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 Answer

4. Технологический стек

Технология Назначение


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.pdf

PDF-файлы загружаются с помощью 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_db

6.6 Поиск

Поисковик выполняет семантический поиск по близости в ChromaDB.

Текущее количество результатов поиска по умолчанию:

TOP_K = 4

Извлечённые фрагменты передаются агенту ответа в качестве контекста.


7. Дизайн LangGraph

LangGraph оркестрирует рабочий процесс агентного ИИ.

Граф

START
  |
  v
Retriever Agent
  |
  v
Response Agent
  |
  v
Evaluator Agent
  |
  v
END

7.1 Узел 1 — Агент-поитель

Обязанность

Извлекает релевантные корпоративные знания для вопроса пользователя.

Обработка

Question
   |
   v
MCP Client
   |
   v
MCP Server
   |
   v
search_enterprise_knowledge
   |
   v
RAG / ChromaDB
   |
   v
Relevant Context

Выходные данные

  • Извлечённый контекст

  • Информация об источниках

Агент-поитель активно вызывает MCP-инструмент во время обычного выполнения LangGraph.


7.2 Узел 2 — Агент ответа

Обязанность

Формирует окончательный ответ, используя вопрос пользователя и извлечённый корпоративный контекст.

Модель

gpt-oss:120b-cloud

Входные данные

  • Вопрос пользователя

  • Извлечённый контекст

Выходные данные

Обоснованный ответ на естественном языке.


7.3 Узел 3 — Агент-оценщик

Обязанность

Оценивает сгенерированный ответ.

Метрики

  • Достоверность (Faithfulness)

  • Релевантность ответа (Answer Relevancy)

Оценки и интерпретация добавляются в итоговый результат приложения.


8. Интеграция MCP

Проект включает пользовательский MCP-сервер для поиска корпоративных знаний.

MCP-сервер

mcp_server/server.py

MCP-сервер реализован с использованием 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 Активное использование MCP в LangGraph

Это ключевое требование проекта.

Интеграция 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 оценивает качество сгенерированного ответа.

Собираемые метрики

Достоверность (Faithfulness)

Измеряет, подтверждается ли сгенерированный ответ извлечённым контекстом.

Релевантность ответа (Answer Relevancy)

Измеряет, отвечает ли сгенерированный ответ на вопрос пользователя.

Поток оценки

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 обеспечивает наблюдаемость рабочего процесса агентного ИИ.

Он позволяет проверять:

  • Выполнение 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\activate

Linux/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-assistant

12. Загрузка документов

Поместите корпоративные PDF-файлы в:

data/
├── Remote_Work_Policy.pdf
└── Employee_Handbook.pdf

Запустите:

python -m scripts.ingest

Конвейер загрузки:

PDF
 |
 v
Text Extraction
 |
 v
Chunking
 |
 v
Embedding Generation
 |
 v
ChromaDB

13. Запуск приложения

После загрузки:

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

Показывает трассировку и наблюдаемость LangSmith для рабочего процесса LangGraph.

EKA1 - LangSmith Observability

EKA2 — Запуск приложения

Показывает запуск приложения и вопрос пользователя.

EKA2 - Application Startup

EKA3 — Результаты оценки RAGAS

Показывает результаты оценки RAGAS.

EKA3 - RAGAS Evaluation

EKA4 — Итоговый вывод приложения

Показывает итоговый ответ, сгенерированный приложением.

EKA4 - Final Output

EKA5 — Вызов MCP-инструмента

Показывает, как агент-поитель вызывает:

Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.

Это прямое доказательство того, что MCP активно используется во время выполнения графа.

EKA5 - MCP Tool Invocation

EKA6 — Оценка RAGAS и итоговый результат

Показывает агента-оценщика, достоверность, релевантность ответа, интерпретацию и сгенерированный результат.

EKA6 - RAGAS Evaluation

EKA7 — Итоговый вывод, источники и RAGAS

Показывает итоговый ответ, информацию об источниках MCP и оценки RAGAS.

EKA7 - Final Output and RAGAS


17. Соответствие требованиям

Проект удовлетворяет заданным требованиям корпоративного ассистента знаний по RAG, LangGraph, MCP, оценке, наблюдаемости и генерации итогового ответа.

Требование

Статус

Реализация

Источник корпоративных знаний

Выполнено

Корпоративные PDF-документы загружаются с помощью PyPDF, включая Remote_Work_Policy.pdf и Employee_Handbook.pdf, с сохранением метаданных источника и страницы.

Реализация RAG

Выполнено

Документы разбиваются на фрагменты с помощью рекурсивного разбиения текста (chunk_size=800, chunk_overlap=120), эмбеддинги создаются с помощью BAAI/bge-small-en-v1.5, сохраняются в ChromaDB, извлекаются через семантический поиск и передаются в LLM для генерации обоснованного ответа.

LangGraph

Выполнено

StateGraph организует рабочий процесс Агент-поитель → Агент ответа → Агент-оценщик с использованием общего состояния.

Интеграция MCP

Выполнено

Пользовательский MCP-сервер предоставляет search_enterprise_knowledge и get_document_sources. Агент-поитель LangGraph активно вызывает MCP-инструмент во время выполнения для извлечения корпоративных знаний.

Оценка RAGAS

Выполнено

Агент-оценщик вычисляет достоверность и релевантность ответа и отображает результаты оценки и интерпретацию. Пример результата: 0.95 достоверность, 0.95 релевантность ответа — отлично.

Наблюдаемость

Выполнено

Трассировка LangSmith обеспечивает видимость выполнения LangGraph, отдельных узлов, вызовов LLM, входных данных, выходных данных, задержки, извлечённого контекста и результатов оценки.

Трассировка выполнения графа

Выполнено

Поузловое выполнение фиксируется для агента-поителя, агента ответа и агента-оценщика как в выводе приложения, так и в LangSmith.

Итоговый вывод приложения

Выполнено

Приложение формирует обоснованный итоговый ответ, содержащий вопрос пользователя, сгенерированный ответ, информацию об источниках, оценки RAGAS и интерпретацию оценки.

Общий статус

Все заданные требования проекта реализованы и выполнены.

Полный рабочий процесс:

Корпоративные PDF → RAG-поиск → MCP-инструмент → агенты LangGraph → ответ LLM → оценка RAGAS → наблюдаемость LangSmith → Итоговый вывод

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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