Heimdall
Heimdall — это open-source платформа наблюдаемости для мониторинга серверов Model Context Protocol (MCP) и AI/LLM‑приложений, обеспечивающая трассировку, метрики и аналитику в реальном времени на базе OpenTelemetry.
Что такое 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: декоратор
-
Автоматический захват параметров
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. Создание аккаунта, организации и проекта
- Откройте
http://localhost:5173в браузере. - Создайте аккаунт, указав e‑mail и пароль.
- Создайте Organization, чтобы сгруппировать ваши проекты.
- Создайте 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
AakarDev AI — это мощная платформа, которая упрощает разработку приложений ИИ с бесшовной интеграцией векторных баз данных, позволяя быстрое развертывание и масштабируемость.
PromptLayer
PromptLayer - это платформа для управления подсказками, оценками и наблюдаемостью LLM, разработанная для улучшения рабочих процессов в области ИИ.
PingPulse
PingPulse обеспечивает наблюдаемость ИИ-агентов с помощью ИИ, позволяя отслеживать передачу управления между агентами, обнаруживать проблемы, такие как зависания и циклы, а также получать оповещения о некорректном поведении при минимальной интеграции кода.
BookAI.chat
BookAI позволяет вам общаться с вашими книгами, просто предоставив название и автора.
Devin
Devin - это агент по кодированию AI и инженер-программист, который помогает разработчикам быстрее создавать лучшее программное обеспечение.
imgcook
imgcook — это интеллектуальный инструмент, который одним щелчком мыши преобразует дизайн-макеты в высококачественный, готовый к использованию код.