AI Prompt Engineering · Lekcja

Skuteczne określanie kontekstu

Techniki ramowania: „Jesteś…”, „Biorąc pod uwagę, że…”, „Celem jest…”

Lekcja 3 z 413 kroki

Skuteczne określanie kontekstu to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Prompt Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.

Skuteczne formuły otwierające

Pierwsze zdanie promptu jest najważniejsze. Określa kontekst działania modelu — perspektywę, przez którą będzie on interpretować wszystko, co nastąpi później.

Skuteczne formuły otwierające to między innymi: Jesteś..., Kontekst jest następujący..., Biorąc pod uwagę, że... oraz Celem jest.... Każda z nich aktywuje inny wymiar kontekstu, zanim rozpocznie się właściwe zadanie.

Formuła „Jesteś...”

Formuła Jesteś... przypisuje modelowi określoną personę. Aktywuje słownictwo, styl rozumowania i priorytety związane z daną rolą.

Najważniejsza jest szczegółowość. „Jesteś ekspertem” to słaba instrukcja. „Jesteś starszym inżynierem języka Python z 10-letnim doświadczeniem, który przedkłada czytelność nad sprytne rozwiązania” to mocna instrukcja.

Formuły persony najlepiej sprawdzają się wtedy, gdy persona wskazuje konkretny sposób myślenia i komunikowania się, którego Państwo potrzebują.

import anthropic

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

persona_prompts = [
    'You are a Socratic philosophy professor. Ask 3 probing questions about this claim: AI will replace programmers.',
    'You are a skeptical venture capitalist who has seen 500 pitches. Give brutal feedback on this pitch: We are building an AI writing assistant.',
    'You are a patient kindergarten teacher. Explain what a computer does in 3 sentences for 5-year-olds.'
]

for prompt in persona_prompts:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=150,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(f'--- Persona ---')
    print(prompt[:80] + '...')
    print(response.content[0].text.strip())
    print()

Rama „Jesteś…” w komunikatach systemowych

Najskuteczniejszym miejscem na ramę persony jest komunikat systemowy, a nie wiadomość użytkownika. Persony z komunikatu systemowego pozostają aktywne przez całą rozmowę — nie trzeba ich powtarzać.

Dobrze opracowana persona systemowa może całkowicie zmienić sposób, w jaki asystent AI odpowiada na dziesiątki kolejnych pytań.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Persona set once in system; stays active for all turns
system_persona = (
    'You are Marcus, a senior software architect at a Fortune 500 company. '
    'You have 20 years of experience with distributed systems. '
    'Your communication style: direct, pragmatic, no buzzwords. '
    'You always ask about scale and failure modes before giving architecture advice. '
    'If a question lacks context, ask one clarifying question before answering.'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[
        {'role': 'system', 'content': system_persona},
        {'role': 'user', 'content': 'Should we use microservices for our new product?'}
    ]
)
print(response.choices[0].message.content)

Rama „Kontekst jest…”

Rama Kontekst jest… określa sytuacyjne tło bez przypisywania persony. Proszę użyć jej, gdy model ma rozumować na temat Państwa konkretnej sytuacji, zamiast wcielać się w określoną postać.

Jest szczególnie skuteczna w zadaniach technicznych i analitycznych, gdy chcą Państwo, aby model rozumował jako on sam, ale z pełną świadomością Państwa ograniczeń.

import anthropic

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

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=300,
    messages=[{
        'role': 'user',
        'content': (
            'The context is: we are a 5-person startup with $2M in seed funding. '
            'Our Python monolith handles 10,000 users and is starting to show performance issues. '
            'We have one backend engineer and cannot hire more for 6 months. '
            'We need to choose between refactoring the monolith vs migrating to microservices.\n\n'
            'Give a recommendation with 3 supporting reasons. Be direct.'
        )
    }]
)
print(response.content[0].text)

Rama „Biorąc pod uwagę, że…”

Rama Biorąc pod uwagę, że… określa przesłankę lub założenie, które kształtuje całą odpowiedź. Proszę użyć jej, aby ustalić fakty, które model musi uznać za prawdziwe na potrzeby zadania.

Jest to szczególnie przydatne w analizie hipotetycznej, planowaniu warunkowym i pisaniu opartym na scenariuszach, gdy model ma rozumować od konkretnego punktu wyjścia.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

scenarios = [
    'Given that our user base will grow 10x in 6 months, what architecture changes should we make today?',
    'Given that we must launch in 2 weeks with the current team, which features should we cut from the MVP?',
    'Given that our API key was exposed publicly for 3 hours, what steps should we take in the next 24 hours?'
]

for scenario in scenarios:
    response = client.chat.completions.create(
        model='gpt-4o',
        max_tokens=120,
        messages=[{
            'role': 'user',
            'content': scenario + ' (Answer in 3 bullet points.)'
        }]
    )
    print(f'Scenario: {scenario[:60]}...')
    print(response.choices[0].message.content.strip())
    print()

Rama „Celem jest…”

Rama Celem jest… określa dalszy cel wyniku. Różni się od instrukcji zadania — wyjaśnia, dlaczego potrzebują Państwo tego wyniku i co ma on osiągnąć.

Ta rama pomaga modelowi podejmować lepsze mikrodecyzje: jaki poziom perswazji zastosować, jakie zastrzeżenia uprzedzić oraz jakie szczegóły uwzględnić lub pominąć.

import anthropic

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

goal_frames = [
    (
        'The goal is to get the reader to schedule a 30-minute demo call. '
        'Write a 100-word cold outreach email for our AI data pipeline tool '
        'targeting data engineers at e-commerce companies.'
    ),
    (
        'The goal is to help the reader pass a senior Python interview at a FAANG company. '
        'Explain Python decorators with one conceptual explanation and one practical code example.'
    )
]

for prompt in goal_frames:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=200,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print('--- Goal Frame ---')
    print(prompt[:80] + '...')
    print(response.content[0].text.strip())
    print()

Łączenie ram otwierających

Najskuteczniejsze prompty łączą wiele ram otwierających przed instrukcją zadania. Typowa struktura zapewniająca wysoką skuteczność:

  1. Jesteś… [persona]
  2. Kontekst jest… [sytuacja]
  3. Celem jest… [dalszy cel]
  4. Biorąc pod uwagę, że… [kluczowe założenie lub ograniczenie]
  5. [Instrukcja zadania]

Każda rama dodaje kolejną warstwę ukierunkowania. Razem pozostawiają modelowi bardzo niewiele miejsca na domysły.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

combined_frame_prompt = (
    'You are a senior product manager with 10 years of B2B SaaS experience.\n'
    'The context is: our team is debating whether to build a native mobile app '
    'or keep investing in our responsive web app.\n'
    'The goal is: to help our leadership team make a clear go/no-go decision at '
    'next week\'s board meeting.\n'
    'Given that: we have 3 engineers, $300k runway, and 85% of current users are on desktop.\n\n'
    'Write a 250-word recommendation memo with a clear position (build or wait) '
    'and 3 supporting arguments. End with one risk to monitor.'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': combined_frame_prompt}]
)
print(response.choices[0].message.content)

Określanie tonu i stylu za pomocą ram

Ramy otwierające mogą również określać ton i styl bez używania słowa „ton”. Opis persony i sytuacji pośrednio określa rejestr wypowiedzi:

  • „Jesteś ciepłym, cierpliwym mentorem rozmawiającym z uczniem, który ma trudności” → automatycznie ciepły i zachęcający
  • „Jesteś konkretnym oficerem logistyki wojskowej” → automatycznie bezpośredni i precyzyjny
  • „Jesteś dowcipnym dziennikarzem technologicznym piszącym dla Wired” → automatycznie błyskotliwy i przystępny
import anthropic

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

frames = [
    'You are a warm, patient mentor. Explain why learning to code is hard but worth it.',
    'You are a no-nonsense military logistics officer. Explain why learning to code is hard but worth it.',
    'You are a witty tech journalist writing for Wired. Explain why learning to code is hard but worth it.'
]

for frame in frames:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=80,
        messages=[{'role': 'user', 'content': frame + ' (2 sentences only)'}]
    )
    print(f'Frame: {frame[:55]}...')
    print(response.content[0].text.strip())
    print()

Określanie rygoru analizy za pomocą ram

Gdy potrzebują Państwo rygorystycznej, krytycznej analizy zamiast entuzjastycznej zgody, proszę rozpocząć od ramy, która wyraźnie aktywuje sceptyczne lub analityczne nastawienie:

  • „Jesteś krytycznym recenzentem, którego zadaniem jest wyszukiwanie błędów…”
  • „Wciel się w adwokata diabła i podważ poniższe stwierdzenia…”
  • „Załóż coś przeciwnego do powszechnie przyjętej opinii i uzasadnij…”
  • „Przedstaw najsilniejszą wersję najsłabszego argumentu przeciwko…”
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

analytical_frames = [
    'You are a critical reviewer whose job is to find fatal flaws. Review this startup idea: a subscription box for AI prompt templates.',
    'Play devil\'s advocate. Challenge this claim: AI will make every knowledge worker 10x more productive.',
    'Steelman the weakest argument against remote work, then give the strongest counter-argument.'
]

for frame in analytical_frames:
    response = client.chat.completions.create(
        model='gpt-4o',
        max_tokens=120,
        messages=[{'role': 'user', 'content': frame + ' (3 sentences max)'}]
    )
    print(f'Frame type: analytical/critical')
    print(f'Prompt: {frame[:60]}...')
    print(response.choices[0].message.content.strip())
    print()

Kiedy NIE używać ramy persony

Ramy persony nie zawsze są właściwym narzędziem. Proszę ich unikać, gdy:

  • potrzebują Państwo obiektywnego wyodrębnienia danych — persona wprowadza stronniczość
  • przetwarzają Państwo dane strukturalne — persona rozprasza uwagę
  • zadanie jest czysto mechaniczne — nie wymaga rozumowania
  • chcą Państwo uzyskać szczerą ocenę modelu — persona wpływa na opinię

W przypadku zadań takich jak „konwertowanie tego pliku CSV do JSON” lub „policzenie liczby zdań w tym akapicie” żadna rama nie jest potrzebna — wystarczy sama instrukcja.

import anthropic

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

# Persona frame is unhelpful here — just adds tokens
prompt_with_unnecessary_frame = (
    'You are an expert data processing specialist with years of experience. '
    'Convert the following to JSON: Name: Alice, Age: 30, City: London'
)

# Clean, direct instruction
prompt_direct = (
    'Convert to a JSON object with keys name, age, city:\n'
    'Name: Alice, Age: 30, City: London'
)

for label, prompt in [('WITH UNNECESSARY FRAME', prompt_with_unnecessary_frame), ('DIRECT', prompt_direct)]:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=50,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(f'[{label}]')
    print(response.content[0].text.strip())
    print()

Testowanie ram

Najlepszym sposobem na sprawdzenie, które ramy działają w Państwa przypadku, jest przeprowadzenie testów A/B: to samo zadanie, różne ramy otwierające i porównanie wyników.

Proszę przetestować następujące wymiary:

  • brak ramy kontra rama persony
  • ogólna persona kontra konkretna persona
  • tylko rama kontekstu kontra rama kontekstu połączona z ramą celu
  • jedna rama kontra połączone ramy

Proszę prowadzić rejestr ram, które zapewniają najlepsze wyniki dla poszczególnych kategorii zadań w Państwa pracy.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

task = 'Explain the pros and cons of using TypeScript over JavaScript.'

frames = {
    'No frame':       task,
    'Persona frame':  f'You are a TypeScript advocate who also knows JavaScript deeply. {task}',
    'Goal frame':     f'The goal is to help a JavaScript developer decide if switching to TypeScript is worth it. {task}',
    'Combined frame': f'You are a pragmatic senior engineer. The goal is to help a JavaScript developer decide. {task} Give a balanced view in 3 bullet points.'
}

for label, prompt in frames.items():
    response = client.chat.completions.create(
        model='gpt-4o', max_tokens=80,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(f'[{label}]: {response.choices[0].message.content.strip()[:120]}...')
    print()

Sprawdzenie wiedzy

Programista chce, aby AI udzieliła krytycznej, ostrej opinii na temat prezentacji dla inwestorów dotyczącej jego startupu — bez zachęcania, bez wyważenia, wyłącznie w formie konfrontacyjnej krytyki. Która rama otwierająca najlepiej to osiągnie?

Określanie kontekstu — powtórzenie

Ramy otwierające ukierunkowują model, zanim zapozna się on z instrukcją zadania. Cztery najskuteczniejsze ramy to:

  • „Jesteś…”: przypisuje personę z określoną wiedzą specjalistyczną, stylem komunikacji i priorytetami
  • „Kontekst jest…”: określa tło sytuacyjne bez persony
  • „Biorąc pod uwagę, że…”: ustanawia przesłanki lub ograniczenia, które model musi uznać za prawdziwe
  • „Celem jest…”: definiuje dalszy cel wyniku

Proszę łączyć ramy w przypadku złożonych zadań. W przypadku zadań czysto mechanicznych proszę nie używać żadnej ramy. Proszę testować różne warianty ram, aby znaleźć rozwiązanie najlepiej dopasowane do Państwa przypadku.

Bezpłatny start

Ucz się AI Prompt Engineering dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
53
Lekcje
199

Często zadawane pytania

Czy lekcja „Skuteczne określanie kontekstu” jest bezpłatna?

Tak — pełny tekst „Skuteczne określanie kontekstu” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Prompt Engineering, przejdź na CoddyKit PRO. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.

Co nauczysz się w „Skuteczne określanie kontekstu”?

Techniki ramowania: „Jesteś…”, „Biorąc pod uwagę, że…”, „Celem jest…” Ćwiczysz AI Prompt Engineering z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Prompt Engineering?

Nie wymagamy żadnego doświadczenia. AI Prompt Engineering w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Skuteczne określanie kontekstu”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Prompt Engineering?

Tak. Każda lekcja AI Prompt Engineering zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Znaczenie kontekstu w promptowaniu AI
  2. Dostarczanie informacji kontekstowych
  3. Skuteczne określanie kontekstu
  4. Długość kontekstu i jego istotność
← Powrót do AI Prompt Engineering