Tag: Context management

  • 5 วิธีจัดการ Context ใน Claude Code เพื่อให้เขียน Code ได้ดีขึ้น

    5 วิธีจัดการ Context ใน Claude Code เพื่อให้เขียน Code ได้ดีขึ้น

    Claude Code เป็น AI ช่วยเขียน code ที่ช่วยเราวางแผน เขียน และแก้ไข code บนคอมพิวเตอร์ได้ผ่านคำสั่งภาษาธรรมชาติ (natural language)

    หนึ่งในสิ่งที่ทำให้ Claude Code ทำงานได้อย่างมีประสิทธิภาพ คือ context

    ถ้าไม่มี context, Claude จะขาดบริบทในการทำงาน และไม่สามารถเขียน code ได้อย่างมีประสิทธิภาพได้

    ในบทความนี้ เราจะมาทำความรู้จักกับ context และวิธีใช้งาน context ใน Claude Code อย่างถูกวิธีกัน

    บทความนี้แบ่งเป็น 2 ส่วน:

    1. ความหมายของ context
    2. วิธีจัดการ context ที่ถูกต้อง

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย


    1. 🤨 Context ใน Claude Code คืออะไร? และสำคัญยังไง?
    2. 👍 วิธีจัดการ Context ที่ถูกต้อง
      1. ✏️ วิธีที่ 1. เขียน Prompt ให้เจาะจง
      2. 📑 วิธีที่ 2. ใช้ CLAUDE.md
      3. ⛏️ วิธีที่ 3. ปิดใช้งาน Skill และ MCP
      4. 🕵️‍♀️ วิธีที่ 4. ใช้ Subagent
      5. 💻 วิธีที่ 5. ลบหรือสรุปข้อมูล
    3. 💪 บทสรุป
    4. 🫵 Your Turn
    5. 📃 References

    🤨 Context ใน Claude Code คืออะไร? และสำคัญยังไง?

    Context คือ ความจำในการทำงานของ Claude (working memory)

    Context เก็บประวัติการพูดคุยระหว่างเรากับ Claude รวมถึงการทำงานของ Claude เช่น การอ่านไฟล์และการแก้ไขไฟล์ ซึ่งช่วยให้ Claude มีข้อมูลบริบทในการทำงาน

    เมื่อ context เต็ม Claude จะลืมการพูดคุยช่วงต้น และมีโอกาสทำงานผิดพลาดมากขึ้น

    เช่น ตอนต้น session เราบอกให้ Claude เขียน comment กำกับ code ทุกครั้ง พอ context เต็ม Claude จะลืมคำสั่งนี้ และไม่ comment code ตามที่เราต้องการ

    ดังนั้น เราควรจะจัดการ context ให้ดี เพื่อให้ Claude ทำงานได้อย่างมีประสิทธิภาพมากที่สุด


    👍 วิธีจัดการ Context ที่ถูกต้อง

    5 วิธีในการจัดการ context ไม่ให้เต็มเร็ว:

    1. เขียน prompt ให้เจาะจง
    2. ใช้ CLAUDE.md
    3. ปิดใช้งาน skills and MCPs
    4. ใช้ subagent
    5. ลบหรือสรุปข้อมูล

    .

    ✏️ วิธีที่ 1. เขียน Prompt ให้เจาะจง

    เขียน prompt ให้ชัดเจนและเจาะจง เพื่อที่ Claude จะไม่ต้องคิดทบทวนคำสั่งหลายรอบ

    ❌ ตัวอย่าง prompt ที่เปลือง context:

    แก้ code ให้หน่อย

    เพราะ Claude จะต้องคิดก่อนลงมือทำ:

    • มองหาจุดไหนที่ต้องแก้
    • คิดว่าแก้เพื่ออะไร
    • คิดว่าแก้ยังไง
    • ลงมือแก้

    ทำให้เปลือง context โดยไม่จำเป็น

    ✅ ตัวอย่าง prompt ที่ประหยัด context:

    แก้ calculate_sum() ในไฟล์ @calculator.py
    เพื่อ handle data type ที่ไม่ใช่ int หรือ float

    เพราะ Claude สามารถคิดและลงมือแก้ได้เลย โดยตีกรอบบริบทว่าอะไรที่ต้องแก้บ้าง

    .

    📑 วิธีที่ 2. ใช้ CLAUDE.md

    ใส่บริบทและสิ่งที่ Claude ควรรู้ไว้ใน CLAUDE.md ซึ่งเป็นไฟล์กำกับการทำงานของ Claude เพื่อที่ Claude จะได้เข้าใจบริบทในการทำงานได้โดยไม่ต้องอ่าน code ทั้งหมดใหม่ทุกครั้ง

    ไม่มี CLAUDE.mdมี CLAUDE.md
    อ่าน code ทั้งหมดเพื่อเข้าใจบริบทอ่านแค่ CLAUDE.md

    2 วิธีในการสร้าง CLAUDE.md:

    1. สั่งให้ Claude สร้างให้ ด้วยคำสั่ง /init (แนะนำ)
    2. สร้างเองใน text editor

    ตัวอย่าง CLAUDE.md:

    # Project: My To-Do App
    ## What this is
    A simple to-do list app.
    Frontend only, no backend yet.
    Built with HTML, CSS, and vanilla JavaScript.
    ## Do
    - Keep the code in plain JavaScript
    - Explain any code changes in plain English before making them
    - Always test in the browser before marking tasks as complete
    ## Don't
    - Don't use React, Vue, or any framework
    - Don't rewrite the whole file for a small fix
    - Don't delete comments that explain "why", only "what"

    .

    ⛏️ วิธีที่ 3. ปิดใช้งาน Skill และ MCP

    ปิด skill และ MCP ที่ไม่ใช้งาน

    Claude จะได้รับข้อมูล skill และ MCP ที่เปิดใช้งานทุกครั้ง ไม่ว่า skill หรือ MCP เหล่านี้ถูกใช้งานหรือไม่ก็ตาม

    ดังนั้น เมื่อเราไม่ปิด skill และ MCP ที่เราไม่ใช้แล้ว เราจะเสีย context ไปโดยไม่จำเป็น

    คำสั่งสำหรับปิด skill และ MCP:

    • /skills เพื่อจัดการ Skill
    • /mcp เพื่อจัดการ MCP

    .

    🕵️‍♀️ วิธีที่ 4. ใช้ Subagent

    ใช้งาน subagent หรือ AI agent ที่จะทำงานเฉพาะอย่าง

    Subagent มี context ที่แยกต่างหากจาก main agent ทำให้การทำงานของ subagent ไม่นำมาคิดเป็น context ของ main agent

    วิธีใช้ subagent:

    1. ใช้คำสั่ง /agents เพื่อจัดการ subagent (เช่น สร้างหรือเปิด-ปิดการใช้งาน)
    2. เรียกใช้ subagent ด้วยคำสั่ง @ ตามด้วยชื่อ subagent (เช่น @code-reviewer).

    .

    💻 วิธีที่ 5. ลบหรือสรุปข้อมูล

    ลบหรือสรุปข้อมูล เพื่อเพิ่มพื้นที่ใน context

    3 คำสั่งสำหรับลบและสรุปข้อมูล:

    1. /context: ดูสิ่งที่เก็บไว้ใน context
    2. /clear: ลบข้อมูลใน context
    3. /compact: สรุปข้อมูลใน context

    เมื่อไรควรลบและเมื่อไรควรสรุปข้อมูล?

    • ลบเมื่อ context เต็ม และไม่ต้องการทำงานต่อจากเดิม (เช่น พัฒนา feature ใหม่)
    • สรุปเมื่อ context เต็ม แต่ต้องทำงานต่อจากเดิม (เช่น ปรับปรุง feature เดิม)

    Note: ข้อเสียของการสรุป คือ Claude อาจจะลืมรายละเอียดเล็ก ๆ น้อย ๆ ไปได้


    💪 บทสรุป

    Context เก็บข้อมูลเพื่อให้ Claude เข้าใจบริบทและสามารถทำงานได้อย่างมีประสิทธิภาพ

    5 วิธีในการจัดการ context ไม่ให้เต็ม:

    1. ใช้ prompt ที่มีความเจาะจง
    2. เก็บสิ่งที่ Claude ควรรู้ไว้ใน CLAUDE.md
    3. ปิด skill และ MCP ที่ไม่ใช้งาน
    4. ใช้ subagent ทำงานย่อย
    5. ลบหรือสรุปข้อมูลที่ใน context

    🫵 Your Turn

    หลังอ่านบทความนี้แล้ว ลองมาใช้ Claude Code กันดูนะครับ:


    📃 References