29 คะแนน โดย remin1994 2026-03-17 | 4 ความคิดเห็น | แชร์ทาง WhatsApp

ระหว่างทำงานด้วย Claude Code อยู่ดี ๆ ก็เกิดสงสัยขึ้นมาว่า ไฟล์ CLAUDE.md หรือข้อมูลอย่าง skill, rules / memory นั้น เซิร์ฟเวอร์ของ Claude รับรู้มันอย่างไรกันแน่?

ผมเลยลองทำ MITM proxy ขึ้นมาเอง และสร้างเครื่องมือที่สามารถดูทราฟฟิกได้

หลักการคือเปลี่ยน baseURL ตอนรัน Claude Code เพื่อดักจับและแสดงการสื่อสาร HTTP ที่เกิดขึ้นภายใน Claude Code

สิ่งที่ค้นพบได้จากเครื่องมือนี้มีดังนี้

คำว่า hello คำเดียว มีข้อมูลแนบออกไปถึง 12KB

  • นี่คือกรณีที่เปิด Claude Code แล้วส่ง hello ทันที
  • ระบบจะส่ง content[0] เป็นรายการสกิล ~2KB, content[1] เป็น CLAUDE.md ~10KB, และ content[2] เป็นข้อความ hello ที่ป้อนจริง
  • นั่นหมายความว่าถ้า CLAUDE.md ยาว 500 บรรทัด มันจะถูกส่งทั้งก้อนในทุกคำขอ ซึ่งเป็นเหตุผลว่าทำไมควรรักษา CLAUDE.md ให้กระชับ

ยิ่งบทสนทนาสะสมมากขึ้น แต่ละคำขอก็ยิ่งพองโตเหมือนก้อนหิมะ

  • ระบบจะส่ง messages[] ทั้งหมดซ้ำใหม่ในทุกคำขอ — 1 เทิร์น 15KB, 10 เทิร์น 200KB, 30 เทิร์น 1MB+
  • แม้แต่คำตอบที่ Claude เคยตอบไปแล้วก็ยังถูกใส่รวมมาใน request message ด้วย
  • ถ้าไม่คอยใช้ /clear เป็นระยะเพื่อเคลียร์ context window ก็อาจสิ้นเปลืองโทเคน และทำให้บริบทก่อนหน้าติดตามไปกับบริบทหลังเสมอจนกระทบประสิทธิภาพได้

เครื่องมือ MCP จะถูกโหลดเฉพาะตอนที่จำเป็นเท่านั้น

  • ตอนเริ่มต้นจะโหลดเฉพาะเครื่องมือบิลต์อินจำนวน N ตัวก่อน (ขึ้นอยู่กับเวอร์ชันของ Claude) และถ้าจำเป็นต้องใช้ MCP tool ฝั่งเซิร์ฟเวอร์จะเรียก ToolSearch เพื่อหาเครื่องมือที่จะใช้
  • หลังจากนั้นในการเรียกแต่ละครั้ง ก็จะมีการเพิ่มเครื่องมือที่ค้นพบด้านบนเข้ามาด้วย
  • กล่าวคือ MCP Tool ถูกโหลดแบบไดนามิก ดังนั้นเครื่องมือของ MCP ที่ยังไม่ได้ใช้งานจึงไม่ได้กินโทเคนมากอย่างที่คิด

ซับเอเจนต์ทำงานในคอนเท็กซ์ที่แยกขาดจากกันโดยสมบูรณ์

  • ซับเอเจนต์เปรียบเสมือนการเปิดเซสชันใหม่ โดยไม่มีประวัติการสนทนาของตัวแม่เลยแม้แต่น้อย
  • ใน Inspector คุณสามารถดูและเปรียบเทียบการเรียกของ parent/sub-agent แบบวางข้างกันได้ด้วยตา

การแนบรูปภาพ 1 รูป จะเพิ่มข้อมูลอีกหลายร้อย KB

  • เมื่อแนบสกรีนช็อต รูปจะถูกเข้ารหัสแบบ base64 แล้วฝัง inline ลงใน JSON body
  • คุณสามารถตรวจสอบได้แบบเรียลไทม์ว่ารูปภาพทำให้คำขอใหญ่ขึ้นแค่ไหน

สามารถติดตั้งได้ด้วยคำสั่งด้านล่าง

brew install --cask kangraemin/tap/claude-inspector && sleep 2 && open -a "Claude Inspector"   

GitHub: https://github.com/kangraemin/claude-inspector

ตอนนี้ยังรองรับเฉพาะ macOS และยังเป็นเวอร์ชันเริ่มต้น หากมีข้อเสนอแนะเพื่อปรับปรุง ผมยินดีรับไปพัฒนาต่ออย่างเต็มที่

ลองใช้กันดูนะครับ หวังว่าจะเป็นประโยชน์ต่อการศึกษา ขอบคุณครับ!

4 ความคิดเห็น

 
winterjung 2026-03-18

ในบทความ suspiciously precise floats, or,
how I got Claude's real limits
ดูเหมือนว่าจะมีการวิเคราะห์ว่า ต่างจากค่าใช้จ่ายของ API ตรงที่ในแพลนสมัครสมาชิกไม่มีค่าใช้จ่ายสำหรับการอ่านแคชนะครับ/ค่ะ ยิ่งเซสชันยาวขึ้น ก็รู้สึกว่าอาจมีความคลาดเคลื่อนระหว่างต้นทุนที่คำนวณได้กับต้นทุนจริงอยู่บ้างเหมือนกันครับ/ค่ะ

 
remin1994 2026-03-18

โอ้ .... เป็นโพสต์ที่ผมไม่รู้มาก่อนเลย ... เดี๋ยวจะลองตรวจสอบดูครับ! ขอบคุณครับ

 
kgcrom 2026-03-18

https://github.com/badlogic/lemmy/tree/main/apps/claude-trace
ผมใช้สิ่งนี้ดูทั้งพรอมป์และมีการใช้เครื่องมืออะไรบ้าง แต่คงต้องลองใช้ของที่คุณทำไว้ด้วยเหมือนกันครับ
ขอบคุณที่แชร์ครับ :+1:

 
remin1994 2026-03-17

นอกจากนี้ หลังจากส่งคำขอแล้ว คุณสามารถดูจำนวนโทเค็นที่ใช้ใน request นั้นได้จากใน response ด้วย!

โมเดล: claude-sonnet-4-6
ขนาดคำขอ: 68.9 KB

"usage": {
"input_tokens": 3,
"cache_creation_input_tokens": 12394,
"cache_read_input_tokens": 6499,
"cache_creation": {
"ephemeral_5m_input_tokens": 0,
"ephemeral_1h_input_tokens": 12394
},
"output_tokens": 74,
"service_tier": "standard",
"inference_geo": "not_available"
}

และยังคำนวณ cost ต่อ request โดยนำราคาของแต่ละโมเดลมาใช้ไว้ให้แล้วด้วย ฝากลองใช้งานกันเยอะ ๆ นะครับ

อ่านแคช: 6.5K tok × $0.3/MTok = $0.0019
เขียนแคช: 12.4K tok × $3.75/MTok = $0.0465
อินพุตที่ไม่แคช: 3 tok × $3/MTok = $0.0000
เอาต์พุต: 74 tok × $15/MTok = $0.0011

รวม: $0.0495
อัตราแคชฮิต: 34%