0Pricing
AI Agents · บทเรียน

หน่วยความจำระยะสั้นในหน้าต่างบริบท

เก็บประวัติการสนทนาไว้ในอาร์เรย์ messages ซึ่งเป็นหน่วยความจำที่เรียบง่ายที่สุด พร้อมทำความเข้าใจข้อจำกัดที่เข้มงวดของวิธีนี้

หน่วยความจำระยะสั้นในหน้าต่างบริบท เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

หน่วยความจำเป็นเพียงรายการหนึ่ง

"หน่วยความจำ" ของ LLM แบบแชตคือรายการ messages ที่คุณส่งไปกับการเรียกใช้ทุกครั้ง โมเดลไม่มีสถานะ — ไม่รู้อะไรเลยระหว่างคำขอ

"หน่วยความจำระยะสั้น" = สิ่งที่อยู่ในรายการนั้นในขณะนี้

เหตุใดจึงทำงานได้

คุณผนวกข้อความผู้ใช้แต่ละข้อความและการตอบกลับของผู้ช่วยแต่ละครั้ง เมื่อถึงเวลาที่คุณถามคำถามที่สาม โมเดลจะเห็นสิ่งต่อไปนี้:

messages = [
  {'role': 'system', 'content': 'You are helpful.'},
  {'role': 'user',   'content': 'My name is Alice.'},
  {'role': 'assistant', 'content': 'Nice to meet you, Alice.'},
  {'role': 'user',   'content': 'What is my name?'}
]
# Model replies: 'Alice'
for m in messages:
    print(f"{m['role']}: {m['content']}")
print("Model replies: Alice")

ขีดจำกัดหน้าต่างบริบท

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

  • gpt-4o-mini: 128k โทเคน
  • claude-sonnet-4-5: 200k โทเคน
  • gemini-1.5-pro: 2M โทเคน

หากเกินขีดจำกัด API จะแจ้งข้อผิดพลาด

ต้นทุนโทเคนเพิ่มขึ้นเป็นเส้นตรง

คุณจ่ายเงินสำหรับทุกโทเคนในทุกหนึ่งรอบ แชต 30 รอบที่แต่ละรอบมี 500 โทเคนจะทำให้คุณเสียค่าอินพุต 15,000 โทเคนในการเรียกใช้ครั้ง LAST เพียงครั้งเดียว — ประวัติทั้งหมดจะถูกส่งซ้ำ

เซสชันที่ยาวนานจะมีต้นทุนเพิ่มขึ้นอย่างรวดเร็ว

ข้อมูลที่หายไปตรงกลาง

แม้บริบทจะมีขนาด 200k โมเดลก็ยังให้ความสนใจกับเนื้อหาตรงกลางของพรอมต์ยาว ๆ น้อยลง ข้อมูลสำคัญควรอยู่ตอนต้น (ระบบ) หรือตอนท้าย (ข้อความผู้ใช้ล่าสุด)

การตัดทอนด้วยหน้าต่างเลื่อน

การจัดการหน่วยความจำที่ง่ายที่สุด — เก็บข้อความระบบและ N รอบล่าสุดไว้:

MAX_TURNS = 20  # 10 user + 10 assistant

def trim(messages):
    system = messages[0]
    rest = messages[1:]
    return [system] + rest[-MAX_TURNS:]

demo_messages = [{'role': 'system', 'content': 'sys'}] + [
    {'role': 'user' if i % 2 == 0 else 'assistant', 'content': f'msg {i}'} for i in range(30)
]
trimmed = trim(demo_messages)
print(f"Original messages: {len(demo_messages)}")
print(f"Trimmed messages: {len(trimmed)}")

การตัดแต่งตามจำนวนโทเคน

แม่นยำกว่า: ตัดแต่งตามจำนวนโทเคน ไม่ใช่จำนวนรอบ:

import tiktoken
enc = tiktoken.encoding_for_model('gpt-4o-mini')

def trim_by_tokens(messages, max_tokens=8000):
    out = [messages[0]]   # keep system
    tokens_left = max_tokens - len(enc.encode(messages[0]['content']))
    # walk backwards from newest
    for m in reversed(messages[1:]):
        cost = len(enc.encode(m['content'])) + 4
        if cost > tokens_left:
            break
        out.insert(1, m)
        tokens_left -= cost
    return out

รักษาคู่ไว้ด้วยกัน

การตัดทอนตรงกลางคู่ทำให้เกิดการเรียกใช้เครื่องมือที่ไม่มีคู่ โปรดตัดรอบสนทนาของผู้ใช้และผู้ช่วยออกพร้อมกันเสมอ:

# Bad: cuts after assistant call but before tool result
# Good: trim whole turns (user + all responses)
print("Bad: cuts after assistant call but before tool result")
print("Good: trim whole turns (user + all responses)")

เมื่อหน่วยความจำระยะสั้นไม่เพียงพอ

หน่วยความจำระยะสั้นจะมีปัญหาเมื่อ:

  • การสนทนาเกิน 20 รอบสนทนา
  • ผู้ใช้กลับมาในวันถัดไปและคาดหวังให้ระบบ recall ได้
  • ผู้ใช้หลายคนใช้ตัวแทนเดียวกันร่วมกัน

คุณต้องใช้กลยุทธ์อื่น โปรดดูบทเรียนถัดไป

พรอมป์ต์ระบบต้องตรึงไว้

ข้อความระบบต้องเป็นรายการแรกเสมอ ห้ามตัดทอนข้อความนี้ เพราะมีข้อมูลเกี่ยวกับอัตลักษณ์ กฎ และคำอธิบายเครื่องมือ

การตรึงการอัปเดตระบบล่าสุด

หากคุณเพิ่ม "จดจำว่าผู้ใช้ชอบหน่วยเซลเซียส" เป็นบันทึกระบบ ให้ตรึงไว้ด้านหน้าเช่นเดียวกับพรอมป์ต์ระบบเดิม:

SYSTEM_PROMPT = 'You are a helpful assistant.'
messages = [
    {'role': 'system', 'content': SYSTEM_PROMPT},
    {'role': 'system', 'content': 'USER PREFERENCE: Celsius units'},
    {'role': 'user', 'content': 'What is the weather in Paris?'},
    {'role': 'assistant', 'content': 'It is 21C and sunny.'},
]
print('Pinned system messages:')
for m in messages:
    if m['role'] == 'system':
        print(' -', m['content'])
print('Total messages:', len(messages))

ขีดจำกัดบริบท

จะเกิดอะไรขึ้นเมื่อคุณใช้บริบทเกินหน้าต่างบริบทของโมเดล

ทบทวน

หน่วยความจำระยะสั้น = รายการข้อความ จัดการด้วยการตัดทอนตามหน้าต่างเลื่อนหรือจำนวนโทเค็น ตรึงข้อความระบบไว้ และยอมรับว่าต้นทุนจะเพิ่มขึ้นตามจำนวนรอบสนทนา

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

บทเรียน “หน่วยความจำระยะสั้นในหน้าต่างบริบท” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “หน่วยความจำระยะสั้นในหน้าต่างบริบท”

เก็บประวัติการสนทนาไว้ในอาร์เรย์ messages ซึ่งเป็นหน่วยความจำที่เรียบง่ายที่สุด พร้อมทำความเข้าใจข้อจำกัดที่เข้มงวดของวิธีนี้ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “หน่วยความจำระยะสั้นในหน้าต่างบริบท” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. หน่วยความจำระยะสั้นในหน้าต่างบริบท
  2. เหตุใดบริบทยาวจึงขยายขนาดไม่ได้
  3. การสรุปเนื้อหาในฐานะการบีบอัด
  4. คลังหน่วยความจำอย่างง่าย (คีย์-ค่า)
← กลับไปที่ AI Agents