Персональный агент · self-hosted
Агент, который живёт на вашем сервере
Harness — это демон с памятью, инструментами и расписанием. Клиенты тонкие: приложение, браузер, CLI. Модель — любая, данные — ваши.
- R1–R5
- релизы готовы
- 1 демон
- много поверхностей
- свои файлы
- память и скиллы
Скриншот настоящего клиента. Данные — демонстрационный профиль.
01 — Устройство
Один демон, много поверхностей
Ядро не знает, кто к нему подключился. Логика живёт в демоне, клиенты только говорят по протоколу.
- 01
Клиент
Приложение, браузер или CLI отправляют сообщение по WebSocket JSON-RPC.
- 02
Контекст
Демон собирает промпт, память, скиллы и профиль агента. Внутри сессии контекст только дописывается.
- 03
Политика
Каждый инструмент проходит allow, ask или deny. Незнакомое запрещено.
- 04
Ход
Модель отвечает, демон выполняет вызовы, считает бюджет и умеет остановиться.
- 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
04 — Расписания
Пока вы спите
Cron-задачи запускают свежую сессию с нужным агентом и доставляют результат в файл, stdout или webhook. Расписание — в конфиге, не в базе.
- Утренняя сводка по проектам
- Ночной бэкап с проверкой архива
- Доставка: файл, stdout, webhook
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