Разбираем слитые system prompts: что скрывают AI-ассистенты под капотом

#ai#llm#prompt-engineering#claude#chatgpt

Когда на днях в GitHub всплыл репозиторий asgeirtj/system_prompts_leaks с инсайдерскими промптами AI-ассистентов, я не смог пройти мимо. Это как заглянуть в private methods крупных языковых моделей — те самые инструкции, которые определяют их поведение, но обычно скрыты за friendly API.

Что на самом деле говорят моделям

Промпты из репозитория — не просто техническая спецификация. Это фактически «ДНК поведения» ассистентов. Вот что бросилось в глаза в Claude Code:

You are Claude Code, an expert coding assistant specialized in:
- Writing clean, production-ready code
- Explaining complex concepts simply
- NEVER providing harmful/unethical code
- Defaulting to modern JS/TS unless specified

Обратите внимание на явные guardrails («никогда не предоставлять вредный код») и implicit defaults (TypeScript как предпочтительный выбор). В промптах ChatGPT нашёлся любопытный фрагмент:

If user asks about controversial topics:
1. Acknowledge complexity
2. Cite 3+ perspectives
3. End with neutral closing

Такие инструкции объясняют, почему некоторые ответы ИИ кажутся шаблонными — буквально потому, что они следуют шаблону.

Почему это важно для разработчиков

  1. Predictability — зная промпты, можно предсказать edge cases. Например, Claude Design явно требует «avoid purely decorative suggestions», что объясняет его скепсис к избыточным анимациям.

  2. Effective prompting — понимая baseline-промпт, проще составлять эффективные запросы. Если система уже настроена на «explain like I’m 5», не нужно дублировать это в своём prompt.

  3. Debugging weird behaviors — однажды Gemini странно реагировал на вопросы про Docker. Оказалось, в его базовом промпте есть строчка «assume user is non-technical unless proven otherwise».

Риски и ограничения

Не всё так радужно:

Особенно забавен случай с Claude Fable, где явно прописано «use storytelling as last resort». Теперь ясно, почему он иногда выдаёт истории с ощущением «ну ладно, если вы настаиваете».

Как использовать эти знания

Вот мой workflow после изучения leaks:

  1. Для сложных запросов сначала смотрю baseline-промпт, чтобы не противоречить «глубинным установкам» ассистента
  2. При разработке с Copilot/VSCode добавляю явные override там, где нужно обойти дефолтные ограничения
  3. Держу в уме политики безопасности — например, Codex GPT-5.6 явно запрещает генерацию API keys, что объясняет его упрямство в некоторых сценариях

Попробуйте сами — найдите промпт своего основного ассистента и протестируйте edge cases. Лично мне это помогло понять, почему Claude иногда отказывается оптимизировать «подозрительно похожий на бенчмарк» код. В его инструкциях явно прописано избегать micro-optimizations без контекста.

Такие leaks — не повод для паранойи, а скорее reminder, что даже «волшебные» ИИ работают по понятным правилам. Главное — не пытаться их обмануть, а научиться говорить на одном языке.


Источник: https://github.com/asgeirtj/system_prompts_leaks