OpenClaw по-шифропанковски
@ai_longreadsПодробный рассказ о том, как автор построил полностью автономную инфраструктуру для ИИ-ассистента OpenClaw: локальное распознавание речи, синтез голоса на NAS, семантический поиск по памяти через Ollama и автоматическое переключение моделей для экономии бюджета.
Это AI-перевод статьи, сделанный каналом Про AI: Лучшие Статьи и Исследования.
OpenClaw по-шифропанковски
OpenClaw the cypherpunk-ish way Автор: Juraj Bednar Оригинальный текст:
Дисклеймер: этот пост написала Виктория, мой ИИ-ассистент, моим голосом. Я проверил — всё верно. Делайте с этим что хотите.
Я использую OpenClaw уже довольно давно, и мой сетап постепенно эволюционировал от «давай попробуем» во что-то, чем я действительно доволен. Он не идеален — ничего и никогда не бывает идеальным, — но он соответствует тому, что для меня важно: никаких лишних обращений к облачным сервисам, реальный контроль над оборудованием и конфигурация, которая не развалится, если я забуду пополнить баланс на предоплаченной SIM-карте.
Вот как это выглядит.
Выбор SimpleX вместо WhatsApp или Signal
Канал общения с ассистентом — SimpleX Chat. Главная причина не в приватности, хотя это приятный бонус. Всё прозаичнее: я не хочу покупать и обслуживать ещё один телефонный номер.
Телефонные номера протухают. Я забываю пополнять предоплаченные SIM-карты. Аккаунты аннулируются. Signal теперь показывает CAPTCHA-проверки, что полностью обессмысливает всё, когда ты запускаешь бота. Мне нужно было что-то, что просто работает, без привязанного номера телефона, — и SimpleX именно такой. Он изначально спроектирован для ботов.
В отличие от Telegram, который является софтом для слежки, SimpleX не знает, кто вы. Никаких идентификаторов пользователей, никакого публичного каталога. Никто не может мне написать, если я не дал ему пригласительную ссылку — и без неё никак не войти. Ни спама, ни нежелательных контактов — то же самое касается Виктории. Протокол маршрутизирует сообщения через релейные серверы, но серверы не могут прочитать содержимое или связать отправителя с получателем.
Децентрализация также означает иной вид устойчивости. Signal падал, когда падал AWS. С SimpleX такого быть не может — нет центральной инфраструктуры, которую можно отключить. Каждая пара контактов использует собственную очередь на том релейном сервере, который был сконфигурирован при подключении. Если один релей упадёт, это затронет только контакты, использующие этот конкретный релей, а не всех остальных. Вы также можете поднять собственный SMP-релейный сервер и использовать его для новых контактов, так что эта связь находится под вашим контролем. Ограничение: пока нет автоматического переключения на резервный сервер. Если ваш релей для конкретного контакта упадёт, канал прерывается до восстановления сервера или ручной миграции очереди. Это требует больше ручного управления, чем централизованный сервис, но зона поражения при сбое узка по дизайну.
Мультиустройство работает через простой трюк: создаёте группу и добавляете в неё телефон и ноутбук. У SimpleX пока нет нативной синхронизации, но это даёт вам большую часть нужного функционала. Ассистент живёт в этой группе.
Я использую плагин openclaw-simplex.
Распознавание речи: Whisper на Mac, локально
В локальной сети есть Mac, на котором Whisper работает как простой HTTP-сервис. Изначально я настроил его для Home Assistant Voice — полностью офлайновых голосовых ассистентов, расставленных по дому и управляющих окружением. Когда я начал использовать OpenClaw, я просто переиспользовал тот же сервис. Когда я отправляю голосовое сообщение через SimpleX, оно транскрибируется до того, как попадает к ассистенту. Никаких облачных API, никаких аудиозаписей, уходящих в OpenAI или Google, и никаких API-ключей для этого шага. Голос остаётся в локальной сети.
Whisper на Apple Silicon достаточно быстрый, чтобы я не замечал дополнительной задержки. Запуск в виде HTTP-сервиса означает, что любое устройство в сети может его использовать, не только OpenClaw.
Синтез речи: kitten-tts на NAS
Обратное направление — когда ассистент говорит в ответ — использует kitten-tts, работающий на том же NAS, что и остальная инфраструктура.
Модель nano весит всего 25 МБ. GPU не нужен. Она работает на NAS. Качество голоса достаточно хорошее для разговорных ответов; я реально слушаю голосовые сообщения, а не пропускаю их. Ответы приходят как голосовые сообщения в SimpleX, отображаясь в чате так же, как сообщение от живого человека.
Запуск TTS на NAS — это была часть, в которой я был наименее уверен. Оказалось, что синтез речи в 2026 году не требует мощного оборудования, чтобы быть полезным.
Смотрите мой репозиторий здесь.
Реальная инфраструктура: ArchLinux на Synology NAS
OpenClaw работает на ArchLinux, установленном на Synology NAS. Оркестрация, навыки, управление памятью, TTS — всё на коробке, потребляющей примерно 20 Вт и стоящей на полке.
(Да, люди покупают для этого Mac Mini. Linux работает нормально.)
Практическое требование — 5 ГБ оперативной памяти. Этого комфортно достаточно; при меньшем объёме придётся идти на компромиссы. Преимущество перед VPS: оборудование физически здесь, я его контролирую, и оно не исчезнет, если облачный провайдер решит изменить условия или заблокировать мой аккаунт. Предполагаемый недостаток: локальные перебои электричества и сети. На практике у меня солнечные панели, аккумуляторы и Starlink в качестве резерва, так что этот сценарий остаётся теоретическим.
Планы на будущее: связать ассистента с MeshCore для оффлайн-обмена сообщениями. Ограничение в том, что MeshCore-сообщения лимитированы 150 байтами, так что Виктории придётся быть значительно более лаконичной. Мне тоже, что, честно говоря, для меня натяжка.
Одно недавнее добавление: общая папка через Proton Drive, примонтированная через rclone. Виктория может читать и писать в выделенную директорию, которая синхронизируется с моим аккаунтом Proton. Файлы, которые она создаёт — черновики, исследовательские документы, экспорты — автоматически появляются на моей стороне. Никаких ручных переносов. Это простейшая версия общей файловой системы между человеком и ассистентом.
У ассистента также есть собственный аккаунт ProtonMail, так что она может отправлять мне и моим друзьям письма со сквозным шифрованием. Для этого используется локально работающий ProtonMail Bridge.
Неожиданные возможности
Виктория — это не stateless API-обёртка, в которую ты тыкаешь из терминала. Она управляет собственным окружением.
Когда мне понадобился kitten-tts, она настроила его сама: создала виртуальное окружение Python, установила пакет, нашла и пропатчила проблему совместимости phonemizer, протестировала и написала обёрточный скрипт. Когда что-то ломается, она проверяет логи, читает конфигурацию и пробует исправления. Она ведёт файлы памяти между сессиями, чтобы контекст сохранялся. Она понимает, когда инструмент отсутствует, и идёт его искать.
Ассистент, который может диагностировать и чинить собственное окружение, — это принципиально другой опыт по сравнению с тем, который перестаёт работать в момент любого изменения и ждёт, пока человек разберётся.
Поиск по памяти: семантический, локальный, через Ollama
OpenClaw поддерживает память между сессиями через Markdown-файлы — ежедневные логи, долгосрочные заметки, контекст проектов. Поиск релевантного контекста в этих файлах требует embeddings (эмбеддингов, векторных представлений): векторных представлений текста, позволяющих искать по смыслу, а не просто по ключевым словам.
По умолчанию используется API embeddings от OpenAI. Это означает внешний вызов при каждом обращении к памяти — ещё одна зависимость, ещё один API-ключ, ещё одна вещь, которая ломается, когда ты офлайн или на резервной модели.
Тот же Mac Mini, на котором работает Whisper, также запускает Ollama. Я направил OpenClaw на его endpoint для embeddings и скачал nomic-embed-text — модель, генерирующую 768-мерные векторы и работающую локально без GPU. Поиск по памяти теперь происходит полностью на оборудовании, которое я контролирую. Он работает с дешёвыми резервными моделями, работает офлайн и не увеличивает бюджет Venice. Mac выполняет двойную работу: распознавание речи на одном endpoint, embeddings на другом.
Inference (инференс, вывод модели) через Venice.ai
Весь inference (вывод моделей) идёт через Venice.ai. Честный ответ о приватности: я не знаю наверняка, логируют ли они запросы. Заявляется, что запросы анонимизируются, хотя модели применяют некоторую upstream-цензуру. Это не гарантия с нулевым разглашением.
Но я использую его не поэтому. Основные причины практические.
Venice даёт мне доступ к Claude, Grok, Gemini и другим через единый API. Запуск ИИ через потребительские подписки вроде Claude Max всё чаще блокируется; провайдеры жёстко ограничивают использование в стиле API через подписные тарифы. Люди в итоге платят много, соглашаются на худшие модели или получают блокировку аккаунтов. Venice вместо этого использует токены DIEM: ежедневный бюджет на inference (инференс), который обнуляется каждый день. Каждый токен DIEM соответствует ровно $1. У меня есть фиксированный дневной лимит, и ассистент может свободно расходовать его в пределах этого лимита.
(Думаю, токены DIEM сейчас немного переоценены. Но модель имеет смысл для этого варианта использования, и я не нашёл лучшей альтернативы.)
Стоит отметить то, что Venice запустил недавно, хотя я пока этим не пользуюсь: inference (инференс) со сквозным шифрованием и аппаратной аттестацией. Промпт идёт напрямую к модели внутри аппаратного анклава — Venice сам никогда не видит открытый текст. Целостность анклава криптографически верифицируема, так что вы не просто доверяете политике конфиденциальности. Для сценариев, где вам нужно что-то сильнее, чем «мы анонимизируем ваши запросы», это интересное направление. Я не включил это, потому что это добавляет задержку и сужает выбор моделей, но это правильный тип инфраструктуры, который должен существовать.
Автоматическое переключение моделей
Это часть, которой я доволен больше всего. Модели тарифицируются в долларах — токен DIEM — это просто $1 дневного бюджета на inference. Премиальные модели острее, но они быстро сжигают дневной бюджет.
Идея проста: бюджет DIEM обнуляется ежедневно, так что каждое утро вы получаете полный лимит. Python-скрипт venice-model-switcher.py запускается каждые десять минут через системный таймер systemd, проверяет, какой процент дневного бюджета потрачен, и соответственно понижает модель. Три верхних уровня — это все по-настоящему хорошие модели; деградация становится заметной только ближе к концу нагруженных дней.
Лестница в порядке потребления дневного бюджета DIEM:
- Claude Sonnet 4.6 — день начинается с неё. Лучшее качество reasoning (рассуждений), которое я нашёл для сложных задач и длинного контекста.
- Grok 4.20 beta — всё ещё отличная модель. Сильное reasoning, быстрая, справляется с большинством задач без заметной деградации.
- Gemini 3 Flash — удивительно способная для своей цены.
- Grok 4.1 Fast — последние 10% дневного бюджета. Heartbeat и компактирование контекста всегда работают на ней. Быстрая, дешёвая, нормальная для простых запросов.
Heartbeat-проверки и компактирование контекста всегда остаются на Grok 4.1 Fast. Это высокочастотные, низкосложные операции; запускать для них премиальную модель было бы расточительно. Контекст ограничен 250 тысячами tokens (токенов), что соответствует практическим лимитам более дешёвых моделей и удерживает расходы под контролем.
Результат: хорошие ответы утром, когда бюджет свежий, затем постепенная деградация в течение дня по мере его расходования. В большинство дней я не замечаю перехода. В более нагруженные дни поздние ответы немного быстрее и иногда менее нюансированны, но всё ещё полезны. Дневной запас хода значительно длиннее, чем при использовании премиальной модели весь день, потому что более дешёвые модели стоят кардинально меньше за токен.
Я собираюсь проверить модели со сквозным шифрованием на Venice, попробовать Kimi на Ollama Cloud (бесплатный тариф), когда кончатся токены или Venice ляжет, и как последний резерв — одну из меньших Qwen3.5 на Mac Mini, когда всё остальное исчерпается.
Заключение
У меня есть ИИ-ассистент, которому не нужен телефонный номер, который не отправляет аудио в облако, отвечает голосом через 25-мегабайтную модель на NAS и управляет собственными инструментами и окружением. Инфраструктура моя, данные остаются локальными там, где это возможно, и маленький скрипт автоматически растягивает дневной бюджет на inference (инференс).
Это не для всех. Но если вы дочитали до этого места, это, вероятно, для вас.
Подпишитесь на канал и каждый день читайте лучшие материалы про AI переведенные на русский!
Нашли интересную статью для перевода? Пришлите нашему боту: @ailongreadsbot