0Pricing
AI Prompt Engineering · Урок

Эффективные запросы для расширенного мышления

Составляйте простые запросы, избегайте пошаговых инструкций и доверяйте модели рассуждения.

«Эффективные запросы для расширенного мышления» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.

Составление запросов для моделей рассуждений отличается

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

Модели рассуждений уже способны к сложному внутреннему рассуждению. Если точно указывать им, как думать, это может помешать данному процессу. Лучшие запросы для моделей рассуждений проще и прямее, чем запросы для обычных моделей.

Не задавайте пошаговый ход рассуждений

Для обычных моделей вы пишете: «Думайте шаг за шагом. Сначала рассмотрите X, затем рассмотрите Y и в конце сделайте вывод Z». Такая схема помогает, потому что обычные модели не выполняют эти действия автоматически.

Для моделей рассуждений такая схема может ограничить внутреннее рассуждение модели неоптимальным путём. Вместо этого чётко сформулируйте задачу и позвольте модели самой определить, как её решать.

# Standard model: needs scaffolding
STANDARD_PROMPT = (
    'Let us think step by step.\n'
    'First, identify the variables.\n'
    'Then, set up the equation.\n'
    'Then, solve for x.\n'
    'Finally, verify your answer.\n\n'
    'Problem: If 3x + 7 = 22, what is x?'
)

# Reasoning model: just state the problem clearly
REASONING_PROMPT = (
    'Solve: If 3x + 7 = 22, what is x?'
    # The model handles the step-by-step internally
)

# Both produce correct answers; the reasoning model prompt is simpler
print('Reasoning model prefers the cleaner prompt')

Чётко и полно сформулируйте задачу

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

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

# Poor: vague problem statement
BAD_PROMPT = 'Write me a good sorting algorithm.'

# Good: clear, complete problem specification
GOOD_PROMPT = (
    'Write a Python sorting algorithm with these requirements:\n'
    '- Must sort a list of integers in ascending order\n'
    '- Must work correctly on empty lists, single-element lists, and lists with duplicates\n'
    '- Target time complexity: O(n log n) average case\n'
    '- Must not use Python built-in sort() or sorted()\n'
    '- Include a brief docstring and 3 test cases\n\n'
    'Return only the code, no explanation.'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=8000,
    thinking={'type': 'enabled', 'budget_tokens': 5000},
    messages=[{'role': 'user', 'content': GOOD_PROMPT}]
)
print(next(b.text for b in response.content if b.type == 'text')[:300])

Правильная настройка budget_tokens

budget_tokens задаёт максимальное число токенов для рассуждения. Правильная настройка этого параметра — главный способ регулировать модели рассуждений:

  • 1 000–2 000: простые задачи и быстрые вычисления
  • 5 000–10 000: программирование средней сложности и анализ
  • 16 000+: самые сложные математические задачи, проектирование комплексных систем и задачи исследовательского уровня
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def reasoning_call(prompt, budget_tokens=5000):
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=budget_tokens + 2048,  # max_tokens must exceed budget_tokens
        thinking={
            'type': 'enabled',
            'budget_tokens': budget_tokens
        },
        messages=[{'role': 'user', 'content': prompt}]
    )
    answer = next((b.text for b in response.content if b.type == 'text'), '')
    thinking_blocks = [b for b in response.content if b.type == 'thinking']
    print(f'Thinking blocks: {len(thinking_blocks)}')
    return answer

# Simple problem: small budget
reasoning_call('What is 17 * 23?', budget_tokens=1000)

# Complex problem: larger budget
reasoning_call(
    'Design a distributed rate limiter that handles 100k requests/second.',
    budget_tokens=10000
)

Минимальные системные запросы

Для моделей рассуждений делайте системные запросы минимальными. Внутреннее рассуждение — их главная возможность, поэтому не ограничивайте её чрезмерно длинными инструкциями о поведении.

Хороший системный запрос для модели рассуждений задаёт роль, определяет формат вывода и указывает ограничения. Этого достаточно.

# Over-engineered system prompt (hurts reasoning models)
BAD_SYSTEM = (
    'You are an expert Python developer. '
    'Always think step by step. '
    'First understand the problem. '
    'Then plan your approach. '
    'Then implement step by step. '
    'Check each step before proceeding. '
    'Finally review your solution. '
    'Format all code with comments. '
    'Add error handling to every function. '
    '...'
)

# Minimal system prompt (helps reasoning models)
GOOD_SYSTEM = (
    'You are an expert Python developer. '
    'Return only code unless explanation is explicitly requested. '
    'Use type hints and docstrings.'
)
# The model's internal reasoning handles the rest

Инструкции о формате вывода по-прежнему важны

Не следует указывать как рассуждать, но нужно чётко задать желаемый формат вывода. Это отличается от инструкций по рассуждению: такие указания сообщают модели, что вернуть, а не как думать.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

# Clear output format instructions are still important
prompt = (
    'Analyze the time and space complexity of this Python function:\n\n'
    'def bubble_sort(arr):\n'
    '    n = len(arr)\n'
    '    for i in range(n):\n'
    '        for j in range(0, n-i-1):\n'
    '            if arr[j] > arr[j+1]:\n'
    '                arr[j], arr[j+1] = arr[j+1], arr[j]\n\n'
    'Return your answer as JSON with keys: '
    'time_complexity, space_complexity, explanation (2 sentences max).'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=5000,
    thinking={'type': 'enabled', 'budget_tokens': 3000},
    messages=[{'role': 'user', 'content': prompt}]
)
print(next(b.text for b in response.content if b.type == 'text'))

Меньше примеров по нескольким образцам

Обычные модели получают большую пользу от 3–5 примеров по нескольким образцам. Моделям рассуждений они помогают меньше, а слишком большое количество примеров может даже навредить: окно контекста заполняется содержимым, которое мешает внутреннему рассуждению.

Для моделей рассуждений часто оптимально использовать от 0 до 1 примера. Используйте примеры только в тех случаях, когда формат вывода необычен или неоднозначен.

# Standard model: 3 few-shot examples improve performance significantly
STANDARD_FEW_SHOT = (
    'Q: 2 + 2 = ?\nA: 4\n\n'
    'Q: 5 * 6 = ?\nA: 30\n\n'
    'Q: 100 / 4 = ?\nA: 25\n\n'
    'Q: 17 + 38 = ?\nA:'
)

# Reasoning model: 0 examples is fine; 1 is enough if format is unclear
REASONING_DIRECT = 'What is 17 + 38?'

# The reasoning model already knows math — examples are overhead, not signal
# Only use 1 example when the output format needs clarification:
REASONING_FORMAT_EXAMPLE = (
    'Answer math questions returning only the number.\n'
    'Example: Q: 2 + 2  A: 4\n\n'
    'Q: 17 + 38'
)

Работа с неопределённостью в результатах моделей рассуждений

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

import anthropic
import re

client = anthropic.Anthropic(api_key='sk-ant-...')

def reasoning_with_confidence(question):
    prompt = (
        f'{question}\n\n'
        f'At the end of your answer, include a confidence statement: '
        f'Confidence: [HIGH/MEDIUM/LOW] — [one sentence why]'
    )
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=8000,
        thinking={'type': 'enabled', 'budget_tokens': 5000},
        messages=[{'role': 'user', 'content': prompt}]
    )
    text = next(b.text for b in response.content if b.type == 'text')

    # Parse confidence
    match = re.search(r'Confidence: (HIGH|MEDIUM|LOW)', text)
    confidence = match.group(1) if match else 'UNKNOWN'
    print(f'Confidence: {confidence}')
    return text, confidence

answer, conf = reasoning_with_confidence(
    'What will AI capabilities look like in 2030?'
)

Кэширование результатов моделей рассуждений

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

import hashlib
import json
import os

cache_dir = '/tmp/reasoning_cache'
os.makedirs(cache_dir, exist_ok=True)

def cached_reasoning_call(prompt, budget_tokens=5000):
    # Create cache key from prompt
    key = hashlib.sha256(f'{prompt}:{budget_tokens}'.encode()).hexdigest()
    cache_file = os.path.join(cache_dir, f'{key}.json')

    if os.path.exists(cache_file):
        with open(cache_file) as f:
            cached = json.load(f)
        print('Cache hit!')
        return cached['answer']

    # Cache miss: call the model
    answer = reasoning_call(prompt, budget_tokens)

    with open(cache_file, 'w') as f:
        json.dump({'prompt': prompt, 'answer': answer}, f)

    return answer

Проверка результатов моделей рассуждений

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

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def reasoning_with_verification(question):
    # Step 1: Get reasoning model answer
    r1 = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=10000,
        thinking={'type': 'enabled', 'budget_tokens': 8000},
        messages=[{'role': 'user', 'content': question}]
    )
    answer = next(b.text for b in r1.content if b.type == 'text')

    # Step 2: Independent verification call
    verify_prompt = (
        f'Question: {question}\n\n'
        f'Proposed answer: {answer}\n\n'
        f'Is this answer correct? Respond with CORRECT, INCORRECT, or UNCERTAIN, '
        f'followed by a brief explanation.'
    )
    r2 = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=256,
        messages=[{'role': 'user', 'content': verify_prompt}]
    )
    verification = r2.content[0].text
    print(f'Verification: {verification[:100]}')
    return answer, verification

Практический список проверки запросов для моделей рассуждений

При составлении запросов для моделей рассуждений следуйте этому списку:

  • Чётко и полно сформулируйте задачу
  • NOT включайте пошаговые инструкции по рассуждению
  • Делайте системный запрос кратким (только роль, формат и ограничения)
  • Используйте не более 0–1 примера по нескольким образцам
  • Явно указывайте формат вывода
  • Устанавливайте значение budget_tokens пропорционально сложности задачи
  • Учитывайте задержку ответа от 10 до 60 секунд

Проверка знаний: составление запросов для моделей рассуждений

Почему по сравнению с обычными моделями рекомендуется использовать более простые запросы для моделей рассуждений?

Повторение: эффективные запросы для расширенного рассуждения

Моделям рассуждений нужны более простые и прямые запросы, чем обычным моделям. Не указывайте как рассуждать — чётко и полно сформулируйте задачу, а стратегию оставьте на усмотрение внутреннего рассуждения модели. Делайте системные запросы минимальными: только роль, формат вывода и ограничения. Используйте от 0 до 1 примера по нескольким образцам. Настраивайте budget_tokens в соответствии со сложностью задачи (1 тыс. для простых задач, 10 тыс. и более для сложных). Учитывайте значительную задержку и по возможности кэшируйте результаты. Явно указывайте формат вывода — это единственная область, где подробные инструкции по-прежнему помогают.

Часто задаваемые вопросы

Урок «Эффективные запросы для расширенного мышления» бесплатный?

Да — полный текст урока «Эффективные запросы для расширенного мышления» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 4 уроков всего.

Чему я научусь в уроке «Эффективные запросы для расширенного мышления»?

Составляйте простые запросы, избегайте пошаговых инструкций и доверяйте модели рассуждения. Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Prompt Engineering?

Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Эффективные запросы для расширенного мышления»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Prompt Engineering?

Да. Каждый урок AI Prompt Engineering включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Чем отличаются модели рассуждений
  2. Эффективные запросы для расширенного мышления
  3. Когда использовать модели рассуждений, а когда стандартные
  4. Компромиссы между стоимостью и задержкой
← Назад к AI Prompt Engineering