UStackUStack
Heimdall favicon

Heimdall

Heimdall — это open-source платформа наблюдаемости для мониторинга серверов Model Context Protocol (MCP) и AI/LLM‑приложений, обеспечивающая трассировку, метрики и аналитику в реальном времени на базе OpenTelemetry.

Посетить Сайт
Heimdall

Что такое Heimdall?

Что такое Heimdall?

Heimdall — это open-source платформа наблюдаемости, специально созданная для серверов Model Context Protocol (MCP) и AI/LLM‑приложений. Она даёт разработчикам, платформенным командам и инженерам по ИИ глубокую видимость того, как инструменты, ресурсы и промпты выполняются внутри их AI‑инфраструктуры.

Построенный на стандартах OpenTelemetry, Heimdall собирает и визуализирует трейсы, метрики и аналитику в реальном времени от ваших MCP‑инструментов и AI‑сервисов. Платформа изначально спроектирована как self-hosted‑решение, поэтому вы полностью контролируете свои данные и при этом получаете детальный мониторинг латентности, уровней ошибок, паттернов использования и поведения инструментов.

Интегрируя лёгкие SDK в ваши MCP‑серверы на Python или JavaScript/TypeScript, Heimdall позволяет легко трассировать каждую вызванную функцию‑инструмент и каждый запрос к ресурсам с минимальными изменениями существующего кода. Это идеальный вариант для команд, которые создают AI‑агентов, tooling и backend‑сервисы на базе LLM и хотят получить наблюдаемость уровня продакшена без привязки к конкретному вендору.

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

  • Трассировка MCP‑серверов в реальном времени
    Отслеживайте каждый вызов инструмента, доступ к ресурсам и выполнение, связанное с промптами, в реальном времени. Heimdall показывает подробные трейсы: когда был вызван инструмент, сколько заняло выполнение, какие параметры были переданы и завершилось ли всё успешно или с ошибкой.

  • Аналитика и визуализации в дашборде
    Используйте встроенный frontend‑дашборд для анализа латентности, уровней ошибок и шаблонов использования ваших AI‑сервисов. Быстро находите медленные инструменты, падающие endpoints и аномальные всплески нагрузки.

  • Архитектура, нативная для OpenTelemetry
    Heimdall использует OTLP/HTTP как протокол приёма данных и полностью соответствует стандартам OpenTelemetry. Это упрощает интеграцию с уже существующими системами наблюдаемости и расширение вашей телеметрической pipeline.

  • Простая интеграция SDK для Python и JavaScript/TypeScript
    Heimdall предоставляет официальный Python SDK (hmdl) и JavaScript/TypeScript SDK (hmdl) с простыми декораторами/обёртками:

    • Python: декоратор @trace_mcp_tool() для трассировки MCP‑инструментов.
    • JS/TS: обёртка traceMCPTool() для асинхронных функций‑инструментов.
  • Автоматический захват параметров
    Python‑SDK автоматически анализирует сигнатуры функций, поэтому параметры фиксируются как именованные объекты (например, { "query": "test", "limit": 5 }). В JS/TS‑SDK вы можете задать paramNames, чтобы добиться того же эффекта — это делает трейсы более читабельными и полезными для отладки.

  • Self-hosted‑развёртывание
    В настоящее время Heimdall поддерживает только self-hosted‑развёртывание, что даёт вам полный контроль над инфраструктурой, безопасностью и размещением данных. Вы запускаете и backend, и frontend на своих серверах или в локальной среде разработки.

  • Модель организаций и проектов
    Heimdall использует структуру Organization → Project:

    • Organizations группируют взаимосвязанные проекты и команды.
    • Projects представляют отдельные приложения или окружения, каждое со своим уникальным Project ID для сбора трейсов.
  • Конфигурация через переменные окружения
    Настраивайте SDK Heimdall с помощью переменных окружения (например, HEIMDALL_ENDPOINT, HEIMDALL_ORG_ID, HEIMDALL_PROJECT_ID, HEIMDALL_SERVICE_NAME, HEIMDALL_ENVIRONMENT, HEIMDALL_ENABLED) для удобного деплоя в средах разработки, staging и продакшена.

  • Планы развития (запланированные функции)
    В репозитории описаны несколько возможностей, запланированных на будущее:

    • User tracking: привязка трейсов к идентичностям пользователей для аналитики на уровне пользователя (сейчас все запросы анонимны).
    • Оценка LLM: встроенное оценивание качества моделей и процессы human evaluation.
    • Managed cloud host: опциональный управляемый облачный вариант для команд, которые не хотят заниматься self-hosting.

Как использовать Heimdall

Работа с Heimdall включает три основных шага: запуск платформы, создание организации и проекта и интеграцию SDK в ваши MCP‑серверы или AI‑приложения.

1. Подготовка окружения

Убедитесь, что у вас установлены необходимые runtime‑зависимости:

  • Node.js 18+ (для backend и frontend Heimdall)
  • Python 3.9+ (если вы планируете использовать Python‑SDK)

Клонируйте репозиторий Heimdall с GitHub и перейдите в директорию проекта.

2. Запуск backend

Из корневой папки проекта:

cd backend
npm install
npm run dev

Эта команда запускает backend Heimdall, который экспонирует OTLP/HTTP‑endpoint (по умолчанию: http://localhost:4318) для приёма трейсов.

3. Запуск frontend

В отдельном терминале:

cd frontend
npm install
npm run dev

Обычно frontend доступен по адресу http://localhost:5173, предоставляя web‑интерфейс для управления организациями, проектами и аналитикой.

4. Создание аккаунта, организации и проекта

  1. Откройте http://localhost:5173 в браузере.
  2. Создайте аккаунт, указав e‑mail и пароль.
  3. Создайте Organization, чтобы сгруппировать ваши проекты.
  4. Создайте Project внутри организации. Каждый проект получает уникальный Project ID, который используется для привязки входящих трейсов.

Затем откройте страницу Settings вашего проекта, чтобы найти:

  • Organization ID
  • Project ID

Эти значения понадобятся вам для конфигурации SDK.

5. Интеграция Python‑SDK

Установите Python‑пакет:

pip install hmdl

Базовый пример интеграции:

from hmdl import HeimdallClient, trace_mcp_tool

# Инициализация клиента
client = HeimdallClient(
    endpoint="http://localhost:4318",
    org_id="your-org-id",       # Из Settings
    project_id="your-project-id", # Из Settings
    service_name="my-mcp-server",
    environment="development"
)

@trace_mcp_tool()
def search_tool(query: str, limit: int = 10) -> dict:
    return {"results": [], "query": query, "limit": limit}

result = search_tool("test", limit=5)
client.flush()

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

6. Интеграция JavaScript/TypeScript‑SDK

Установите пакет JS/TS:

npm install hmdl

Базовый пример интеграции (в стиле TypeScript):

import { HeimdallClient, traceMCPTool } from 'hmdl';

const client = new HeimdallClient({
  endpoint: "http://localhost:4318",
  orgId: "your-org-id",       // Из Settings
  projectId: "your-project-id", // Из Settings
  serviceName: "my-mcp-server",
  environment: "development",
});

const searchTool = traceMCPTool(
  async (query: string, limit: number = 10) => ({
    results: [],
    query,
    limit,
  }),
  {
    name: "search-tool",
    paramNames: ["query", "limit"],
  }
);

await searchTool("test", 5);
await client.flush();

7. Настройка через переменные окружения (опционально)

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

export HEIMDALL_ENDPOINT="http://localhost:4318"
export HEIMDALL_ORG_ID="your-org-id"
export HEIMDALL_PROJECT_ID="your-project-id"
export HEIMDALL_SERVICE_NAME="my-mcp-server"
export HEIMDALL_ENVIRONMENT="development"
export HEIMDALL_ENABLED="true"

После этого можно инициализировать клиент без аргументов:

# Python
from hmdl import HeimdallClient
client = HeimdallClient()
// JavaScript/TypeScript
import { HeimdallClient } from 'hmdl';
const client = new HeimdallClient();

После интеграции ваши MCP‑инструменты начнут отправлять телеметрию в backend Heimdall, а вы сможете анализировать трейсы и метрики в web‑интерфейсе.

Сценарии использования

1. Наблюдаемость для AI‑агентов и toolchain

Командам, создающим сложных AI‑агентов, которые опираются на MCP‑инструменты, важно понимать, как каждый инструмент ведёт себя под реальной нагрузкой. Heimdall предоставляет:

  • Отслеживание латентности и ошибок для каждого инструмента.
  • Видимость того, какие инструменты используются чаще всего.
  • Понимание того, как через инструменты обращаются к промптам и ресурсам.

Это помогает оптимизировать toolchain, выводить из эксплуатации малоиспользуемые инструменты и эффективнее отлаживать поведение агентов.

2. Продакшен‑мониторинг backend‑ов на базе LLM

Для организаций, которые запускают LLM‑поддерживаемые API или AI‑микросервисы в продакшене, Heimdall выступает критическим уровнем наблюдаемости:

  • Мониторинг пропускной способности запросов и времени ответа.
  • Точное определение узких мест, вызванных внешними зависимостями или конкретными инструментами.
  • Обнаружение всплесков ошибок или регрессий после выкатывания новых версий.

С Heimdall, интегрированным через OpenTelemetry, вы можете выстроить наблюдаемость за AI в единую систему с остальным мониторинговым стеком.

3. Разработка и отладка MCP‑серверов

Во время разработки Heimdall помогает инженерам отлаживать новые MCP‑серверы или инструменты:

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

Это ускоряет цикл обратной связи и сокращает время на поиск проблем в многошаговых сценариях с множеством инструментов.

4. Внутренние команды AI‑платформ и инфраструктуры

Платформенные команды, которые предоставляют внутреннюю AI‑инфраструктуру нескольким продуктовым командам, могут использовать Heimdall для стандартизации наблюдаемости:

  • Создавать отдельные проекты для каждого приложения или арендатора (tenant).
  • Мониторить организационные паттерны использования и показатели производительности.
  • Использовать будущий отслеживатель пользователей (запланированная функция), чтобы понимать потребление по командам или клиентам.

Это позволяет лучше планировать ёмкость, внедрять модели chargeback/showback и повышать надёжность сервисов.

5. Конфиденциальные или регулируемые среды

Поскольку Heimdall является self-hosted и open source, он хорошо подходит для организаций, работающих в жёстко регулируемых или чувствительных с точки зрения безопасности доменах:

  • Все трейсы и метаданные остаются в пределах вашей инфраструктуры.
  • Развёртывания можно привести в соответствие с внутренними требованиями по безопасности и соответствию (compliance).
  • Платформу можно кастомизировать или интегрировать с уже существующими системами мониторинга и алертинга.

FAQ

Heimdall бесплатен для использования?

Да. Heimdall распространяется под лицензией MIT, что делает его бесплатным и open source как для личного, так и для коммерческого использования. Вы сами отвечаете за хостинг и запуск платформы в своей инфраструктуре. В roadmap также упоминается возможный управляемый облачный сервис в будущем, но ядро проекта остаётся open source.

Какие технологии и стандарты использует Heimdall?

Heimdall построен на OpenTelemetry и использует протокол OTLP/HTTP (порт по умолчанию 4318) для приёма телеметрических данных. Backend и frontend реализованы как сервисы на Node.js, а официальные клиентские SDK доступны для Python и JavaScript/TypeScript.

Какие окружения и языки поддерживаются?

В настоящее время Heimdall предоставляет официальные SDK для:

  • Python (через пакет hmdl; требуется Python 3.9+)
  • JavaScript/TypeScript (через npm‑пакет hmdl; работает с Node.js 18+)

Поскольку Heimdall работает по протоколу OpenTelemetry/OTLP, вы потенциально можете интегрировать и другие языки, используя стандартные библиотеки OpenTelemetry, хотя самый бесшовный опыт дают официальные MCP‑ориентированные SDK.

Обязательно ли разворачивать Heimdall у себя (self-hosted)?

Да, на данный момент Heimdall разработан как self-hosted‑платформа. Вы сами запускаете и backend‑, и frontend‑сервисы (например, на локальных машинах, в виртуальных машинах, в Kubernetes или у вашего предпочитаемого провайдера). В планах проекта есть managed cloud host server как возможное будущее расширение, но сейчас он не входит в релиз.

Как настроить несколько окружений (dev, staging, production)?

Heimdall поддерживает конфигурацию с учётом окружений через параметры SDK и переменные окружения. Типичный подход:

  • Использовать разные Projects (и при необходимости разные Organizations) для разных окружений.
  • Настраивать переменные HEIMDALL_ENDPOINT, HEIMDALL_ORG_ID, HEIMDALL_PROJECT_ID, HEIMDALL_SERVICE_NAME и HEIMDALL_ENVIRONMENT отдельно в каждом окружении.

Так трейсы логически разделяются, и вам проще сравнивать поведение между development, staging и production.

Может ли Heimdall привязывать трейсы к конкретным конечным пользователям?

Отслеживание на уровне пользователей указано как функция TODO/roadmap. Сейчас все запросы считаются анонимными, и идентичности пользователей по умолчанию к трейсам не привязываются. В будущих версиях планируется добавить поддержку user tracking и аналитику на уровне пользователей.

Alternatives

AakarDev AI favicon

AakarDev AI

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

PromptLayer favicon

PromptLayer

PromptLayer - это платформа для управления подсказками, оценками и наблюдаемостью LLM, разработанная для улучшения рабочих процессов в области ИИ.

PingPulse favicon

PingPulse

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

BookAI.chat favicon

BookAI.chat

BookAI позволяет вам общаться с вашими книгами, просто предоставив название и автора.

Devin favicon

Devin

Devin - это агент по кодированию AI и инженер-программист, который помогает разработчикам быстрее создавать лучшее программное обеспечение.

imgcook favicon

imgcook

imgcook — это интеллектуальный инструмент, который одним щелчком мыши преобразует дизайн-макеты в высококачественный, готовый к использованию код.