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

推荐订阅源

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 миллионов точек без потерь
Хватит мучить ChatGPT. Почему ваш промпт не сработает
Анастасия Тутова · 2026-05-26 · via Все публикации подряд на Хабре

Простой

10 мин

9.9K

Эта публикация открывает цикл из двух материалов. Здесь базовая часть для новичков, а во второй статье — будут продвинутые советы по RAG, агентам и другим более сложным сценариям.

Каждую неделю в тредс или на реддите кто-то жалуется: «Попросил ChatGPT (Gemini, Grok, клод, нужное подчеркнуть) написать сопроводительное письмо, а получил кринж из штампов. Ну и фигня эта ваша нейронка». В комментах топикстартеру задают резонные вопросы: «Какой системный промпт ты писал? Контекст давал? Примеры приложил? Tone of voice описал?» А в ответ — тишина.

Эта статья про то, как не быть таким персонажем и перестать обижаться на ИИ.

Почему я ее пишу: я контент-маркетолог в Cloud.ru, и так уж получилось, что промпт-инженер (у меня и справка есть). Работаю с LLM каждый день уже более трех лет, долго сотрудничала с нашей ML-командой и хорошо представляю, как вводные на естественном языке трансформируются в выдачу. Часто разбираю чаты коллег, у которых не получилось добиться чего-то от LLM, и помогаю им составлять эффективные промпты под разные задачи. 

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

Иллюзия «сделай красиво/хорошо/лучше»: zero-shot против few-shot

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

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

Поэтому первый и самый частый способ получить плохой результат — это дать модели голую формулировку без примеров. На профессиональном жаргоне это называется zero-shot prompting и, по сути, переводится как «угадай, что я имел в виду».

Допустим, продакт-менеджер решает, не привлекая внимания санитаров разработчиков, модифицировать простой скрипт на сайте. Кидает кусок кода в нейронку с нулевым промптом: «Добавь сюда поп-ап при клике».

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

В чем была проблема? На старом сайте крутится легаси на jQuery. Но менеджер не дал контекста, а языковая модель решила блеснуть знаниями. Она увидела код и подумала: «Какой jQuery, бро? Держи ванильный JS. Я все переписала, добавила тайм-ауты для анимации, блеск!» А валидировать ответ менеджеру просто не хватает экспертности: он не отличает $('#btn') от document.querySelector('#btn').

Но менеджер и не должен в этом разбираться. Проблема возникает на шаг раньше: прежде чем открывать окно чата с ИИ, вы обязаны провести базовую разведку и собрать контекст своими руками.

Такой подход называется few-shot prompting. Когда вы не просто описываете задачу, а добавляете к ней несколько примеров того, как должен выглядеть хороший результат. Потому что нейросеть — это не системный аналитик и не экстрасенс. Вы не можете делегировать ей сбор исходных данных. 

Вам не нужно разбираться в тонкостях архитектуры, но вы должны иметь максимум фактуры, которую отдадите в промпт. Не знаете стек? Подойдите к разработчику и спросите: «На чем работает этот лендинг?» Или используйте чит-код для нетехнарей: сделайте ваш самый первый промпт диагностическим.

Не просите сразу генерировать код, а напишите так: 

«Вот кусок кода с нашего старого сайта. Я не разработчик. Проанализируй его и скажи, какой язык или библиотеки тут используются. Затем составь для себя же строгий список ограничений, которым ты будешь следовать, когда я попрошу тебя этот код изменить, чтобы не сломать сайт».

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

Плюс учитывайте, что законы Мерфи в работе с нейросетями никто не отменял. Если что-то может быть сделано через альтернативные места, оно будет сделано через альтернативные места. 

Была у меня история из жизни: на работе у мужа есть летняя школа для детей, где им объясняют, что такое алгоритмы. Волонтер собирает детишек за столом, на котором лежит батон в упаковке, нож и масло. Задача — давать инструкции так, чтобы в конце получился бутерброд. Что вы думаете? Все уже ломается на стадии «Возьми нож в руку и нарежь батон». 

Классика zero-shot-промптинга 

Классика zero-shot-промптинга 

То же самое работает для любой роли. 

Пример: дизайнер просит покритиковать макет. 

❌ Без референсов и ограничений получит банальные советы вроде «улучшите контрастность», «увеличьте отступы», «поиграйте со шрифтами». 

✅ С приложенным гайдлайном и примерами будут конкретные замечания по типографике и сетке. 

Если задуматься, то ничего нового здесь нет. В любой нормальной команде тимлиды годами учат стажеров и джунов правильно просить помощи: «Опиши задачу и всё, что уже попробовал, приложи логи или скрин ошибки, скажи, какого результата ждешь». Половина вопросов в этот момент отваливается сама: пока человек формулирует проблему, он сам же ее и решает. Есть целая культура, как правильно задавать вопросы, — от знаменитого How To Ask Questions The Smart Way до внутренних регламентов в чатах поддержки.

Универсальное правило здесь в том, что модель сама никогда не догадается. Она всегда подставит среднее по обучающей выборке, а это уныло. И чтобы вытащить из этого среднего что-то полезное, одного приема мало. Хороший промпт — это комбинация нескольких слоев: роли, аудитории, контекста, формата, ограничений. 

Условия хорошего промпта

Когда вы пишете: «Ты senior backend engineer с опытом высоконагруженных систем», то происходит сдвиг весов — токены, связанные с профессиональной лексикой и паттернами, получают более высокую вероятность. Ответ становится более предметным, модель начинает использовать обороты, которые в обучающей выборке встречались рядом со словосочетанием «senior backend».

Второй важный пункт — определять аудиторию. «Объясни архитектуру kubernetes-кластера так, чтобы понял джун-фронтендер» и «Опиши ту же архитектуру для CTO, который принимает решение о бюджете» — это два разных текста.

Хорошая структура промпта будет такой:

  1. Роль — кто ты сейчас.

  2. Контекст — что происходит вокруг задачи.

  3. Аудитория — для кого результат.

  4. Сама задача — что конкретно нужно.

  5. Формат вывода — как должен выглядеть ответ.

  6. Ограничения — чего точно не делать.

Выглядит как ТЗ для подрядчика. По сути, это оно и есть. Он сделает ровно то, что написали, а не то, что имели в виду между строк.

Например, возьмем абстрактный, но узнаваемый кейс: «Помоги разобраться с инцидентом, у нас сервис ночью лег».

В zero-shot-варианте модель даст общую отписку: посоветует посмотреть логи, проверить инфраструктуру, сетевые проблемы, базу данных. Полезность такого ответа стремится к нулю.

А теперь добавим контекста по схеме «роль — данные — пример — формат»:

Комбопромпт для постмортема

Ты SRE с опытом расследования инцидентов в распределенных системах.

Мне нужен детальный разбор инцидента (постмортем) по падению сервиса оплаты.

Контекст:

— Сервис: оплата (payment‑service.

— Стек: Go, PostgreSQL, Kafka, Kubernetes.

— Время инцидента: с 03:12 до 03:47 по времени YYYY-MM-DD (инцидент можно считать начавшимся, когда сильно выросли latency и error rate.

** Что у меня есть:

1. Логи application‑сервиса оплаты за период 03:05–03:55 (чуть шире инцидента):

(В реальном запросе вставляем сюда свои настоящие логи за 03:05–03:55.)

2. Описание графиков метрик за тот же период (латентность, ошибки, лаг и т. п.):

(В реальном запросе даем свои реальные числа или краткое описание «на графике видно, что…».)

3. Детали инцидента и действий команды:

```text

Инцидент:

— start: 03:12;

— end: 03:47.

Алерты:

— 03:13 — алерт "payment: error_rate > 5% for 5m (current: 22%)" в PagerDuty;

— уведомление пришло в slack-канал #prod-incidents.

Действия во время инцидента:

— 03:15 — перезапустили deployment payment-service (2 pod’а);

— 03:20 — увеличили реплики с 2 до 4;

— 03:28 — вручную рестартнули Kafka consumer;

— 03:35 — отключили часть трафика (feature flag для одного из методов оплаты);

— 03:47 — метрики вернулись в норму, инцидент закрыли.

```

4. Краткое описание архитектуры сервиса оплаты:

```text

payment-service:

— принимает синхронные HTTP-запросы /api/payments;

— пишет транзакцию в PostgreSQL (таблица payments + несколько вспомогательных);

— после успешного коммита отправляет событие в Kafka (topic=payments-events);

— отдельный consumer читает payments-events и дергает сторонний PSP.

db:

— max_connections=200, для payment-service пул 50;

— есть ночной репорт, который иногда сильно грузит базу.

kafka:

— один consumer group payments-consumer, autoscale нет;

— retry на уровне consumer’а: 3 попытки, дальше сообщение уходит в DLQ.

```

5. Пример моего старого постмортема / желаемый стиль (я прикладываю кусок текста, можно анонимизированный, чтобы было видно, как оформлять разделы, таймлайн и action items).

***

Что нужно сделать

Сделай, пожалуйста, постмортем по той же структуре, к которой я привык:

1. Таймлайн событий

   — по минутам / крупным шагам: что увидели в метриках, какие ошибки в логах, какие действия предпринимали.

2. Корневая причина (Root Cause)

   — четкая формулировка одной-двумя фразами;

   — обоснование по логам и метрикам (какие строки / какие графики на это указывают).

3. Что сработало в обнаружении

   — какие алерты/метрики помогли;

   — что было сделано быстро и правильно.

4. Что не сработало

   — где было позднее срабатывание;

   — каких сигналов или алертов не хватало;

   — где нас подвела наблюдаемость или процессы.

5. Action items с приоритетами

   — список задач в формате:

     — [P1] ... — критично, надо сделать в первую очередь;

     — [P2] ... — важно, но не горит;

     — [P3] ... — nice to have / улучшения.

   — привязка к конкретным проблемам, обнаруженным в инциденте (алерты, код, конфигурация PostgreSQL/Kafka/Kubernetes, дашборды).

Если каких‑то данных, на твой взгляд, не хватает для уверенной корневой причины, явно напиши в конце раздела «Корневая причина», какие именно наблюдения/метрики/логи нужно еще собрать, и сформулируй их в виде TODO.

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

Результат по промпту в модели Claude Sonnet 4.6. Я использую платный аккаунт в Perplexity для работы с несколькими моделями сразу

Результат по промпту в модели Claude Sonnet 4.6. Я использую платный аккаунт в Perplexity для работы с несколькими моделями сразу

Конфликт промптов: иерархия инструкций

В реальном ИИ-продукте на одну модель давит сразу несколько слоев инструкций:

  • System prompt — то, что задает промпт-инженер продукта: «Ты ассистент банка, отвечаешь только на финансовые вопросы, не материшься, не обсуждаешь политику».

  • Developer prompt — дополнительные технические инструкции от разработчиков, формат вывода, подключенные инструменты.

  • User message — то, что пишет пользователь.

  • Tool calls — результаты вызовов функций, RAG-чанки и прочие данные, которые подмешиваются в контекст.

Чем ниже слой, тем меньше доверия. System выигрывает у user. Поэтому ассистент банка не будет обсуждать политику и выдавать секретные промокоды, даже если вы очень вежливо попросите.

На нашей конференции GoCloud в апреле мы как раз делали стенд, где участники пытались взломать упрощенную версию Гига-помощника — заставить его обойти ограничения и поделиться промокодом. Для этого нужно было использовать системный промпт и избегать слов, на которые реагировали guardrails.

Знание слоев помогает:

  • Трезво оценивать, что ассистент может сделать, а чего не может. Если что‑то запрещено на уровне системы, нет смысла бесконечно переформулировать запрос, так как дело не в вашем ТЗ.

  • Формулировать вопросы в рамках роли ассистента. Не просите сломать правила, а ищите максимально полезное действие внутри допустимого лимита.

  • Меньше разочаровываться. Помните, что отсутствие ответа — не баг, а осознанное ограничение продукта.

Контекст-инжиниринг

В начале статьи мы говорили про продакта, решившего исправить старый скрипт на jQuery. Мы выяснили, что главная задача, перед тем как идти к нейросети, — собрать контекст. Но у этого правила есть другая, не менее разрушительная крайность.

С появлением моделей с контекстом в миллион токенов появилось искушение: «А давайте запихнем всю документацию и переписку из мессенджера в промпт — и пусть сам разбирается». 

Остановитесь, это плохая идея по трем причинам:

  1. Токены небесплатны. Большой контекст превращается в большой счет.

  2. Производительность падает. Чем больше контекст, тем медленнее ответ (в инженерии это называется TTFT — Time To First Token).

  3. Даже модель с миллионом токенов помнит начало контекста хуже, чем конец. Качество извлечения информации просаживается посередине очень длинных промптов. Такое явление получило название lost in the middle.

Если вы засунете в середину диалога кучу контекста, модель просто его проспит

Если вы засунете в середину диалога кучу контекста, модель просто его проспит

На рынке появилось даже отдельное направление — context engineering как развитие промпт-инжиниринга. Идея в том, что хороший промпт — это не магическая фраза, а правильно собранный контекст: что положили, что выкинули, как сжали историю, в каком порядке расставили.

Практические правила:

  • Самое важное помещайте в начало или в конец промпта, но не в середину.

  • Длинные документы прогоняйте через дешевые быстрые модели для суммаризации (создания выжимки) и только потом отдавайте результат в дорогой основной промпт.

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

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

Все вышесказанное — про текст. А как работать с промптами для визуала?

Промпты для картинок

Тут работает тот же принцип: плохие промпты дают плохие или просто очень примитивные результаты.

Красивый, конечно, но очень примитивный

Красивый, конечно, но очень примитивный

Структура хорошего промпта для картинки будет напоминать постановку кадра на съемочной площадке:

  • Subject — кто или что главное в кадре.

  • Action — что субъект делает.

  • Environment — где это происходит.

  • Style — фотореализм, акварель, киберпанк, конкретный референс.

  • Composition — план, ракурс, композиция.

  • Lighting — освещение.

  • Negative — чего точно не должно быть.

Вот это уже и как КДПВ использовать не стыдно

Вот это уже и как КДПВ использовать не стыдно

Отдельная боль — стереотипы, которые модель тащит из обучающих данных. На запрос «врач в кабинете» вы получите мужчину средних лет в белом халате.

Модель: ChatGPT 5.5

Модель: ChatGPT 5.5

 «Бизнесмен» — он же, только в костюме и на фоне большого города.

Лечится явным описанием в промпте: возраст, телосложение, одежда, окружение, цвет кожи, волос, глаз и так далее.

Но стереотипы и шаблоны — это про то, что модель видела в обучении. Есть другая проблема: в любой компании есть огромный пласт того, что она не видела никогда, — внутренние документы, регламенты, проектная история, переписка с клиентами. 

Именно поэтому индустрия массово обвешивает модели RAG-системами, чтобы модель опиралась на внутренние документы. Но об этом в следующей части.

Итоги и чек-лист грамотного юзера

LLM — это компилятор текста. Очень мощный, удобный, но компилятор. Качество выхода зависит от качества входа. Если на входе вы пишете: «Сделай круто, причеши, покрути», на выходе будет причесанное и перекрученное нечто, которое, скорее всего, вас разозлит. 

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

Поэтому навык писать ТЗ для машины — это новая базовая инженерная грамотность. И чтобы все вышесказанное не растворилось в потоке текста, держите компактный чек-лист.

Как лучше ставить ТЗ для ИИ

На постановке задачи:

  1. Задайте роль — «Ты Senior X с опытом Y».

  2. Опишите аудиторию — для кого результат.

  3. Дайте контекст — что вокруг задачи, что делали, что получилось, какие ошибки.

  4. Приложите примеры — два-три «как надо» и один «как точно не надо».

На итерации:

  1. Не пытайтесь починить плохой результат добавлением «постарайся лучше». Чините структуру промпта.

  2. Если просите факты, то требуйте источники и проверяйте сами.

  3. Если результат получился слишком общим, добавьте отраслевую специфику в контекст.

  4. Один и тот же запрос на разных моделях даст разные результаты. Пробуйте.

Антипаттерны: как точно не надо

  • «Сделай красиво» без референсов и примеров — модель сделает усредненно.

  • «Подумай хорошенько» — никак не помогает. Помогает Chain-of-Thought с явной структурой рассуждения.

  • Шесть противоречащих ролей в одном системном промпте: «Будь дружелюбным, но строгим, формальным, но игривым, точным, но гибким» — модель сходит с ума и ловит галлюцинации.

  • Контекст в 10 000 токенов, в котором главное — на 9 000-й строке (lost in the middle помните?).

  • Запрос актуальных данных без подключенного поиска — модель, скорее всего, соврет правдоподобными цифрами.