HASH — саморазвивающаяся открытая база данных с умными агентами: как работает, зачем нужна и как попробовать

HASH — саморазвивающаяся открытая база данных с умными агентами: как работает, зачем нужна и как попробовать

Иногда кажется, что данные живут собственной жизнью: размножаются в таблицах, мигрируют между сервисами, а потом внезапно спорят сами с собой. HASH предлагает довольно смелую идею — база данных, которая не просто хранит записи, а сама себя собирает, структурирует и проверяет. В работу включаются автономные агенты, они подтягивают информацию из открытых источников и подключённых частных систем, приводят сущности к строгим схемам и следят за качеством. В итоге получается единое «место истины» для критичных данных, где можно не только смотреть на граф сущностей, но и принимать решения без ощущения игры в угадайку.

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

Что такое HASH

В основе — саморазвивающаяся open-source база, которая:

  • интегрирует данные почти в реальном времени и приводит их к строгим типам;
  • использует «умные» агенты для сбора, проверки и поддержания консистентности;
  • даёт визуальные интерфейсы для работы и с сущностями (данными), и с типами (схемами);
  • становится платформой для решений с повышенным доверием и контролируемой безопасностью.

Если коротко — это не очередной «слой поверх хаоса», а попытка убрать хаос изначально. Пользователю, в том числе не техническому, доступна наглядная навигация по сущностям, согласование полей со схемами, а в перспективе — динамические интерфейсы-блоки «под задачу».

Сейчас «официально поддержанный» способ попробовать систему — это зарегистрироваться в хостинге HASH. Создайте аккаунт, зайдите в панель, следуйте подсказкам. Возможна очередь — чтобы ускориться, после входа выполните инструкции в дашборде: заявки просматривает живой человек, и это не шутка. Войти можно через стандартную форму, а доступ к функциональности появится сразу после активации.

Запуск локально

Инструкцию по локальному развёртыванию команда обещает оформить в полноценный гайд в ближайшее время, а пока — набор рабочих инструкций для разработчиков. Они несложные, но требуют аккуратности. Если любите собрать всё руками — отличный способ познакомиться с архитектурой изнутри.

Что понадобится до старта

  • Git (≥ 2.17), Rust с toolchain из rust-toolchain.toml, Docker (≥ 20.10), Docker Compose (≥ 2.17.2), Docker Buildx (≥ 0.10.4), Protobuf;
  • Node.js экосистема и yarn для установки зависимостей;
  • mise — менеджер версий инструментов, чтобы синхронизироваться с репозиторием;
  • на macOS/Windows — не забудьте выделить Docker минимум 4 ГБ RAM (лучше 8 ГБ).

Проверьте версии командами git --version, rustup --version, rustc --version, docker --version, docker compose version, docker buildx version. Если на macOS git капризничает — поставьте Xcode Command Line Tools командой xcode-select --install.

Склонируйте репозиторий и перейдите в корень:

git clone https://github.com/hashintel/hash cd hash 

Установите и активируйте mise, затем подтяните заявленные версии инструментов из .config/mise:

mise install 

Поставьте зависимости фронтенда и бэкенда:

yarn install 

Базовый запуск обходится без шаманства с переменными — дефолты зашиты в .env и .env.development. Секреты и переопределения кладите в .env.local (он в git не попадает). Если планируете работать с ИИ-фичами (например, отвечающие агенты), добавьте туда ключи:

  • OPENAI_API_KEY, ANTHROPIC_API_KEY — для основных возможностей;
  • HASH_TEMPORAL_WORKER_AI_AWS_ACCESS_KEY_ID и ..._SECRET_ACCESS_KEY — для воркера;
  • E2B_API_KEY — для сценариев вопрос-ответ.

HASH опирается на набор контейнеров: Postgres, слой граф-запросов, Kratos, Redis и OpenSearch. Запускаем их одной командой:

yarn external-services up -d 

Если менялся графовый слой — добавьте --build для пересборки. Чтобы контейнеры не мешали при перезапусках приложения, используйте --detach и управляйте жизненным циклом отдельно (... down для остановки). При медленном интернете пригодится режим yarn external-services:offline up — граф не будет тянуть схемы из Block Protocol.

Граф API и AI-воркер можно крутить вне Docker, если часто меняете их код: остановите контейнеры и запустите в отдельных терминалах yarn dev:graph и yarn workspace @apps/hash-ai-worker-ts dev.

Старт сервисов приложения

Самый простой вариант — всё сразу:

yarn start 

Когда терминал покажет http://localhost:3000 — фронтенд готов. API поднимется на http://localhost:5001; для полноценной работы должны быть доступны обе стороны. Частями запускать тоже можно:

yarn start:graph yarn start:backend yarn start:frontend 

При старте API автоматически создаются три пользователя с паролем password: alice@example.com, bob@example.com (обычные роли) и admin@example.com (администратор). Этого хватает, чтобы пройти весь базовый поток и не тратить время на регистрацию.

Почта, тестовые режимы и «красная кнопка» очистки

Рассылка писем устроена так: Kratos шлёт всё аутентификационное (верификации, восстановление), остальное — через Email Transport API. В дев-режиме удобно использовать «манекен»-транспортер, который пишет письма в файл. Нужен AWS SES? Поставьте HASH_EMAIL_TRANSPORTER=aws_ses и укажите валидные креды.

Тесты, которые засоряют базу, можно изолировать — запускайте внешние сервисы в режиме yarn external-services:test up. Если всё же что-то сломали, есть два пути: медленный (удаление контейнера hash-external-services и соответствующих volumes с последующей пересборкой) или быстрый — yarn dev:graph:test-server и затем yarn graph:reset-database. Для фронта дополнительно очистите таблицу identities в базе Kratos.

Что внутри

Монорепозиторий разделён логично и предсказуемо. В /apps живут сервисы рабочей среды (фронтенд, бэкенд, реальтайм), в /blocks — публичные блоки Block Protocol, в /content — редактируемый контент сайтов и документации, в /infra — скрипты и заготовки для развёртывания в облаке, в /libs — общие библиотеки и крейты Rust, а в /tests — интеграционные и e2e-сценарии, которые проходят по нескольким частям приложения сразу.

Внешние сервисы составляют привычный стек: Postgres (несколько баз под разные задачи — Kratos, Temporal, графовый слой), Redis для очередей и кэша, Kratos как система управления идентификацией и потоками аутентификации, Temporal для воркфлоу (включая AI-домены), OpenSearch (по умолчанию отключён и помечен как неподдерживаемый в текущем виде). Для разработчика это значит прозрачные зависимости, которые можно поднимать и выключать по мере необходимости.

Большинство значений переменных окружения уже задано, поэтому «пустой» запуск работает из коробки. Тем не менее, для продвинутых сценариев предусмотрены десятки флагов и конфигов: от NODE_ENV и PORT до интеграций с AWS для загрузки файлов и почты, SMTP-провайдерами, кастомными адресами фронтенда, частотами опроса уведомлений и уровнями логирования. Если включаете S3, задайте FILE_UPLOAD_PROVIDER=AWS_S3 и используйте группу переменных AWS_S3_UPLOADS_*. Метрики — через StatsD, телеметрию — через Snowplow (HASH_TELEMETRY_ENABLED, HASH_TELEMETRY_DESTINATION и пр.).

Для фронтенда важен FRONTEND_URL (по умолчанию http://localhost:3000), для API — API_ORIGIN и SESSION_SECRET. Реальтайм-порт указывается в HASH_REALTIME_PORT, очереди — в HASH_INTEGRATION_QUEUE_NAME и HASH_SEARCH_QUEUE_NAME. Если забираете блоки из Block Protocol Hub, добавьте BLOCK_PROTOCOL_API_KEY.

Для локального прогона браузерного плагина загляните в apps/plugin-browser — там отдельный README. В репозитории есть примерные конфиги для популярных редакторов — VS Code, Zed — чтобы быстрее размечать проект и не бороться с форматтерами. И да, агенты и воркеры можно гонять рядом с фронтом, не засоряя Docker: просто запустите те сервисы, которые вам нужны, а остальное выключите.

Команда ведёт открытую дорожную карту: можно посмотреть, что пилится сейчас и что стоит в очереди. Полное руководство по развёртыванию в AWS/GCP/Azure «на подходе», а пока ориентируйтесь на папку /infra — там достаточно подсказок, чтобы собрать пилот. Отдельно заявлено: в 2025 году выйдет полноценный гайд по самостоятельному хостингу, что снимет последние вопросы у тех, кто хочет держать всё под собственным контролем.

Большая часть кода — свободная и доступна без ограничений: детали по лицензиям — в LICENSE. Уязвимости и проблемы с безопасностью команда просит отправлять согласно инструкциям в SECURITY — там же зафиксированы поддерживаемые версии пакетов. Для желающих поучаствовать есть CONTRIBUTING с правилами оформления изменений. И маленький бонус: компания активно ищет инженеров, а каждый PR действительно видит живой человек. Можно начать с мелочи, а дальше всё само поедет.

HASH закрывает болезненное место — разрыв между «данные где-то там» и «данные, которым можно доверять здесь и сейчас». Саморазвивающееся ядро, агенты, строгие схемы и визуальные интерфейсы дают ощущение управляемости: нет хаотичной миграции CSV по почте, нет расползания сущностей. Вы строите решения поверх графа, а не переписываете конвейеры в попытке удержать мир от энтропии. Порог входа мягкий (облако), глубина — сколько захотите (локально и в коде), перспектива — рабочее пространство с блоками, генерируемыми по требованию. И это, кажется, редкий случай, когда «больше ИИ» означает «больше порядка», а не наоборот.

Полезные ссылки для навигации

Итог

HASH — это попытка сделать базу данных не просто «местом хранения», а живой системой, где информация приходит в порядок сама, а интерфейсы рождаются под задачу. Хотите быстро посмотреть — идите в облако. Нужна глубина — поднимайте стек локально, трогайте граф, экспериментируйте с агентами и воркфлоу. Монорепозиторий устроен прозрачно, документация практичная, а входной порог ниже, чем кажется. Если вы устали мириться с бесконечным рассинхроном, это как раз тот случай, когда интересно попробовать здесь и сейчас.

Docker HASH Linux open-source Redis агент база данных ИИ код технологии фактчекинг
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.

Практикум «Харденинг ИТ: от дизайна до настроек».

Старт: 20 октября. Продолжительность: 4 недели
Сформируйте фундамент для защиты инфраструктуры своей компании

Подробнее о практикуме

Реклама. 18+ АО «Позитив Текнолоджиз», ИНН 7718668887


Комнатный Блогер

Объясняю новую цифровую реальность