0Pricing
AI Prompt Engineering · บทเรียน

พรอมต์ที่มีประสิทธิภาพสำหรับการคิดต่อเนื่อง

เขียนพรอมต์ให้เรียบง่าย หลีกเลี่ยงคำสั่งแบบทีละขั้น และไว้วางใจให้โมเดลให้เหตุผล

พรอมต์ที่มีประสิทธิภาพสำหรับการคิดต่อเนื่อง เป็นบทเรียน AI Prompt Engineering ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 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 ให้เหมาะกับความซับซ้อนของปัญหา (1K สำหรับปัญหาง่าย, 10K+ สำหรับปัญหายาก) เตรียมรับมือความหน่วงที่มาก และเก็บผลลัพธ์ไว้ใช้ซ้ำเมื่อทำได้ ระบุรูปแบบผลลัพธ์อย่างชัดเจน — นี่คือส่วนเดียวที่คำแนะนำโดยละเอียดยังคงมีประโยชน์

คำถามที่พบบ่อย

บทเรียน “พรอมต์ที่มีประสิทธิภาพสำหรับการคิดต่อเนื่อง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พรอมต์ที่มีประสิทธิภาพสำหรับการคิดต่อเนื่อง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Prompt Engineering ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พรอมต์ที่มีประสิทธิภาพสำหรับการคิดต่อเนื่อง”

เขียนพรอมต์ให้เรียบง่าย หลีกเลี่ยงคำสั่งแบบทีละขั้น และไว้วางใจให้โมเดลให้เหตุผล คุณปฏิบัติ AI Prompt Engineering ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 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