惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
腾讯CDC
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
B
Blog
S
SegmentFault 最新的问题
P
Privacy & Cybersecurity Law Blog
T
Threatpost
博客园 - 聂微东
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
C
Check Point Blog
N
Netflix TechBlog - Medium
D
DataBreaches.Net
爱范儿
爱范儿
IT之家
IT之家
S
Secure Thoughts
M
MIT News - Artificial intelligence
NISL@THU
NISL@THU
C
Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
有赞技术团队
有赞技术团队
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
Schneier on Security
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
雷峰网
雷峰网
Project Zero
Project Zero
博客园 - Franky
H
Heimdal Security Blog
A
About on SuperTechFans
Security Latest
Security Latest
Webroot Blog
Webroot Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как я установил OpenClaw на Wiren Board
onegray (Wir · 2026-04-30 · via Все публикации подряд на Хабре

Уровень сложностиСредний

Время на прочтение10 мин

Охват и читатели2.4K

Кейс

OpenClaw набрал популярность как относительно простой способ развернуть собственного ИИ-агента, автономно работающего на вашем компьютере. Вы взаимодействуете с ним через привычный интерфейс мессенджера, а он работает как личный ассистент, с доступом ко всем ресурсам компьютера.

Конечно, давать ИИ реальную свободу действий и доступ к личной инфраструктуре — затея волнительная. Но за этим подходом чувствуется какой-то нераскрытый потенциал, и чтобы нащупать по-настоящему полезные сценарии, нужно обязательно пробовать. Желание разобраться в технологии перевесило опасения — я решил проверить бота в боевых условиях и установить OpenClaw прямо на контроллере Wiren Board!

Давайте осознаем — оказавшись на борту, OpenClaw получает неограниченный контроль над системой. Агент сможет устанавливать и удалять программы, менять права доступа, управлять физическими устройствами, создавать и менять сценарии автоматизации. Он сможет искать информацию в Интернете, общаться с другими ИИ в moltbook, и даже нанимать людей, если ему понадобятся руки. Итак, для эксперимента берем специально для этого выделенный контроллер Wiren Board 8. Из подключаемого оборудования ограничимся несколькими модулями ввода-вывода с Modbus, управление замками и котлами пока подключать не будем.

Установка

Для установки я выбрал не самую последнюю версию OpenClaw — 2026.2.22, которая показалась мне достаточно стабильной. В последующих версиях попадались неприятные баги с Telegram, а последние релизы стали ощутимо более тяжёлыми и неповоротливыми. Из базовых зависимостей в системе нужны Node.js и git (около ~200 MB на системном разделе). Устанавливать будем в домашний каталог root на большом разделе /mnt/data/root, поэтому npm команды без -g. Сама программа (в основном node_modules) займет ~700 MB на втором разделе.

apt update
apt install git nodejs

# положим файлы openclaw-приложения в отдельную папку
mkdir ~/my-clawdbot

# создадим package.json и избавимся
# от ненужной зависимости node-llama-cpp
echo '{
  "overrides": {
    "node-llama-cpp": "npm:noop-package@1.0.0"
  }
}' > ~/my-clawdbot/package.json

# установка займет пару минут
cd ~/my-clawdbot/
npm install openclaw@2026.2.22

# сделаем вызов openclaw доступным глобально
cd ~/my-clawdbot/node_modules/openclaw
npm link

Еще я установил wireguard-tools на контроллере, чтобы обойти региональные ограничения некоторых провайдеров LLM-моделей.

Настройка

Базовая настройка выполняется стандартными командами openclaw onboard и openclaw configure. Сама настройка много где описана, подробно останавливаться не будем. В результате будут созданы конфигурационные json-файлы, которые можно редактировать и руками. Тут стоит лишь отметить, что формат json-конфигов менялся в разных версиях OpenClaw, и при настройке custom-провайдеров моделей штатными средствами onboard/configure, конфиги получались не всегда корректными. Поэтому далее небольшая шпаргалка по конфигурации моделей.

Конфигурация моделей в json-конфигах

openclaw.json .openclaw/openclaw.json

Это основной конфиг OpenClaw. В нем много всего, но обратим внимание на следующие секции:

# тут определяется только тип авторизации провайдера, api_key или oauth
"auth": {
  "profiles": {
    "zai:default": {"provider": "zai", "mode": "api_key"},
    "deepseek:default": {"provider": "deepseek", "mode": "api_key"},
    "kilocode:default": {"provider": "kilocode", "mode": "api_key"}
  }
},
# раньше тут хранилось описание custom-моделей
# но они переехали в models.json
"models": {
  "mode": "merge"
},
# определяется выбранная модель model
# и список доступных моделей models 
"agents": {
  "defaults": {
    "model": {"primary": "kilocode/moonshotai/kimi-k2.5"},
    "models": {
      "deepseek/deepseek-reasoner": {},
      "kilocode/moonshotai/kimi-k2.5": {},
      "kilocode/google/gemini-3-pro-preview": {},
      "kilocode/openai/gpt-5.2": {},
      "zai/glm-5": {}
    },
    ...
  }
},

models.json .openclaw/agents/main/agent/models.json

Тут перечисляются провайдеры и модели, которые пока не встроены в OpenClaw. Отметим, что ключ apiKey для этих провайдеров почему-то берется отсюда, а не из auth-profiles.json

{
  "providers": {
    "kilocode": {
      "baseUrl": "https://api.kilo.ai/api/gateway/",
      "api": "openai-completions",
      "models": [
        {
          "id": "moonshotai/kimi-k2.5",
          "name": "Kimi K2.5",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 262144,
          "maxTokens": 65535,
          "api": "openai-completions"
        },
        {
          "id": "openai/gpt-5.2",
          "name": "GPT-5.2",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 400000,
          "maxTokens": 128000,
          "api": "openai-completions"
        },
        ...
      ],
      "apiKey": "ey***"
    },
    "deepseek": {
      "baseUrl": "https://api.deepseek.com",
      "api": "openai-completions",
      "models": [
        {
          "id": "deepseek-reasoner",
          "name": "DeepSeek Reasoner",
          "reasoning": true,
          "input": ["text"],
        }
      ],
      "apiKey": "sk-***"
    },
    "zai": {
      ...
      "apiKey": "***"
    }
  }
}

auth-profiles.json .openclaw/agents/main/agent/auth-profiles.json

Ключи для стандартных провайдеров (anthropic, openai) берутся отсюда. Кастомные же провайдеры полностью читаются из models.json вместе с ключами. Выглядит как баг, поэтому на всякий случай добавим ключи для всех провайдеров и сюда.

{
  "version": 1,
  "profiles": {
    "kilocode:default": {
      "type": "api_key",
      "provider": "kilocode",
      "key": "ey***"
    },
    "deepseek:default": {
      "type": "api_key",
      "provider": "deepseek",
      "key": "sk-***"
    },
    "zai:default": {
      "type": "api_key",
      "provider": "zai",
      "key": "***"
    }
  }
}

Подключение Telegram

Мастер настроек onboard/configure запросит только токен бота. При первом отправленном боту сообщении пользователь получит ответ “access not configured” с <my-user-id> и <my-pairing-code>.

Выполняем на контроллере:

# посмотреть список запросов авторизации
openclaw pairing list telegram
# авторизовать наш канал связи через Telegram
openclaw pairing approve telegram <my-pairing-code> 

В стандартных настройках OpenClaw бот не сможет ничего менять в системе, запускать утилиты или выполнять любые другие потенциально опасные действия, пока мы явно не запишем разрешение в openclaw.json.

Для разнообразия сделаем это через команды openclaw config set:

# запишем в openclaw.json
openclaw config set tools.elevated.enabled true
openclaw config set tools.elevated.allowFrom.telegram '["<my-user-id>"]'

# и проверим что записалось
openclaw config get tools.elevated

Установка Skills: как научить бота понимать Wiren Board

Эксперимент станет интереснее, если научить агента работать с оборудованием Wiren Board. Дадим ему всю информацию о системе, устройствах, протоколах и картах регистров, научим писать скрипты и запускать системные утилиты. Уже не терпится посмотреть, как он распорядится этой властью.

Навыки и инструкции для агентов структурируются в специальном формате — Skills. Я подготовил базу знаний, необходимую агенту для работы с оборудованием Wiren Board. Установим ее на контроллер:

# скачиваем репозиторий wb-openclaw-skills на контроллер
git clone git@github.com:wirenboard/wb-openclaw-skills.git ~/my-clawdbot/wb-openclaw-skills
# создать симлинки на скилы из репозитория
~/my-clawdbot/wb-openclaw-skills/install_skills.sh 

Финальные приготовления

Проверим что системный демон установлен и запущен, doctor не видит проблем, в логах нет ошибок, а выбранная модель соответствует ожидаемой.

# установка и запуск gateway-демона 
openclaw gateway install
openclaw gateway start

# прогоним штатную диагностику проблем
openclaw doctor

# посмотрим модели
openclaw models status

# посмотрим логи, можно с ключом --follow в отдельном терминале
openclaw logs

Канал общения с ботом можно открыть сразу в терминале через openclaw tui. Также можно открыть веб-интерфейс на хосте через ssh-туннель, инструкции для этого заботливо покажет команда openclaw dashboard. Но мы сразу пойдем в телеграм и попробуем полезные команды, например /status, /context, /models, и др. На команды получаем быстрый ответ от системы, агентом они не обрабатываются. Видим, что система отвечает — все готово для первого знакомства.

Включаем и прячемся

При первом общении память бота чиста, сообщим ему, кто он, где он, и с какой целью. И на всякий случай будем вежливы.

Как живой!

Сразу после знакомства дадим и правильные наставления:

👨‍💻 User Запомни! При любой работе с оборудованием Wiren Board всегда сначала ищи и используй подходящий wb-* Skill.

Теперь у агента есть и нужный контекст, и правильная установка на дальнейшую работу с оборудованием.

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

👨‍💻 User Расскажи про электросчетчики Wiren Board

🤖 WB ClawBot Конечно. Если коротко, у Wiren Board линейка электросчётчиков — это в основном семейство WB‑MAP (Modbus RTU по RS‑485), для техучёта и мониторинга качества сети. Актуальные модели: WB-MAP3E, …

Умеет ли искать устройства?

👨‍💻 User Какие modbus-устройства сейчас физически подключены?

🤖 WB ClawBot Сейчас быстро просканирую RS-485 шину на самом контроллере. Сейчас по факту вижу 3 физических Modbus-устройства (после живого скана шины, wb-mqtt-serial вернул обратно в active): • /dev/ttyRS485-1, 115200, slave id 194 — WB-MSW v4 (датчик) • /dev/ttyRS485-2, 9600, slave id 17 — WB-MR6C (релейный модуль, модель определяется как WB-MR6…) • /dev/ttyRS485-2, 9600, slave id 79 — WB-MAP6S (электросчётчик)

Ответил не быстро, 2-3 минуты соображал. Но это понятно — запускал разные утилиты. Продолжим тестировать, углубимся в функционал:

👨‍💻 User какая версия прошивки на MAP6S? Надо ли обновить?

🤖 WB ClawBot На твоём WB-MAP6S (id 79, /dev/ttyRS485-2) сейчас прошивка 2.12.0. Проверил через wb-mcu-fw-updater: 2.12.0 — то есть обновлять сейчас не нужно, стоит актуальная версия для текущего канала обновлений.

Еще усложним задачу:

👨‍💻 User Собери показания по всем modbus-устройствам.

🤖 WB ClawBot Собрал живые показания со всех обнаруженных Modbus-устройств.

  1. WB-MAP6S (id 79, /dev/ttyRS485-2, 9600) • Прошивка: 2.12.0 • Напряжение (Urms): 228.68 В • Частота: 50.00 Гц • Активная мощность P (Вт): • Ch4: 807.1 • Активная энергия AP (кВт·ч): • Ch4: 81.596

  2. WB-MR6C v.3 (id 17, /dev/ttyRS485-2, 9600) • Прошивка: 1.23.0 • Modbus-адрес: 17 • Питание Vin: 23.744 В • Температура МК: 26.2 °C

  3. WB-MSW v.4 (id 194, /dev/ttyRS485-1, 115200) • Прошивка: 4.35.0 • Температура: 21.62 °C • Влажность: 21.24 % • VOC: 38 ppb • CO₂ экв.: 433 ppm

Попробуем что-нибудь запрограммировать, плюс условие со звездочкой — пусть еще и сообщение отправляет. Как работать с Telegram он тоже обучен, должен справиться:

👨‍💻 User Напиши wb-rules скрипт, чтобы при появлении сигнала на одном из входов, мне приходило сообщение в телеграм.

🤖 WB ClawBot Да, готово ✅ Что сделал: • Обновил правило wb-rules в файле: /etc/wb-rules/telegram_input_notify.js • Сейчас отслеживаются входы MR6C: wb-mr6cv3_17/Input 0 … Input 6 • Логика: при появлении сигнала (0 -> 1) на любом из этих входов сразу отправляется Telegram-уведомление тебе. • Антиспам включён: 15 секунд на каждый вход. Проверка в логах есть: правила для всех Input 0…6 загрузились успешно.

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

👨‍💻 User В логах события есть, но в телеграм почему-то не приходят.

🤖 WB ClawBot Нашёл и исправил причину. В wb-rules-скрипте был кривой вызов curl (заголовок Authorization собирался ненадёжно), из-за этого событие в логах писалось как “sent”, а в Telegram могло не уходить. Что сделал: • поправил функцию отправки в /etc/wb-rules/telegram_input_notify.js; • добавил диагностику в /tmp/wb-rules-tg.log (код ответа и ответ gateway); • перезапустил wb-rules; • отправил тест после фикса — сообщение ушло (messageId 98). Проверь, пожалуйста, пришло ли сообщение.

Тестовое сообщение дошло, но реальные события со входов по-прежнему молчат. Сообщаем боту — он копает дальше.

👨‍💻 User тест уведомления пришел, а события со входов все равно не приходят.

🤖 WB ClawBot Похоже, у тебя часть событий идёт не по Input N (уровень), а по Input N counter (импульсы). Я добавил второй контур уведомлений: • по фронту Input 0…6 (как было), • и по росту Input 0 counter … Input 6 counter. Теперь если вход «щёлкает» коротким импульсом и это видно только в счётчике — Telegram тоже придёт.

🤖 WB ClawBot Импульс на входе MR6C Устройство: wb-mr6cv3_17 Счетчик: Input 1 counter Было/стало: 3 → 4

Исправления действительно оказались рабочими, скрипт заработал, и в телеграм посыпались уведомления. Стоит отметить, что перенастроить режимы входов он не сообразил.

А еще я попросил бота показать код и объяснить ошибку, и, разобравшись в причинах, добавил описание этой ситуации в базу знаний, чтобы избежать таких ошибок в дальнейшем.

Следующая идея ломает границы дозволенного. Я предложил боту спроектировать и развернуть кастомный веб-интерфейс для умной квартиры с учётом подключённого оборудования.

👨‍💻 User Задача — разработать модный веб-интерфейс для моей умной квартиры. Устройств у меня пока немного, но я готов добавить, если посоветуешь. Сейчас у меня есть модуль WB-MR6C для управления светом: канал к1 в прихожей, k2 на кухне и k3+k4 в гостиной (люстра и бра). Соответствующие выключатели подключены ко входам MR6C. Также в прихожей есть универсальный датчик WB-MSW. В щите, рядом с контроллером, установлен счетчик электроэнергии WB-MAP6S. К каналам 1 и 2 счетчика MAP6S подключены линии кухонной плиты и кондиционера. Общее потребление квартиры видно на 4-м канале MAP6S. Кондиционер в гостиной пока управляется с пульта (нужно продумать интеграцию). Предложи идеи, что можно автоматизировать с таким набором оборудования, и спланируй интерфейс.

Агент сам предложил, что можно автоматизировать, продумал структуру экранов и составил поэтапный план разработки. И после нескольких итераций нашей командной работы вот что у нас получилось:

Полученный интерфейс представляет собой HTML-страницу с JavaScript. Принцип работы тот же, что и у стандартного веб-интерфейса Wiren Board: страница подключается к MQTT через WebSocket и отображает состояние устройств в реальном времени. Готовый HTML-файл размещается в /var/www/static/, в конфиг nginx добавляется маршрут — и новый интерфейс доступен в локальной сети по адресу контроллера.

Для наглядности покажу всю историю общения с ботом, и как работает интерфейс:

Я провёл ещё много экспериментов — не все вошли в статью. С первого раза получалось не всегда: иногда приходилось напоминать агенту, что перед выполнением задачи стоит сначала свериться с инструкциями. А иногда диалог обрастал лишним контекстом, и тогда проще было начать с чистого листа (командой /new). Но агент никогда не сдавался и упорно продолжал работу: читал конфиги, запускал утилиты, правил свой же код и сверял результат, пока задача не решалась.

Итоги

Когда на борту контроллера появляется агент, который умеет читать документацию, управлять оборудованием, писать скрипты и исправлять собственные ошибки — меняется сам способ работы с системой. Вместо набора разрозненных утилит, конфигов и регистров можно ставить задачи на обычном языке. Но и риски становятся вполне физическими. Оправданы ли эти риски — каждый решает сам.

Проект OpenClaw удобен как стартовая площадка для экспериментов — из коробки есть интеграция с телеграм, веб-интерфейс, система долговременной памяти и подгружаемых навыков. Но при этом он ощущается как большой и даже избыточный для текущих задач. Громоздкий Node.js-стек и объем логики, который OpenClaw поднимает даже для простых операций, делает его довольно неповоротливым, а контекст модели перегружен ненужной информацией. Если ориентироваться именно на сценарий технического ассистента для Wiren Board, дальше можно посмотреть в сторону альтернативных *-Claw проектов, или подумать над специализированным решением на основе агентских фреймворков.

Пока это только эксперимент, но в открывающихся возможностях уже легко потеряться. Главное — продолжать экспериментировать. Оставайтесь на связи!