พรอมต์ที่มีประสิทธิภาพสำหรับการคิดต่อเนื่อง
เขียนพรอมต์ให้เรียบง่าย หลีกเลี่ยงคำสั่งแบบทีละขั้น และไว้วางใจให้โมเดลให้เหตุผล
พรอมต์ที่มีประสิทธิภาพสำหรับการคิดต่อเนื่อง เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ความแตกต่างของโมเดลการให้เหตุผล
- พรอมต์ที่มีประสิทธิภาพสำหรับการคิดต่อเนื่อง
- ควรใช้โมเดลการให้เหตุผลหรือโมเดลมาตรฐานเมื่อใด
- ข้อแลกเปลี่ยนระหว่างต้นทุนกับเวลาแฝง