56 คะแนน โดย spilist2 10 일 전 | 5 ความคิดเห็น | แชร์ทาง WhatsApp

จุดเริ่มต้น

  • ในบันทึกการออกเวอร์ชัน Claude Opus 4.7 ส่วนที่สะดุดตาที่สุดคือเรื่อง ‘การใช้โทเคนเพิ่มขึ้น’
  • เมื่อเข้าสู่ยุคที่ถ้ามีโทเคนและเวลามากพอก็ทำอะไรได้มากขึ้นมาก ประสิทธิภาพการใช้โทเคนจึงยังคงเป็นประเด็นสำคัญ
  • เลยเกิดคำถามว่า “มีวิธีเพิ่มประสิทธิภาพการใช้โทเคนด้วยการเปลี่ยนค่าตั้งใน Claude Code และ Codex หรือไม่?” และเมื่อไปวิเคราะห์เอกสารทางการของ Claude Code (การตั้งค่า/ตัวแปรสภาพแวดล้อม/IDE), เอกสารทางการของ Codex (การตั้งค่า/ตัวแปรสภาพแวดล้อม/MCP) รวมถึงซอร์สโค้ดของ Codex ก็ได้ผลลัพธ์ที่มีนัยสำคัญ
  • ไม่ใช่แค่โหมด interactive ที่ใช้อยู่เป็นประจำเท่านั้น แต่ยังได้เรียนรู้วิธีเพิ่มประสิทธิภาพการใช้โทเคน ความเร็วตอนบูต และความเสถียรในโหมด non-interactive แบบโปรแกรมได้อีกหลายอย่าง

พรอมป์ตสำหรับวิเคราะห์สถานะของฉัน

เข้าเรื่องเลย สำหรับคนที่อยากตรวจสอบว่าการตั้งค่าของ coding agent ของตัวเองเป็นอย่างไร นี่คือพรอมป์ต:

https://gist.github.com/spilist/c468cbf1ed0ffc91100f813aabdcd520/… 를 읽고 그대로 실행해줘  

อะไรคือสิ่งที่กินโทเคนจริง ๆ

เส้นทางที่ทำให้โทเคนรั่วใน coding agent โดยทั่วไปมีอยู่ 3 แบบ

  1. ข้อความเพิ่มเติมที่ถูกแนบเข้ามาอัตโนมัติในทุกเซสชันหรือทุกเทิร์น
  2. เอาต์พุตจากการเรียกใช้ทูลที่ยาวเกินไปซึ่งยังคงค้างอยู่ในประวัติการสนทนา
  3. การเรียกใช้เพิ่มเติมจากการเชื่อมต่อภายนอก เช่น การค้นหา คอนเน็กเตอร์ หรือการเชื่อมกับ IDE

ขอแนะนำคันโยกที่ช่วยลด 3 อย่างข้างต้นได้ใน Claude Code และ Codex (จะขอข้ามเรื่องพื้นฐานอย่างการปิด MCP server/ปลั๊กอินที่ไม่ใช้ และการปรับโมเดลหรือระดับ reasoning)

  • รายละเอียดคำอธิบายของแต่ละการตั้งค่า รวมถึง trade-off ต่าง ๆ เขียนไว้อย่างละเอียดในบล็อก

Claude Code (เวอร์ชันที่ยืนยันล่าสุด: 2.1.114)

  1. includeGitInstructions: false

  2. autoConnectIde: false

  3. CLAUDE_CODE_GLOB_NO_IGNORE=false

  4. ตั้งค่าขีดจำกัดเอาต์พุต (BASH_MAX_OUTPUT_LENGTH, CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS, MAX_MCP_OUTPUT_TOKENS)

  5. ตัวแปรสภาพแวดล้อมและแฟล็กสำหรับงานสั้น ๆ เรียบง่าย หรือโหมด non-interactive

    • ENABLE_CLAUDEAI_MCP_SERVERS=false: ปิด MCP server
    • CLAUDE_CODE_DISABLE_AUTO_MEMORY=1: ไม่ให้โหลดหน่วยความจำที่บันทึกอัตโนมัติไว้
    • CLAUDE_CODE_DISABLE_CLAUDE_MDS=1: ไม่สนใจ CLAUDE.md ระดับ global/project
    • CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1: ตัด built-in subagent และคำจำกัดความของสกิลออกจาก system prompt
    • --tools: เปิดใช้ native tool แบบเลือกได้ ถ้าเป็น --tools "" จะปิดทั้งหมด สำหรับ worker ที่ใช้เพียงความสามารถของโมเดลอย่างเดียวปิดทั้งหมดก็ได้ แต่ถ้าเป็นงานง่าย ๆ แบบ interactive แล้วปิดหมดก็จะทำงานอะไรไม่ได้เลย จึงควรเปิดเฉพาะที่จำเป็น เช่น "Bash,Edit,Glob,Grep,Read,Write"
    • --strict-mcp-config: ใช้เฉพาะการตั้งค่า MCP ที่ระบุผ่าน CLI และไม่ใช้การตั้งค่า MCP ส่วนกลาง ทำให้ใส่เฉพาะคอนเน็กเตอร์ที่ต้องใช้ในแต่ละ worker ได้อย่างเป็นระเบียบ
    • --disable-slash-commands: ทำให้คำนิยาม slash command อย่าง /help, /clear หลุดออกจาก system prompt
    • --no-session-persistence: ไม่ใช้เส้นทางบันทึก/กู้คืนเซสชัน ทำให้ไม่เหลือร่องรอยของการรันแบบครั้งเดียว
    • --exclude-dynamic-system-prompt-sections: ตัดส่วนที่เปลี่ยนไปตามเครื่อง/สภาพแวดล้อมออก เพื่อเพิ่มอัตราการนำ prompt cache กลับมาใช้ซ้ำ
    • --system-prompt: หรือจะเปลี่ยน Claude system prompt ไปทั้งหมดเลยก็ยังได้
  6. ล้าง attribution ให้เป็นค่าว่าง

Codex CLI (เวอร์ชันที่ยืนยันล่าสุด: 0.121.0 + ซอร์สโค้ด Codex บน Github ของเวอร์ชันดังกล่าว)

  1. ปิด MCP (แอป/คอนเน็กเตอร์) ที่เชื่อมกับ ChatGPT (features.apps = false)
  2. web_search = "disabled"
  3. ตั้งค่าขีดจำกัดเอาต์พุต (tool_output_token_limit)
  4. แฟล็กที่ช่วยให้ทำงานได้ดีในโหมด non-interactive
    • --profile: รวมการตั้งค่าเฉพาะทางไว้เป็นชุด (web_search = "disabled", tool_output_token_limit = 2000 เป็นต้น) แล้วเลือกใช้ได้
    • --json + --output-last-message FILE : ทำให้ parse/extract ใน pipeline ได้ง่ายขึ้น จึงลดการใช้โทเคนซ้ำในขั้นตอน post-processing
    • --sandbox read-only: สำหรับงานอัตโนมัติที่ต้องการแค่อ่าน ป้องกันการพยายามเขียนโดยไม่ตั้งใจ → เกิดลูป retry → สูญเสียโทเคน
    • --skip-git-repo-check: รันได้แม้อยู่ในไดเรกทอรีที่ไม่ได้ถูกทำเครื่องหมายว่าเชื่อถือ
    • --ephemeral: ไม่บันทึกไฟล์เซสชันลงดิสก์
    • --color never: ทำให้เอาต์พุตผ่าน pipe สะอาดขึ้น
  5. ล้าง attribution ให้เป็นค่าว่าง

ทิ้งท้าย

แม้จะตรวจสอบข้อเท็จจริงอย่างรอบคอบแล้ว แต่แน่นอนว่ายังอาจมีส่วนที่ผิดพลาดได้ หากแจ้งเข้ามาอย่างสบาย ๆ จะขอบคุณมากครับ

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

 
windbug99 2 일 전

ขอบคุณครับ

 
dzzwe 10 일 전

น่าจะเป็นบทความอ้างอิงที่ดีเลยครับ ถ้าเนื้อหาหลักเป็นแนวทางปิดวาล์วของ "โทเค็นขาเข้า"
สำหรับผมเจอหลายกรณีที่ปัญหาเกิดจาก "สิ่งที่ลงทะเบียนไว้ตั้งแต่แรก" มีมากเกินไป เลยลองทำเครื่องมือชื่อ claude-slim ขึ้นมาครับ

มันเป็น CLI ที่สแกน จัดหมวดหมู่ และจัดระเบียบสถานการณ์อย่างเช่น จากสกิล 60 อัน มีครึ่งหนึ่งที่ไม่เคยใช้เลยสักครั้ง หรือ CLAUDE.md พองตัวขึ้นเพราะปลั๊กอิน การนับโทเค็นอิงกับ js-tiktoken ไม่ได้ลบออก แต่ย้ายไปไว้ที่ skills.disabled/ เพื่อให้ restore กลับได้ทุกเมื่อ

https://github.com/iops-leo/claude-slim

ทิศทางของมันเสริมกับการตั้งค่าในบทความได้พอดี คิดว่าน่าใช้ควบคู่กันครับ

 
spilist2 10 일 전

โอ้ ขอบคุณที่แชร์!

 
duse0001 10 일 전

ขอบคุณที่แชร์ข้อมูลดี ๆ ครับ โดยพื้นฐานแล้วผมรู้สึกได้เลยว่าปริมาณการใช้โทเค็นเองก็น้อยลงมาก เลยหวังว่า Claude จะเพิ่มให้หน่อย พอฮาร์เนสรันไปแล้วดันมาขาดกลางคันก็เลย...

 
spilist2 10 일 전

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