Technical reference

การใช้โทเค็นและค่าใช้จ่าย

OpenClaw ติดตาม โทเค็น ไม่ใช่อักขระ โทเค็นจะแตกต่างกันไปตามโมเดล แต่โมเดลส่วนใหญ่ ที่ใช้รูปแบบเดียวกับ OpenAI มีค่าเฉลี่ยประมาณ 4 อักขระต่อโทเค็นสำหรับข้อความภาษาอังกฤษ

วิธีสร้างพรอมต์ระบบ

OpenClaw ประกอบพรอมต์ระบบของตนเองขึ้นใหม่ทุกครั้งที่ทำงาน โดยประกอบด้วย:

  • รายการเครื่องมือและคำอธิบายสั้น ๆ
  • รายการ Skills (เฉพาะเมทาดาทา โดยจะโหลดคำสั่งเมื่อต้องการด้วย read) เทิร์นของ Codex แบบเนทีฟจะได้รับบล็อก Skills แบบกระชับในฐานะคำสั่งสำหรับนักพัฒนา ด้านการทำงานร่วมกันที่มีขอบเขตเฉพาะเทิร์น ส่วนระบบควบคุมอื่นจะได้รับข้อมูลนี้ ผ่านพื้นผิวพรอมต์ตามปกติ ขนาดถูกจำกัดด้วย skills.limits.maxSkillsPromptChars และสามารถกำหนดทับสำหรับแต่ละเอเจนต์ได้ ที่ agents.list[].skillsLimits.maxSkillsPromptChars
  • คำสั่งสำหรับการอัปเดตตนเอง
  • ไฟล์เวิร์กสเปซและไฟล์เริ่มต้น (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md เมื่อเป็นรายการใหม่ รวมถึง MEMORY.md เมื่อมีอยู่) ไฟล์ขนาดใหญ่ที่แทรกเข้ามาจะถูกตัดทอนตาม agents.defaults.bootstrapMaxChars (ค่าเริ่มต้น: 20000) และการแทรกข้อมูล เริ่มต้นทั้งหมดถูกจำกัดด้วย agents.defaults.bootstrapTotalMaxChars (ค่าเริ่มต้น: 60000)
    • เทิร์นของ Codex แบบเนทีฟจะไม่วางเนื้อหา MEMORY.md ดิบลงไป เมื่อมีเครื่องมือ หน่วยความจำพร้อมใช้สำหรับเวิร์กสเปซนั้น แต่จะได้รับตัวชี้หน่วยความจำขนาดเล็ก ในคำสั่งสำหรับนักพัฒนาด้านการทำงานร่วมกันที่มีขอบเขตเฉพาะเทิร์นแทน และใช้เครื่องมือหน่วยความจำเมื่อต้องการ หากปิดใช้งานเครื่องมือ ไม่สามารถ ค้นหาหน่วยความจำได้ หรือเวิร์กสเปซที่ใช้งานอยู่แตกต่างจากเวิร์กสเปซ หน่วยความจำของเอเจนต์ MEMORY.md จะย้อนกลับไปใช้เส้นทางบริบทของเทิร์น แบบมีขอบเขตตามปกติ
    • memory.md ที่รากและเป็นตัวพิมพ์เล็กจะไม่ถูกแทรกเข้ามา ไฟล์นี้เป็นข้อมูลนำเข้า แบบเก่าสำหรับการซ่อมแซมด้วย openclaw doctor --fix ซึ่งจะย้ายข้อมูลไปยัง MEMORY.md
    • ไฟล์รายวัน memory/*.md ไม่เป็นส่วนหนึ่งของพรอมต์เริ่มต้นตามปกติ แต่ยังคง เรียกใช้ได้เมื่อต้องการผ่านเครื่องมือหน่วยความจำในเทิร์นทั่วไป การทำงานของ โมเดลในขั้นตอนรีเซ็ตหรือเริ่มต้นสามารถเพิ่มบล็อกบริบทเริ่มต้นแบบใช้ครั้งเดียว ซึ่งมีหน่วยความจำรายวันล่าสุดไว้ด้านหน้าสำหรับเทิร์นแรก โดยควบคุมด้วย agents.defaults.startupContext คำสั่งแชตเปล่า /new และ /reset จะได้รับการตอบรับโดยไม่เรียกใช้โมเดล
    • ส่วนคัดย่อจาก AGENTS.md หลัง Compaction จะแยกต่างหากและต้องเลือกเปิดใช้ อย่างชัดเจนผ่าน agents.defaults.compaction.postCompactionSections
  • เวลา (UTC และเขตเวลาของผู้ใช้)
  • แท็กตอบกลับและพฤติกรรมของ Heartbeat
  • เมทาดาทารันไทม์ (โฮสต์/ระบบปฏิบัติการ/โมเดล/การใช้เหตุผล)

ดูรายละเอียดทั้งหมดได้ที่ พรอมต์ระบบ

เมื่อจัดทำเอกสารข้อมูลรับรองหรือส่วนย่อยเกี่ยวกับการยืนยันตัวตน ให้ใช้ หลักเกณฑ์ตัวยึดตำแหน่งสำหรับข้อมูลลับ เพื่อหลีกเลี่ยงผลบวกลวงจากเครื่องมือตรวจหาข้อมูลลับในการเปลี่ยนแปลงเฉพาะเอกสาร

สิ่งที่นับรวมในหน้าต่างบริบท

ทุกสิ่งที่โมเดลได้รับจะถูกนับรวมในขีดจำกัดบริบท:

  • พรอมต์ระบบ (ทุกส่วนด้านบน)
  • ประวัติการสนทนา (ข้อความของผู้ใช้และผู้ช่วย)
  • การเรียกใช้เครื่องมือและผลลัพธ์จากเครื่องมือ
  • ไฟล์แนบ/ข้อความถอดเสียง (รูปภาพ เสียง ไฟล์)
  • สรุปจาก Compaction และอาร์ติแฟกต์จากการตัดทอน
  • ตัวครอบของผู้ให้บริการหรือส่วนหัวด้านความปลอดภัย (มองไม่เห็นแต่ยังคงถูกนับ)

พื้นผิวที่ใช้รันไทม์อย่างหนักมีขีดจำกัดที่ชัดเจนของตนเองภายใต้ agents.defaults.contextLimits (กำหนดทับสำหรับแต่ละเอเจนต์ได้ภายใต้ agents.list[].contextLimits):

คีย์ วัตถุประสงค์
memoryGetMaxChars จำนวนอักขระสูงสุดที่ memory_get ส่งคืนก่อนตัดทอน
memoryGetDefaultLines ช่วงบรรทัดเริ่มต้นของ memory_get เมื่อคำขอไม่ได้ระบุ lines
toolResultMaxChars เพดานขั้นสูงสำหรับผลลัพธ์จากเครื่องมือที่ใช้งานจริงหนึ่งรายการ (สูงสุด 1000000 อักขระ)
postCompactionMaxChars จำนวนอักขระสูงสุดจาก AGENTS.md ที่เก็บไว้ระหว่างการรีเฟรชหลัง Compaction

รายการเหล่านี้เป็นส่วนคัดย่อรันไทม์แบบมีขอบเขตและบล็อกที่รันไทม์เป็นเจ้าของ ซึ่งถูกแทรกเข้ามา โดยแยกจากขีดจำกัดการเริ่มต้น ขีดจำกัดบริบทเริ่มต้น และขีดจำกัดพรอมต์ Skills

ตามค่าเริ่มต้นจะไม่มีการตั้งค่า toolResultMaxChars ดังนั้น OpenClaw จะคำนวณ ขีดจำกัดผลลัพธ์จากเครื่องมือที่ใช้งานจริงตามหน้าต่างบริบทที่มีผลของโมเดล: 16000 อักขระเมื่อมีโทเค็นต่ำกว่า 100K, 32000 อักขระเมื่อมีโทเค็นตั้งแต่ 100K ขึ้นไป และ 64000 อักขระเมื่อมีโทเค็นตั้งแต่ 200K ขึ้นไป ตัวป้องกัน สัดส่วนบริบทรันไทม์ยังคงจำกัดผลลัพธ์จากเครื่องมือหนึ่งรายการไว้ที่ 30% ของหน้าต่างบริบท แม้จะกำหนดเพดานที่สูงกว่าไว้อย่างชัดเจน

สำหรับรูปภาพ OpenClaw จะลดขนาดเพย์โหลดรูปภาพจากข้อความถอดเสียง/เครื่องมือ ก่อนเรียกผู้ให้บริการ ปรับแต่งได้ด้วย agents.defaults.imageMaxDimensionPx (ค่าเริ่มต้น: 1200):

  • ค่าที่ต่ำกว่าจะลดการใช้โทเค็นด้านการมองเห็นและขนาดเพย์โหลด
  • ค่าที่สูงกว่าจะรักษารายละเอียดภาพได้มากขึ้นสำหรับภาพหน้าจอที่เน้น OCR/ส่วนติดต่อผู้ใช้

หากต้องการรายละเอียดเชิงปฏิบัติ (แยกตามไฟล์ที่แทรก เครื่องมือ Skills และขนาดพรอมต์ระบบ) ให้ใช้ /context list หรือ /context detail ดู บริบท

วิธีดูการใช้โทเค็นปัจจุบัน

ในแชต:

  • /status -> การ์ดสถานะที่มีอีโมจิจำนวนมาก ซึ่งแสดงโมเดลของเซสชัน การใช้บริบท โทเค็นอินพุต/เอาต์พุตของการตอบกลับล่าสุด และค่าใช้จ่ายโดยประมาณ เมื่อกำหนดราคาในเครื่องสำหรับโมเดลที่ใช้งานอยู่
  • /usage off|tokens|full -> เพิ่มส่วนท้ายการใช้งานของแต่ละการตอบกลับ ลงในทุกคำตอบ โดยคงค่าไว้ต่อเซสชัน (จัดเก็บเป็น responseUsage)
    • /usage reset (นามแฝง: inherit, clear, default) ล้างค่าที่กำหนดทับ สำหรับเซสชัน เพื่อให้กลับไปสืบทอดค่าเริ่มต้นที่กำหนดไว้
    • /usage tokens แสดงรายละเอียดโทเค็น/แคชของเทิร์น
    • /usage full แสดงรายละเอียดโมเดล/บริบท/ค่าใช้จ่ายแบบกระชับ ค่าใช้จ่าย โดยประมาณจะปรากฏเฉพาะเมื่อ OpenClaw มีเมทาดาทาการใช้งานและราคาในเครื่อง สำหรับโมเดลที่ใช้งานอยู่ เลย์เอาต์ messages.usageTemplate แบบกำหนดเอง สามารถรวมฟิลด์โทเค็น/แคชได้
  • /usage cost -> สรุปค่าใช้จ่ายในเครื่องจากบันทึกเซสชันของ OpenClaw

พื้นผิวอื่น:

  • TUI/Web TUI: รองรับ /status และ /usage
  • CLI: openclaw status --usage และ openclaw channels list แสดง ช่วงโควตาของผู้ให้บริการที่ปรับให้เป็นมาตรฐาน (X% left ไม่ใช่ค่าใช้จ่าย ต่อการตอบกลับ) ผู้ให้บริการที่รองรับช่วงการใช้งานในปัจจุบัน ได้แก่ Claude (Anthropic), ClawRouter, Copilot (GitHub), DeepSeek, Gemini (Google Gemini CLI), MiniMax, OpenAI, Xiaomi, Xiaomi Token Plan และ z.ai

พื้นผิวการใช้งานจะปรับนามแฝงของฟิลด์แบบเนทีฟที่ผู้ให้บริการใช้กันทั่วไป ให้เป็นมาตรฐานก่อนแสดงผล สำหรับทราฟฟิก Responses ในตระกูล OpenAI จะครอบคลุมทั้ง input_tokens/output_tokens และ prompt_tokens/completion_tokens เพื่อให้ชื่อฟิลด์เฉพาะของการขนส่ง ไม่เปลี่ยนแปลง /status, /usage หรือสรุปเซสชัน การใช้งาน Gemini CLI ก็ได้รับการปรับให้เป็นมาตรฐานเช่นกัน โดยตัวแยกวิเคราะห์ stream-json เริ่มต้นจะอ่านเหตุการณ์ message ของผู้ช่วย และแมป stats.cached ไปยัง cacheRead พร้อมใช้ stats.input_tokens - stats.cached เมื่อ CLI ไม่ระบุ ฟิลด์ stats.input อย่างชัดเจน การกำหนดทับ JSON แบบเก่ายังคงอ่านข้อความ ตอบกลับจาก response

สำหรับทราฟฟิก Responses แบบเนทีฟในตระกูล OpenAI นามแฝงการใช้งานของ WebSocket/SSE จะถูกปรับให้เป็นมาตรฐานในลักษณะเดียวกัน และยอดรวมจะย้อนกลับ ไปใช้ผลรวมของอินพุตและเอาต์พุตที่ปรับให้เป็นมาตรฐาน เมื่อไม่มี total_tokens หรือมีค่าเป็น 0

เมื่อสแนปช็อตของเซสชันปัจจุบันมีข้อมูลไม่ครบถ้วน /status และ session_status สามารถกู้คืนตัวนับโทเค็น/แคชและป้ายชื่อโมเดลรันไทม์ที่ใช้งาน จากบันทึกการใช้งานของข้อความถอดเสียงล่าสุดได้ ค่าจริงที่ไม่เป็นศูนย์ซึ่งมีอยู่ จะยังคงมีลำดับความสำคัญเหนือค่าที่ใช้แทนจากข้อความถอดเสียง และยอดรวมจาก ข้อความถอดเสียงที่เน้นพรอมต์ซึ่งมีค่ามากกว่าสามารถมีลำดับความสำคัญได้ เมื่อยอดรวมที่จัดเก็บไว้ไม่มีอยู่หรือมีค่าน้อยกว่า

การยืนยันตัวตนสำหรับการใช้งานช่วงโควตาของผู้ให้บริการจะมาจากฮุกเฉพาะของ ผู้ให้บริการก่อน หากผู้ให้บริการไม่มีฮุก (หรือฮุกไม่สามารถหาโทเค็นได้) OpenClaw จะย้อนกลับไปจับคู่ข้อมูลรับรอง OAuth/คีย์ API จากโปรไฟล์การยืนยัน ตัวตน สภาพแวดล้อม หรือการกำหนดค่า

รายการข้อความถอดเสียงของผู้ช่วยจะจัดเก็บโครงสร้างการใช้งานที่ปรับให้เป็น มาตรฐานแบบเดียวกัน รวมถึง usage.cost เมื่อโมเดลที่ใช้งานอยู่มีการกำหนดราคา และผู้ให้บริการส่งคืนเมทาดาทาการใช้งาน ซึ่งช่วยให้ /usage cost และสถานะ เซสชันที่อิงข้อความถอดเสียงมีแหล่งข้อมูลที่เสถียร แม้สถานะรันไทม์ที่ใช้งานจริง จะหายไปแล้ว

OpenClaw แยกการบัญชีการใช้งานของผู้ให้บริการออกจากสแนปช็อตบริบทปัจจุบัน usage.total ของผู้ให้บริการอาจรวมอินพุตที่แคช เอาต์พุต และการเรียกโมเดล หลายครั้งในลูปเครื่องมือ จึงมีประโยชน์สำหรับค่าใช้จ่ายและเทเลเมทรี แต่อาจ แสดงขนาดหน้าต่างบริบทที่ใช้งานจริงสูงเกินไป การแสดงผลและการวินิจฉัยบริบท จะใช้สแนปช็อตพรอมต์ล่าสุด (promptTokens หรือการเรียกโมเดลครั้งล่าสุด เมื่อไม่มีสแนปช็อตพรอมต์) สำหรับ context.used

การประมาณค่าใช้จ่าย (เมื่อแสดง)

ค่าใช้จ่ายประมาณจากการกำหนดราคาโมเดลของคุณ:

text
models.providers.<provider>.models[].cost

ค่าเหล่านี้เป็น USD ต่อ 1 ล้านโทเค็น สำหรับ input, output, cacheRead และ cacheWrite หากไม่มีข้อมูลราคา /usage full จะไม่แสดงค่าใช้จ่าย ให้ใช้ /usage tokens หรือ messages.usageTemplate แบบกำหนดเองเมื่อคุณ ต้องการรายละเอียดโทเค็น/แคชในทุกการตอบกลับ การแสดงค่าใช้จ่ายไม่ได้จำกัด เฉพาะการยืนยันตัวตนด้วยคีย์ API ผู้ให้บริการที่ไม่ใช้คีย์ API เช่น aws-sdk สามารถแสดงค่าใช้จ่ายโดยประมาณได้ เมื่อรายการโมเดลที่กำหนดไว้มีราคาในเครื่อง และผู้ให้บริการส่งคืนเมทาดาทาการใช้งาน

หลังจากไซด์คาร์และช่องทางเข้าสู่เส้นทางพร้อมใช้งานของ Gateway แล้ว OpenClaw จะเริ่มกระบวนการเริ่มต้นข้อมูลราคาเบื้องหลังแบบเลือกใช้ สำหรับการอ้างอิงโมเดล ที่กำหนดค่าไว้แต่ยังไม่มีราคาในเครื่อง กระบวนการนี้จะดึงแค็ตตาล็อกราคา OpenRouter และ LiteLLM จากระยะไกล ตั้งค่า models.pricing.enabled: false เพื่อข้ามการดึงแค็ตตาล็อกเหล่านั้นบนเครือข่ายออฟไลน์หรือเครือข่ายที่มีข้อจำกัด รายการ models.providers.*.models[].cost ที่ระบุไว้อย่างชัดเจนยังคงใช้ สำหรับการประมาณค่าใช้จ่ายในเครื่อง

ผลกระทบจาก TTL ของแคชและการตัดทอน

การแคชพรอมต์ของผู้ให้บริการใช้ได้เฉพาะภายในช่วง TTL ของแคช OpenClaw สามารถเลือกใช้ การตัดทอนตาม TTL ของแคช ได้ โดยจะตัดทอนเซสชันเมื่อ TTL ของแคชหมดอายุ จากนั้นรีเซ็ตช่วงแคช เพื่อให้คำขอถัดไปนำบริบทที่เพิ่งแคชใหม่ กลับมาใช้แทนการแคชประวัติทั้งหมดซ้ำ วิธีนี้ช่วยลดค่าใช้จ่ายในการเขียนแคช เมื่อเซสชันไม่มีการใช้งานเกินระยะเวลา TTL

กำหนดค่าได้ใน การกำหนดค่า Gateway และดูรายละเอียด พฤติกรรมได้ใน การตัดทอนเซสชัน

Heartbeat สามารถรักษาแคชให้ พร้อมใช้งาน ระหว่างช่วงที่ไม่มีการใช้งาน หาก TTL ของแคชโมเดลเป็น 1h การตั้งช่วงเวลา Heartbeat ให้ต่ำกว่านั้น เล็กน้อย (เช่น 55m) สามารถหลีกเลี่ยงการแคชพรอมต์ทั้งหมดซ้ำ และลดค่าใช้จ่าย ในการเขียนแคช

ในการตั้งค่าแบบหลายเอเจนต์ คุณสามารถใช้การกำหนดค่าโมเดลร่วมกันหนึ่งชุด และปรับแต่งพฤติกรรมแคชสำหรับแต่ละเอเจนต์ด้วย agents.list[].params.cacheRetention

ดูคำแนะนำฉบับเต็มสำหรับการตั้งค่าแต่ละรายการได้ที่ การแคชพรอมต์

สำหรับราคาของ Anthropic API การอ่านแคชมีราคาถูกกว่าโทเค็นอินพุตอย่างมาก ขณะที่การเขียนแคชจะคิดค่าบริการด้วยตัวคูณที่สูงกว่า ดูราคาการแคชพรอมต์ ของ Anthropic สำหรับอัตราและตัวคูณ TTL ล่าสุด: https://docs.anthropic.com/docs/build-with-claude/prompt-caching

ตัวอย่าง: รักษาแคช 1 ชั่วโมงให้พร้อมใช้งานด้วย Heartbeat

yaml
agents:  defaults:    model:      primary: "anthropic/claude-opus-4-6"    models:      "anthropic/claude-opus-4-6":        params:          cacheRetention: "long"    heartbeat:      every: "55m"

ตัวอย่าง: ทราฟฟิกแบบผสมพร้อมกลยุทธ์แคชแยกตามเอเจนต์

yaml
agents:  defaults:    model:      primary: "anthropic/claude-opus-4-6"    models:      "anthropic/claude-opus-4-6":        params:          cacheRetention: "long" # เกณฑ์เริ่มต้นสำหรับเอเจนต์ส่วนใหญ่  list:    - id: "research"      default: true      heartbeat:        every: "55m" # รักษาแคชระยะยาวให้พร้อมใช้งานสำหรับเซสชันเชิงลึก    - id: "alerts"      params:        cacheRetention: "none" # หลีกเลี่ยงการเขียนแคชสำหรับการแจ้งเตือนแบบเป็นช่วง

agents.list[].params จะผสานทับ params ของโมเดลที่เลือก คุณจึงสามารถ กำหนดทับเฉพาะ cacheRetention และสืบทอดค่าเริ่มต้นอื่นของโมเดลโดยไม่เปลี่ยนแปลง

บริบท 1M ของ Anthropic

OpenClaw กำหนดขนาดโมเดล Claude 4.x ที่รองรับ GA เช่น Opus 4.8, Opus 4.7, Opus 4.6 และ Sonnet 4.6 ให้ใช้หน้าต่างบริบท 1M ของ Anthropic คุณไม่จำเป็นต้อง ตั้งค่า params.context1m: true สำหรับโมเดลเหล่านี้

yaml
agents:  defaults:    models:      "anthropic/claude-opus-4-6":        alias: opus

การกำหนดค่าแบบเก่ายังสามารถคง context1m: true ไว้ได้ แต่ OpenClaw จะไม่ส่งส่วนหัวเบตา context-1m-2025-08-07 ที่ Anthropic ยกเลิกแล้ว สำหรับการตั้งค่านี้อีกต่อไป และจะไม่ขยายโมเดล Claude รุ่นเก่าที่ไม่รองรับ ให้เป็น 1M

ข้อกำหนด: ข้อมูลรับรองต้องมีสิทธิ์ใช้งานบริบทยาว มิฉะนั้น Anthropic จะตอบกลับคำขอนั้นด้วยข้อผิดพลาดการจำกัดอัตราจากฝั่งผู้ให้บริการ

หากคุณยืนยันตัวตนกับ Anthropic โดยใช้โทเค็น OAuth/การสมัครสมาชิก (sk-ant-oat-*) OpenClaw จะคงส่วนหัวเบต้าของ Anthropic ที่ OAuth กำหนดไว้ พร้อมทั้งนำส่วนหัวเบต้า context-1m-* ที่เลิกใช้แล้วออก หากยังคงอยู่ใน การกำหนดค่ารุ่นเก่า

เคล็ดลับในการลดภาระโทเค็น

  • ใช้ /compact เพื่อสรุปเซสชันที่ยาว
  • ตัดทอนผลลัพธ์ขนาดใหญ่จากเครื่องมือในเวิร์กโฟลว์ของคุณ
  • ลดค่า agents.defaults.imageMaxDimensionPx สำหรับเซสชันที่มีภาพหน้าจอจำนวนมาก
  • เขียนคำอธิบาย Skills ให้สั้น (รายการ Skills จะถูกแทรกลงในพรอมต์)
  • เลือกใช้โมเดลขนาดเล็กกว่าสำหรับงานสำรวจที่สร้างผลลัพธ์จำนวนมาก

ดูสูตรคำนวณโอเวอร์เฮดของรายการ Skills ที่แน่นอนได้ที่ Skills

ที่เกี่ยวข้อง

Was this useful?
On this page

On this page