Локальный поиск по внутренним материалам нужен не только компаниям с формальным запретом на облачные сервисы. Его нехватку замечают, когда инструкции лежат в файлах, обсуждения — в Discourse, задачи — в Jira, а нужный ответ приходится собирать вручную из нескольких систем. Обычный поиск может находить слова, но не всегда помогает связать разные формулировки с одним понятием. А передача документов внешнему ассистенту добавляет отдельный вопрос: какие данные покидают устройство и где они обрабатываются.
Тема стала практической: Terraphim предлагает искать по графу знаний локально, а не отправлять запрос и материалы в облачный сервис. OpenNet описывает проект как AI-ассистента и поисковый движок, в котором индексация, поиск и обход графа выполняются на устройстве пользователя. Это меняет границы обработки данных, но само по себе не доказывает, что любые сведения безопасно индексировать: важны их чувствительность, доступ к устройству и состав подключённых источников.
Для владельца сайта такой инструмент может быть полезен не как замена мониторингу, а как способ быстрее находить внутренние инструкции, решения и накопленные знания команды. При этом результат зависит не только от того, что поиск работает локально: граф и тезаурус должны содержать нужные понятия и связи, а источники — подходить под реальные задачи. В статье разберём, как устроен этот подход, где он применим и какие вопросы стоит проверить до внедрения.
Что Terraphim обрабатывает на устройстве пользователя
Индекс и поиск остаются локальными
Terraphim строит индекс из подключённых источников и выполняет поиск на устройстве пользователя. Найденные совпадения связываются с понятиями локального графа знаний, по которому система может обходить связанные узлы. Это не означает, что весь исходный материал превращается в один файл: индекс, граф и документы — разные части обработки, а доступность конкретных данных зависит от настроенных источников.
В проекте используется Rust; WebAssembly позволяет запускать соответствующую логику в среде браузера. Это описывает способ выполнения кода, но не гарантирует, что любой источник подключается напрямую из браузера или что вся обработка всегда происходит только там. Для владельца данных важна фактическая конфигурация: где находятся исходные файлы и индекс, какие компоненты запускаются локально и какие сетевые обращения делает приложение.
Локальность не равна гарантии безопасности
По заявлению проекта, пользовательские данные не отправляются наружу, а телеметрия не собирается. Это снижает риск передачи содержимого поисковых запросов и документов внешнему сервису, но само по себе не подтверждает безопасность устройства или окружения. Локальный индекс может быть доступен тем, у кого есть доступ к учётной записи, диску или резервным копиям; его защита зависит от настроек операционной системы и хранения.
- Проверьте, какие каталоги и источники включены в индекс: локальная обработка не делает лишние документы подходящими для поиска.
- Учитывайте копии индекса и графа знаний: они тоже могут содержать сведения, извлечённые из внутренних материалов.
- Не считайте отсутствие телеметрии доказательством отсутствия любых сетевых соединений: это отдельное свойство, которое следует проверять по конфигурации и поведению приложения.
Код Terraphim открыт под лицензией Apache 2.0, разработка ведётся с 2023 года, последний год — с привлечением AI. Открытый исходный код позволяет изучать реализацию, но не заменяет проверку сборки, зависимостей и настроек конкретного развёртывания.
Как граф знаний заменяет векторный поиск
От совпадения слов к понятию
Векторный поиск сопоставляет запрос и документы по близости их представлений. Terraphim использует другой механизм: текст запроса проверяется по ролевому тезаурусу, а найденные выражения связываются с понятиями графа знаний. Графовые эмбеддинги здесь детерминистические: понятие определяется структурой связей, а не результатом вероятностного преобразования текста.
Ролевой тезаурус задаёт, какие термины и варианты формулировок относятся к нужной области. Алгоритм Ахо—Корасик ищет эти шаблоны в тексте. Когда шаблон совпадает, система получает не просто фрагмент строки, а связанное с ним понятие; по графу можно учитывать отношения этого понятия с другими.
Что даёт графовая схема
- Явные связи. Результат можно соотнести с понятиями и отношениями, заданными в графе, а не только с общей близостью формулировок.
- Повторяемость сопоставления. При неизменных тексте, тезаурусе и графе совпадения определяются теми же правилами.
- Зависимость от словаря. Если нужный термин, его вариант или связь не внесены в тезаурус и граф, система может не распознать смысл, даже когда человеку он очевиден.
Это не означает, что графовый подход точнее векторного для любого запроса. Он особенно понятен там, где команда может описать предметную область терминами и связями. Но синонимы, неоднозначные слова и новые формулировки требуют подходящего тезауруса; сама структура графа не восполняет отсутствующие знания. Поэтому качество результата определяется не только алгоритмом поиска, но и тем, насколько полно и аккуратно подготовлены тезаурус и граф.
Почему скорость совпадения не равна качеству ответа
В Terraphim заявлено сопоставление текста с понятиями графа знаний менее чем за миллисекунду. Это характеристика этапа поиска совпадений, а не всего пути от запроса до ответа. Она не описывает время индексации, обработки запроса целиком или генерации ответа языковой моделью.
Быстро найти совпадение — ещё не значит найти нужное
Алгоритм может быстро проверить текст на соответствие шаблонам, но полезность результата зависит от того, какие понятия и связи заданы в графе. Если нужного термина нет в тезаурусе, он описан слишком узко или связан не с теми понятиями, поиск может не обнаружить релевантный материал. И наоборот: широкое или неоднозначное совпадение способно поднять документ, который формально подходит, но не отвечает на вопрос.
На результат влияют и сами данные: полнота индекса, качество извлечения текста из файлов и то, насколько формулировка запроса соотносится с терминами графа. Поэтому скорость сопоставления не служит мерой полноты поиска или точности ответа. Эти свойства нужно оценивать отдельно — на материалах и запросах, характерных для конкретной команды.
Что проверять при оценке
- Покрытие понятий. Есть ли в графе термины, которыми сотрудники обозначают нужные темы, включая используемые внутри компании варианты формулировок.
- Качество связей. Помогают ли связи между понятиями находить документы по смыслу задачи, а не только по совпавшим словам.
- Релевантность выдачи. Возвращает ли поиск полезные материалы на реальных запросах и не подменяет ли точный ответ случайным совпадением.
Если граф не отражает лексику команды, ускорение сопоставления этого не исправит: оно лишь быстрее обработает заданные правила. А если выдача релевантна, но ответ формирует отдельный компонент, его качество также нельзя вывести из времени поиска.
Какие источники можно искать одним запросом
Terraphim объединяет поиск по нескольким типам данных: локальным файлам, Confluence, Jira, Discourse, почте и grep.app. Это не означает, что все источники становятся одной базой или подключаются одинаково. Смысл в другом: запрос можно направить к разрозненным материалам, не переключаясь вручную между хранилищами и интерфейсами.
Что даёт объединение источников
Внутренние документы, обсуждения задач и переписка часто содержат разные части ответа. Поиск по одному месту может пропустить нужный контекст: решение зафиксировано в обсуждении, а подробности — в файле или письме. Единый поиск помогает обнаружить такие совпадения в доступных подключённых источниках. Он не гарантирует, что найденное будет полным или актуальным: это зависит от содержимого, индексации и настроек интеграции.
- Локальные файлы подходят для материалов, которые хранятся на устройстве или в доступной ему файловой системе.
- Confluence и Jira дают возможность искать по документации и рабочим материалам в задачах.
- Discourse и почта добавляют обсуждения и переписку, где решения могут быть не перенесены в формальные документы.
- grep.app расширяет поиск на код, доступный через этот источник; это не равнозначно индексации всех репозиториев компании.
Глубина поиска зависит от конкретного коннектора: какие данные он получает, как обрабатывает права доступа и какие поля индексирует. Поэтому наличие источника в списке не следует трактовать как обещание одинакового охвата для файлов, писем и рабочих систем. Перед использованием стоит проверить, какие пространства и материалы действительно доступны поиску и не попадут ли в индекс данные, которые команда не должна обрабатывать таким способом.
MCP-сервер и хуки: как Terraphim подключается к AI-агентам
Локальный граф как источник для агента
Terraphim может подключать графы знаний к AI-агентам через MCP. Агент получает возможность обращаться к локальному поиску как к инструменту: отправить запрос и использовать найденные сведения в своей работе. Это не означает, что сам агент или все его данные работают локально. Граница обработки зависит от конфигурации агента и выбранных инструментов; подключение MCP само по себе не гарантирует, что контекст не покинет устройство.
Такой способ полезен, когда агенту нужен доступ к внутренним понятиям и материалам, а не только к тексту текущего диалога. Результат поиска остаётся отдельным от ответа модели: агент может опереться на найденное, но качество ответа зависит и от того, как он использует этот контекст.
Что делает terraphim-agent
CLI terraphim-agent рассчитан на работу с сессиями Claude Code и Cursor. Он помогает искать по их содержимому и фиксировать ошибки и уроки, чтобы их можно было учитывать в дальнейшей работе. Это отдельный сценарий, не функция обычного поиска по подключённым источникам: здесь важны история взаимодействия с агентом и сохранение извлечённого опыта.
- Поиск по сессиям помогает находить прежние решения и контекст.
- Фиксация ошибок и уроков превращает разрозненные наблюдения в материал для повторного использования.
Зачем нужны хуки
Хуки до и после вызова инструментов позволяют встроить действия Terraphim в рабочий цикл агента. До вызова можно подготовить контекст, после — обработать результат или сохранить полезное наблюдение. Но хуки срабатывают только в предусмотренных точках взаимодействия: они не контролируют произвольные действия агента и не заменяют проверку того, какие данные передаются инструментам.
Код Terraphim открыт под лицензией Apache 2.0; разработка ведётся с 2023 года, последний год — с привлечением AI. При настройке интеграции важно отдельно определить, какие сессии и результаты допустимо индексировать и сохранять.
Редактор формулировок — отдельный сценарий использования
Terraphim может предлагать альтернативные формулировки, опираясь на понятия и связи в графе знаний. Это не поиск документов: система не столько находит фрагмент по запросу, сколько помогает переформулировать текст через термины, которые граф связывает с исходными словами.
Откуда берутся варианты
Результат зависит от того, какие понятия и ролевые тезаурусы описаны в графе. Если нужный термин в нём связан с исходной формулировкой, редактор может предложить его как альтернативу. Если связь отсутствует или граф отражает другую лексику, полезного варианта может не быть. Поэтому качество здесь определяется не общей «умностью» системы, а полнотой и уместностью конкретного графа для задачи.
Такой режим подходит, когда автору нужно подобрать терминологически согласованный вариант, а не проверить утверждение. Предложенная формулировка сама по себе не подтверждает факты, не оценивает достоверность текста и не гарантирует, что вариант подходит аудитории или контексту. Выбор и проверка смысла остаются за редактором.
Чем редактор отличается от поиска и агента
- Поиск сопоставляет запрос с понятиями графа и помогает находить связанные материалы.
- Редактор предлагает варианты выражения мысли на основе связей между понятиями.
- Интеграция с AI-агентом подключает граф к рабочему сценарию агента; это отдельный способ использования, а не функция проверки текста.
Не стоит воспринимать редактор как SEO-инструмент: он не обещает роста видимости страницы и не подбирает запросы по данным поисковых систем. Его практическая ценность — в работе с языком внутри заданной системы понятий, когда автору важно сохранить терминологическую связь, но найти другую формулировку.
Локальный поиск не заменяет мониторинг сайта
Terraphim помогает находить сведения во внутренних источниках компании: документах, переписке и других подключённых системах. Мониторинг сайта решает другую задачу — проверяет, доступен ли сайт посетителям и корректно ли работают его внешние зависимости. Локальная обработка поисковых данных сама по себе не показывает, что происходит с публичной инфраструктурой.
Поиск отвечает на вопросы о знаниях, мониторинг — о состоянии сервисов
Если команда ищет внутреннюю инструкцию или обсуждение инцидента, нужен поиск по корпоративным данным. Если сайт не открывается, причина может быть в DNS, TLS-сертификате, почтовых записях или скорости ответа сервера. Эти состояния нельзя надёжно вывести из содержимого локального графа: для проверки нужны отдельные сетевые запросы и наблюдение за ответами сайта.
- Поиск по знаниям находит информацию в подключённых источниках, но не подтверждает, что сайт доступен извне.
- Проверка SSL и DNS выявляет проблемы сертификата и разрешения доменного имени, но не объясняет содержание внутренних документов.
- Контроль почты проверяет настройки домена и доставку, а не наличие нужных инструкций в корпоративной переписке.
- Измерение скорости показывает время ответа сайта в условиях проверки, но не оценивает качество найденного ответа.
Почему владельцу сайта нужны оба контура
Владельцу сайта локальный поиск полезен, когда команде приходится быстро находить регламенты, решения и историю работ. Но он не заменяет наблюдение за доступностью и настройками домена. Обратная подмена тоже опасна: зелёный статус проверок не означает, что сотрудники могут найти актуальную инструкцию или понять, как действовать при сбое. Terraphim не заявлен как инструмент веб-мониторинга, поэтому состояние сайта следует проверять отдельными средствами, а внутренние знания — искать в подходящих источниках.
Что проверить на сайте до внедрения локального ИИ-поиска
До выбора поискового инструмента разберите не его функции, а рабочий сценарий команды. Локальный поиск полезен, когда нужные сведения разбросаны по внутренним материалам и сотрудникам приходится вручную вспоминать, где искать. Если важные ответы живут в источнике, который не подключён, поисковая система его не найдёт.
Составьте карту источников
- Определите, что именно ищут. Это могут быть инструкции, решения по инцидентам, переписка или обсуждения задач. Разделяйте актуальные документы и архив: устаревшая инструкция в результатах не менее проблемна, чем отсутствие нужной.
- Проверьте, где хранятся материалы. Сверьте список источников с тем, что команда использует ежедневно. Уточните, какие из них доступны для индексации и насколько полно интеграция передаёт содержимое, структуру и контекст.
- Найдите пробелы. Если часть знаний остаётся в личных заметках, закрытых пространствах или системах без подключения, единый поиск не охватит их автоматически. Зафиксируйте это до внедрения, чтобы не принять неполную выдачу за отсутствие информации.
Определите границы доступа к данным
Локальная обработка сама по себе не гарантирует безопасность: важны состав индекса, права пользователей и место хранения исходных материалов. До включения источника выясните, есть ли в нём персональные данные, секреты, клиентская переписка или сведения, доступ к которым ограничен. Не индексируйте такие данные без согласованного основания и понятных правил доступа. Отдельно проверьте, сохраняются ли права доступа при поиске: результат не должен раскрывать сотруднику содержимое, которое ему недоступно в исходной системе.
Не подменяйте поиск проверкой сайта
Поиск по внутренним знаниям не показывает, доступен ли сайт, корректны ли SSL и DNS, настроена ли почта и быстро ли загружаются страницы. Проверьте, что эти базовые проверки выполняются отдельно и результаты получает ответственный сотрудник. Это особенно важно, если команда рассчитывает на локальный ИИ-поиск как на часть общей инфраструктуры: он помогает находить знания, но не обнаруживает сбой сайта или почтовых записей.