"↔️ XML-like теги Поговорим немного о конекст - инжиниринге. Хотел напомнить про простую, но крайне эффективную технику, которую можно применять в промптах, меморибанке, агентах. Это XML-like теги. Рекомендации от ""лучших собаководов"" прилагаются! https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/use-xml-tags ❓ Почему я пришу XML-like, а не XML? Потому что это не ""классический"" XML со схемой, атрибутами тэгов, нет - без этих усложнений. Усложнения в виде схемы путают модель без очевидной необходимости. Атрибуты - по желанию, если семантика подходит. ▶️ Мы просто используем тэги в угловых скобках для разметки структуры промптов. Какие задачи наиболее эффективно решаются: - явная разметка начала и конца некоего семантического блока - явное и однозначное указание вложенности блоков друг в друга Этого достаточно, чтобы пользоваться этим почти в каждом промпте. ❓Какие теги применять? Конечно, семантические, что даёт дополнительный плюс. Пример: ``` <инструкции> ... <некий_блок> ... <вложенный_блок> ... </вложенный_блок> ... <и_еще_один> ... </и_еще_один>> </некий_блок> ... </инструкции> ``` Думаю, идея понятна. В сложных случаях: <элемент_списка порядковый_номер=""1"" важность=""обычная""> ❓ Зачем такие сложности? Чтобы явно показать структуру, когда она не тривиальная. С тривиальной и маркдаун вполне подходит, а вот вложденные многоуровневые списки модель иногда ""парсит"" с ошибками: проверка может быть очень простая - попросите модель составить структуру вашего промпта с многоуровневыми нумерованными элементами структуры, можно иногда удивится! ❓ А как же маркдаун? Такие теги с ним вполне совместимы. Я пишу обычные md файлы и добавляю xml-like теги в ""сложные места"", где модель можнт неоднозначно определить логическое начало и конец блоков. ❓Можешь пояснить ""за фрактальный промптинг""? Конечно, и, как ни странно - сабж и xml теги вполне себе имеют место быть: для авторегрессионных казуальных моделей (а это почти все современные трансформеры, с треуголными масками внимания на всех этапах обработки, включая prefill) - они ""условно"" читают текст слева направо, поэтому наличие уникального закрывающего тега для них ""удобно"". ℹ️ Удобно в кастомной слеш команде делать так: `some_command.md`: ``` Вот команда пользователя: <команда_пользователя> $ARGUMENTS </команда_пользователя> И дополнительно делай так: ... ``` ❓ Что именно улучшают тэги? Только восприятие моделью структуры промпта - содержательно тэги сами по себе не будут какой то магической «пилюлей». #post @deksden_notes"