Перейти к основному содержимому
AI, RAG, База знаний, MCP

KB-агент — корпоративная база знаний с AI-поиском

Внутренний инструмент

AI-агент по базе знаний: гибридный поиск FTS + pgvector по 1 200+ заметкам Obsidian, пополнение с валидацией через Telegram, 8 MCP-инструментов. Смотреть кейс →

МалыйВ работеВнутренний AI
MCPPostgreSQLpgvectorFTSRAGObsidianTelegramOllama
О проекте

KB-агент превращает корпоративную базу знаний (1 200+ заметок в Obsidian) в живой инструмент: MCP-сервер с 8 инструментами даёт гибридный поиск — полнотекстовый FTS + векторный pgvector с RRF-слиянием — из Claude и любого MCP-клиента. База синхронизируется в PostgreSQL ежечасно, новые знания проходят контур валидации: предложение → папка-инбокс → подтверждение руководителем в Telegram. Сотрудники задают вопросы боту и получают RAG-ответы со ссылками на источники.

1 200+заметок в базе
MCP-инструментов
размерность эмбеддингов
1 часцикл синхронизации
Функциональность

Что реализовано.

Гибридный поиск

FTS с русской морфологией + векторный pgvector, слияние через RRF: находит и по словам, и по смыслу.

Синк Obsidian → PG

Ежечасный md5-диф, чанкинг ~1400 символов, индексация. Канон знаний остаётся в Obsidian.

Валидация пополнения

Предложение → инбокс → уведомление в Telegram → approve/reject. Канон не засоряется.

RAG-ответы в боте

Вопрос текстом или голосом — ответ со ссылками на заметки-источники и оценкой 👍/👎.

Доступ из любого MCP-клиента

Claude Code, Claude Desktop и другие MCP-клиенты работают с базой через единый сервер.

Карта пробелов

Журнал вопросов и еженедельный отчёт: чего в базе не хватает — то и пишем.

Процессы

Ключевые сценарии.

Пользовательские сценарии и потоки данных

Вопрос сотрудника

От вопроса в Telegram до ответа с источниками.

Вопрос (текст/голос)
Гибридный поиск
RAG-ответ
Ссылки на источники
Оценка 👍/👎
Журнал вопросов

Пополнение базы

Контур валидации новых знаний.

Предложение
Черновик в инбоксе
Уведомление в Telegram
Approve / Reject / С правками
Заметка в каноне
Мгновенная индексация

Синхронизация

Ежечасное обновление поискового индекса.

md5-диф заметок
Чанкинг
Эмбеддинги
FTS-индекс
Готово к поиску
Архитектура

Роли и интерфейсы.

Сотрудник

Задаёт вопросы боту, предлагает знания в базу

Владелец базы

Валидирует пополнения в Telegram, разбирает пробелы

AI-агент

Ищет и читает знания через MCP при решении рабочих задач

Технологии

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

Ядро
  • Python
  • MCP-сервер (8 инструментов)
  • PostgreSQL
Поиск
  • FTS (русская морфология)
  • pgvector (1536d)
  • RRF-слияние
  • чанкинг ~1400 символов
AI
  • Локальные эмбеддинги (Ollama)
  • LLM для RAG-ответов
  • распознавание голосовых
Интеграции
  • Obsidian (канон базы)
  • Telegram-бот
  • Claude / MCP-клиенты

Безопасность

  • Приватные заметки исключаются из поиска и чтения команды
  • Доступ сотрудников — по списку, только в личных сообщениях бота
  • Запись в канон — только через валидацию владельцем
  • Эмбеддинги считаются локально — содержимое базы не уходит во внешние API

AI-функции

  • Векторный поиск по смыслу: локальные эмбеддинги 1536 измерений через Ollama
  • RAG-ответы со ссылками на заметки-источники
  • Распознавание голосовых вопросов
  • Антидубль при пополнении: похожие заметки подсвечиваются до одобрения
  • Деградация до FTS при недоступности эмбеддингов — поиск работает всегда

Проблема

База знаний в Obsidian росла годами — 1 200+ заметок, — но поиск по ней работал только у того, кто её писал.

Сотрудники переспрашивали одно и то же: ответ есть в базе, но найти его быстрее было «спросить у руководителя».

AI-ассистенты не видели корпоративные знания — каждый диалог начинался с чистого листа.

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

Решение

MCP-сервер с 8 инструментами — поиск, чтение, предложение, согласование и синхронизация знаний доступны из Claude и любого MCP-клиента.

Гибридный поиск — полнотекстовый FTS (русская морфология) + векторный поиск pgvector (1536-мерные эмбеддинги, локальная модель через Ollama), результаты сливаются через Reciprocal Rank Fusion.

Синхронизация Obsidian → PostgreSQL ежечасно — md5-диф находит изменённые заметки, текст режется на чанки ~1400 символов и индексируется; канон остаётся в Obsidian.

Контур валидации пополнения — предложение кладёт черновик в папку-инбокс и шлёт уведомление в Telegram; владелец одним нажатием одобряет (заметка оформляется по стандарту и попадает в раздел) или отклоняет.

RAG-ответы в Telegram-боте — сотрудник задаёт вопрос текстом или голосом (распознавание речи), получает ответ со ссылками на заметки-источники.

Журнал вопросов — все вопросы и оценки ответов логируются: видно пробелы базы, по ним база целенаправленно пополняется.

Результаты

  • 1 200+ заметок стали доступны всей команде через поиск на естественном языке.
  • Знания подключены к AI: Claude отвечает с опорой на корпоративную базу, а не на общие сведения.
  • Пополнение базы стало командным — без риска засорить канон: всё проходит валидацию в Telegram.
  • При недоступности эмбеддингов поиск деградирует до FTS — сервис не падает.
  • Еженедельный отчёт о пробелах показывает, каких знаний не хватает команде.
Сторителлинг

Вот представьте…

История одного запроса

1
Вопрос, который задавали уже трижды

Новый сотрудник пишет: «А как у нас принято оформлять доступ к серверу клиента?» Ответ есть в базе знаний. Где-то. Среди 1 200 заметок. Быстрее спросить руководителя — и он в четвёртый раз пишет одно и то же.

2
База есть — пользы нет

Базу вели годами: кейсы, плейбуки, инструкции. Но поиск по точному слову не находит «по смыслу», а структуру папок помнит только автор. Знания компании заперты в заметках, как в сейфе без ключа.

3
Агент открывает сейф

Теперь вопрос задаётся боту — хоть текстом, хоть голосом. Гибридный поиск (слова + смысл) находит нужные заметки, LLM собирает ответ со ссылками на источники. А Claude через MCP видит ту же базу при решении рабочих задач.

4
База растёт сама — но под контролем

Сотрудник пишет боту: «добавь в базу: …» — черновик падает в инбокс, владельцу приходит уведомление с кнопками. Одно нажатие — и знание в каноне, оформленное по стандарту. А еженедельный отчёт подсказывает, каких знаний команде не хватает.

Глоссарий AI-терминов

Ключевые понятия для понимания проекта

GEO-оптимизация

GEO

Оптимизация контента для AI-поисковиков (ChatGPT, Perplexity, Claude).

AI-агенты

AI-AGENTS

Автономные AI-системы, выполняющие задачи самостоятельно без контроля человека.

E-E-A-T

EEAT

Критерии Google: опыт, экспертиза, авторитетность, надёжность. Важны для SEO и GEO.

LLM (Large Language Model)

LLM

Нейросеть для понимания и генерации текста (GPT-5, Claude, Gemini).

RAG (Retrieval-Augmented Generation)

RAG

Технология для работы AI с вашими данными: документами, базами знаний.

Промпт (Prompt)

PROMPT

Текстовая инструкция для AI. Качество промпта = качество результата.

MVP (Minimum Viable Product)

MVP

Минимальная версия продукта для проверки гипотезы на пользователях.

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

TECH-STACK

Набор технологий проекта: языки, фреймворки, базы данных, облако.

Интеграция

INTEGRATION

Связывание AI с системами компании: CRM, ERP, 1C, мессенджеры.

Развёртывание (Deployment)

DEPLOYMENT

Запуск решения в production с мониторингом и масштабированием.

FAQ

Частые вопросы.

Два метода работают параллельно: полнотекстовый поиск PostgreSQL с русской морфологией и векторный поиск pgvector по эмбеддингам (1536 измерений, локальная модель через Ollama). Результаты сливаются через Reciprocal Rank Fusion: короткие запросы с ключевыми словами усиливает FTS, длинные естественные вопросы вытягивает векторная ветка.

Obsidian — удобный редактор и формат (Markdown + ссылки), который переживёт любую смену технологий. PostgreSQL служит поисковым индексом: ежечасная синхронизация по md5-диффу переносит изменения, а записи в базу идут через тот же канал с валидацией.

Никто не пишет в канон напрямую. Предложение попадает в папку-инбокс со статусом «черновик», владельцу приходит Telegram-уведомление с похожими заметками (антидубль). Одобрение оформляет заметку по стандарту и помещает в раздел; отклонение — удаляет.

Эмбеддинги считаются локально (Ollama на собственном сервере), содержимое заметок при индексации не покидает контур компании. Приватные заметки помечаются и исключаются из поиска и чтения команды.

Нужен похожий проект?

Обсудим вашу задачу

Расскажите о вашей задаче — обсудим, как мы можем помочь. Рекомендации предоставляем по запросу.

Автор материала
Сергей Цветков
Основатель «ДИДЖИТАЛ-ПРО ТЕХ» (Digital-Pro Tech)
20 лет в IT и бизнесе. 150+ проектов по внедрению AI и BI. Практический опыт, а не теория.
Опубликовано: 10 июня 2026
Обновлено: 15 марта 2026