Перейти к содержимому

Интеграция Grok Build

Интеграция grok управляет Grok Build, терминальным агентом, с хоста, где он запущен. В режиме только для чтения она читает конфигурацию TOML, профиль sandbox, имена серверов MCP, системные требования и файл, отключающий хуки. Она также может принимать трассы OTLP. Это не коннектор API xAI: он не запрашивает удалённые модели и не требует секрета провайдера. Превентивный контроль инструментов использует olivares grok-hook и отдельный локальный PEP.

  • Olivares AI и Grok Build установлены на одном хосте либо пути конфигурации Grok смонтированы на хосте коннектора только для чтения.
  • UUID тенанта, которому будет приписана поза.
  • Разрешение для сервисной учётной записи Olivares читать ~/.grok/config.toml, /etc/grok/requirements.toml, ~/.grok/disabled-hooks и, если настроен, совместимый файл managed-settings.json.
  • Учётная запись superadmin с повышением AAL3, если источник создаётся из консоли.

Не вводите ключ xAI для этого источника. У него нет секретного поля, и он не делает вызовов API инференса.

  1. Откройте Control console (/console) и выберите вкладку Connectors.
  2. Добавьте источник типа grok с именем grok-demo — или стабильным именем хоста —, тенантом, пакетным интервалом и включённым состоянием. 60 секунд позволяют видеть изменения позы во время пилота, не превращая локальное чтение файлов в непрерывный цикл.
  3. Сохраните источник, выберите Test и перезагрузите реестр. Строка подтверждает запись в реестре; файлы читает и находки выдаёт первый последующий Gather.
Настройте, кто получает доступ и чем может администрировать: подключайте пользователей, настраивайте SSO и формируйте рабочие области и группы агентов. Настройте, кто получает доступ и чем может администрировать: подключайте пользователей, настраивайте SSO и формируйте рабочие области и группы агентов.
Настройка источникаПо умолчаниюЧто измеряется
agent_refgrok-buildСтабильная ссылка, включаемая в находки.
config_path~/.grok/config.tomlЗаявленный пользователем профиль sandbox и имена серверов MCP.
requirements_path/etc/grok/requirements.tomlСистемный уровень, ограничивающий эффективную конфигурацию.
disabled_hooks_path~/.grok/disabled-hooksИмена отключённых пользователем хуков, по одному на строку.
managed_settings_pathпустоСовместимый с Claude Code managed-settings.json, учитываемый Grok; пусто означает «не измерено».
otlp_httpfalseПриёмник трасс, отключённый до резервирования порта оператором.

В Linux минимальное требование для принудительного применения sandbox таково:

[sandbox]
profile = "strict"

Распространяйте его в /etc/grok/requirements.toml с административным владельцем. strict ограничивает запись workspace, ~/.grok/ и временными каталогами и блокирует сетевой доступ в рамках документированной гарантии Linux. То же значение в ~/.grok/config.toml — лишь пользовательское предпочтение: параметры командной строки и окружение могут влиять на конфигурацию, тогда как requirements.toml является ограничивающим уровнем.

Чтобы ограничить MCP, объявите в requirements.toml только таблицы [mcp_servers.<nombre-aprobado>], которыми может пользоваться парк. Olivares инвентаризирует имена, а не команды, URL или учётные данные внутри этих таблиц. Отсутствующий файл, нечитаемый файл и существующий файл без [mcp_servers] создают разные состояния; «не измерено» никогда не показывается как «нет».

Для совместимости Grok также может читать /etc/claude-code/managed-settings.json. Задавайте managed_settings_path, только если Olivares должен измерять эту поверхность. Не используйте повторно хук Claude без проверки: payload Grok применяет ключи camelCase и события snake_case, для него требуется olivares grok-hook.

Установите olivares grok-hook через нативный механизм обнаружения развёрнутой версии Grok: либо файл настроек JSON, из которого Grok читает ключ hooks, либо файл *.json в каталоге хуков, например ~/.grok/hooks/. Grok загружает эти файлы по имени. Olivares не определяет полную оболочку авторства, и это дерево её не хранит; используйте схему установленной версии и задайте команду в точности как:

olivares grok-hook

PEP монтируется, когда при запуске Olivares OLIVARES_GROK_HOOK_PEP_CONFIG указывает на корректную конфигурацию:

{
"listen": "127.0.0.1:8449",
"tenant": "11111111-1111-4111-8111-111111111111"
}

Каждый экземпляр управляет одним тенантом и требует твёрдую идентичность. Клиент читает OLIVARES_GROK_HOOK_URL, OLIVARES_GROK_HOOK_TOKEN, OLIVARES_GROK_HOOK_TENANT, OLIVARES_GROK_HOOK_AGENT, OLIVARES_GROK_HOOK_ORG и OLIVARES_GROK_HOOK_ACCOUNT. Передавайте эти значения через процесс и менеджер секретов; токену не место в JSON хука.

Имя, присвоенное хуку, имеет значение. Пользователь может добавить его в ~/.grok/disabled-hooks, после чего dispatcher пропустит его независимо от происхождения из управляемого уровня. Ни requirements.toml, ни MDM не ограничивают этот файл. Коннектор читает его и выдаёт находку высокой критичности с отключёнными именами, но не может предотвратить отключение.

При otlp_http=true приёмник по умолчанию слушает 127.0.0.1:4318 и принимает POST /v1/traces — путь, измеренный для Grok Build. Этот неаутентифицированный вход должен оставаться на loopback. Если другой коннектор уже занимает 4318, выберите свободный локальный порт и примените то же значение к otlp_http_addr и OTLP-эндпоинту агента.

Сбор сводит трассы к атрибуции, имени span и session_id; содержимое не сохраняется. В этой версии следующий опрос выдаёт агрегированную находку с числом span, сессий и отброшенных записей. Для временной шкалы и контроля отдельных инструментов используйте хук.

Требуется усиленная аутентификация — AAL3 (аппаратная, устойчивая к фишингу) Требуется усиленная аутентификация — AAL3 (аппаратная, устойчивая к фишингу)

Следующие примеры выполнены 30 августа 2026 года бинарным файлом из worktree. Общие сообщения запуска опущены.

Окно терминала
olivares sources set \
--data-dir /var/lib/olivares \
--name grok-demo \
--kind grok \
--tenant 11111111-1111-4111-8111-111111111111 \
--poll-seconds 60 \
--actor platform-operator \
--reason integration-guide-rollout
created source "grok-demo" (kind "grok", tenant "11111111-1111-4111-8111-111111111111", enabled true)
kind: - → grok
tenant: - → 11111111-1111-4111-8111-111111111111
poll_seconds: - → 60
enabled: - → true
→ reload a running engine to apply: POST /v1/console/runtime/reload, or `kill -HUP <pid>` (it also applies at next boot)

С SQLite остановите движок перед офлайн-изменением реестра или используйте активную консоль. С PostgreSQL команда может выполняться параллельно с движком. --actor и --reason атрибутируют изменение происхождения.

Для нестандартных путей добавьте явные значения конфигурации:

Окно терминала
olivares sources set \
--data-dir /var/lib/olivares \
--name grok-demo \
--config config_path=/srv/grok-home/.grok/config.toml \
--config requirements_path=/etc/grok/requirements.toml \
--config disabled_hooks_path=/srv/grok-home/.grok/disabled-hooks \
--config managed_settings_path=/etc/claude-code/managed-settings.json \
--actor platform-operator \
--reason grok-paths-for-service-user

Проверка соединения и фактическое чтение файлов

Заголовок раздела «Проверка соединения и фактическое чтение файлов»

Воспроизводимое измерение на хосте снимков экрана 30 августа 2026 года дало такой результат:

Окно терминала
olivares sources test \
--data-dir /var/lib/olivares \
--name grok-demo \
--timeout 20s
configuration: VALID (everything that can be decided without the network)
source "grok-demo" (grok): ANSWERED — the connector opened with this configuration and was closed again
NO SOURCE ROW WAS WRITTEN and nothing was wired into a running engine.

Процесс завершился с кодом 0. На хосте была активная сессия Grok и файл ~/.grok/config.toml; /etc/grok/requirements.toml и ~/.grok/disabled-hooks отсутствовали. sources test не прочитал ни один из них: Open только разрешает конфигурацию, а test сразу закрывается без вызова Gather. Следовательно, ANSWERED не доказывает сессию, sandbox или находки. Чтобы проверить чтение файлов, перезагрузите движок и изучите находки следующего опроса.

При ненастроенном эндпоинте:

Окно терминала
printf '%s' '{"hookEventName":"pre_tool_use","sessionId":"s-1","toolName":"Bash"}' | olivares grok-hook

Стандартный вывод:

{"decision":"deny","reason":"no governance endpoint is configured (deny-closed)"}

Стандартная ошибка:

no governance endpoint is configured (deny-closed)

Код выхода — 2, что Grok интерпретирует как запрет для pre_tool_use. Для других событий отказ записывается, но не может предотвратить действие; клиент сообщает об этом в stderr, не утверждая enforcement.

РасположениеЧто показаноОперационное ограничение
Control console > Connectors (/console)Реестр grok, настроенные пути, интервал, режим и действия Test/Save/Reload.Тест открывает и закрывает коннектор; он не читает файлы TOML.
Health > Connectors (/health)Состояние источника, сообщение, тренд и последний опрос.Состояние процесса не доказывает управление отсутствующим файлом.
Observability > Ingestion (/observability)Находки от olivares.grok, первая/последняя запись и, при включении, агрегированная активность OTLP.Общепроцессные счётчики с запуска; они сбрасываются и не относятся к отдельному тенанту.
Security (/security)Наблюдаемый и принудительно применяемый профиль sandbox, имена MCP, наличие/валидность требований, совместимость managed settings и имена отключённых хуков.«Нечитаемо» остаётся неизвестным, а не превращается в отсутствие.
Sessions (/sessions)Сессия, действие, идентичность, режим разрешений, последняя активность и поза enforced или observed.Требуются события хука. Локальный инвентарь не создаёт сессию.
Audit (/audit)Атрибутируемые решения PEP и сцепленные свидетельства.Существует только для вызовов, дошедших до PEP; отключённый хук оставляет пробел.

Не ожидайте каталог моделей, расходы xAI или промпты: этот источник не использует API xAI, а приёмник OTLP отбрасывает содержимое.

Состояние приёма данных на основе стандартов и детальный разбор трассировок, скоррелированных с реестром. Показатели охватывают весь движок (глобальны для процесса), а не отдельный тенант; стандарты закреплены за версиями и уровнями зрелости, которые объявляют вышестоящие органы. Состояние приёма данных на основе стандартов и детальный разбор трассировок, скоррелированных с реестром. Показатели охватывают весь движок (глобальны для процесса), а не отдельный тенант; стандарты закреплены за версиями и уровнями зрелости, которые объявляют вышестоящие органы. Находки ограничителей, состояние принуждения, очередь аномалий и форензика инцидентов с защитой от подделки. По умолчанию плоскость работает в детективном режиме — она фиксирует, но сама по себе ничего не блокирует, пока принуждение не включено и не поставлено под управление. Находки ограничителей, состояние принуждения, очередь аномалий и форензика инцидентов с защитой от подделки. По умолчанию плоскость работает в детективном режиме — она фиксирует, но сама по себе ничего не блокирует, пока принуждение не включено и не поставлено под управление.
  • Базовые уровни конечных устройств Linux: распространяйте requirements.toml как файл, принадлежащий root, и опрашивайте каждый хост. Отсутствие становится требующей действия находкой, а не зелёным значением по умолчанию.
  • Контроль MCP: сравнивайте заявленные пользователем имена с зафиксированными администратором. Переменная GROK_CONFIG не может добавлять чувствительные таблицы вроде MCP, аутентификации или egress; эту защиту предоставляет Grok, а Olivares сообщает о ней, не дублируя.
  • Canary хука: начните с безвредного инструмента и подтвердите событие, решение и эффект. Затем постоянно отслеживайте disabled-hooks, поскольку контроль может исчезнуть по имени.
  • Общие эндпоинты: настройте абсолютные пути к фактическому HOME учётной записи, запускающей Grok. ~ сервиса Olivares может разрешиться в другого пользователя и дать точное измерение неверного профиля хоста.
  • Минимальная телеметрия: включайте OTLP только при необходимости агрегированного сигнала и резервируйте отдельный локальный сокет. Для превентивного управления приоритетна надёжная работа хука.

Что принудительно применяется, а что только наблюдается

Заголовок раздела «Что принудительно применяется, а что только наблюдается»
ПоверхностьФактическое поведение
Источник grokНаблюдается, только для чтения. Читает файлы и выдаёт находки; не изменяет Grok Build и не вызывает xAI.
/etc/grok/requirements.tomlПринудительно применяет в агенте ограниченные значения sandbox и MCP. Olivares проверяет его наличие и заявленный эффект.
~/.grok/config.tomlНаблюдаемое предпочтение. Само по себе не является административной политикой.
olivares grok-hook для pre_tool_useМожет предотвратить инструмент, когда команда запускается и завершается с 2. Клиент закрывается отказом по принципу deny-closed, если PEP отсутствует или даёт сбой.
Другие события GrokНаблюдаются. Отказ остаётся свидетельством, но у события нет равноценного запрета.
Timeout, сбой или хук, который не запустилсяАгент работает fail-open. Grok продолжает работу; внутреннее fail-closed поведение olivares grok-hook действует только при вызове процесса.
~/.grok/disabled-hooksМожет отключить даже управляемый хук. Olivares обнаруживает это постфактум, но ни один уровень требований не предотвращает отключение.
Приёмник OTLPНаблюдает агрегаты. Не аутентифицирует, не сохраняет содержимое и не заменяет временную шкалу хука.

Развёртывание нельзя объявлять «enforced» лишь потому, что sandbox зафиксирован. Для завершения нужны эффективные требования, действительно запускающийся хук, непрерывный контроль его отсутствия в disabled-hooks, видимое событие и продемонстрированный запрет pre_tool_use.