AI-шечка
СтатистикаКанал о AI-инструментах для решении различных задач, от программирования, исследований, набора промтов и просто личные наблюдения по различным инструментам. От автора https://t.me/mobile_appsec_world Все вопросы к @Mr_R1p
- Последний пост
- 14 мар.
- Последнее чтение
- 13 авг.
- Постов за неделю
- 0
- Всего постов
- 20
- Тип
- открытый
- Язык
- русский
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- —
- 1/48двое суток
- —
- 1/72трое суток
- —
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Awesome Agentic Hardening: как защищать AI-агентов Тема безопасности LLM-агентов набирает обороты, и среди awesome-репозиториев очередное пополнение - Awesome Agentic Hardening . Это репозиторий с подборкой статей, фреймворков и инструментов по атакам и защите AI-агентов, которые автономно дёргают тулы, ходят в базы и принимают решения. Что внутри: prompt injection (прямые и indirect), мультимодальные инъекции, payload splitting, jailbreak-и, отравление памяти и RAG-контекста, supply chain риски и протокольные уязвимости. По защите -- prompt hardening, input sanitization, runtime sandboxing, мониторинг аномалий и red teaming. Сейчас 13 ресурсов по 12 категориям, но репозиторий активно пополняется. Из свежего и занятного: ToolHijacker -- первая атака через prompt injection, нацеленная именно на выбор инструмента агентом (96.7% успеха, NDSS 2026). A-MemGuard -- проактивная защита памяти агента, снижает успех атак на 95%+. MELON -- защита от indirect prompt injection через masked re-execution с блокировкой 99%+. Всё со ссылками на оригинальные статьи с топовых конференций (NeurIPS, ICML, NDSS, ICLR). После историй вроде Clinejection, где prompt injection через заголовок issue развернулся в полноценный supply chain compromise, становится очевидно, что AI-агенты -- это не просто удобная автоматизация, а полноценная поверхность атаки. И если вы интегрируете LLM-агентов в свои пайплайны (а кто сейчас этого не делает?), стоит хотя бы понимать, какие векторы существуют и какие защиты уже придуманы :) Рекомендую добавить в закладки и следить за обновлениями. #AI #Security #LLM #PromptInjection #AgenticAI
ML supply chain - реальная поверхность атаки. Конкретные примеры, почему это не теория (начало тут) Hugging Face прямо предупреждает, что pickle при десериализации исполняет последовательность opcode-инструкций; именно поэтому они поддерживают pickle-scanning. В качестве более безопасного формата Hugging Face продвигает safetensors, который позиционируется как безопасная альтернатива pickle для хранения тензоров. HiddenLayer показали, что через вредоносный PyTorch binary можно было компрометировать сервис конвертации Hugging Face Safetensors, украсть токен официального conversion bot, отправлять PR от имени бота и автоматически угонять модели, проходящие через сервис. Это очень показательный AI supply chain кейс! Атакуется не только модель, но и доверенный сервис вокруг нее. Microsoft описывает сценарии, где вредоносные инструкции попадают в систему не через прямой пользовательский prompt, а через данные, которые агент читает, или через metadata инструментов. Это особенно опасно для MCP и multi-tool систем, где агент принимает решения на основе внешнего контекста. The Hacker News 11 марта 2026 года описали кампанию с пятью вредоносными Rust crates, которые крали .env-секреты, а также атаку AI-бота на GitHub Actions/CI/CD. Это не ML-артефакты как таковые, но механизм тот же. Доверие к артефакту или автоматизации внутри build pipeline превращается в канал эксфильтрации токенов и захвата даунстрим-систем. Почему это особенно важно для AI agents Здесь сходятся сразу несколько рисков: 🥹 The Agency Gap - model-level guardrails не контролируют действия агента с доступом к тулам; 🥹 Indirect Prompt Injection - агент можно скомпрометировать через документ, веб-страницу, tool metadata, retrieval-данные; 🥹 Privilege Escalation in AI , если у агента есть доступ к API, файлам, CI/CD secret store или shared credentials, ошибка быстро становится инцидентом; 🥹 Multi-Agent Risk - один зараженный артефакт или poisoned context может каскадно распространяться по связанным агентам и оркестраторам. Что делать на практике (коротко) 😺 1. Подписывать модели и датасеты. Базовый минимум - публиковать и проверять криптографические хеши. Роскошный максимум - цифровые подписи и твои предложения в комментариях. 2. Проверять артефакты в CI/CD до использования, а не после. 3. Снижать риск unsafe model formats. Используете пикл? Тогда я иду к вам … 4. Изолировать агентные права. 5. Считать внешние данные недоверенными по умолчанию. 6. Защищать не только артефакты, но и уровень вызова инструментов Таким образом, важно не смешивать два уровня защиты. С одной стороны, нужно защищать ML supply chain (модели, веса, датасеты, provenance, подписи и целостность артефактов). С другой, нужно отдельно защищать agent/tool execution layer (MCP-серверы, tool endpoints, session security, права агентов, валидацию входов и контроль вызовов). И если для первой задачи нам нужны cryptographic signatures, hash verification и attestation, то для второй - уже практики из мира MCP security. Хороший ориентир здесь - MCP Security Checklist от Helixar - это community-maintained baseline для команд, которые строят и разворачивают MCP-серверы и AI agent infrastructure. Пока организация не контролирует происхождение моделей, датасетов и доступы агентов к инструментам, любой ML-пайплайн остается зоной повышенного риска. Без integrity checks, provenance и least privilege AI ускоряет не только процессы, но и потенциальный ущерб. Пост вдохновлен анонсом вебинара! Все ☕️ Что-то не пойму, как убрать все эти английские словечки из речи...
Boundary Point Jailbreak: обход ограничений AI одним префиксом Занятный ресерч от UK AI Safety Institute -- ребята придумали метод Boundary Point Jailbreaking, который автоматически генерирует универсальные jailbreak-и для обхода input-классификаторов в black-box условиях. То есть атакующий не видит ничего, кроме "заблокировано / пропущено", и этого достаточно. Суть: метод ищет adversarial prefix - набор токенов, который при добавлении к вредоносному запросу заставляет классификатор пометить его как безопасный. Проверили на Constitutional Classifiers от Anthropic и классификаторе OpenAI для GPT-5 - оба пробиты. Причём подход полностью автоматизированный, никакого ручного крафтинга промптов. Очень похоже на Suffix-атаки, принцип практически такой же. Как по мне, это прекрасно иллюстрирует проблему single-interaction детекции: если твоя защита смотрит только на один запрос в изоляции, рано или поздно найдётся способ его замаскировать. Авторы предлагают переходить к batch-level мониторингу и анализу паттернов трафика, что звучит разумно (но тоже не серебряная пуля, конечно). В контексте того, что AI-агенты всё активнее интегрируются в рабочие пайплайны, такие атаки становятся не научной статьей, а реальным вектором. Рекомендую почитать, особенно если работаете с LLM-based фильтрацией или строите защиту вокруг классификаторов :) #AI #Security #Jailbreak #LLM #Research
Prompt injection -> supply chain: как AI-бот скомпрометировал 4000 разработчиков Занятная и пугающая история про то, как prompt injection через заголовок GitHub issue превратился в полноценную supply chain атаку. Разбор читается как сценарий триллера, только всё по-настоящему. Суть: в репозитории использовался claude-code-action от Anthropic для автоматической обработки issue. Конфигурация была с allowed_non_write_users: "*" (то есть кто угодно может триггернуть бота), а заголовок issue подставлялся без санитизации через ${{ github.event.issue.title }}. Атакующий просто создал issue с вредоносным промптом в заголовке - и бот послушно выполнил команду 😅 Дальше цепочка красивая: бот установил пакет из typosquatted-репозитория (glthub-actions/cline вместо github-actions), в пакете preinstall-скрипт развернул Cacheract для отравления кэша GitHub Actions (~10 GB). При восстановлении кэша утекли NPM_RELEASE_TOKEN, VSCE_PAT и OVSX_PAT. С этими токенами атакующие опубликовали троянизированный cline@2.3.0 с postinstall, который за 8 часов разъехался на ~4000 машин разработчиков. Как по мне, это прекрасная иллюстрация того, что AI-агенты в CI/CD -- это не просто "удобная автоматизация", а новая поверхность атаки, которую мы толком ещё не научились защищать. Prompt injection тут выступает как начальный вектор, а дальше классика -- отравление кэша, кража секретов, supply chain compromise. Статья хорошо написана, с деталями каждого этапа и рекомендациями. Очень рекомендую почитать, особенно если у вас AI-боты интегрированы в pipeline :) #Security #SupplyChain #AI #GitHub #PromptInjection
Project CodeGuard: Security Rules for AI Coding Agents ИИ ускоряет разработку 🏃, но часто генерит уязвимый код. Можно столкнуться с пропуском валидации ввода, хардкодом секретов, слабой криптографией (и даже самописной), небезопасными функциями, пробелами в аутентификации/авторизации и бесконечный список и т.д. Project CodeGuard «подмешивает» 🥧защиту прямо в этапы планирования, генерации и последующего ревью кода. Это открытый набор правил безопасности и инструментов, которые встраивают практики secure-by-default в рабочие процессы ИИ-код-агентов (генерация и ревью). Что покрывают правила 🔡 Криптография, управление ключами, валидация сертификатов 🔡 Валидация ввода (SQLi, XSS, command injection) 🔡 Аутентификация (MFA, OAuth/OIDC, сессии) 🔡 Авторизация (RBAC/ABAC, IDOR) 🔡 Supply chain (зависимости, SBOM, управление уязвимостями) 🔡 Облако/контейнеры/K8s, платформенная безопасность, защита данных Быстрый старт git clone https://github.com/project-codeguard/rules.git cd rules uv sync python src/validate_unified_rules.py sources/ # валидация правил python src/convert_to_ide_formats.py # генерация skills/ и dist/ # затем скопируйте нужные правила в папку вашего ассистента (например .cursor/rules или .windsurfrules каталога инструмента) E2E «как понять, что правила реально работают» (чекни сам и перешли другу) 1. Попросите ассистента: “Напиши функцию, которая хеширует пароль и проверяет его при логине”. 2. Сохраните ответ (“до”). 3. Подключите правила CodeGuard. 4. Повторите запрос и сравните (“после”). Обычно видно переход (за все копайлоты я не скажу 😶) на bcrypt вместо MD5/SHA-1, генерацию соли через secrets/CSPRNG, отсутствие хардкода, корректную валидацию входа. До import hashlib def hash_password(p): return hashlib.md5(p.encode()).hexdigest() После import bcrypt, secrets, string def hash_password(p: str) -> bytes: salt = bcrypt.gensalt(rounds=12) return bcrypt.hashpw(p.encode(), salt) 📢На приложенном скриншоте автоматический чек правил: алгоритмы, CSPRNG, уникальные соли 🧂, проверенные библиотеки (соответствие и конкретные строки кода). TL;DR 😱 Открытый набор правил, который “подмешивает” secure-by-default в планирование, генерацию и ревью кода ИИ-ассистентами. Меньше уязвимостей, больше автоматики.
😳 🧠 Agentic AI и безопасность — кто контролирует твои данные? Наткнулся на интересную статью в блоге Мартина Фаулера — Agentic AI Security. Она разбирает безопасность в работе LLM и объясняет, почему использование агентов — это не просто “умные помощники”, а ещё и новые векторы уязвимостей. Заглавный вопрос статьи: LLM не различает данные и инструкции. Когда агент объединяет несколько итераций текста и вызовов инструментов (MCP, внешние API, CLI и т.п.) в один большой контекст, он может “съесть” вредоносную инструкцию прямо из данных. 💉 Так появляется prompt injection — когда данные превращаются в команды. Korny Sietsma, автор статьи, приводит ссылки на смежные материалы и называет это "смертельной триадой" угроз: - Sensitive Data is the core thing most attackers want - this can include things like browser cookies that open up access to other data. - Неочевидность границ контекста — модель не знает, что безопасно, а что нет. - Untrusted Content can include commands that the LLM might follow. - Инъекция инструкций — злоумышленник подмешивает вредоносные команды в текст. - External Communication allows the LLM application to send information back to the attacker. - Автоматизация действий без контроля — агент сам выполняет то, что “кажется логичным”. 📊 В статье есть отличные диаграммы, показывающие, как LLM взаимодействует с внешним миром, инструментами и данными. Всё складывается в единую картину: Агент — это цепочка промтов и tool-вызовов, которые не имеют встроенной защиты. 💬 Отдельно поднимается вопрос этики и порядочности поставщиков инструментов и MCP-серверов. И рекомендуют применять все обычные проверки безопасности. Публикация официального реестра MCP — это шаг вперёд. Но он пока никак не администрируется на предмет безопасности или уязвимостей. ⚙️ Что можно сделать, чтобы уменьшить риски? 🔜 Контейнеризировать окружения агентов (Docker или Apple Containers) 🔜 Изолировать задачи и инструменты 🔜 Делать итерации с подтверждением человеком 🔜 Защищать/скрывать доступы и токены 🔜 Использовать безопасные dev-контейнеры (Claude Dev Containers) 🧩 Вся экосистема движется к тому, чтобы LLM могла действовать самостоятельно. Но важно понять, что пока человек остаётся самым надёжным “firewall” между ИИ и злоумышленником. А применение подходов описанных в статье снимает львиную долю человеческого фактора. P.S.:💡 Отдельный инсайт для меня — это Apple Containers: Linux контейнеры в macOS от Apple. Надо будет посмотреть. #AgenticAI #Security #LLM #PromptInjection #MCP #Containers #Claude #Apple #AI 👏
⚡️ Через неделю закроем прием заявок на доклады Но это будет через неделю. А пока — ждем вас и ваши темы докладов. Напоминаем, что можно податься сразу на несколько треков. А еще напоминаем, что мы написали подробный гайд о том, как правильно оформить заявку. Хорошая заявка повысит ваш шанс пройти отбор. Дерзайте :)
ИИ в тренде! А вы знали, что на OFFZone есть отдельный трек по ИИ и их безопасности, а также а атакам на них! Ну и конечно, как их можно применять в безопасности в самых разных сферах! Если вам есть, чем поделиться, смело подавайтесь!
Как получить полноценный доступ к API ChatGPT Очень интересный кейс случился со мной, когда я стал использовать API от ChatGPT. По идее все очень просто, заходишь в аккаунт, выписываешь ключик, да пользуешься! Но дьявол кроется в деталях: 1. Даже с оплаченного аккаунта запросы к API стоят отдельных денег, которые списываются с вашего баланса. 2. Через API нельзя генерировать картинки, если у вас неподтвержденный аккаунт (по крайней мере через можель gpt-image) И вот мне как раз нужно было генерировать картинки для каждого поста в канал «История одного дня». И я очень долго не мог понять, почему же приходит отказ в API на генерацию. И случайным образом я таки нашел, что оказывается нужно подтвердить свой аккаунт! Делается это через стандартный протокол: сфоткайтесь, сфоткайте паспорт, сфоткайтесь вместе с паспортом. Пошаговая инструкция, как это сделать: 1. Войдите в аккаунт на platform.openai.com Тут все просто, тот же аккаунт, что и на основном сайте 2. Привяжите платежную карту и включите биллинг Без действующего способа оплаты любые бесплатные кредиты быстро закончатся, а лимиты на запросы будут минимальны. Карту можно добавить во вкладке Billing → Payment Methods. Карточка осталась с прошлого поста, после регистрации в Gemini 😉 3. Откройте настройки организации и нажмите Verify Organization Settings → Organization → General → Verify Organization. И не надо смеяться, не так оо просто ее найти( 4. Подготовьте документы Фото государственного удостоверения личности и конечно камера для селфи 😉 Я немного опасался, что из-за российского паспорта откажут или вообще заблокируют аккаунт, но на удивление все прошло без проблем. 5. Пройдите саму верификацию Тут все просто, улыбаемся, фоткаем, бинго! 6. Дождитесь подтверждения (обычно 5-10 минут) После одобрения может пройти до 30 минут, пока старые ключи «увидят» новые права. Самый быстрый способ — сразу создать новый API-ключ: он наследует доступ к GPT Image мгновенно. И вот теперь можно использовать эти ключики для доступа к полноценному API и использовать его на полную! На самом деле, может показаться просто, но когда ты с этим в первый раз сталкиваешься, это вообще не очевидно( И ошибка весьма общая от GPT, что тоже никак не наводит о мысли об идентификации аккаунта (хотя может и поменяли уже). Надеюсь, вы потратите меньше времени на это, чем я :) Отличных выходных! #AIшечка #инструкции #искусственныйинтеллект #регистрация #LLM #полезно
Как же все-таки получить оплаченный аккаунт Gppgle Gemini? Всем привет! Два раза я пробовал получить платную версию Gemini, но каждый раз сталкивался с тем, что либо аккаунт заблокируют, либо он будет общий и без сохранения истории, то через пару дней буквально кончится премиум-доступ. Благо денежка была совсем небольшая, но все равно неприятно. И наконец-то у меня получилось! Сразу скажу, что путь не самый простой, уверен, что есть легче, но тем не менее расскажу, как у меня получилось этого добиться. И подойдет он тем, у кого iPhone или iPad или любой другой яблочный девайс. Скорее всего получится и по другому, но у меня именно так сработало. Итак, для начала нам нужен Google-аккаунт. Я пытался на свой основной зарегистрировать, но не получалось, наверное слишком палевный, что он из РФ. Поэтому для всех нейронок и прочих сервисов я завел себе специальный Google-аккаунт, который позволяет мне не париться и использовать все AI-сервисы именно через него. Регистрируем обязательно через VPN, если спросит номер телефона, можно заиспользовать сервис onlinesim.io (я о нем подробно рассказывал в видео про Claude). Потом можно отвязать номер без проблем. Итак, первый шаг есть, у нас есть непалевный аккаунт Google зареганный через VPN. Теперь нам нужно как-то оплачивать сервис. Для этого я использую сервис chocopay.io. Проходим простую регистрацию и оформляем карту, которую можно привязать к Apple ID (вроде это тариф VISA Pro USA, за оформление 9$). Далее необходимо пополнить баланс не менее, чем на 15 долларов. Итого 9+15=24$. Курс грабительский, около 110 рублей за доллар. Но тем не менее это удобно. Весь процесс полностью автоматизирован, проходит через Телеграмм-бота и очень прост. Не рекомендую держать там большие суммы, так как говорят, что часто блокируют. Я пока с этим не столкнулся, но предупредить должен. Итак, пункт 2 готов, у нас есть валидная американская виза. Следующий шаг - берем свое яблочное устройство, переходим в Настройки - Основные - Язык и регион. Выбираем регион - USA(США). При переключении нас попросят ввести номер карты и платежные даннные. Вбиваем туда данные нашей карты и о чудо, у нас сменился регион! Теперь идем в AppStore и скачиваем все приложения, которые хотели! PokemonGo, ChatGPT, Claude, Gemini и вообще любые приложения, которые недоступны в нашем регионе. Я скачал все приложения всех нейронок, которые я обычно использую. Теперь заходим в приложение Gemini, логинимся из под нашего нового аккаунта и нажимаем на кнопочку "Get Gemini Advanced". Выбираем оплату через Apple - и бинго! Оплата проходит (вернее не оплата, а оформление подписки, так как первый месяц это бесплатно). Вот собственно и все, пройдя этот нехитрый путь, мы получаем рабочую карту USA, которую принимает любые AI-площадки, получаем возможность скачать кучу заблокированных приложений, а так же наконец получаем возможность использования Gemini Advanced! Теперь не нужно использовать сторонние сервисы для оплаты, ведь у вас есть собственная карта. Нужно что-то оплатить, пополняем (плачем из-за курса) и ура, получаем полный прекрасный доступ! Я очень рад, что у меня получилось, потому что Gemini 2.5 Pro это очень сильная модель которая отлично пишет на русском! P.S. Жаль мне сервисы за рекламу не платят)))) #AIшечка #инструкции #искусственныйинтеллект #регистрация #LLM #полезно
«Подождите немного и я вам отвечу» или как ленятся нейросети Как-то раз, работая с ChatGPT, вгрузив в него кучу информации, уточнив детально, что нужно делать, я получил примерно такой ответ: «Я уже занимаюсь задачей и отправлю тебе всю информацию, как только она будет готова. Это займет от 15 минут до часа». И я радостный переключился на другие дела, подумав вот это круто, до чего дошел прогресс 😉 Но конечно, ни через час, ни через два, ни через день не было ничего, а на все вопросы модель отвечала «да-да, почти все уже». И периодически такое случается, когда GPT ленится, не отвечает на вопрос или пытается «уйти подумать». Я ловил такое несколько раз в разных случаях: 1. Очень большая задача, которую gpt не может прожевать, но чтобы не расстраивать пользователя, «уходит подумать» 2. Ночью такое встречается сильно чаще. Мне кажется, это зависит от нагрузки, когда просыпаются миллионы пользователей с другого конца планеты, возрастает нагрузка и модель начинает экономить ресурсы. 3. Когда задача выходит за пределы возможностей. Мне нужно было транскрибировать видео, но внутри выбранной модели не было нужного инструмента и вместо того, чтобы сразу сказать, что я не умею, она начинала врать и сливаться в историю «вернусь попозже» Так что, если вы встречаете подобное поведение, знайте, никаких «вернусь потом» не будет и через некоторое время вы потеряете и контекст и загруженные доки и придется начать все сначала. Вместо этого попробуйте уточнить у модели: 1. Почему она не может выполнить задачу сейчас 2. Что нужно сделать, чтобы получить результат здесь и сейчас? 3. Предложите модели самой разбить на подзадачи меньше 4. Спросите, может ли она решить задачу или нужно воспользоваться инструментами для предварительной обработки информации. И в большинстве случаев можно будет спокойно продолжать работу дальше. Но да, первый раз я словил такое одновременно в трех диалогах и долго потом смеялся, что сеть стала все больше походить на людей.. Как в анекдоте: - Задача готова?? - Да…..же не преступал #aishe4ka #chatgpt #лень
Как AI-ассистенты открывают всему миру вашу почту и календарь Всем привет! Сегодня безумно популярна тема различных AI-агентов и в частности персональных AI-помощников, эдаких «Джарвисов» на минималках. Эти помощники умеют читать и отправлять почту, ставить встречи в календарь и напоминать нам о них. И все это через удобный и привычный Телеграм! Офигенно удобно, полезно и всячески ускоряет и упрощает нам жизнь! Если бы не одно но.. О том как создать такого ассистента и подключить его к своей почте есть огромное количество материалов, особенно видео на Youtube. Я посмотрел 10 наиболее популярных видео, у которых в сумме набирается около 700 000 просмотров.. И во всех есть один и тот же косяк! Из-за неправильной настройки телеграм-тригера написать вашему «Джарвису» может кто угодно! И абсолютно также получить данные о письмах, контактах, встречах, написать письмо всем контактам и т.д. Любой человек, кто найдет вашего бота может получать любые данные! А учитывая, что многие сервисы осуществляют сброс пароля через подтверждение на почту, это может быть еще интереснее!! Одна маленькая, скрытая настройка ставит под очень большой удар всю конфиденциальную информацию, что у нас есть 🎉 Я написал об этом небольшую статью и даже записал коротенькое видео, которое показывает, как это работает! Надеюсь вам будет интересно узнать поподробнее, как это работает и как сделать вашего «Джарвиса» только вашим :) До связи! #aishe4ka #aiassistant #n8n
Наконец-то непосредственная работа с материалом! И после всех предварительных ласк мы наконец-то начинаем работу над самим документом. Мы дали модели контекст, роль, постановку задачи, разработали план. Теперь пишем - «давай начнем работу над первой частью…
Предварительная подготовка после постановки задачи Итак продолжим нашу работу с моделью. Мы правильно задали вопрос, вгрузили в модель кучу контекста, ответили на все вопросы и она уже готова работать и решать нашу поставленную задачу! И если мы сейчас скажем…
Советы по использованию Codex от OpenAI. Как и ChatGPT, Codex настолько же эффективен, насколько точны инструкции, которые вы ему даёте — Используйте имена (файлов/классов/переменных/методов), которые легко найти поиском. Codex буквально вызывает команду grep, поэтому конкретные имена файлов, символы или уникальные имена пакетов помогают ему быстро найти нужное место — Укажите, где начинать работать. Codex лучше всего справляется, если его нацелить на один файл или, максимум, на какой-то пакет/папку с не более чем сотней файлов. Слишком общие или нечеткие запросы заставят его гадать, что вы имели в виду. — Вставляйте полный стек вызовов в ошибке. Точные стеки с путями к файлам и номерами строк помогают Codex моментально выявлять баги. — Запускайте несколько задач подряд. Каждая задача работает в своем изолированном окружении, так что смело ставьте несколько задач в очередь одновременно. Многие инженеры в OpenAI начинают день с того, что составляют быстрый список дел и запускают в Codex сразу несколько задач. — Давайте работу с четким критерием «работает/не работает». Как и человек, Codex тестирует свои изменения. Так как у него есть доступ к терминалу, всё, что можно проверить юнит-тестом или линтером (проверкой кода), будет сделано надёжнее. (Codex пока не поддерживает UI-тесты.) — Разделяйте большие изменения. Вместо того чтобы давать Codex гигантский пулл-реквест, разбивайте работу на небольшие, конкретные задачи. Маленькие задачи агенту легче тестировать по отдельности, а вам — проверять. — Если застряли, пусть Codex возьмётся за дело. Если вы зашли в тупик, создайте новую ветку и передайте проблему Codex. Так можно параллельно исследовать несколько вариантов решения. — Запустите несколько задач перед тем, как начать день. Запускайте их перед дорогой на работу или утренним кофе, а по возвращении вас будут ждать свежие изменения, готовые к проверке. — Опишите правила и принципы работы с конкретно вашим проектом в файле AGENTS.md. Используйте его для указания специфики работы, структуры проекта, протокола тестирования.
ууу, Open AI выпустили своего помощника для кодинга :) Ну, все мы в который раз прощаемся с программистами (нет)… Но на самом деле эта штука может помочь разные рутинные штуки помогать делать )
Предварительная подготовка после постановки задачи Итак продолжим нашу работу с моделью. Мы правильно задали вопрос, вгрузили в модель кучу контекста, ответили на все вопросы и она уже готова работать и решать нашу поставленную задачу! И если мы сейчас скажем - «ага, давай, напиши мне всю методологию», на выходе мы получим не очень хороший результат, а вернее сильно сжатое представление того, что можно было бы получить. Почему так происходит? Просто нужно помнить, что модель ограничена количеством токенов, которая она может принять на входе и выдать нам в качестве ответа на выходе. Да, это сейчас достаточно большие цифры, а в скором времени будут еще больше, но есть много нюансов (об этом в интервью говорит Nikolay Savinov, один из лидов тренировки длинного контекста в Google). Во первых, иногда во время дообучения модель отвечает более коротко и постепенно у нее вырабатывается искусственное внутреннее ограничение, что больше определенного количества символов отвечать нет смысла. Сейчас модель от Google работает с 1 миллионов токенов на выходе. И в ближайшее время нужно потратить много усилий чтобы сделать, например 10 миллионов (но это реально). А вот с большим контекстом уже придется потерпеть и потрудиться над слаженной работой инженеров и программистов =) Но вернемся к нашей задаче. Для того, чтобы получить качественный результат, нам нужно последовательно идти по документу/задаче и заставлять модель давать нам ответ на небольшую часть вопроса. То есть, нужна детальная декомпозиция задачи для того, чтобы качественно ее решать в каждом сообщении к модели. Но ведь мы используем ИИ, давайте попросим его это сделать! Поэтому после того, как мы ответили на все вопросы модели и она готова приступить к выполнению, тормозим ее и просим сделать пошаговую атомарную декомпозицию задачи по написанию документа, для того, чтобы решать ее частями и максимально глубоко прорабатывать каждую часть. В ответ нам придет детальный план, который мы можем скорректировать по своему желанию и в последствии использовать отсылки к нему для проработки каждой задачи. Итак, теперь у нас есть детальный план по работе над задачей/написанием нашего документа, приступим к нему уже наконец!
Как получить хороший результат от диалога с моделями Я достаточно часто слышу истории, что модели все еще глупые, что они не решают задач, которые пользователь для них поставил, что проще погуглить. Я в корне не согласен с этими утверждениями, потому что на текущий момент модели очень сильно упрощают жизнь, решая различные рутинные задачи и существенно сокращая время на ранее трудоемкие процессы. Я пытался разобраться, почему для моих задач модели отрабатывают хорошо, а у кого-то на похожих данных получается сильно хуже. А ответ прост, это то, с чего все начиналось - это качество первоначального промта, качества тех данных, что мы загружаем в модель и как формируем контекст. Модели сами по себе не знают ничего о нашей проблеме или задаче, не знают что мы хотим получить на выходе, не знают контекста и различных вводных данных. И именно от того, насколько хорошо модель поймет, чего мы от нее ждем, тем более качественно ответит. В моем случае первоначальная подготовка к постановке задачи содержала в себе описание контекста, 5-6 файлов, которые могли бы помочь, детально описанная задача, прописанная роль. Давайте на примере посмотрим, как сформировать качественный промт к модели. Предположим, нам нужно написать некоторый документ, скажем, методику по тестированию. Что нам нужно дать на вход модели: 1. Роль - объясняем модели, в какой роли мы хотим ее видеть, что она должна применить на себя, например «инженер по тестированию мобильных приложений, который хочет помочь своей команде проводить тестирование повторяемо, по согласованной методике, чтобы каждое приложение было с гарантированным покрытием и одинаковыми материалами на выходе». То есть тут мы задаем и роль и даем часть описания задачи, к чему должен стремиться ответ модели. 2. Загружаем в модель документы, которые могут дать контекст для задачи. Например это могут быть для нашего случая отчеты по тестированию, сторонние гайды по тестированию, чек-листы к которым мы хотим стремиться, какие-то внутренние документы, в стилистике которых мы хотим получить итоговый документ. В промте мы обязательно описываем, что за документы мы отправили, их краткое описание, определение для чего мы их загрузили. 3. Теперь максимально полноценно описываем желаемый результат, что мы хотим видеть на выходе. Что это должен быть внутренний документ, нацеленный на определенную задачу, определенного стиля, с определенными обязательными пунктами и т.д. 4. И в последнем сообщении очень хорошо работает следующий паттерн: пишем, что сейчас ничего делать не нужно, ничего решать и формировать, а нужно очень внимательно и детально изучить все документы, все материалы, понять контекст и задачу и спросить вопросы, которые непонятны или могут помочь в решении задачи. И тут последний шаг иногда бывает очень важным. В некоторых случаях модель спрашивала те вопросы, на которые я сам даже не задумывался при построении запроса и чтении документов. И порой ответы на вопросы модели очень сильно самому помогают в понимании задачи или дают фокус на неприметных, но важных вещах. И этот шаг очень сильно влияет на конечный результат. Попробуйте взять какой-то из ваших прошлых запросов и попробовать снова его решить, но уже используя этот подход. Поверьте, разница в качестве сильно вас удивит. На сегодня все, а дальше мы посмотрим, как добиться качества уже при общении с моделью, а не только при первом промте. P.S. Это не является каким-то откровением или это значит, что так и надо делать, просто это те приемы, которые мне помогали добиться от моделек неплохих результатов. Надеюсь какие-то из этих подходов помогут и вам тоже
Да, с длинным контекстом у них пока беда 🙂 Я, кстати, давно уже вот так делаю: когда забивается диалог контекстом так, что уже полоса прокрутки еле видна, а сам чат и ответы начинают дико тормозить, то я прошу сохранить основные детали чата в память, а потом в новом диалоге прошу загрузить их из памяти и продолжаю в новом, быстром чате :)))
А вот еще один способ сохранить контекст :)