Как улучшить RAG-систему без изменения кода?
В больших компаниях много документов и много людей, которые эти документы пишут. Заставить всех писать хорошо и тем более сверяться с другими документами, чтобы избежать дубликатов и противоречий, невозможно.
Поэтому самый простой способ (hack) все это пофиксить - это попросить обязательно вести всего два доп. файла:
ТЕРМИНЫ - аббревиатуры, синонимы, включая неофициальные, все, что используется в компании, про что LLM может не знать.
ПОДСКАЗКИ - файл с правилами интерпретации по умолчанию, когда запрос может быть неоднозначен.
Это не идеальный вариант, но без изменений кода можно сильно улучшить качество ответов.
Подпишись 👉🏻 @aigentto 🤖
В больших компаниях много документов и много людей, которые эти документы пишут. Заставить всех писать хорошо и тем более сверяться с другими документами, чтобы избежать дубликатов и противоречий, невозможно.
Поэтому самый простой способ (hack) все это пофиксить - это попросить обязательно вести всего два доп. файла:
ТЕРМИНЫ - аббревиатуры, синонимы, включая неофициальные, все, что используется в компании, про что LLM может не знать.
Например, в одной компании hrlink все называют шарлинк, вот так и написать: "шарлинк - это hrlink".
ПОДСКАЗКИ - файл с правилами интерпретации по умолчанию, когда запрос может быть неоднозначен.
Например, в компании два отдела кадров, но чаще всего имеют в виду отдел кадров головной компании, тогда напишите: "под отделом кадров по умолчанию имей в виду отдел кадров головной компании".
Это не идеальный вариант, но без изменений кода можно сильно улучшить качество ответов.
Подпишись 👉🏻 @aigentto 🤖
Ботам тяжело в мире людей
Две крайности вопросов к RAG-боту.
Вот человек задает вопрос про ДМС, но пишет много не относящегося к делу, и семантическое сходство тает на глазах. Еще добавить предложение, как именно тебе никто ничего не рассказал, и бот совсем не поймет, про что вопрос 😄
Второй хочет узнать, где в компании поиграть в футбол, но он очень краток 😄
Бот справляется, но еще чуть-чуть, и он не поймет, о чем, блин, речь-то?
Подпишись 👉🏻 @aigentto 🤖
Две крайности вопросов к RAG-боту.
Вот человек задает вопрос про ДМС, но пишет много не относящегося к делу, и семантическое сходство тает на глазах. Еще добавить предложение, как именно тебе никто ничего не рассказал, и бот совсем не поймет, про что вопрос 😄
Второй хочет узнать, где в компании поиграть в футбол, но он очень краток 😄
Бот справляется, но еще чуть-чуть, и он не поймет, о чем, блин, речь-то?
Подпишись 👉🏻 @aigentto 🤖
Красивые инструменты не работают
Например, https://github.com/VectifyAI/PageIndex, хорошая идея построить дерево по оглавлению документов PDF. Лучше, чем LangGraph, потому что использует LLM для классификации и создания дерева.
Но в реальной жизни лучше работает простой семантический поиск через все чанки. Потому что в реальном мире реальных компаний документы всегда плохо структурированы, если это PDF, то он отсканировано-пиксельный, там часто нет никакого оглавления. Сами документы дублируются, и кусочек информации там, а кусочек тут.
И самое главное, сама идея, что все знания можно расположить в виде огромного четкого структурированного дерева очень симпатизирует разработчикам, но в реальности это невозможно. Никакие живые знания так не расположишь, либо нужно нанимать целый отдел, который будет этот бюрократический формат блюсти.
У меня была попытка сделать это по уже структурированной Wiki в одной очень дисциплинированной компании, полностью проявилась, а сработало, например, залить все, что каждый отдел говорил в чатах за последние 10 лет в свою коллекцию знаний и сделать простой роутинг между этими коллекциями.
Подпишись 👉🏻 @aigentto 🤖
Например, https://github.com/VectifyAI/PageIndex, хорошая идея построить дерево по оглавлению документов PDF. Лучше, чем LangGraph, потому что использует LLM для классификации и создания дерева.
Но в реальной жизни лучше работает простой семантический поиск через все чанки. Потому что в реальном мире реальных компаний документы всегда плохо структурированы, если это PDF, то он отсканировано-пиксельный, там часто нет никакого оглавления. Сами документы дублируются, и кусочек информации там, а кусочек тут.
И самое главное, сама идея, что все знания можно расположить в виде огромного четкого структурированного дерева очень симпатизирует разработчикам, но в реальности это невозможно. Никакие живые знания так не расположишь, либо нужно нанимать целый отдел, который будет этот бюрократический формат блюсти.
У меня была попытка сделать это по уже структурированной Wiki в одной очень дисциплинированной компании, полностью проявилась, а сработало, например, залить все, что каждый отдел говорил в чатах за последние 10 лет в свою коллекцию знаний и сделать простой роутинг между этими коллекциями.
Подпишись 👉🏻 @aigentto 🤖
GitHub
GitHub - VectifyAI/PageIndex: 📑 PageIndex: Document Index for Vectorless, Reasoning-based RAG
📑 PageIndex: Document Index for Vectorless, Reasoning-based RAG - VectifyAI/PageIndex
AIGENTTO
Слабое звено системы ИИ-агентов — это люди Часто ИИ-агентам нужны знания из RAG-систем или через MCP-сервер. Знания нужны, относящиеся к конкретной компании. Материалы должны добавлять люди. Они их не добавляют по разным причинам — заняты, надо согласовать…
Ментальный прорыв в проблеме полного доступа для агентов
Итак, все уже слышали, что вышел OpenClaw, и спасибо Питеру за наше счастливое будущее, произошел прорыв в решении ментальной проблемы - дать агентам полный, мать его, доступ. Питер собрал все из того, что уже было, и о чудо, оно может делать все (в том числе слить все ваши данные 🤨).
Но ключевое - это то, что ментальный барьер пройден, люди реально ставят это даже на свои компьютеры, в том числе на рабочие (конечно, беря титанические риски). А всего-то надо было дать агентам exec (то есть способность запускать все, что угодно)
Мир уже не будет прежним, много людей пострадают, но зато дальше будет сильно лучше.
Это то же самое, что выпустить на улицы больших городов 100k машин с автопилотом 😎 Будут сложности, но потом мы уже не сможем без них жить 🎮
Я буду мержить свой Blackboard с OpenClaw и внедрять этих монстров везде, где только можно (конечно, максимально зажимая им тестикулы 😄)
Подпишись 👉🏻 @aigentto 🤖
Итак, все уже слышали, что вышел OpenClaw, и спасибо Питеру за наше счастливое будущее, произошел прорыв в решении ментальной проблемы - дать агентам полный, мать его, доступ. Питер собрал все из того, что уже было, и о чудо, оно может делать все (в том числе слить все ваши данные 🤨).
Но ключевое - это то, что ментальный барьер пройден, люди реально ставят это даже на свои компьютеры, в том числе на рабочие (конечно, беря титанические риски). А всего-то надо было дать агентам exec (то есть способность запускать все, что угодно)
Мир уже не будет прежним, много людей пострадают, но зато дальше будет сильно лучше.
Это то же самое, что выпустить на улицы больших городов 100k машин с автопилотом 😎 Будут сложности, но потом мы уже не сможем без них жить 🎮
Я буду мержить свой Blackboard с OpenClaw и внедрять этих монстров везде, где только можно (конечно, максимально зажимая им тестикулы 😄)
Подпишись 👉🏻 @aigentto 🤖
GitHub
GitHub - openclaw/openclaw: Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞
Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞 - openclaw/openclaw
👍3🍌1
Forwarded from Игорь Кузнецов о темных паттернах
This media is not supported in your browser
VIEW IN TELEGRAM
Благодаря вайбкодингу, каждый может сделать софт под себя
👏2
Проверил множество реализаций OpenClaw
Выводы:
👉 OpenClaw на Node.js (оригинальный) — сложный в установке, глючный и жрёт от 1 GB RAM на агента с browsing.
👉 Из Python-версий — всё полная чушь, кроме nanobot. Очень хорош, быстр и всего 4000 строк кода — всё как мы любим. Но нет multi-agent/multi-adapter из коробки. Можно дописать. Есть browsing через MCP playwright.
👉 Rust/Go-версии — тут можно найти то, что будет ранитьcя на < 10 MB (без browsing), то есть на смартфоне вашей бабули.
Написал свою версию https://github.com/alx1379/SmallClaw — без daemon, без адаптеров, только CLI, чтобы поиграться с концепцией.
Для себя я поставил nanobot. Для сервера рассмотрел бы Rust/Go-версии 😎
Подпишись 👉🏻 @aigentto 🤖
Выводы:
👉 OpenClaw на Node.js (оригинальный) — сложный в установке, глючный и жрёт от 1 GB RAM на агента с browsing.
👉 Из Python-версий — всё полная чушь, кроме nanobot. Очень хорош, быстр и всего 4000 строк кода — всё как мы любим. Но нет multi-agent/multi-adapter из коробки. Можно дописать. Есть browsing через MCP playwright.
👉 Rust/Go-версии — тут можно найти то, что будет ранитьcя на < 10 MB (без browsing), то есть на смартфоне вашей бабули.
Написал свою версию https://github.com/alx1379/SmallClaw — без daemon, без адаптеров, только CLI, чтобы поиграться с концепцией.
Для себя я поставил nanobot. Для сервера рассмотрел бы Rust/Go-версии 😎
Подпишись 👉🏻 @aigentto 🤖
GitHub
GitHub - alx1379/SmallClaw
Contribute to alx1379/SmallClaw development by creating an account on GitHub.
WP умер, перевёл все сайты на DarwinClaw (аналог OpenClaw)
Раньше часто использовал WordPress с кучей плагинов для создания сайтов и лендингов. Сейчас поставил DarwinClaw на чистую машину Ubuntu и сказал ему сделать всю инфраструктуру для сайтов. Он поставил nginx + node.js.
Потом попросил перенести сайты, указав ссылки на них. Он создал все сайты.
Попросил добавить git и репозиторий для хранения этих сайтов. То есть всегда можно быстро откатить изменения.
Теперь полностью управляю этим зоопарком лендингов через TG команды типа:
- Убери с сайта X вот это
- Добавь на сайт Y вот то
- Поменяй стиль сайта Z на ...
- Откати последние изменения на сайте XM
- Замени икноку на сайте XS на более современную
- Собери статистику по заполнению форм с сайтов X, Y, Z в формате
Раньше это либо делали люди за деньги, либо WP с его тяжёлой инфраструктурой, теперь всё делает бот на DarwinClaw. Примерно то же самое можно сделать на OpenClaw.
#КЕЙС
Подпишись 👉🏻 @aigentto 🤖
Раньше часто использовал WordPress с кучей плагинов для создания сайтов и лендингов. Сейчас поставил DarwinClaw на чистую машину Ubuntu и сказал ему сделать всю инфраструктуру для сайтов. Он поставил nginx + node.js.
Потом попросил перенести сайты, указав ссылки на них. Он создал все сайты.
Попросил добавить git и репозиторий для хранения этих сайтов. То есть всегда можно быстро откатить изменения.
Теперь полностью управляю этим зоопарком лендингов через TG команды типа:
- Убери с сайта X вот это
- Добавь на сайт Y вот то
- Поменяй стиль сайта Z на ...
- Откати последние изменения на сайте XM
- Замени икноку на сайте XS на более современную
- Собери статистику по заполнению форм с сайтов X, Y, Z в формате
Раньше это либо делали люди за деньги, либо WP с его тяжёлой инфраструктурой, теперь всё делает бот на DarwinClaw. Примерно то же самое можно сделать на OpenClaw.
#КЕЙС
Подпишись 👉🏻 @aigentto 🤖
🔥5
Подборка лучших постов канала за последние 3 месяца
1) «Внедрение за две недели» — 636 просмотров
https://t.me/aigentto/112
2) «Люди подстроятся под ботов» — 621 просмотр
https://t.me/aigentto/109
3) «Мясной слой для ИИ-агентов» — 618 просмотров
https://t.me/aigentto/154
4) «Добро пожаловать в no-code решения» — 592 просмотра
https://t.me/aigentto/107
5) «Вышла статья на habr по следам проблемы циклов 🧐» — 561 просмотр
https://t.me/aigentto/105
6) «Тестирование мета-роев» — 547 просмотров
https://t.me/aigentto/110
7) «Вышла новая статья на habr "Как извлечь ДНК автора? Креатив от LLM" 💡» — 520 просмотров
https://t.me/aigentto/119
😍 «Будет еще много типов агентов на BlackBoard» — 470 просмотров
https://t.me/aigentto/143
9) «Слабое звено системы ИИ-агентов — это люди» — 371 просмотр
https://t.me/aigentto/113
10) «Что делают ИИ-агенты в медицине:» — 348 просмотров
https://t.me/aigentto/122
11) «Слишком мало vs слишком много: дилемма Agentic AI» — 346 просмотров
https://t.me/aigentto/116
12) «Как понять Зумера?» — 345 просмотров
https://t.me/aigentto/114
Подпишись 👉🏻 @aigentto 🤖
1) «Внедрение за две недели» — 636 просмотров
https://t.me/aigentto/112
2) «Люди подстроятся под ботов» — 621 просмотр
https://t.me/aigentto/109
3) «Мясной слой для ИИ-агентов» — 618 просмотров
https://t.me/aigentto/154
4) «Добро пожаловать в no-code решения» — 592 просмотра
https://t.me/aigentto/107
5) «Вышла статья на habr по следам проблемы циклов 🧐» — 561 просмотр
https://t.me/aigentto/105
6) «Тестирование мета-роев» — 547 просмотров
https://t.me/aigentto/110
7) «Вышла новая статья на habr "Как извлечь ДНК автора? Креатив от LLM" 💡» — 520 просмотров
https://t.me/aigentto/119
😍 «Будет еще много типов агентов на BlackBoard» — 470 просмотров
https://t.me/aigentto/143
9) «Слабое звено системы ИИ-агентов — это люди» — 371 просмотр
https://t.me/aigentto/113
10) «Что делают ИИ-агенты в медицине:» — 348 просмотров
https://t.me/aigentto/122
11) «Слишком мало vs слишком много: дилемма Agentic AI» — 346 просмотров
https://t.me/aigentto/116
12) «Как понять Зумера?» — 345 просмотров
https://t.me/aigentto/114
Подпишись 👉🏻 @aigentto 🤖
Telegram
AIGENTTO
Внедрение за две недели
Лучший свой MVP и сразу внедрение я сделал в ~2002 году, у меня был компьютерный салон (ну где школота за деньги могла рубиться в контру и прочие радости).
Я нанял работников, и выручка упала (стали воровать).
Тогда я сел и за две…
Лучший свой MVP и сразу внедрение я сделал в ~2002 году, у меня был компьютерный салон (ну где школота за деньги могла рубиться в контру и прочие радости).
Я нанял работников, и выручка упала (стали воровать).
Тогда я сел и за две…
Сбор любой публичной статистики с DarwinClaw (ex OpenClaw)
Раньше я делал пост выше сам руками, теперь просто прошу DarwinClaw.
Раньше это занимало ~20 минут моего времени, сейчас - 4 минуты времени бота.
Под капотом бот не смог получить страницу через curl, затем получил ее через headless browser. Потом написал код на python с использованием beautiful soup для парсинга страницы.
Прочитать и распарсить любой сайт через обычную нейронку нельзя. Там простой curl запрос без браузера, и, например, Telegram таким запросам отказывает. А здесь реальный браузер запускается. Он жрет ресурсы памяти и CPU больше, чем curl, потому что страница реально рендерится со всеми js скриптами, НО зато делает все, как человек.
По токенам все это обошлось примерно в ~0.15 центов. Такие кейсы точно стоят этих 15 центов.
#КЕЙС
Подпишись 👉🏻 @aigentto 🤖
Раньше я делал пост выше сам руками, теперь просто прошу DarwinClaw.
Раньше это занимало ~20 минут моего времени, сейчас - 4 минуты времени бота.
Под капотом бот не смог получить страницу через curl, затем получил ее через headless browser. Потом написал код на python с использованием beautiful soup для парсинга страницы.
Прочитать и распарсить любой сайт через обычную нейронку нельзя. Там простой curl запрос без браузера, и, например, Telegram таким запросам отказывает. А здесь реальный браузер запускается. Он жрет ресурсы памяти и CPU больше, чем curl, потому что страница реально рендерится со всеми js скриптами, НО зато делает все, как человек.
По токенам все это обошлось примерно в ~0.15 центов. Такие кейсы точно стоят этих 15 центов.
#КЕЙС
Подпишись 👉🏻 @aigentto 🤖
Как применить OpenClaw в вашей компании?
Многие сейчас просят перейти на технологию OpenClaw. Но для начала важно понимать, что это и как оно может функционировать в B2B/Enterprise.
Во-первых, OpenClaw - это индивидуальный бот, собранный из уже существующих технологий. Ключевое здесь - это индивидуальный бот, то есть он будет отвечать и делать так, как его научит/сконфигурирует конкретный человек. Поэтому, если к одному боту подключить всех сотрудников, то каждый будет его переобучать при каждом запросе, и любая информация будет ходить между всеми сотрудниками.
Во-вторых, OpenClaw умеет делать почти все, но это достигается за счёт полного доступа к компьютеру, на котором он запускается. Это требует много ресурсов (от ~1000 руб с функцией браузинга в месяц за виртуальную машину для каждого сотрудника).
Поэтому нужен новый OpenClaw для B2B/Enterprise, который сможет быть индивидуальным ботом для каждого сотрудника при неизменности общих знаний и без возможности получить чужие персональные данные и знания.
Также эта версия должна быть оптимальнее по потреблению ресурсов, чтобы не выделять целую виртуальную машину под каждого сотрудника.
И конечно, эта версия должна быть безопаснее - защита от prompt injections и доступы к данным компании по ролям через single sign-on компании.
К сожалению, таких версий нет в open source. Поэтому мы начали разрабатывать свою версию OpenClaw (DarwinClaw.RU) как раз для B2B/Enterprise.
На тестирование новой версии записывайтесь здесь. Мы уже начинаем внедрение в двух очень больших компаниях.
Подпишись 👉🏻 @aigentto 🤖
Многие сейчас просят перейти на технологию OpenClaw. Но для начала важно понимать, что это и как оно может функционировать в B2B/Enterprise.
Во-первых, OpenClaw - это индивидуальный бот, собранный из уже существующих технологий. Ключевое здесь - это индивидуальный бот, то есть он будет отвечать и делать так, как его научит/сконфигурирует конкретный человек. Поэтому, если к одному боту подключить всех сотрудников, то каждый будет его переобучать при каждом запросе, и любая информация будет ходить между всеми сотрудниками.
Во-вторых, OpenClaw умеет делать почти все, но это достигается за счёт полного доступа к компьютеру, на котором он запускается. Это требует много ресурсов (от ~1000 руб с функцией браузинга в месяц за виртуальную машину для каждого сотрудника).
Поэтому нужен новый OpenClaw для B2B/Enterprise, который сможет быть индивидуальным ботом для каждого сотрудника при неизменности общих знаний и без возможности получить чужие персональные данные и знания.
Также эта версия должна быть оптимальнее по потреблению ресурсов, чтобы не выделять целую виртуальную машину под каждого сотрудника.
И конечно, эта версия должна быть безопаснее - защита от prompt injections и доступы к данным компании по ролям через single sign-on компании.
К сожалению, таких версий нет в open source. Поэтому мы начали разрабатывать свою версию OpenClaw (DarwinClaw.RU) как раз для B2B/Enterprise.
На тестирование новой версии записывайтесь здесь. Мы уже начинаем внедрение в двух очень больших компаниях.
Подпишись 👉🏻 @aigentto 🤖
OpenClaw пожиратель токенов
Все чаще слышу: "OpenClaw пожиратель токенов". Я и сам, когда поставил поиграться, сожрал токенов на $30 за несколько часов. Тем не менее, я уже использую два своих постоянных бота на OpenClaw (R2D2 и C3PO) и научился ограничивать его аппетиты.
Самые простые настройки для ограничения аппетита:
1. Запрет/сильное ограничение Base64-скриншотов и изображений в промпте (может сэкономить миллионы токенов на один скриншот).
2. Ограничить количество итераций ReAct Loop, чтобы избежать случаев, когда модель часами ходит по кругу, тратит токены и не может решить задачу.
3. Включить prompt pruning - обрезка ненужного в памяти прямо перед отправкой запроса модели. Он работает в памяти (in-memory) и не меняет историю на диске.
4. Уменьшить или убрать проверку состояния (каждые 30 минут по умолчанию).
5. Использовать разные модели для разных задач (не стоит использовать дорогую модель codex для не coding задач, для vision выбрать лучшую модель по соотношению цена/качество).
6. Поставить LiteLLM как прокси перед OpenClaw → включить кэш (cache hits экономят огромные деньги).
Каждое ограничение, конечно, ограничивает возможности OpenClaw, но зато экономит бюджет.
Подпишись 👉🏻 @aigentto 🤖
Все чаще слышу: "OpenClaw пожиратель токенов". Я и сам, когда поставил поиграться, сожрал токенов на $30 за несколько часов. Тем не менее, я уже использую два своих постоянных бота на OpenClaw (R2D2 и C3PO) и научился ограничивать его аппетиты.
Самые простые настройки для ограничения аппетита:
1. Запрет/сильное ограничение Base64-скриншотов и изображений в промпте (может сэкономить миллионы токенов на один скриншот).
2. Ограничить количество итераций ReAct Loop, чтобы избежать случаев, когда модель часами ходит по кругу, тратит токены и не может решить задачу.
3. Включить prompt pruning - обрезка ненужного в памяти прямо перед отправкой запроса модели. Он работает в памяти (in-memory) и не меняет историю на диске.
4. Уменьшить или убрать проверку состояния (каждые 30 минут по умолчанию).
5. Использовать разные модели для разных задач (не стоит использовать дорогую модель codex для не coding задач, для vision выбрать лучшую модель по соотношению цена/качество).
6. Поставить LiteLLM как прокси перед OpenClaw → включить кэш (cache hits экономят огромные деньги).
Каждое ограничение, конечно, ограничивает возможности OpenClaw, но зато экономит бюджет.
Подпишись 👉🏻 @aigentto 🤖
🔥2
🔥🔥🔥 ВАЖНО 🔥🔥🔥
Произошла вещь, от которой у всех AI-разработчиков пробежал холодок по спине.
litellm — Python-библиотека для унифицированной работы с API разных LLM была отравлена.
Один pip install - и твои SSH-ключи, AWS/GCP/Azure креды, K8s Secrets, пароли от БД, криптокошельки, все API-ключи из .env — всё это упаковывается, шифруется через AES-256 и отправляется POST-запросом на поддельный домен http://models.litellm.cloud. Если обнаруживается среда K8s , то дополнительно разворачивается привилегированный Pod на каждом узле для латерального распространения.
Самое неприятное — способ активации. В пакет подложили файл litellm_init.pth размером 34 КБ. В Python .pth — это файлы конфигурации путей, которые автоматически обрабатываются модулем site при старте интерпретатора. Если строка начинается с import — она просто выполняется. Атака использует это поведение:
import os, subprocess, sys; subprocess.Popen([sys.executable, "-c", "import base64; exec(base64.b64decode('...'))"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
Тебе не нужно импортировать litellm и не нужно вызывать никакие функции. Запускаешь pip, python -c, IDE поднимает language server, или pytest гоняет тесты — достаточно старта Python-интерпретатора, и вредоносный код уже выполняется. Установил — значит уже скомпрометирован. Всё происходит незаметно
Пейлоад — трёхслойная base64-обфускация:
- первый слой (.pth) стартует подпроцесс
- второй — оркестратор с вшитым RSA-публичным ключом (4096 бит)
- третий — сборщик секретов, который вычищает /home, /opt, /srv, /var/www, /app, /data, /tmp
После сбора:
- генерируется случайный 32-байтовый AES-ключ
- данные шифруются
- ключ шифруется через RSA-OAEP
- всё пакуется в tpcp.tar.gz и уходит наружу
Помимо этого есть персистентный бэкдор:
- устанавливается как user-service systemd: ~/.config/sysmon/sysmon.py
- каждые 50 минут ходит на http://checkmarx.zone за командами
- скачивает в /tmp/pglog и исполняет
- стартует с задержкой 5 минут (обход песочниц)
Даже если удалить litellm, бэкдор остаётся.
pip install --require-hashes тоже не спасает — вредоносный файл легитимно прописан в RECORD, хэши совпадают, потому что пакет опубликован с украденного, но валидного PyPI-токена.
Даже если ты сам не ставил litellm, он тянется как зависимость в 2000+ пакетов (например, DSPy, MLflow, Open Interpreter и др.). По данным Mandiant, уже заражено 1000+ SaaS-окружений, прогноз — до 10 000.
Ирония в том, что атаку почти не обнаружили - её выдал баг у самих атакующих. .pth запускал подпроцесс, а тот при старте снова обрабатывал тот же .pth, вызывая рекурсивный запуск и фактически fork bomb. Это сожрало память у одного пользователя Cursor — так всё и вскрылось. Как отметил Karpathy: если бы код был чуть аккуратнее, атаку могли бы не замечать неделями.
Ещё абсурднее сама точка входа:
- 19 марта был скомпрометирован сканер безопасности Trivy
- через него группа TeamPCP украла PyPI-токен litellm
- 24 марта они выкатили заражённую версию
Инструмент безопасности стал вектором атаки.
После того как в GitHub создали issue:
- через 102 секунды атакующие с 73 взломанных аккаунтов наспамили 88 комментариев
- затем закрыли issue через скомпрометированный аккаунт мейнтейнера
Скрипт для самопроверки (версии, .pth, бэкдоры, сетевые соединения, K8s):
https://gist.github.com/sorrycc/30a765b9a82d0d8958e756b251828a19
Безопасная версия: litellm==1.82.6
Если у тебя стояли 1.82.7 или 1.82.8 — считай, что все креды утекли. Срочно ротируй всё. 🔨
Подпишись 👉🏻 @aigentto 🤖
Произошла вещь, от которой у всех AI-разработчиков пробежал холодок по спине.
litellm — Python-библиотека для унифицированной работы с API разных LLM была отравлена.
Один pip install - и твои SSH-ключи, AWS/GCP/Azure креды, K8s Secrets, пароли от БД, криптокошельки, все API-ключи из .env — всё это упаковывается, шифруется через AES-256 и отправляется POST-запросом на поддельный домен http://models.litellm.cloud. Если обнаруживается среда K8s , то дополнительно разворачивается привилегированный Pod на каждом узле для латерального распространения.
Самое неприятное — способ активации. В пакет подложили файл litellm_init.pth размером 34 КБ. В Python .pth — это файлы конфигурации путей, которые автоматически обрабатываются модулем site при старте интерпретатора. Если строка начинается с import — она просто выполняется. Атака использует это поведение:
import os, subprocess, sys; subprocess.Popen([sys.executable, "-c", "import base64; exec(base64.b64decode('...'))"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
Тебе не нужно импортировать litellm и не нужно вызывать никакие функции. Запускаешь pip, python -c, IDE поднимает language server, или pytest гоняет тесты — достаточно старта Python-интерпретатора, и вредоносный код уже выполняется. Установил — значит уже скомпрометирован. Всё происходит незаметно
Пейлоад — трёхслойная base64-обфускация:
- первый слой (.pth) стартует подпроцесс
- второй — оркестратор с вшитым RSA-публичным ключом (4096 бит)
- третий — сборщик секретов, который вычищает /home, /opt, /srv, /var/www, /app, /data, /tmp
После сбора:
- генерируется случайный 32-байтовый AES-ключ
- данные шифруются
- ключ шифруется через RSA-OAEP
- всё пакуется в tpcp.tar.gz и уходит наружу
Помимо этого есть персистентный бэкдор:
- устанавливается как user-service systemd: ~/.config/sysmon/sysmon.py
- каждые 50 минут ходит на http://checkmarx.zone за командами
- скачивает в /tmp/pglog и исполняет
- стартует с задержкой 5 минут (обход песочниц)
Даже если удалить litellm, бэкдор остаётся.
pip install --require-hashes тоже не спасает — вредоносный файл легитимно прописан в RECORD, хэши совпадают, потому что пакет опубликован с украденного, но валидного PyPI-токена.
Даже если ты сам не ставил litellm, он тянется как зависимость в 2000+ пакетов (например, DSPy, MLflow, Open Interpreter и др.). По данным Mandiant, уже заражено 1000+ SaaS-окружений, прогноз — до 10 000.
Ирония в том, что атаку почти не обнаружили - её выдал баг у самих атакующих. .pth запускал подпроцесс, а тот при старте снова обрабатывал тот же .pth, вызывая рекурсивный запуск и фактически fork bomb. Это сожрало память у одного пользователя Cursor — так всё и вскрылось. Как отметил Karpathy: если бы код был чуть аккуратнее, атаку могли бы не замечать неделями.
Ещё абсурднее сама точка входа:
- 19 марта был скомпрометирован сканер безопасности Trivy
- через него группа TeamPCP украла PyPI-токен litellm
- 24 марта они выкатили заражённую версию
Инструмент безопасности стал вектором атаки.
После того как в GitHub создали issue:
- через 102 секунды атакующие с 73 взломанных аккаунтов наспамили 88 комментариев
- затем закрыли issue через скомпрометированный аккаунт мейнтейнера
Скрипт для самопроверки (версии, .pth, бэкдоры, сетевые соединения, K8s):
https://gist.github.com/sorrycc/30a765b9a82d0d8958e756b251828a19
Безопасная версия: litellm==1.82.6
Если у тебя стояли 1.82.7 или 1.82.8 — считай, что все креды утекли. Срочно ротируй всё. 🔨
Подпишись 👉🏻 @aigentto 🤖
Gist
LiteLLM Supply Chain Attack Detector — check for compromised versions (1.82.7/1.82.8) and TeamPCP IoCs
LiteLLM Supply Chain Attack Detector — check for compromised versions (1.82.7/1.82.8) and TeamPCP IoCs - check-litellm.sh
😱5
Если кто не доверяет и скрипту выше для проверки (как и я 😎), то вот команды для быстрой проверки самому:
### 1. Проверка установленной версии
Опасно, если увидишь 1.82.7 или 1.82.8.
### 2. Поиск главного маркера заражения (`litellm_init.pth`)
### 3. Поиск вредоносных версий в кэше
### 4. Проверка артефактов бэкдора (persistence)
### 5. Проверка сетевых соединений на C2
### 6. Kubernetes (если есть)
Если всё команды вывели "not found / - good / No ..." — система чистая.
Подпишись 👉🏻 @aigentto 🤖
### 1. Проверка установленной версии
pip show litellm | grep -E "Version|Name"
pip3 show litellm | grep -E "Version|Name"
uv pip list | grep -i litellm || echo "No litellm in uv"
Опасно, если увидишь 1.82.7 или 1.82.8.
### 2. Поиск главного маркера заражения (`litellm_init.pth`)
find ~/.cache/uv ~/.cache/pip /usr/local/lib ~/.local/lib ~/.conda -name "litellm_init.pth" 2>/dev/null || echo "litellm_init.pth not found - good"
# Более широкий поиск
python3 -c "
import site
paths = site.getsitepackages() + [site.getusersitepackages()]
for p in paths:
print(p)
" | xargs -I{} find {} -name "litellm_init.pth" 2>/dev/null
### 3. Поиск вредоносных версий в кэше
find ~/.cache/uv ~/.cache/pip -name "*1.82.7*" -o -name "*1.82.8*" 2>/dev/null || echo "Malicious versions not in cache - good"
### 4. Проверка артефактов бэкдора (persistence)
ls -la ~/.config/sysmon/sysmon.py 2>/dev/null && echo "BACKDOOR FOUND!"
ls -la ~/.config/systemd/user/sysmon.service 2>/dev/null && echo "PERSISTENCE FOUND!"
# Для root
sudo ls -la /root/.config/sysmon/ 2>/dev/null && echo "ROOT BACKDOOR FOUND"
### 5. Проверка сетевых соединений на C2
lsof -i -n 2>/dev/null | grep -E "litellm\.cloud|checkmarx\.zone" || echo "No suspicious connections"
ss -tnp 2>/dev/null | grep -E "litellm\.cloud|checkmarx\.zone"
### 6. Kubernetes (если есть)
kubectl get pods -n kube-system | grep -E "node-setup" || echo "No suspicious K8s pods"
Если всё команды вывели "not found / - good / No ..." — система чистая.
Подпишись 👉🏻 @aigentto 🤖
👍4
Как OpenClaw убьет тех, кто уже в ИТ?
Раньше было:
👉 Бизнес ставил задачу словами
🤝 Аналитики определяли, как и что делать
🤝 Dev писал код
🤝 Тестировщик тестировал
🤝 Здесь еще много стадий...
🤝 Выкатывали на Prod
В этом pipeline могло быть много стадий и могло участвовать много человек, и каждая передача (каждый handshake) это всегда потенциальный fail или delay. Каждый мог стать бутылочным горлышком.
И бывало, что простой запрос на изменение даже двух слов на сайте занимал неделю и 10+ человеко-часов.
Теперь будет:
👉 Бизнес просит у OpenClaw сделать фичу
🤖 Это делается и тестируется сразу самим OpenClaw
👨⚖️ После апрува раскатывается на Prod
Раньше длинная цепочка обеспечивала безопасность и качество изменений, а git был инструментом разработки.
Сейчас git становится инструментом безопасности изменений (для мгновенных откатов), а количество итераций на порядки превосходит то что было раньше (а это важнее для бизнеса), и главное в цикле нет никого кроме заказчика - нет handshakes, нет точек отказа.
Подпишись 👉🏻 @aigentto 🤖
Раньше было:
👉 Бизнес ставил задачу словами
🤝 Аналитики определяли, как и что делать
🤝 Dev писал код
🤝 Тестировщик тестировал
🤝 Здесь еще много стадий...
🤝 Выкатывали на Prod
В этом pipeline могло быть много стадий и могло участвовать много человек, и каждая передача (каждый handshake) это всегда потенциальный fail или delay. Каждый мог стать бутылочным горлышком.
И бывало, что простой запрос на изменение даже двух слов на сайте занимал неделю и 10+ человеко-часов.
Теперь будет:
👉 Бизнес просит у OpenClaw сделать фичу
🤖 Это делается и тестируется сразу самим OpenClaw
👨⚖️ После апрува раскатывается на Prod
Раньше длинная цепочка обеспечивала безопасность и качество изменений, а git был инструментом разработки.
Сейчас git становится инструментом безопасности изменений (для мгновенных откатов), а количество итераций на порядки превосходит то что было раньше (а это важнее для бизнеса), и главное в цикле нет никого кроме заказчика - нет handshakes, нет точек отказа.
Подпишись 👉🏻 @aigentto 🤖
😁5❤1🤡1
Классификация организаций будущего по эффективности
Есть знаменитая классификация цивилизаций по уровню развития Кардашёва. Суть простая, чем больше цивилизация расходует энергии, тем более она развитая:
👉 1 уровень расходует всю энергию планеты + энергия звезды на планете ~10^16 Вт
👉 2 уровень всю энергию своей звезды (сфера Дайсона) ~10^26 Вт
👉 3 уровень всю энергию галактики ~10^36 Вт
Уже понятно, что львиная доля энергии будущего будет потребляться ИИ.
Но как посчитать ИИзацию (уровень внедрения ИИ на всех уровнях компании) в конкретной организации?
Такой показатель уже есть, по сути, это расход токенов, а если быть более точным, то мы хотим понять, насколько организация перешла на ИИ с точки зрения максимальной автоматизации всех процессов и замены всех операторов ЭВМ (любой специальности, от юриста до программиста) на ИИ везде, где это возможно?
Тогда метрикой будут деньги, а точнее % расходов на ИИ (токены или свои нейронки) от общего ФОТ. В расходе именно % денег от ФОТ учтено уже все, даже то, что вы за VPN и вынуждены покупать токены через пень-колоду (дороже).
Наблюдаю сейчас множество организаций (которые уже внедрили и продолжают внедрять ИИ на разных уровнях) и думаю, что вот такая шкала подойдет (по аналогии с Кардашевым):
👉 0 уровень ~1/4 ФОТ (организация начала автоматизацию)
👉 1 уровень ~1x ФОТ (организация частично автоматизирована)
👉 2 уровень ~4x ФОТ (небольшое количество сотрудников для управления ИИ)
👉 3 уровень ~10x ФОТ (организация почти без сотрудников)
Как и в системе Кардашева (где мы знаем цивилизацию только уровня ниже 1), я не думаю, что сейчас есть организации уровня выше 0, но в ближайшие месяцы-годы они точно появятся 😎
Подпишись 👉🏻 @aigentto 🤖
Есть знаменитая классификация цивилизаций по уровню развития Кардашёва. Суть простая, чем больше цивилизация расходует энергии, тем более она развитая:
👉 1 уровень расходует всю энергию планеты + энергия звезды на планете ~10^16 Вт
👉 2 уровень всю энергию своей звезды (сфера Дайсона) ~10^26 Вт
👉 3 уровень всю энергию галактики ~10^36 Вт
Уже понятно, что львиная доля энергии будущего будет потребляться ИИ.
Но как посчитать ИИзацию (уровень внедрения ИИ на всех уровнях компании) в конкретной организации?
Такой показатель уже есть, по сути, это расход токенов, а если быть более точным, то мы хотим понять, насколько организация перешла на ИИ с точки зрения максимальной автоматизации всех процессов и замены всех операторов ЭВМ (любой специальности, от юриста до программиста) на ИИ везде, где это возможно?
Тогда метрикой будут деньги, а точнее % расходов на ИИ (токены или свои нейронки) от общего ФОТ. В расходе именно % денег от ФОТ учтено уже все, даже то, что вы за VPN и вынуждены покупать токены через пень-колоду (дороже).
Наблюдаю сейчас множество организаций (которые уже внедрили и продолжают внедрять ИИ на разных уровнях) и думаю, что вот такая шкала подойдет (по аналогии с Кардашевым):
👉 0 уровень ~1/4 ФОТ (организация начала автоматизацию)
👉 1 уровень ~1x ФОТ (организация частично автоматизирована)
👉 2 уровень ~4x ФОТ (небольшое количество сотрудников для управления ИИ)
👉 3 уровень ~10x ФОТ (организация почти без сотрудников)
Как и в системе Кардашева (где мы знаем цивилизацию только уровня ниже 1), я не думаю, что сейчас есть организации уровня выше 0, но в ближайшие месяцы-годы они точно появятся 😎
Подпишись 👉🏻 @aigentto 🤖
👍3
Сегодня-завтра человечество обогнет Луну 🌗
https://www.youtube.com/live/g-sHRmu_6jw?si=dfs6BEp7Vyob3got
Подпишись 👉🏻 @aigentto 🤖
https://www.youtube.com/live/g-sHRmu_6jw?si=dfs6BEp7Vyob3got
Подпишись 👉🏻 @aigentto 🤖
Отказ от Cursor 🙅♂️
Луну обогнули 🌔, вернёмся на землю.
Я писал про кейс перевода всех сайтов на OpenClaw. Теперь переводим разработку больших продуктов.
Было так: Cursor пишет код как ассистент разработчика. Говоришь ему "построй план", корректируешь, и с нуля быстро можешь написать довольно масштабную систему.
После этого начинается просто корректировка, новые фичи и фиксы багов. И как правило, в большой системе, обросшей фичами, внедрение нового занимает время, особенно если команда не Full Stack (отдельно Front и отдельно Back разработка).
Но я попробовал и вынес дальнейшую разработку двух больших систем в OpenClaw.
По сути, на VPS с OpenClaw (полный sudo доступ) подтягиваем нужные репозитории. И в чате ему говорим: в репо A добавь X, почини Y, найди баги. Вроде все то же самое, как и в Cursor, но нет, все мгновенно оказывается в Prod, и в цикле там уже включено UI тестирование, потому что есть playwright + browser.
Dev Pipeline теперь это не 3 отдельные среды (prod + test + dev), а Front+Back Dev + QA + DevOps со средним time-2-market в 3 недели, а просто три ветки prod/test/dev, все три постоянно подняты, и time-2-market падает до часов.
Этап дизайна в Figma тоже уходит. Зачем просить дизайнера, который все время занят, сделать новый дизайн, если можно просто сказать боту: "Накидай три версии дизайна новой фичи сразу с самой фичей прямо в dev-ветке", и уже через 5 минут смотреть, выбирать и корректировать.
Написание больших систем с нуля все еще удобнее в Cursor, но дальнейшее развитие работает на OpenClaw на 4+.
Напомню, мы используем свою оптимизированную версию OpenClaw - DarwinClaw, которая скоро должна стать доступной для всех.
#КЕЙС
Подпишись 👉🏻 @aigentto 🤖
Луну обогнули 🌔, вернёмся на землю.
Я писал про кейс перевода всех сайтов на OpenClaw. Теперь переводим разработку больших продуктов.
Было так: Cursor пишет код как ассистент разработчика. Говоришь ему "построй план", корректируешь, и с нуля быстро можешь написать довольно масштабную систему.
После этого начинается просто корректировка, новые фичи и фиксы багов. И как правило, в большой системе, обросшей фичами, внедрение нового занимает время, особенно если команда не Full Stack (отдельно Front и отдельно Back разработка).
Но я попробовал и вынес дальнейшую разработку двух больших систем в OpenClaw.
По сути, на VPS с OpenClaw (полный sudo доступ) подтягиваем нужные репозитории. И в чате ему говорим: в репо A добавь X, почини Y, найди баги. Вроде все то же самое, как и в Cursor, но нет, все мгновенно оказывается в Prod, и в цикле там уже включено UI тестирование, потому что есть playwright + browser.
Dev Pipeline теперь это не 3 отдельные среды (prod + test + dev), а Front+Back Dev + QA + DevOps со средним time-2-market в 3 недели, а просто три ветки prod/test/dev, все три постоянно подняты, и time-2-market падает до часов.
Этап дизайна в Figma тоже уходит. Зачем просить дизайнера, который все время занят, сделать новый дизайн, если можно просто сказать боту: "Накидай три версии дизайна новой фичи сразу с самой фичей прямо в dev-ветке", и уже через 5 минут смотреть, выбирать и корректировать.
Написание больших систем с нуля все еще удобнее в Cursor, но дальнейшее развитие работает на OpenClaw на 4+.
Напомню, мы используем свою оптимизированную версию OpenClaw - DarwinClaw, которая скоро должна стать доступной для всех.
#КЕЙС
Подпишись 👉🏻 @aigentto 🤖
Telegram
AIGENTTO
WP умер, перевёл все сайты на DarwinClaw (аналог OpenClaw)
Раньше часто использовал WordPress с кучей плагинов для создания сайтов и лендингов. Сейчас поставил DarwinClaw на чистую машину Ubuntu и сказал ему сделать всю инфраструктуру для сайтов. Он поставил…
Раньше часто использовал WordPress с кучей плагинов для создания сайтов и лендингов. Сейчас поставил DarwinClaw на чистую машину Ubuntu и сказал ему сделать всю инфраструктуру для сайтов. Он поставил…