Plugin แบ็กเอนด์ CLI ช่วยให้ OpenClaw เรียก CLI AI ภายในเครื่องเป็นแบ็กเอนด์การอนุมานข้อความได้ แบ็กเอนด์จะแสดงเป็นคำนำหน้าผู้ให้บริการใน refs ของโมเดล:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
หากบริการ upstream เปิดเผย API โมเดล HTTP ปกติ ให้เขียน
Plugin ผู้ให้บริการ แทน หาก runtime ของ upstream
เป็นเจ้าของเซสชันเอเจนต์ทั้งหมด เหตุการณ์เครื่องมือ Compaction หรือสถานะงานเบื้องหลัง
ให้ใช้ ชุดควบคุมเอเจนต์
สิ่งที่ Plugin เป็นเจ้าของ
Plugin แบ็กเอนด์ CLI มีสัญญาสามส่วน:| สัญญา | ไฟล์ | วัตถุประสงค์ |
|---|---|---|
| จุดเข้าแพ็กเกจ | package.json | ชี้ OpenClaw ไปยังโมดูล runtime ของ Plugin |
| ความเป็นเจ้าของ manifest | openclaw.plugin.json | ประกาศรหัสแบ็กเอนด์ก่อนโหลด runtime |
| การลงทะเบียน runtime | index.ts | เรียก api.registerCliBackend(...) พร้อมค่าเริ่มต้นของคำสั่ง |
api.registerCliBackend(...)
Plugin แบ็กเอนด์ขั้นต่ำ
สร้างเมทาดาทาแพ็กเกจ
package.json
./src/index.ts ให้เพิ่ม openclaw.runtimeExtensions ที่ชี้ไปยังไฟล์ JavaScript ที่ build แล้วคู่กัน ดู จุดเข้าประกาศความเป็นเจ้าของแบ็กเอนด์
openclaw.plugin.json
cliBackends คือรายการความเป็นเจ้าของ runtime ซึ่งช่วยให้ OpenClaw โหลด Plugin อัตโนมัติเมื่อ config หรือการเลือกโมเดลกล่าวถึง acme-cli/...setup.cliBackends คือพื้นผิวการตั้งค่าแบบ descriptor-first เพิ่มเมื่อการค้นพบโมเดล การเริ่มใช้งาน หรือสถานะควรรู้จักแบ็กเอนด์โดยไม่ต้องโหลด runtime ของ Plugin ใช้ requiresRuntime: false เฉพาะเมื่อ descriptor แบบสแตติกเหล่านั้นเพียงพอสำหรับการตั้งค่ารูปแบบ config
CliBackendConfig อธิบายว่า OpenClaw ควรเรียกใช้และแยกวิเคราะห์ CLI อย่างไร:
| ฟิลด์ | การใช้งาน |
|---|---|
command | ชื่อไบนารีหรือพาธคำสั่งแบบสมบูรณ์ |
args | argv พื้นฐานสำหรับการรันใหม่ |
resumeArgs | argv ทางเลือกสำหรับเซสชันที่ดำเนินต่อ รองรับ {sessionId} |
output / resumeOutput | ตัวแยกวิเคราะห์: json, jsonl หรือ text |
input | การส่งพรอมป์: arg หรือ stdin |
modelArg | แฟล็กที่ใช้ก่อนรหัสโมเดล |
modelAliases | แมปรหัสโมเดล OpenClaw ไปยังรหัสแบบเนทีฟของ CLI |
sessionArg / sessionArgs | วิธีส่งรหัสเซสชัน |
sessionMode | always, existing หรือ none |
sessionIdFields | ฟิลด์ JSON ที่ OpenClaw อ่านจากเอาต์พุต CLI |
systemPromptArg / systemPromptFileArg | การส่งพรอมป์ระบบ |
systemPromptWhen | first, always หรือ never |
imageArg / imageMode | การรองรับพาธรูปภาพ |
serialize | รักษาลำดับการรันของแบ็กเอนด์เดียวกัน |
reliability.watchdog | การปรับแต่ง timeout เมื่อไม่มีเอาต์พุต |
hook แบ็กเอนด์ขั้นสูง
CliBackendPlugin ยังสามารถกำหนด:
| Hook | การใช้งาน |
|---|---|
normalizeConfig(config, context) | เขียน config ผู้ใช้แบบเก่าใหม่หลัง merge |
resolveExecutionArgs(ctx) | เพิ่มแฟล็กตามขอบเขตคำขอ เช่น ระดับความพยายามในการคิด |
prepareExecution(ctx) | สร้างสะพาน auth หรือ config ชั่วคราวก่อนเริ่มทำงาน |
transformSystemPrompt(ctx) | ใช้การแปลงพรอมป์ระบบขั้นสุดท้ายที่เจาะจงกับ CLI |
textTransforms | การแทนที่พรอมป์/เอาต์พุตแบบสองทิศทาง |
defaultAuthProfileId | เลือกใช้โปรไฟล์ auth ของ OpenClaw ที่เจาะจง |
authEpochMode | ตัดสินว่าการเปลี่ยน auth ทำให้เซสชัน CLI ที่จัดเก็บไว้หมดอายุอย่างไร |
nativeToolMode | ประกาศว่า CLI มีเครื่องมือเนทีฟที่เปิดตลอดหรือไม่ |
bundleMcp / bundleMcpMode | เลือกใช้สะพานเครื่องมือ MCP ผ่าน loopback ของ OpenClaw |
สะพานเครื่องมือ MCP
แบ็กเอนด์ CLI จะไม่ได้รับเครื่องมือ OpenClaw โดยค่าเริ่มต้น หาก CLI สามารถใช้ config MCP ได้ ให้เลือกใช้โดยชัดเจน:| โหมด | การใช้งาน |
|---|---|
claude-config-file | CLI ที่ยอมรับไฟล์ config MCP |
codex-config-overrides | CLI ที่ยอมรับการ override config บน argv |
gemini-system-settings | CLI ที่อ่านการตั้งค่า MCP จากไดเรกทอรีการตั้งค่าระบบของตัวเอง |
nativeToolMode: "always-on" เพื่อให้ OpenClaw ปิดกั้นอย่างปลอดภัยเมื่อผู้เรียกต้องการไม่มีเครื่องมือเนทีฟ
การกำหนดค่าของผู้ใช้
ผู้ใช้สามารถ override ค่าเริ่มต้นของแบ็กเอนด์ใดก็ได้:command เมื่อไบนารีอยู่นอก PATH
การตรวจสอบ
สำหรับ Plugin ที่รวมมาในชุด ให้เพิ่มการทดสอบแบบเฉพาะจุดรอบ builder และการลงทะเบียน setup จากนั้นรัน lane ทดสอบเป้าหมายของ Plugin:รายการตรวจสอบ
package.json มี openclaw.extensions และจุดเข้า runtime ที่ build แล้วสำหรับแพ็กเกจที่เผยแพร่openclaw.plugin.json ประกาศ cliBackends และ activation.onStartup ตามเจตนาsetup.cliBackends มีอยู่เมื่อการตั้งค่า/การค้นพบโมเดลควรมองเห็นแบ็กเอนด์แบบเย็นapi.registerCliBackend(...) ใช้รหัสแบ็กเอนด์เดียวกับ manifestoverride ของผู้ใช้ภายใต้
agents.defaults.cliBackends.<id> ยังคงชนะการตั้งค่าเซสชัน พรอมป์ระบบ รูปภาพ และตัวแยกวิเคราะห์เอาต์พุตตรงกับสัญญาจริงของ CLI
การทดสอบเป้าหมายและ live CLI smoke อย่างน้อยหนึ่งรายการพิสูจน์เส้นทางแบ็กเอนด์
ที่เกี่ยวข้อง
- แบ็กเอนด์ CLI - การกำหนดค่าของผู้ใช้และพฤติกรรม runtime
- การสร้าง Plugin - พื้นฐานของแพ็กเกจและ manifest
- ภาพรวม Plugin SDK - เอกสารอ้างอิง API การลงทะเบียน
- manifest ของ Plugin -
cliBackendsและ descriptor สำหรับ setup - ชุดควบคุมเอเจนต์ - runtime เอเจนต์ภายนอกเต็มรูปแบบ