Fundamentals
กลไกบริบท
กลไกบริบทควบคุมวิธีที่ OpenClaw สร้างบริบทของโมเดลสำหรับการทำงานแต่ละครั้ง ได้แก่ ข้อความใดที่จะรวมไว้ วิธีสรุปประวัติเก่า และวิธีจัดการบริบทข้ามขอบเขตของเอเจนต์ย่อย
OpenClaw มาพร้อมกับกลไก legacy ในตัวและใช้เป็นค่าเริ่มต้น ติดตั้งและเลือกกลไก Plugin เฉพาะเมื่อต้องการลักษณะการประกอบบริบท การทำ Compaction หรือการเรียกคืนข้อมูลข้ามเซสชันที่แตกต่างออกไป
เริ่มต้นอย่างรวดเร็ว
ตรวจสอบว่ากลไกใดกำลังทำงาน
openclaw doctor# หรือตรวจสอบการกำหนดค่าโดยตรง:cat ~/.openclaw/openclaw.json | jq '.plugins.slots.contextEngine'ติดตั้งกลไก Plugin
Plugin กลไกบริบทติดตั้งได้เช่นเดียวกับ Plugin อื่นของ OpenClaw
จาก npm
openclaw plugins install @martian-engineering/lossless-clawจากพาธภายในเครื่อง
openclaw plugins install -l ./my-context-engineเปิดใช้งานและเลือกกลไก
// openclaw.json{ plugins: { slots: { contextEngine: "lossless-claw", // ต้องตรงกับรหัสกลไกที่ Plugin ลงทะเบียนไว้ }, entries: { "lossless-claw": { enabled: true, // ใส่การกำหนดค่าเฉพาะของ Plugin ที่นี่ (ดูเอกสารของ Plugin) }, }, },}รีสตาร์ต Gateway หลังจากติดตั้งและกำหนดค่า
เปลี่ยนกลับไปใช้แบบเดิม (ไม่บังคับ)
ตั้งค่า contextEngine เป็น "legacy" (หรือลบคีย์ออกทั้งหมด โดย "legacy" เป็นค่าเริ่มต้น)
วิธีการทำงาน
ทุกครั้งที่ OpenClaw เรียกใช้พรอมต์ของโมเดล กลไกบริบทจะมีส่วนร่วมในวงจรชีวิต 4 จุด:
1. รับเข้า
เรียกเมื่อมีการเพิ่มข้อความใหม่ลงในเซสชัน กลไกสามารถจัดเก็บหรือทำดัชนีข้อความไว้ในที่เก็บข้อมูลของตนเอง
2. ประกอบ
เรียกก่อนการทำงานของโมเดลแต่ละครั้ง กลไกจะส่งคืนชุดข้อความที่เรียงลำดับแล้ว (และ systemPromptAddition ซึ่งไม่บังคับ) โดยมีขนาดอยู่ภายในงบโทเค็น
3. ทำ Compaction
เรียกเมื่อหน้าต่างบริบทเต็ม หรือเมื่อผู้ใช้เรียกใช้ /compact กลไกจะสรุปประวัติเก่าเพื่อเพิ่มพื้นที่ว่าง
4. หลังจบรอบ
เรียกหลังจากการทำงานเสร็จสิ้น กลไกสามารถบันทึกสถานะถาวร เรียกใช้ Compaction เบื้องหลัง หรืออัปเดตดัชนี
กลไกยังสามารถติดตั้งเมธอด maintain() ซึ่งไม่บังคับสำหรับการบำรุงรักษาทรานสคริปต์ (เขียนใหม่อย่างปลอดภัยผ่าน runtimeContext.rewriteTranscriptEntries()) หลังการเริ่มต้นระบบ รอบที่สำเร็จ หรือ Compaction ตั้งค่า info.turnMaintenanceMode: "background" เพื่อให้ทำงานแบบเลื่อนเวลาแทนการบล็อกการตอบกลับ
สำหรับชุดควบคุม Codex แบบ non-ACP ที่รวมมาให้ OpenClaw ใช้วงจรชีวิตเดียวกันโดยฉายบริบทที่ประกอบแล้วลงในคำสั่งสำหรับนักพัฒนาของ Codex และพรอมต์ของรอบปัจจุบัน Codex ยังคงเป็นเจ้าของประวัติเธรดดั้งเดิมและตัวทำ Compaction ดั้งเดิมของตน
วงจรชีวิตของเอเจนต์ย่อย (ไม่บังคับ)
OpenClaw เรียกใช้ฮุกวงจรชีวิตของเอเจนต์ย่อยที่ไม่บังคับ 2 รายการ:
prepareSubagentSpawnmethodเตรียมสถานะบริบทร่วมก่อนเริ่มการทำงานของเอเจนต์ลูก ฮุกจะได้รับคีย์เซสชันของแม่/ลูก, contextMode (isolated หรือ fork), รหัส/ไฟล์ทรานสคริปต์ที่พร้อมใช้งาน และ TTL ซึ่งไม่บังคับ หากส่งคืนแฮนเดิลย้อนกลับ OpenClaw จะเรียกใช้เมื่อการสร้างล้มเหลวหลังจากเตรียมสำเร็จ การสร้างเอเจนต์ย่อยแบบดั้งเดิมที่ร้องขอ lightContext และได้ผลลัพธ์เป็น contextMode="isolated" จะข้ามฮุกนี้โดยเจตนา เพื่อให้เอเจนต์ลูกเริ่มต้นจากบริบทเริ่มต้นระบบแบบน้ำหนักเบาโดยไม่มีสถานะก่อนการสร้างที่กลไกบริบทจัดการ
onSubagentEndedmethodล้างข้อมูลเมื่อเซสชันของเอเจนต์ย่อยเสร็จสิ้นหรือถูกกวาดล้าง
ส่วนเพิ่มเติมของพรอมต์ระบบ
เมธอด assemble สามารถส่งคืนสตริง systemPromptAddition ได้ OpenClaw จะเพิ่มสตริงนี้ไว้หน้าพรอมต์ระบบสำหรับการทำงานนั้น ซึ่งช่วยให้กลไกแทรกคำแนะนำการเรียกคืนแบบไดนามิก คำสั่งการค้นคืน หรือคำแนะนำที่รับรู้บริบทได้โดยไม่ต้องใช้ไฟล์พื้นที่ทำงานแบบคงที่
กลไกแบบเดิม
กลไก legacy ในตัวจะคงลักษณะการทำงานดั้งเดิมของ OpenClaw ไว้:
- รับเข้า: ไม่ดำเนินการใดๆ (ตัวจัดการเซสชันจัดการการบันทึกข้อความถาวรโดยตรง)
- ประกอบ: ส่งผ่านโดยไม่เปลี่ยนแปลง (ไปป์ไลน์ sanitize → validate → limit ที่มีอยู่ในรันไทม์จัดการการประกอบบริบท)
- ทำ Compaction: มอบหมายให้ Compaction สำหรับการสรุปที่มีมาให้ ซึ่งสร้างสรุปเดียวจากข้อความเก่าและเก็บข้อความล่าสุดไว้โดยไม่เปลี่ยนแปลง
- หลังจบรอบ: ไม่ดำเนินการใดๆ
กลไกแบบเดิมจะไม่ลงทะเบียนเครื่องมือหรือให้ systemPromptAddition
เมื่อไม่ได้ตั้งค่า plugins.slots.contextEngine (หรือตั้งค่าเป็น "legacy") ระบบจะใช้กลไกนี้โดยอัตโนมัติ
กลไก Plugin
Plugin สามารถลงทะเบียนกลไกบริบทโดยใช้ API ของ Plugin:
export default function register(api) { api.registerContextEngine("my-engine", (ctx) => ({ info: { id: "my-engine", name: "My Context Engine", ownsCompaction: true, }, async ingest({ sessionId, message, isHeartbeat }) { // จัดเก็บข้อความไว้ในที่เก็บข้อมูลของคุณ return { ingested: true }; }, async assemble({ sessionId, sessionKey, messages, tokenBudget, availableTools, citationsMode, }) { // ส่งคืนข้อความที่มีขนาดอยู่ภายในงบ return { messages: buildContext(messages, tokenBudget), estimatedTokens: countTokens(messages), systemPromptAddition: buildMemorySystemPromptAddition({ availableTools: availableTools ?? new Set(), citationsMode, agentId: resolveSessionAgentId({ config: ctx.config, sessionKey }), agentSessionKey: sessionKey, }), }; }, async compact({ sessionId, force }) { // สรุปบริบทเก่า return { ok: true, compacted: true }; }, }));}แฟกทอรี ctx มีค่า config, agentDir และ workspaceDir
ซึ่งไม่บังคับ เพื่อให้ Plugin สามารถกำหนดค่าเริ่มต้นของสถานะต่อเอเจนต์หรือต่อพื้นที่ทำงานก่อนที่
ฮุกวงจรชีวิตแรกจะทำงาน
จากนั้นเปิดใช้งานในการกำหนดค่า:
{ plugins: { slots: { contextEngine: "my-engine", }, entries: { "my-engine": { enabled: true, }, }, },}อินเทอร์เฟซ ContextEngine
สมาชิกที่จำเป็น:
| สมาชิก | ชนิด | วัตถุประสงค์ |
|---|---|---|
info |
คุณสมบัติ | รหัส ชื่อ และเวอร์ชันของกลไก รวมถึงระบุว่ากลไกเป็นเจ้าของ Compaction หรือไม่ |
ingest(params) |
เมธอด | จัดเก็บข้อความเดียว |
assemble(params) |
เมธอด | สร้างบริบทสำหรับการทำงานของโมเดล (ส่งคืน AssembleResult) |
compact(params) |
เมธอด | สรุป/ลดบริบท |
assemble ส่งคืน AssembleResult ซึ่งประกอบด้วย:
messagesMessage[]requiredข้อความที่เรียงลำดับแล้วเพื่อส่งไปยังโมเดล
estimatedTokensnumberrequiredค่าประมาณจำนวนโทเค็นทั้งหมดในบริบทที่ประกอบแล้วจากกลไก OpenClaw ใช้ค่านี้เพื่อตัดสินใจตามเกณฑ์ของ Compaction และรายงานการวินิจฉัย
systemPromptAdditionstringเพิ่มไว้หน้าพรอมต์ระบบ
promptAuthority"assembled" | "preassembly_may_overflow"ควบคุมค่าประมาณโทเค็นที่ตัวดำเนินการใช้สำหรับการตรวจสอบล่วงหน้า
เพื่อป้องกันการล้น ค่าเริ่มต้นคือ "assembled" ซึ่งหมายความว่าสำหรับกลไก
ที่ไม่ได้เป็นเจ้าของ Compaction ระบบจะตรวจสอบเฉพาะค่าประมาณของพรอมต์ที่ประกอบแล้ว
กลไกที่ตั้งค่า ownsCompaction: true จะจัดการการยอมรับพรอมต์ด้วยตนเอง
ดังนั้น OpenClaw จะข้ามการตรวจสอบล่วงหน้าทั่วไปก่อนพรอมต์โดยค่าเริ่มต้น ตั้งค่า
"preassembly_may_overflow" เฉพาะเมื่อมุมมองที่ประกอบแล้วของคุณอาจซ่อนความเสี่ยง
ที่จะเกิดการล้นในทรานสคริปต์ต้นทาง จากนั้นตัวดำเนินการจะคงการตรวจสอบล่วงหน้า
ทั่วไปไว้ และใช้ค่าสูงสุดระหว่างค่าประมาณที่ประกอบแล้วกับค่าประมาณประวัติเซสชัน
ก่อนการประกอบ (แบบไม่จำกัดหน้าต่าง) เมื่อตัดสินใจว่าจะทำ Compaction
ล่วงหน้าหรือไม่ ไม่ว่าในกรณีใด ข้อความที่คุณส่งคืนยังคงเป็นสิ่งที่
โมเดลมองเห็น โดย promptAuthority มีผลเฉพาะต่อการตรวจสอบล่วงหน้า
contextProjectionContextEngineProjectionวงจรชีวิตการฉายที่ไม่บังคับสำหรับโฮสต์ซึ่งมีเธรดแบ็กเอนด์แบบถาวร (เช่น Codex app-server) mode: "thread_bootstrap" ที่มี epoch แบบคงที่จะสั่งให้โฮสต์แทรกบริบทที่ประกอบแล้วหนึ่งครั้งต่อยุค และใช้เธรดแบ็กเอนด์ซ้ำจนกว่ายุคจะเปลี่ยน แทนที่จะฉายใหม่ทุกรอบ ละเว้นฟิลด์นี้สำหรับการฉายตามปกติในแต่ละรอบ
compact ส่งคืน CompactResult เมื่อ Compaction เปลี่ยนอัตลักษณ์ของเซสชันที่ทำงานอยู่
result.sessionTarget (ContextEngineSessionTarget แบบมีชนิด ซึ่งบรรจุ
อัตลักษณ์ของเซสชันและขอบเขตที่เก็บข้อมูล) จะระบุเซสชันสืบทอดที่
การลองครั้งถัดไปหรือรอบถัดไปต้องใช้ โดย result.sessionId สะท้อนรหัสของเซสชันสืบทอด
สมาชิกที่ไม่บังคับ:
| สมาชิก | ชนิด | วัตถุประสงค์ |
|---|---|---|
bootstrap(params) |
เมธอด | กำหนดค่าเริ่มต้นของสถานะกลไกสำหรับเซสชัน เรียกหนึ่งครั้งเมื่อกลไกพบเซสชันเป็นครั้งแรก (เช่น นำเข้าประวัติ) |
maintain(params) |
เมธอด | บำรุงรักษาทรานสคริปต์หลังการเริ่มต้นระบบ รอบที่สำเร็จ หรือ Compaction ใช้ runtimeContext.rewriteTranscriptEntries() สำหรับการเขียนใหม่อย่างปลอดภัย |
ingestBatch(params) |
เมธอด | รับเข้ารอบที่เสร็จสมบูรณ์เป็นชุด เรียกหลังจากการทำงานเสร็จสิ้นพร้อมข้อความทั้งหมดจากรอบนั้นในครั้งเดียว |
afterTurn(params) |
เมธอด | งานวงจรชีวิตหลังการทำงาน (บันทึกสถานะถาวร เรียกใช้ Compaction เบื้องหลัง) |
prepareSubagentSpawn(params) |
เมธอด | ตั้งค่าสถานะร่วมสำหรับเซสชันลูกก่อนเริ่มทำงาน |
onSubagentEnded(params) |
เมธอด | ล้างข้อมูลหลังจากเอเจนต์ย่อยสิ้นสุด |
dispose() |
เมธอด | ปล่อยทรัพยากร เรียกระหว่างการปิด Gateway หรือการโหลด Plugin ใหม่ ไม่ใช่ต่อเซสชัน |
การตั้งค่ารันไทม์
ฮุกวงจรชีวิตที่ทำงานภายใน OpenClaw จะได้รับออบเจ็กต์
runtimeSettings ซึ่งไม่บังคับ โดยเป็นพื้นผิว API ภายในแบบอ่านอย่างเดียว
ที่มีการกำหนดเวอร์ชันสำหรับผู้ผลิต/ผู้บริโภค: OpenClaw ผลิตออบเจ็กต์นี้ให้แก่กลไก
บริบทที่เลือก และกลไกบริบทจะใช้ออบเจ็กต์นี้ภายในฮุกวงจรชีวิต ออบเจ็กต์นี้ไม่ได้
แสดงผลแก่ผู้ใช้โดยตรงและไม่ได้สร้างพื้นผิวการรายงานเฉพาะขึ้นมา
schemaVersion: ปัจจุบันคือ1runtime: โฮสต์ OpenClaw, โหมดรันไทม์ (normal,fallbackหรือdegraded) และ ID ของชุดทดสอบ/รันไทม์ที่ระบุหรือไม่ก็ได้contextEngineSelection: ID ของกลไกบริบทที่เลือกและแหล่งที่มาของการเลือกexecutionHost: ID และป้ายกำกับของโฮสต์สำหรับพื้นผิวที่เรียกใช้ฮุกmodel: โมเดลที่ร้องขอ โมเดลที่ได้รับการแก้ไข ผู้ให้บริการ และตระกูลโมเดลที่ระบุหรือไม่ก็ได้limits: งบประมาณโทเค็นพรอมต์และจำนวนโทเค็นเอาต์พุตสูงสุดเมื่อทราบdiagnostics: รหัสเหตุผลของการปิดทางเลือกสำรองและการทำงานที่ลดระดับลงเมื่อทราบ
ฟิลด์ที่อาจไม่ทราบจะแสดงเป็น null; ฟิลด์ตัวจำแนก เช่น
โหมดรันไทม์และแหล่งที่มาของการเลือก ยังคงไม่อนุญาตให้เป็น null กลไกรุ่นเก่ายังคง
ใช้งานร่วมกันได้: หากกลไกแบบดั้งเดิมที่เข้มงวดปฏิเสธ runtimeSettings เนื่องจากเป็น
พร็อพเพอร์ตีที่ไม่รู้จัก OpenClaw จะลองเรียกวงจรชีวิตอีกครั้งโดยไม่มีพร็อพเพอร์ตีนี้
แทนที่จะกักกันกลไก
ข้อกำหนดของโฮสต์
กลไกบริบทสามารถประกาศข้อกำหนดด้านความสามารถของโฮสต์ใน info.hostRequirements
OpenClaw จะตรวจสอบข้อกำหนดเหล่านี้ก่อนเริ่มการดำเนินการ และปฏิเสธการทำงาน
พร้อมข้อผิดพลาดที่อธิบายชัดเจนเมื่อรันไทม์ที่เลือกไม่สามารถตอบสนองข้อกำหนดได้
สำหรับการรันเอเจนต์ ให้ประกาศ assemble-before-prompt เมื่อกลไกต้องควบคุม
พรอมต์จริงของโมเดลผ่าน assemble():
info: { id: "my-context-engine", name: "My Context Engine", hostRequirements: { "agent-run": { requiredCapabilities: ["assemble-before-prompt"], unsupportedMessage: "ใช้ Codex แบบเนทีฟหรือรันไทม์แบบฝังตัวของ OpenClaw หรือเลือกกลไกบริบทแบบดั้งเดิม", }, },}การรันเอเจนต์ด้วย Codex แบบเนทีฟและ OpenClaw แบบฝังตัวรองรับ assemble-before-prompt
แบ็กเอนด์ CLI ทั่วไปไม่รองรับ ดังนั้นกลไกที่ต้องใช้ความสามารถนี้จะถูกปฏิเสธก่อน
เริ่มกระบวนการ CLI
การแยกความล้มเหลว
OpenClaw แยกกลไก Plugin ที่เลือกออกจากเส้นทางการตอบกลับหลัก หากกลไก
ที่ไม่ใช่แบบดั้งเดิมหายไป ไม่ผ่านการตรวจสอบสัญญา เกิดข้อยกเว้นระหว่างการสร้าง
แฟกทอรี หรือเกิดข้อยกเว้นจากเมธอดวงจรชีวิต OpenClaw จะกักกันกลไกนั้น
สำหรับกระบวนการ Gateway ปัจจุบัน และลดระดับงานของกลไกบริบทไปใช้กลไก
legacy ที่มีมาให้ ระบบจะบันทึกข้อผิดพลาดพร้อมการดำเนินการที่ล้มเหลว เพื่อให้
ผู้ดูแลสามารถซ่อมแซม อัปเดต หรือปิดใช้งาน Plugin ได้โดยเอเจนต์ไม่หยุดตอบสนอง
ความล้มเหลวของข้อกำหนดโฮสต์แตกต่างออกไป: เมื่อกลไกประกาศว่ารันไทม์ ขาดความสามารถที่จำเป็น OpenClaw จะปฏิเสธการทำงานก่อนเริ่มการรัน ซึ่งช่วย ปกป้องกลไกที่อาจทำให้สถานะเสียหายหากทำงานในโฮสต์ที่ไม่รองรับ
ownsCompaction
ownsCompaction ควบคุมว่าจะเปิดใช้การทำ Compaction อัตโนมัติภายในความพยายามที่มีมาให้ในรันไทม์ OpenClaw สำหรับการรันนั้นหรือไม่:
ownsCompaction: true
กลไกเป็นเจ้าของลักษณะการทำงานของ Compaction OpenClaw จะปิดใช้การทำ Compaction อัตโนมัติที่มีมาให้ในรันไทม์ OpenClaw และการตรวจสอบโอเวอร์โฟลว์ทั่วไปก่อนพรอมต์สำหรับการรันนั้น โดยการใช้งาน compact() ของกลไกจะรับผิดชอบ /compact, การทำ Compaction เพื่อกู้คืนจากโอเวอร์โฟลว์ของผู้ให้บริการ และการทำ Compaction เชิงรุกใดๆ ที่ต้องการดำเนินการใน afterTurn() ทั้งนี้ OpenClaw จะยังคงเรียกใช้มาตรการป้องกันโอเวอร์โฟลว์ก่อนพรอมต์เมื่อกลไกส่งคืน promptAuthority: "preassembly_may_overflow" จาก assemble()
ownsCompaction: false or unset
การทำ Compaction อัตโนมัติที่มีมาให้ในรันไทม์ OpenClaw อาจยังคงทำงานระหว่างการประมวลผลพรอมต์ แต่เมธอด compact() ของกลไกที่ใช้งานอยู่จะยังคงถูกเรียกสำหรับ /compact และการกู้คืนจากโอเวอร์โฟลว์
ซึ่งหมายความว่ามีรูปแบบ Plugin ที่ถูกต้องสองแบบ:
โหมดเป็นเจ้าของ
ใช้อัลกอริทึม Compaction ของคุณเองและตั้งค่า ownsCompaction: true
โหมดมอบหมาย
ตั้งค่า ownsCompaction: false และให้ compact() เรียก delegateCompactionToRuntime(...) จาก openclaw/plugin-sdk/core เพื่อใช้ลักษณะการทำงานของ Compaction ที่มีมาให้ใน OpenClaw
compact() ที่ไม่ดำเนินการใดๆ ไม่ปลอดภัยสำหรับกลไกที่ใช้งานอยู่และไม่ได้เป็นเจ้าของ เนื่องจากจะปิดใช้เส้นทาง Compaction ตามปกติของ /compact และเส้นทางการกู้คืนจากโอเวอร์โฟลว์สำหรับช่องกลไกนั้น
ข้อมูลอ้างอิงการกำหนดค่า
{ plugins: { slots: { // เลือกกลไกบริบทที่ใช้งานอยู่ ค่าเริ่มต้น: "legacy" // ตั้งค่าเป็น ID ของ Plugin เพื่อใช้กลไก Plugin contextEngine: "legacy", }, },}ความสัมพันธ์กับ Compaction และหน่วยความจำ
Compaction
Compaction เป็นหนึ่งในความรับผิดชอบของกลไกบริบท กลไกแบบดั้งเดิมมอบหมายให้ระบบสรุปที่มีมาให้ใน OpenClaw ส่วนกลไก Plugin สามารถใช้กลยุทธ์ Compaction ใดๆ ก็ได้ (การสรุปแบบ DAG, การค้นคืนด้วยเวกเตอร์ เป็นต้น)
Plugin หน่วยความจำ
Plugin หน่วยความจำ (plugins.slots.memory) แยกจากกลไกบริบท Plugin หน่วยความจำมีความสามารถด้านการค้นหา/ค้นคืน ส่วนกลไกบริบทควบคุมสิ่งที่โมเดลมองเห็น ทั้งสองสามารถทำงานร่วมกันได้ โดยกลไกบริบทอาจใช้ข้อมูลจาก Plugin หน่วยความจำระหว่างการประกอบ กลไก Plugin ที่ต้องการเส้นทางพรอมต์ของหน่วยความจำที่ใช้งานอยู่ควรเลือกใช้ buildMemorySystemPromptAddition(...) จาก openclaw/plugin-sdk/core ซึ่งจะแปลงส่วนพรอมต์ของหน่วยความจำที่ใช้งานอยู่ให้เป็น systemPromptAddition ที่พร้อมนำไปวางไว้ข้างหน้า หากกลไกต้องการการควบคุมระดับต่ำกว่า ก็ยังสามารถดึงบรรทัดดิบจาก openclaw/plugin-sdk/memory-host-core ผ่าน buildActiveMemoryPromptSection(...) ได้
การตัดทอนเซสชัน
การตัดผลลัพธ์เก่าของเครื่องมือออกจากหน่วยความจำยังคงทำงานไม่ว่ากลไกบริบทใดจะใช้งานอยู่
เคล็ดลับ
- ใช้
openclaw doctorเพื่อตรวจสอบว่ากลไกโหลดอย่างถูกต้อง - เมื่อสลับกลไก เซสชันที่มีอยู่จะดำเนินต่อด้วยประวัติปัจจุบัน กลไกใหม่จะเข้าควบคุมการรันในอนาคต
- ระบบจะบันทึกข้อผิดพลาดของกลไก และกลไก Plugin ที่เลือกจะถูกกักกันสำหรับกระบวนการ Gateway ปัจจุบัน OpenClaw จะกลับไปใช้
legacyสำหรับรอบการโต้ตอบของผู้ใช้เพื่อให้ตอบกลับต่อไปได้ แต่ยังคงควรซ่อมแซม อัปเดต ปิดใช้งาน หรือถอนการติดตั้ง Plugin ที่เสียหาย - สำหรับการพัฒนา ให้ใช้
openclaw plugins install -l ./my-engineเพื่อเชื่อมโยงไดเรกทอรี Plugin ภายในเครื่องโดยไม่ต้องคัดลอก
ที่เกี่ยวข้อง
- Compaction - การสรุปบทสนทนาที่ยาว
- บริบท - วิธีสร้างบริบทสำหรับรอบการทำงานของเอเจนต์
- สถาปัตยกรรม Plugin - การลงทะเบียน Plugin กลไกบริบท
- ไฟล์กำกับ Plugin - ฟิลด์ของไฟล์กำกับ Plugin
- Plugin - ภาพรวมของ Plugin