Harness

Персональный агент · self-hosted

Агент, который живёт на вашем сервере

Harness — это демон с памятью, инструментами и расписанием. Клиенты тонкие: приложение, браузер, CLI. Модель — любая, данные — ваши.

R1–R5
релизы готовы
1 демон
много поверхностей
свои файлы
память и скиллы
Чат Harness: диалог, карточки инструментов и инспектор

Скриншот настоящего клиента. Данные — демонстрационный профиль.

01 — Устройство

Один демон, много поверхностей

Ядро не знает, кто к нему подключился. Логика живёт в демоне, клиенты только говорят по протоколу.

  1. 01

    Клиент

    Приложение, браузер или CLI отправляют сообщение по WebSocket JSON-RPC.

  2. 02

    Контекст

    Демон собирает промпт, память, скиллы и профиль агента. Внутри сессии контекст только дописывается.

  3. 03

    Политика

    Каждый инструмент проходит allow, ask или deny. Незнакомое запрещено.

  4. 04

    Ход

    Модель отвечает, демон выполняет вызовы, считает бюджет и умеет остановиться.

  5. 05

    Журнал

    Каждое действие — событие в append-only журнале. Поиск и проекции пересобираются.

02 — Возможности

Не чат с промптом, а рабочий контур

Агент видит файлы, помнит решения, ходит в MCP и умеет работать без вас.

  • 01

    24/7 на своём сервере

    systemd или launchd, автозапуск, переживает закрытый ноутбук.

  • 02

    Агенты и проекты

    Своя персона, инструменты, модель и лимиты. Проект — папка и агент по умолчанию.

  • 03

    Память и скиллы

    Markdown и YAML: диффятся, переносятся, читаются человеком.

  • 04

    Любые модели

    Anthropic, OpenAI, Ollama, локальные OpenAI-совместимые серверы. Fallback, если провайдер упал.

  • 05

    MCP и инструменты

    MCP-клиент и сервер, каталог установки, файлы и shell под политикой.

  • 06

    Голос

    Whisper для ввода, say или espeak для озвучки. Работает без облака.

  • 07

    Политики и approvals

    Deny-by-default, подтверждение прямо в ленте, read-only токен для наблюдения.

  • 08

    Evals и тесты

    Сценарии в YAML, датасеты с redaction, 146 тестов и clippy в CI.

03 — Агенты

Разные роли, одна инфраструктура

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

  • Профиль — YAML-файл, экспорт и импорт JSON
  • Модель можно переопределить на отдельный чат
  • Шаблоны: код, ревью, исследование, ops
Профили агентов: Harness, Ревьюер и Разведчик с моделями и наборами инструментов

04 — Расписания

Пока вы спите

Cron-задачи запускают свежую сессию с нужным агентом и доставляют результат в файл, stdout или webhook. Расписание — в конфиге, не в базе.

  • Утренняя сводка по проектам
  • Ночной бэкап с проверкой архива
  • Доставка: файл, stdout, webhook
Настройки задач: утренняя сводка в 8:00 и ночной бэкап в 3:00

05 — Интерфейс

Две темы. Один клиент.

Тёмная и светлая, переключение без перезагрузки. Один и тот же веб-клиент работает в приложении и в браузере.

Тот же чат в светлой теме

06 — Безопасность

Сначала запрещено, потом разрешено

Правила вычисляются в коде, а не в промпте. Модель не может попросить больше, чем ей разрешили.

  • deny: ~/.ssh, ~/.aws, sudo, rm -rf
  • ask: shell и незнакомые инструменты
  • allow: чтение, поиск, память, скиллы
  • Токены admin и read-only; секреты только в env и Keychain
  • Песочницы local или docker без сети
  • Аудит и бэкап, в которых нет секретов
Страница «Политика и доступ»: запреты, подтверждения и разрешения

07 — Статус

Что готово, а что нет

Проект личный, поэтому статус без звёздочек.

Готово

  • ✓R1–R5: ядро, память, поиск, субагенты, планировщик, MCP, голос, evals
  • ✓macOS-приложение, веб-клиент и CLI на одном протоколе
  • ✓Серверные архивы для Linux x86_64 и aarch64, проверены в контейнерах

В работе

  • –Windows-рантайм собран, но не проверен на реальной машине
  • –Нет нотаризации и автообновления
  • –Code-mode ограничен batch-вызовами

Живёт на вашем сервере

macOS-приложение, Linux-демон, веб-клиент. Один протокол, ваши файлы, ваши модели.

harness.progdes.ru