Concept internals

การติดตามการใช้งาน

คืออะไร

  • ดึงข้อมูลการใช้งาน/โควตาของผู้ให้บริการโดยตรงจากเอ็นด์พอยต์การใช้งานของผู้ให้บริการแต่ละราย ไม่มีการประมาณค่าบริการของผู้ให้บริการ มีเฉพาะชื่อแผน ช่วงเวลาโควตา ยอดคงเหลือ ยอดใช้จ่าย งบประมาณ ประวัติค่าใช้จ่ายรายวัน การระบุโทเค็น/โมเดล หรือสรุปสถานะบัญชีตามที่ผู้ให้บริการรายงานเท่านั้น
  • เอาต์พุตช่วงเวลาโควตาที่มนุษย์อ่านได้จะถูกปรับให้อยู่ในรูป X% left แม้ว่าผู้ให้บริการจะรายงานโควตาที่ใช้ไป โควตาคงเหลือ หรือเฉพาะจำนวนดิบก็ตาม ผู้ให้บริการที่ไม่มีช่วงเวลาโควตาซึ่งรีเซ็ตได้จะแสดงข้อความสรุปของผู้ให้บริการแทน (เช่น ยอดคงเหลือ)
  • /status ระดับเซสชันและเครื่องมือ session_status จะย้อนกลับไปใช้บันทึกทรานสคริปต์ของเซสชันเมื่อสแนปช็อตเซสชันแบบสดไม่มีข้อมูลโทเค็น/โมเดล การย้อนกลับนี้จะเติมตัวนับโทเค็น/แคชที่ขาดหายไป สามารถกู้คืนป้ายกำกับโมเดลรันไทม์ที่ใช้งานอยู่ และเลือกใช้ยอดรวมที่เน้นพรอมต์ซึ่งมากกว่าเมื่อข้อมูลเมตาของเซสชันขาดหายไปหรือมีค่าน้อยกว่า (totalTokensFresh !== true, ศูนย์ หรือต่ำกว่าค่าที่ได้จากทรานสคริปต์) ค่าจากระบบสดที่ไม่เป็นศูนย์มีลำดับความสำคัญเหนือค่าจากการย้อนกลับเสมอ

แสดงที่ใด

  • /status ในแชต: การ์ดสถานะพร้อมโทเค็นของเซสชันและค่าใช้จ่ายโดยประมาณ (เฉพาะโมเดลที่ใช้คีย์ API) เมื่อมีข้อมูล จะแสดงการใช้งานของผู้ให้บริการสำหรับ ผู้ให้บริการของโมเดลปัจจุบัน ในรูปช่วงเวลา X% left ที่ปรับให้เป็นมาตรฐานแล้ว หรือข้อความสรุปของผู้ให้บริการ
  • /usage off|tokens|full ในแชต: ส่วนท้ายการใช้งานต่อการตอบกลับ
  • /usage cost ในแชต: สรุปค่าใช้จ่ายภายในเครื่องที่รวบรวมจากบันทึกเซสชันของ OpenClaw
  • CLI: openclaw status --usage แสดงรายละเอียดการใช้งาน/โควตาแยกตามผู้ให้บริการอย่างครบถ้วน
  • CLI: openclaw models status แสดงรายการโปรไฟล์การยืนยันตัวตนด้วย OAuth/โทเค็น และแสดงสรุปช่วงเวลาการใช้งานถัดจากผู้ให้บริการแต่ละรายที่มีข้อมูลดังกล่าว
  • UI ควบคุม: การใช้งาน แสดงการ์ดแผนและการเรียกเก็บเงินของผู้ให้บริการเหนือการวิเคราะห์โทเค็นและค่าใช้จ่ายโดยประมาณที่ OpenClaw คำนวณจากเซสชัน ข้อมูลประจำตัว Anthropic และ OpenAI Admin API จะเพิ่มยอดใช้จ่ายวันนี้ ช่วง 7 วัน และช่วง 30 วันตามที่ผู้ให้บริการรายงาน รวมถึงแนวโน้มรายวัน ยอดรวมโทเค็น โมเดลยอดนิยม และหมวดหมู่ค่าใช้จ่าย
  • UI ควบคุม: ป๊อปโอเวอร์วงแหวนบริบทของตัวเขียนข้อความแชตแสดง การใช้งานแผน สำหรับผู้ให้บริการแบบสมัครสมาชิก — แถบแยกตามช่วงเวลา (5 ชั่วโมง รายสัปดาห์ และจำกัดขอบเขตตามโมเดล) พร้อมเวลารีเซ็ต แผนของผู้ให้บริการเมื่อทราบ (เช่น Max (20x)) และเครดิตการใช้งานเพิ่มเติม เซสชันที่เรียกเก็บผ่านแผนจะซ่อนค่าประมาณเป็นดอลลาร์ต่อโทเค็น ส่วนเซสชันที่เรียกเก็บผ่าน API จะคง Est. cost และรายละเอียดค่าใช้จ่ายแยกตามประเภทไว้ การตั้งค่า Claude Code CLI (claude-cli) ใช้ข้อมูลการใช้งานการสมัครสมาชิก Anthropic ชุดเดียวกัน
  • แถบเมนู macOS: ส่วนราก "การใช้งาน" จะปรากฏใต้บริบทเมื่อมีสแนปช็อตการใช้งานของผู้ให้บริการ ดู แถบเมนู

openclaw channels list จะไม่แสดงการใช้งานของผู้ให้บริการอีกต่อไป แต่จะแนะนำผู้ใช้ไปยัง openclaw status หรือ openclaw models list แทน

ประวัติค่าใช้จ่ายของ Anthropic และ OpenAI

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

  • ข้อมูลประจำตัวสำหรับการสมัครสมาชิก/การตั้งค่า Anthropic ยังคงแสดงช่วงเวลาโควตาของ Claude และงบประมาณการใช้งานเพิ่มเติมซึ่งเป็นตัวเลือก ตั้งค่า ANTHROPIC_ADMIN_KEY หรือ ANTHROPIC_ADMIN_API_KEY เพื่อแสดงประวัติ Usage and Cost API ขององค์กรแทน ระบบจะตรวจพบข้อมูลประจำตัวของผู้ให้บริการ Anthropic ที่ขึ้นต้นด้วย sk-ant-admin โดยอัตโนมัติ
  • OAuth ของ OpenAI ChatGPT/Codex ยังคงแสดงแผน ช่วงเวลาโควตา และยอดเครดิตคงเหลือ ตั้งค่า OPENAI_ADMIN_KEY เพื่อแสดงประวัติค่าใช้จ่ายและการใช้งาน completions ขององค์กรแทน และสามารถตั้งค่า OPENAI_PROJECT_ID เพื่อจำกัดขอบเขตไว้ที่โปรเจกต์เดียวได้ OpenClaw จะไม่ส่งข้อมูลประจำตัวสำหรับการอนุมานจาก OPENAI_API_KEY การกำหนดค่าผู้ให้บริการ หรือโปรไฟล์การยืนยันตัวตนไปยัง API ขององค์กร เนื่องจากคีย์เหล่านั้นอาจเป็นของเอ็นด์พอยต์แบบกำหนดเอง

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

โหมดเริ่มต้นของส่วนท้ายการใช้งาน

/usage off|tokens|full ตั้งค่าส่วนท้ายสำหรับเซสชันและระบบจะจดจำค่านั้นสำหรับ เซสชันดังกล่าว messages.responseUsage กำหนดค่าเริ่มต้นของโหมดนี้ให้เซสชันที่ยังไม่ได้ เลือกโหมด เพื่อให้เปิดส่วนท้ายเป็นค่าเริ่มต้นได้โดยไม่ต้องพิมพ์ /usage ทุกครั้ง

ตั้งค่าโหมดเดียวสำหรับทุกช่องทาง หรือใช้แมปแยกตามช่องทางโดยมี default เป็นค่าทดแทน:

jsonc
{  "messages": {    "responseUsage": "tokens",    // หรือ: { "default": "off", "discord": "full" }  },}

ค่าที่ยอมรับ: "off", "tokens", "full" และนามแฝงเดิม "on" (ถือเป็น "tokens")

สถานะเซสชันที่แตกต่างกันสามแบบ

ฟิลด์ responseUsage ของเซสชันมีสถานะที่แสดงแทนได้สามแบบ โดยแต่ละแบบมี ความหมายต่างกัน:

สถานะ ค่าที่จัดเก็บ โหมดที่มีผล
ไม่ได้ตั้งค่า / สืบทอด undefined (ไม่มีอยู่) ใช้ค่าเริ่มต้นจากการกำหนดค่า messages.responseUsage ต่อด้วย off
ปิดอย่างชัดเจน "off" (จัดเก็บไว้) ปิดเสมอ ค่าเริ่มต้นการกำหนดค่าที่ไม่ใช่ปิดไม่สามารถเปิดส่วนท้ายอีกครั้งได้
เปิดอย่างชัดเจน "tokens" หรือ "full" (จัดเก็บไว้) ใช้โหมดนั้นโดยไม่คำนึงถึงค่าเริ่มต้นการกำหนดค่า

ลำดับความสำคัญ

โหมดที่มีผล = การแทนที่ของเซสชัน → รายการการกำหนดค่าช่องทาง → defaultoff

ค่า /usage off ที่ระบุอย่างชัดเจนจะถูก บันทึกถาวร เป็นค่าตรงตัว "off" ใน เซสชัน ซึ่งไม่เหมือนกับ "ไม่ได้ตั้งค่า" ค่าเริ่มต้น messages.responseUsage ที่ไม่ใช่ปิดจะไม่สามารถเปิดส่วนท้ายกลับมาได้หลังจากผู้ใช้ปิดอย่างชัดเจนแล้ว

การรีเซ็ตเทียบกับการปิด

  • /usage off บังคับปิดส่วนท้ายและบันทึกตัวเลือกนั้นไว้ การตั้งค่าเริ่มต้น ที่ไม่ใช่ปิดไม่สามารถแทนที่ค่านี้ได้
  • /usage reset (นามแฝง: default, inherit, inherited, clear, unpin) ล้างการแทนที่ของเซสชัน จากนั้นเซสชันจะ สืบทอด ค่าเริ่มต้นการกำหนดค่าที่มีผล (messages.responseUsage) หากไม่ได้กำหนดค่าเริ่มต้นไว้ ส่วนท้ายจะยังคงปิดอยู่
  • การรีเซ็ตเซสชันทั้งหมด (/reset หรือ /new) หรือการเปลี่ยนรอบเซสชันจะ คง ค่ากำหนดโหมดการใช้งานที่ระบุไว้อย่างชัดเจน เพื่อให้ตัวเลือกการแสดงผลของผู้ใช้ยังคงอยู่ หลังการเปลี่ยนรอบเซสชัน เฉพาะ /usage reset (และนามแฝงของคำสั่งนี้) เท่านั้นที่ล้างการแทนที่

พฤติกรรมการสลับ

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

การกำหนดค่า

หากไม่มีการกำหนดค่า ระบบจะคงพฤติกรรมเดิมไว้ (ปิดส่วนท้ายจนกว่าจะใช้ /usage) ใช้ /usage reset เพื่อล้างการแทนที่ของเซสชันและกลับไปสืบทอดค่าเริ่มต้นที่กำหนดไว้

ส่วนท้าย /usage full แบบกำหนดเอง

/usage tokens จะแสดงบรรทัด Usage: X in / Y out แบบธรรมดาเสมอ (พร้อมคำต่อท้ายเกี่ยวกับแคชและ ค่าใช้จ่ายโดยประมาณเมื่อมีข้อมูล) เฉพาะ /usage full เท่านั้นที่แสดงส่วนท้ายแบบละเอียดกว่า ซึ่งอธิบายไว้ด้านล่าง

/usage full แสดงส่วนท้ายแบบกะทัดรัดในตัว พร้อมโมเดล การใช้เหตุผล โหมดเร็ว/ช้า หน้าต่างบริบท และค่าใช้จ่ายเมื่อมีฟิลด์เหล่านั้น ส่วนท้ายในตัวไม่ต้องใช้ ไฟล์เทมเพลต

messages.usageTemplate ใช้สำหรับเค้าโครงแบบกำหนดเองขั้นสูงเท่านั้น ค่านี้เป็น พาธไฟล์ JSON (รองรับ ~) หรือออบเจ็กต์แบบอินไลน์ และจะแทนที่ส่วนท้ายในตัว เมื่อค่าถูกต้อง พาธไฟล์จะถูกเฝ้าดูและโหลดใหม่แบบสดเมื่อมีการเปลี่ยนแปลง

json
{  "messages": {    "usageTemplate": "~/.openclaw/usage-footer.json"  }}

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

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

jsonc
{  "schema": "openclaw.usageBar.v1",  "scales": {    "braille": "⠐⡀⡄⡆⡇⣇⣧⣷⣿",    "block": "░▏▎▍▌▋▊▉█",    "shade": "░▒▓█",    "moon": "🌑🌘🌗🌖🌕",    "level": "▁▂▃▄▅▆▇█",    "weather": ["🥶", "☁️", "🌥", "⛅️", "🌤", "☀️"],    "plants": ["🪾", "🍂", "🌱", "☘️", "🍀", "🌿"],    "moons6": ["🌑", "🌚", "🌘", "🌗", "🌖", "🌝"],  },  "aliases": {    "models": {      "claude-opus-4-6": "opus46",      "claude-opus-4-8": "opus48",      "claude-sonnet-4-6": "sonnet46",      "claude-haiku-4-5": "haiku45",      "gpt-5.5": "gpt5.5",    },    "reasoning": {      "off": "🌑",      "minimal": "🌚",      "low": "🌘",      "medium": "🌗",      "high": "🌕",      "xhigh": "🌝",    },  },  "output": {    "sep": "",    "default": [      { "text": "{model.provider}{identity.emoji|🤖}{model.display_name|alias:models}" },      { "map": "model.is_fallback", "cases": { "true": "🔄" } },      { "map": "model.is_override", "cases": { "true": "📌" } },      { "when": "model.reasoning", "text": "{model.reasoning|alias:reasoning}" },      { "map": "state.fast_mode", "cases": { "true": "⚡️", "false": "🐌" } },      {        "when": "context.max_tokens",        "text": " | 📚[{context.pct_used|meter:5:braille}]{context.max_tokens|num}",      },      { "when": "cost.turn_usd", "text": " 💰{cost.turn_usd|fixed:4}" },    ],    "surfaces": {      "discord": [        { "text": "-# -\n" },        { "text": "-# {model.provider}{identity.emoji|🤖}{model.display_name|alias:models}" },        { "map": "model.is_fallback", "cases": { "true": "🔄" } },        { "map": "model.is_override", "cases": { "true": "📌" } },        { "when": "model.reasoning", "text": "{model.reasoning|alias:reasoning}" },        { "map": "state.fast_mode", "cases": { "true": "⚡️", "false": "🐌" } },        {          "when": "context.max_tokens",          "text": " | 📚[{context.pct_used|meter:5:braille}]{context.max_tokens|num}",        },        { "when": "cost.turn_usd", "text": " 💰{cost.turn_usd|fixed:4}" },      ],    },  },}

โครงสร้าง

jsonc
{  "schema": "openclaw.usageBar.v1",  "scales": { "<name>": "สัญลักษณ์จากต่ำไปสูง" }, // สตริง (1 สัญลักษณ์/อักขระ) หรืออาร์เรย์  "aliases": { "<table>": { "<value>": "<label>" } },  "output": {    "sep": "", // เชื่อมส่วนที่ยังคงอยู่    "default": [/* pieces */], // ค่าทดแทนสำหรับทุกพื้นผิว    "surfaces": {      "discord": [/* pieces */],      "telegram": [/* pieces */],    },  },}

แต่ละพื้นผิวเป็นรายการ ส่วนประกอบ ที่เรียงลำดับไว้ เอนจินจะแสดงผลแต่ละส่วน ตัดส่วนที่ว่างออก และเชื่อมส่วนที่เหลือด้วย sep พื้นผิวที่ไม่มีรายการจะใช้ output.default

พาธสัญญา

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

พาธ ความหมาย
surface รหัสช่องทาง (discord/telegram/ฯลฯ)
agentId / chat_type รหัสเอเจนต์เจ้าของ / ประเภทพื้นผิวแชต
model.id / model.display_name / model.provider รหัสโมเดล / ชื่อที่แสดง / รหัสผู้ให้บริการ
model.actual, model.resolved_ref การอ้างอิงผู้ให้บริการ/โมเดลที่ใช้จริงสำหรับเทิร์น
model.requested การอ้างอิงผู้ให้บริการ/โมเดลที่ร้องขอ (ก่อนใช้ทางเลือกสำรอง)
model.reasoning ระดับความพยายาม (off ถึง xhigh)
model.is_fallback / model.is_override บูลีน: ใช้ทางเลือกสำรอง / ตรึงโมเดล
model.override_source / model.auth_mode ป้ายกำกับแหล่งที่มาของการแทนที่ค่า / โหมดข้อมูลประจำตัว (oauth, api-key, token, mixed, aws-sdk, unknown)
state.fast_mode บูลีน: เร็วเทียบกับช้า
state.compactions จำนวน Compaction สำหรับเซสชัน
context.max_tokens / context.used_tokens / context.pct_used งบประมาณของหน้าต่าง / โทเค็นที่ใช้ไป / ใช้ไป 0-100
usage.input_tokens / usage.output_tokens / usage.total_tokens ค่ารวมของเทิร์น
usage.cache_read_tokens / usage.cache_write_tokens โทเค็นที่อ่านจากแคชและเขียนลงแคชสำหรับเทิร์น
usage.has_tokens / usage.has_split_tokens / usage.has_total_only_tokens ตัวควบคุมการแสดงโทเค็น
usage.cache_hit_pct สัดส่วนการอ่านจากแคชต่อโทเค็นพรอมต์ทั้งหมด
usage.last.input_tokens / usage.last.output_tokens / usage.last.cache_hit_pct เฉพาะการเรียกโมเดลครั้งสุดท้าย (มี cache_read_tokens, cache_write_tokens, total_tokens ด้วย)
cost.turn_usd / cost.available ค่าใช้จ่ายโดยประมาณของเทิร์น / แก้ไขตารางค่าใช้จ่ายได้หรือไม่
timing.duration_ms ระยะเวลาของเทิร์นตามเวลาจริง
identity.name / identity.emoji / identity.avatar ชื่ออัตลักษณ์เอเจนต์ / อีโมจิ / อวาตาร์
session.id รหัสเซสชัน

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

กริยา

ส่งค่าผ่านกริยาจากซ้ายไปขวา ส่วนที่ไม่ใช่กริยาคือค่าทางเลือกสำรอง

กริยา ผลลัพธ์ ตัวอย่าง
num จำนวนแบบย่อ 272000 -> 272k
fixed:N ทศนิยม N ตำแหน่ง (0..100, ค่าเริ่มต้น 2) 0.0377
dur แปลงวินาทีเป็นระยะเวลา 14820 -> 4h07m
pct ต่อท้าย % 96 -> 96%
inv 100 - x สำหรับแปลงค่าที่ใช้ไปเป็นค่าคงเหลือ
alias:TABLE ค้นหาใน aliases และสะท้อนค่าเดิมหากไม่มีในรายการ medium -> 🌗
meter:W:SCALE แถบสัญลักษณ์กว้าง W เซลล์สำหรับค่า 0-100 [⣿⣿⠐⠐⠐] (meter:1 = หนึ่งสัญลักษณ์)

fixed:N ยอมรับเฉพาะจำนวนเต็มฐานสิบที่สมบูรณ์ตั้งแต่ 0 ถึง 100 อาร์กิวเมนต์ ความแม่นยำที่ไม่ถูกต้องจะทำให้การแทรกค่านั้นว่างเปล่า

meter:W:SCALE ยอมรับเฉพาะความกว้างที่เป็นจำนวนเต็มฐานสิบสมบูรณ์ตั้งแต่ 1 ถึง 100 เว้นความกว้างว่างไว้เพื่อใช้ค่าเริ่มต้น 5 (meter::braille) ความกว้าง ที่ไม่ถูกต้องจะทำให้การแทรกค่านั้นว่างเปล่า

รูปแบบส่วนประกอบ

  • { "text": "📚 {context.max_tokens|num}" }: ข้อความตามตัวอักษร + การแทรกค่า
  • { "when": "<path>", "text": "..." }: แสดงผลเฉพาะเมื่อพาธมีค่าเป็นจริง
  • { "map": "<path>", "cases": { "true": "⚡", "false": "🐌" } }: แปลงค่าเป็นสัญลักษณ์ (กรณี _default ครอบคลุมค่าที่ไม่ตรงกัน)
  • { "each": "<array-path>", "item": "{label}" }: วนซ้ำพาธที่มีค่าเป็นอาร์เรย์ (ขณะนี้ไม่มีพาธในสัญญาที่เป็นอาร์เรย์)

ตัวอย่าง

jsonc
{  "schema": "openclaw.usageBar.v1",  "scales": { "braille": "⠐⡀⡄⡆⡇⣇⣧⣷⣿" },  "aliases": { "reasoning": { "medium": "🌗", "high": "🌕" } },  "output": {    "surfaces": {      "discord": [        { "text": "{model.display_name}" },        { "when": "model.reasoning", "text": " {model.reasoning|alias:reasoning}" },        { "map": "state.fast_mode", "cases": { "true": " ⚡", "false": " 🐌" } },        {          "when": "context.max_tokens",          "text": " | 📚 [{context.pct_used|meter:5:braille}]{context.max_tokens|num}",        },      ],    },  },}

แสดงผล เช่น claude-sonnet-4-6 🌗 🐌 | 📚 [⣿⣿⣿⣿⣧]272k

ผู้ให้บริการ + ข้อมูลประจำตัว

การใช้งานจะถูกซ่อนเมื่อไม่สามารถระบุการยืนยันตัวตนสำหรับการใช้งานของผู้ให้บริการที่ใช้ได้ OpenClaw ค้นพบ Plugin ผู้ให้บริการที่เปิดใช้งานและประกาศ contracts.usageProviders พร้อมทั้งใช้งานทั้ง resolveUsageAuth และ fetchUsageSnapshot โดยอัตโนมัติ ไม่มีรายการอนุญาตผู้ให้บริการแยกต่างหากในแกนหลัก สัญญาแบบคงที่ ช่วยจำกัดขอบเขตการค้นพบโดยไม่ต้องนำเข้า Plugin ผู้ให้บริการทุกรายการ แต่ละ Plugin เป็นเจ้าของปลายทางต้นทางและการแมปการตอบกลับของตนเอง สแนปชอต ที่ใช้ร่วมกันทำให้ชื่อแผน หน้าต่างโควตา ยอดคงเหลือ ค่าใช้จ่าย และงบประมาณ ไม่ขึ้นกับผู้ให้บริการสำหรับผู้ใช้ CLI, แอป และ Control UI

  • Anthropic (Claude): โทเค็น OAuth ในโปรไฟล์การยืนยันตัวตน หากโทเค็น OAuth ไม่มี ขอบเขต user:profile ระบบจะใช้เว็บเซสชัน claude.ai เป็นทางเลือกสำรอง (CLAUDE_AI_SESSION_KEY, CLAUDE_WEB_SESSION_KEY หรือคุกกี้ sessionKey= ใน CLAUDE_WEB_COOKIE) เมื่อตั้งค่าไว้ ขีดจำกัดเฉพาะโมเดลและค่าใช้จ่าย/งบประมาณรายเดือนของการใช้งานเพิ่มเติมที่เปิดใช้งานจะถูกรวมไว้ เมื่อ Anthropic รายงานข้อมูลดังกล่าว ส่วนคีย์ Anthropic Admin API ที่ระบุชัดเจน หรือโปรไฟล์ผู้ให้บริการ sk-ant-admin... ที่ตรวจพบโดยอัตโนมัติ จะแสดงค่าใช้จ่ายระดับองค์กรย้อนหลัง 30 วัน และประวัติ Messages API แทน
  • ClawRouter: คีย์ API (CLAWROUTER_API_KEY) แสดงหน้าต่างงบประมาณรายเดือน และงบประมาณ USD ที่ระบุประเภทไว้เมื่อกำหนดค่า มิฉะนั้นจะแสดงค่าใช้จ่ายรวมและ สรุปคำขอ/โทเค็น/ค่าใช้จ่าย
  • DeepSeek: คีย์ API ผ่านสภาพแวดล้อม/การกำหนดค่า/ที่จัดเก็บการยืนยันตัวตน (DEEPSEEK_API_KEY) แสดงยอดคงเหลือแต่ละสกุลเงินที่ผู้ให้บริการรายงาน
  • GitHub Copilot: โทเค็น OAuth ในโปรไฟล์การยืนยันตัวตน
  • Gemini CLI: โทเค็น OAuth ในโปรไฟล์การยืนยันตัวตน
  • MiniMax: คีย์ API หรือโปรไฟล์การยืนยันตัวตน MiniMax OAuth OpenClaw ถือว่า minimax, minimax-cn และ minimax-portal เป็นพื้นผิวโควตา MiniMax เดียวกัน เลือกใช้ MiniMax OAuth ที่จัดเก็บไว้ก่อนเมื่อมี และหากไม่มีจึงใช้ MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY หรือ MINIMAX_API_KEY เป็นทางเลือกสำรอง การสำรวจการใช้งานจะหาโฮสต์ Coding Plan จาก models.providers.minimax-portal.baseUrl หรือ models.providers.minimax.baseUrl เมื่อกำหนดค่าไว้ และหากไม่มีจะใช้ โฮสต์ MiniMax CN ฟิลด์ดิบ usage_percent / usagePercent ของ MiniMax หมายถึงโควตา คงเหลือ ดังนั้น OpenClaw จะกลับค่าก่อนแสดงผล โดยฟิลด์แบบอิงจำนวนมีลำดับความสำคัญสูงกว่า เมื่อมีอยู่
    • ป้ายกำกับหน้าต่างมาจากฟิลด์ชั่วโมง/นาทีของผู้ให้บริการเมื่อมี จากนั้น จึงใช้ช่วง start_time / end_time เป็นทางเลือกสำรอง
    • หากปลายทาง coding-plan ส่งคืน model_remains OpenClaw จะเลือก รายการโมเดลแชตก่อน สร้างป้ายกำกับหน้าต่างจากการประทับเวลาเมื่อไม่มีฟิลด์ window_hours / window_minutes ที่ระบุชัดเจน และรวมชื่อโมเดล ไว้ในป้ายกำกับแผน
  • OpenAI (แผน Codex/ChatGPT): โทเค็น OAuth ในโปรไฟล์การยืนยันตัวตน (ส่งส่วนหัว ChatGPT-Account-Id เมื่อมีรหัสบัญชี) แสดงแผน ChatGPT หน้าต่าง Codex ที่รีเซ็ตได้ และยอดเครดิตเมื่อมีการรายงาน เครดิตยังคงเป็นเครดิตของผู้ให้บริการ OpenClaw ไม่ระบุว่าเป็นดอลลาร์ OPENAI_ADMIN_KEY เพิ่ม ค่าใช้จ่ายระดับองค์กรย้อนหลัง 30 วันและประวัติการใช้งาน completions เมื่อคีย์มีสิทธิ์เข้าถึง Usage Dashboard ข้อมูลประจำตัวสำหรับการอนุมานจะไม่ถูกส่งต่อไปยัง API ระดับองค์กร
  • OpenRouter: คีย์ API หรือคีย์ API ที่รองรับด้วย OAuth (OPENROUTER_API_KEY หรือโปรไฟล์ การยืนยันตัวตน) รวมปลายทางเครดิตบัญชีเข้ากับปลายทางโควตาคีย์ เพื่อให้แสดงยอดคงเหลือ/ค่าใช้จ่ายของบัญชี งบประมาณคีย์ และการใช้งาน รายวัน/รายสัปดาห์/รายเดือนได้เมื่อข้อมูลประจำตัวสามารถเข้าถึงข้อมูลเหล่านั้น แต่ละปลายทางสามารถเพิ่มข้อมูลลงในสแนปชอต ได้อย่างอิสระ
  • Venice: คีย์ API ผ่านสภาพแวดล้อม/การกำหนดค่า/ที่จัดเก็บการยืนยันตัวตน (VENICE_API_KEY) แสดงยอดคงเหลือ USD และ DIEM รวมถึงการใช้โควตาการจัดสรร DIEM ตามยุคเมื่อมีการรายงาน
  • Xiaomi MiMo: พื้นผิวการใช้งานสองส่วนแยกกัน แบบจ่ายตามการใช้งานใช้คีย์ API (XIAOMI_API_KEY) ส่วน Token Plan ใช้คีย์แยกต่างหาก (XIAOMI_TOKEN_PLAN_API_KEY) ขณะนี้ทั้งสองส่วนไม่รายงานหน้าต่างโควตา
  • z.ai: คีย์ API ผ่านสภาพแวดล้อม/การกำหนดค่า/ที่จัดเก็บการยืนยันตัวตน (ZAI_API_KEY หรือ Z_AI_API_KEY)

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

Was this useful?
On this page

On this page