Newer
Older
AI_Lab_SCRUME_Co / README.md

OM_Lab_Agent

Текущая версия: 1.7.7.

Дистрибутив Hermes Agent: персона личного помощника, базовый конфиг, 58 скиллов. Автор: AI laboratory SCRUM company.

Основано на Hermes Agent © Nous Research, лицензия MIT. Авторские права, товарные знаки и сторонние компоненты описаны в NOTICE и LICENSE; вместе с приложением поставляются resources\LICENSE, resources\NOTICE и resources\THIRD-PARTY-LICENSES.txt. Это независимая сборка, не связанная с Nous Research и не одобренная ими.

⛔ НЕ запускайте установку «от имени администратора»

Откройте обычное окно PowerShell (Win+R → powershell). Не «Запуск от имени администратора».

Запуск с повышением прав — главная причина отказа: папки в доме агента создаются от другой учётной записи, и потом движок не может прочитать свой собственный Python. Установка встаёт мгновенно с Access is denied, ещё до любой загрузки.

Единственное, что запускается от администратора, — файл починки FIX.cmd (и WIPE.cmd), и только если установка уже остановилась.

Получателю агента: не нужно ничего скачивать и распаковывать руками. Откройте PowerShell (Win+R → powershell) и вставьте целиком, одной строкой:

$d = Join-Path $env:LOCALAPPDATA 'ailab-setup'; New-Item -ItemType Directory -Force -Path $d | Out-Null; Set-Location $d; Remove-Item -Recurse -Force ailab -ErrorAction SilentlyContinue; curl.exe -L --fail -o ailab.zip "https://ailabscrume.ru/downloads/agent-setup.zip"; if (-not (Test-Path ailab.zip) -or (Get-Item ailab.zip).Length -lt 1MB) { throw "Архив не скачался. Папка: $d" }; Expand-Archive ailab.zip ailab -Force; .\ailab\setup.cmd

Дальше всё делает установщик: ставит движок и агента, открывает Блокнот для ключа, прогревает окружение, качает и ставит окно приложения, кладёт ярлык «OM_Lab_Agent» на рабочий стол. Ключ API выдаёт владелец агента. Доступ к репозиторию не нужен.

Ссылка постоянная — не меняется при выпуске новых версий, повторный запуск обновляет агента (ключ, память и переписка сохраняются). Подробности — INSTALL.md.

Если установка остановилась

В той же распакованной папке лежат файлы помощи — запускаются двойным кликом:

Файл Что делает От администратора?
CHK.cmd показывает, что видит установщик, и права на файлы нет
ACL.cmd показывает правила доступа к папке агента нет
FIX.cmd починка прав. Ключ и переписка сохраняются да
WIPE.cmd полный снос папки агента и установка заново. Ключ вписывать заново да

CHK и ACL ничего не меняют.

Автору: это исходник дистрибутива. Пакет для передачи собирается скриптом dist/vasily-setup/build-package.ps1 (имя папки историческое).

Что внутри

Путь Что это
distribution.yaml манифест: имя, версия, автор, требуемые переменные окружения
SOUL.md персона агента: OM_Lab_Agent, личный помощник
config.yaml модель, провайдер (Polza.ai), инструменты, язык — без ключей
skills/ 62 скилла: 58 штатных Hermes + 4 наших (skills/ailab/)
INSTALL.md пошаговая инструкция для получателя
update-check.ps1 ночная проверка обновлений; ставится задачей Планировщика AILabAgentUpdate
desktop-plugins/ шесть плагинов окна: version-badge, slogan, hide-messaging, session-time, polza-limit, polza-models
.env.template шаблон .env, устанавливается как .env.EXAMPLE

Ключ API живёт только в .env получателя: в config.yaml стоит key_env: HERMES_CUSTOM_POLZA_AI_API_KEY — имя переменной, а не значение. В репозитории ключей нет.

Куда ставится

Агент ставится в корневой дом Hermes (%LOCALAPPDATA%\hermes), а не в именованный профиль. Так у получателя ровно один агент и нет меню профилей — это требование сборки.

hermes profile install здесь не используется: он умеет только именованные профили, а запарковать корневой профиль ядро Hermes не даёт (намеренно игнорирует gateway.parked для default). Поэтому setup.ps1 копирует SOUL.md, config.yaml и skills/ в корень сам и ставит файл-маркер .ailab-install.json, по которому следующий запуск понимает, что это обновление, а не чужая установка.

Что агент умеет

Документы читает и создаёт Excel (.xlsx), Word (.docx), PowerPoint (.pptx), PDF — включая формы, объединение, шифрование и извлечение текста
Файлы чтение и запись, поиск по содержимому
Терминал и код включены — на них построены скиллы документов
Веб-поиск через MCP-серверы, подключаются отдельно
Голос включён: распознавание речи (локальный Whisper, без ключей) и синтез русским голосом (edge)
Номер сборки виден в заголовке окна чипом AILab v<версия> (плагин version-badge)
Девиз справа от номера сборки, в заголовке окна (плагин slogan); на узком окне скрывается сам
Время сессии счётчик в композере слева от чипа Polza.ai (плагин session-time)
Цены моделей чип Модели рядом с расходом: две секции — по факту списания (свои модели, ставка из costLines) и прайс каталога — не факт (плагин polza-models)
ГОСТ-ассистент MCP-сервер gostassistent в конфиге; включается своим ключом в .env
Обновления наши ставятся сами раз в сутки ночью (задача AILabAgentUpdate); сообщения об обновлениях самого Hermes выключены (updates.check: false)
Навигация строка «Сообщения» убрана из боковой панели (плагин hide-messaging)
Настройки экспорт, импорт и сброс — рабочие; после «Сброса» запустите установку заново
Управление рабочим столом выключено (computer_use)

Терминал и запуск кода включены осознанно. Без них не работают скиллы Excel, Word, PDF и почты: они построены на запуске python-скриптов, а другого способа запустить скрипт в Hermes нет. Пакеты для документов (openpyxl, python-docx, python-pptx, pypdf, reportlab, pdfplumber) установщик ставит сам на шаге 8 — на живом доме проверено создание и чтение всех четырёх форматов.

Скрыть их у получателя можно так:

hermes config set agent.disabled_toolsets "[terminal, code_execution, computer_use]"

Голос работает без ключей: распознавание — локальная модель Whisper, синтез — бесплатный русский голос edge. Модель распознавания скачается при первом использовании.

Что не входит

  • API-ключи, auth.json, пароли dashboard — только свои, локальные.
  • MCP-серверы (Revit, AutoCAD и прочее) — не подключены, ставятся отдельно под свои задачи.
  • SSH-бэкенд, cron-задачи, память и история автора.

Передать получателю (файлом)

cd "$LOCALAPPDATA/hermes/dist/vasily-setup"
powershell -NoProfile -ExecutionPolicy Bypass -File build-package.ps1

Скрипт берёт версию из distribution.yaml, собирает бандл, копирует setup.cmd, setup.ps1, INSTALL.md, ПРОЧТИ-МЕНЯ.txt и складывает всё в ../ailab-setup-v<версия>.zip.

Или вручную только бандл:

cd <этот каталог>
git bundle create ../ailab-v<версия>.bundle --all
git bundle verify ../ailab-v<версия>.bundle   # ожидается «is okay» + «complete history»

Получатель разворачивает по INSTALL.md.

Обновить агента у получателя

Обновляется само. Установщик заводит задачу Планировщика AILabAgentUpdate: раз в сутки ночью она сравнивает установленную версию с последним релизом на GitHub и, если вышла новая, ставит её. Условие одно — окно агента в этот момент должно быть закрыто, иначе проверка отложится до следующей ночи. Журнал: %LOCALAPPDATA%\hermes\logs\update-check.log. Отключается update-check.ps1 -Off.

Вручную (когда нужно сразу): поднять version в distribution.yaml, закоммитить, поставить тег, пересобрать пакет build-package.ps1 и передать новый архив. Получателю достаточно положить новый ailab-<версия>.bundle рядом со setup.cmd и запустить его снова: маркер в доме подскажет, что это обновление, а .env с ключом, память и переписка не трогаются.

Проверка перед передачей

Тест на подменённой машине — так собственный дом не участвует:

# 1. "машина" получателя: рантайм без агента
$fake = 'C:\tmp\recv\AppData\Local'
New-Item -ItemType Directory "$fake\hermes" -Force
Copy-Item "$env:LOCALAPPDATA\hermes\tools" "$fake\hermes\tools" -Recurse
Copy-Item "$env:LOCALAPPDATA\hermes\bin"   "$fake\hermes\bin"   -Recurse

# 2. прогон установщика в ней
$env:LOCALAPPDATA = $fake
cd C:\tmp\recv\package          # распакованный ailab-setup-*.zip
powershell -NoProfile -ExecutionPolicy Bypass -File .\setup.ps1

Проверить после прогона: %LOCALAPPDATA%\hermes\SOUL.md (персона без имени автора), 58 скиллов, .ailab-install.json с версией, .env с ключом.

Публикация в git-репозиторий (вариант с обновлением одной командой):

git tag v<версия> && git push origin master --tags

MCP (по желанию)

Добавляется уже в установленном агенте:

hermes mcp add <имя> --command <команда>
hermes mcp catalog          # посмотреть, что есть в каталоге