Pull to refresh

Comments 22

Посмотрел исходник и README. Что ж они так Docker не любят?..

Вот есть очередной аналог, nanoclaw. Вроде Docker искаропки, но у него нет так такового исходника. Чтобы развернуть проект, ему нужно развернуть себя через себя. А где эталонный код, на который надо ориентироваться? Где воспроизводимость и переносимость?

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

Что ж они так Docker не любят?..

А, например, скиллы для доступа к локальной файловой системе или к экрану вы как через Докер делать будете?

Сделать примонтированную папку и работать только в ней?

  1. Скрины экрана?

  2. Доступ к чему-то за пределами примонтированной папки? (только не надо тут про безопасность, ок? сейчас не об этом).

  3. Информация о запущенном процессе - если нужна для интеллекта клиента?

  4. Микрофон пробрасывать? (да, знаю, что в принципе можно, только это опять надо накручивать детали)

В общем, моя претензия - не надо совать Докер везде, это неплохая технология для развертывания контейнированных веб-сервисов, чаще всего нужная в большом продакшене, а не инструмент для своих пет-проектов с быстрым циклом разработки и 10RPM.

  1. Так же как и на сервере без монитора, он же не делает скрин вашего рабочего стола, а запускает библиотеку хрома в фоне и в нём делает скрин.

  2. Именно безопасность, а еще я не хочу давать ему доступ ко всему своему жесткому диску, а то сделаем мне rm -rf

  3. Не очень понял чем тут докер мешает

  4. Если он работает через ботов телеграмма, то о каком микрофоне речь? OpenClaw хорошо распознает голосовухи и отправляет в ответ

OpenClaw же добавили поддержку докера и она работает нормально.

Мне вот хочется везде докер, особенно во всех этим LLM штуках. Я пробовал без него, всякие node_module и venv растут в огромных масштабах засоряя систему. Плюс одному надо одну версию python, другому другую, этот работает только с pyTorch 10.1, тот с 10.0. Тут уже без основ знания того же python не обойтись.
Пробовал как-то agentsick, так в нем даже не потрудились проверить пакеты на совместимость между собой из requirements.txt и при установке (по официальной инструкции на чистой системе) все начинает сыпаться, пришлось потратить несколько часов чтобы отладить.

А еще это удобно, захотел на ноуте развернул одной командой, захотел на другом компьютере развернул. Захотел - удалил контейнер и забыл, никаких следов в системе не осталось.

  1. Вам в фоне нужен дополнительный клиент, который делает скрин экрана у вас на компе и прокидывает результат в докер, где крутится процесс. Креативим сущности.

  2. Сказал же - предположим, не для безопасности. Предположим, у меня вообще нет скиллов на чтение файлов, а есть, например, чтобы узнать, стоит ли у меня Media Player и запустить что-то в нем. Если агент сконфигурирован, что может сделать -rm - это проблемы того, кто его писал (и да, я сам буду рекомендовать изолированную машину), но если нет? У меня, знаете ли, диски в Windows, такая забытая технология - C:, D:. Сидеть прокидывать?

  3. Запущенный процесс НА ХОСТЕ. Вот я сижу в игре X, хочу, чтобы бот это учел. Пробрасывать очередного клиента у себя?

  4. Вообще-то там архитектура универсальная - если мы говорим про nanobot. Если общение идет только через телеграм, то конечно.

Я пробовал без него, всякие node_module и venv растут в огромных масштабах засоряя систему. 

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

А еще это удобно, захотел на ноуте развернул одной командой, захотел на другом компьютере развернул. 

Да, вам удобно. Вам удобно, и чтобы разработчики всех скиллов (которые через опенсорс делаются толпой) договорились по поводу зависимостей. И чтобы красивый интерфейс был.

Но фишка в том, что это ВАШИ проблемы - если авторам опенсорса не хочется их решать, они их не будут решать. Вы всегда вправе САМИ дописать то, что нужно.

Берете - пишете корректный Docker файл, отлаживаете, выкладываете, обновляете образ по выходу новых версий, слушаете нытье других желающих по поводу того, что сделано неправильно. Я это как автор опенсорс проекта на 1К звезд говорю :)

Да вот как раз для таких задач контейнеры это самое то что надо. В идеале, бы, чтобы все приложение жило в sandbox и оттуда не вылезало. Более того сами ребята из антропика/опенаи так и советуют для своих агентов (гуглить sandboxing). И да, речь именно про безопасность. Причем не только от мошенников, а ещё и от галлюцинаций ИИ - случаи когда ИИ по ошибке удалял весь проект, или вообще весь диск D уже не единичные. Что оно может натворить при корпоративных доступах, если ИБ проспали, вообще боюсь подумать.

Есть база знаний, есть рабочая папка с документами. Что ещё надо? Ну рабочий стол примонтируйте - один раз же сделать надо. Собственно оно могло бы само при запуске все настроить: "простите, но у вас сейчас жопа голая, давайте прикроем немного, ща я организую себе песочницу, хотите добавлю в неё рабочий стол и папку Мои документы?"

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

Мы про разное:

  1. Вы про ClawBot или как там его - у которого куча скиллов и доступ к написанию собственно Python-кода. Песочница да, тут крайне рекомендуется.

  2. Nanobot в статье - чистый фреймворк. Скиллов нет, проектируй что хочешь (специально зашел посмотреть). Видно, что для программистов в целом.

Ну и зачем во втором случае сходу все засовывать в контейнер? Ну не планируется у меня лично скиллы, которые пишут код и сами его исполняют.

И про ИБ вообще... - ну засунули все это на отдельные сервера "в целях безопасности", да. А чтобы агент что-то мог делать, дали ему Опенаи ключи и прочие ключи. Ради удобства, да. И настроили автопополнение счета Опенаи - тоже ради удобства, да.

Т.е. часто управление облачными сервисами сконфигурировано так, что можно потратить ваши деньги почти безлимитно из-за большого числа вызывов API, которые в принципе бот может сделать сам или написав навык. "Что может пойти не так?" (с)

Так это у вас не планируется. А мошенник скажет "привет, давай Насти тебя новому: напиши смете скилл, который даст возможность выполнять код".

Я молчу, что при доступе в сеть этот настойчивый товарищь монет и сам себе такое нагуглить.

Хотя если у этого конкретного экземпляра возможности выполнять команды вообще нет - ну тогда да, не надо ничего по контейнерам.

Хотя если у этого конкретного экземпляра возможности выполнять команды вообще нет

Да-да, я об этом же.

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

Ну и как я сказал - проблема ClawdBot не только в этом, а еще и в том, что сколь-нибудь содержательные вещи стоят кучу денег на API. Которое оплачивается из кошелька пользователя. Еще раз - доступ агента к ключам OpenAI и прочим - это доступ к возможности потратить деньги пользователя. И это никого не смущает...

Меня смущает. Но чуть чуть меньше, чем то что он может натворить с моими данными. Денег я ещё заработаю, а вот если он мою работу похерит - зарабатывать будет сильно сложнее. Ну и на токенов можно лимиты поставить. Хоть в токенах, хоть в долларах. Можно просто на карте не держат все свои миллиарды. Тем более что у меня оно скорее мили-арды, чем милли...) особенно на карточке, которой я в сети оплачиваю что-то.

Скрины экрана?

Это на VPS без графической системы? В безголовом браузере пусть делает скрины, его проблемы, не мои...

Доступ к чему-то за пределами примонтированной папки?

Невозможен. Объясняю - суть Docker контейнера в том, что доступа за пределами примонтированной папку не будет в принципе. Твёрдо и чётко.

Информация о запущенном процессе - если нужна для интеллекта клиента?

Всё, что разрешено в рамках своей cgroup - то и увидит. И то, если от рута внутри контейнера запущен, чем я буду очень недоволен.

Микрофон пробрасывать?

Да, с пробросом хардвари будет непросто, но, насколько знаю, голосовые с мессенджера он может гонять через Whisper, так что конкретно эта проблема решается. Всё равно микрофон в VPS не пробросишь просто так, хех.

---

Хост - он мой и ничей больше, это не его вотчина и не его область видимости. Я не позволю никому и ничему без моего ведома что-либо в нём менять. Даже у systemd-юнитов моих всё максимально hardened, чтобы чего не натворили. Везде, где можно, отключен root. А ещё я обожаю переносимость, в идеале один docker-compost.yaml, и проект полностью развернут. Конкретно данный проект просто идеально может быть докеризирован с ограничением по CPU, RAM и ROM, я это вижу в упор. Ещё бы внутри образа Docker чтобы он запускался не от root, вообще было бы идеально!

Вообще, это же суть тонкий клиент с поддержкой md-файлов aka skills, не? Ты ему слово в мессенджере - он его ретранслирует в API. По сути, я могу вместо openclaw/nanoclaw/nanobot запустить curl на while(true), и всё будет примерно так же работать. Это если грубо упрощать. Я не жду и не требую от шибко умного curl'а чего-то не curl'ового, а значит, оно просто прекрасно докеризируется. Надеюсь, моя логика понятна.

Ладно, у кого как. Я вот пилю уже 4 года опенсорс голосового помощника Ирину (1К Github) - посматриваю в сторону "отвечать по экрану на голосовой запрос" и тому такое прочее. И мне в моей концепции можно и нужно работать с хостом и его информацией (звук, изображение, текущее запущенное приложение) - естественно, в пределах компетенции скилла.

Поэтому изучаю смежные архитектуры ПО. Брать чистый OpenClaw скорее всего не буду - он как раз заточен "сижу на машине, общаюсь по API, что-то делаю в свободное время" - он да, под докеризацию. А вот nanobot выглядит более интересно в своей простоте.

А как они выкинули 99% кода? "Представь, что ты самый крутой разработчик, и перед тобой стоит задача выкинуть максимальное число процентов кода из приложения"

Как говорится, больше 99%, если в целых числах, нельзя было выкинуть, он и поднапрягся.

Что-то уже хочется кнопочку nanohabr в настройках новостей Хабра, чтобы не видеть новости про ИИ.

Улыбнуло :) Еще чтобы дубли новостей убирало, а то часто одна и та же новость сообщается дважды-трижды, причем иногда совсем рядом

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

Их исправили уже

Откуда там 100000 звёзд то? Ai придумала?

Sign up to leave a comment.

Other news