Fundamentals
กลไกบริบท
A กลไกบริบท ควบคุมวิธีที่ 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 เรียกใช้พรอมต์ของโมเดล กลไกบริบทจะมีส่วนร่วมในสี่จุดของวงจรชีวิต:
1. รับเข้า
เรียกใช้เมื่อเพิ่มข้อความใหม่ลงในเซสชัน กลไกสามารถจัดเก็บหรือทำดัชนีข้อความไว้ในที่เก็บข้อมูลของตนเอง
2. ประกอบ
เรียกใช้ก่อนการทำงานของโมเดลแต่ละครั้ง กลไกจะส่งคืนชุดข้อความตามลำดับ (และ systemPromptAddition ซึ่งเป็นตัวเลือก) ที่อยู่ภายในงบประมาณโทเค็น
3. ทำ Compaction
เรียกใช้เมื่อหน้าต่างบริบทเต็ม หรือเมื่อผู้ใช้เรียกใช้ /compact กลไกจะสรุปประวัติเก่าเพื่อเพิ่มพื้นที่ว่าง
4. หลังจบรอบ
เรียกใช้หลังจากการทำงานเสร็จสิ้น กลไกสามารถคงสถานะไว้ เรียกใช้ Compaction เบื้องหลัง หรืออัปเดตดัชนี
กลไกยังสามารถนำเมธอด maintain() ซึ่งเป็นตัวเลือกไปใช้สำหรับการบำรุงรักษาทรานสคริปต์ (การเขียนใหม่อย่างปลอดภัยผ่าน runtimeContext.rewriteTranscriptEntries()) หลังการบูตสแตรป รอบที่สำเร็จ หรือการทำ Compaction ได้ ตั้งค่า info.turnMaintenanceMode: "background" เพื่อเรียกใช้เป็นงานที่เลื่อนออกไปแทนการบล็อกการตอบกลับ
สำหรับชุดเครื่องมือ Codex แบบ non-ACP ที่รวมมาให้ OpenClaw ใช้วงจรชีวิตเดียวกันโดยฉายบริบทที่ประกอบแล้วไปยังคำสั่งสำหรับนักพัฒนาของ Codex และพรอมต์ของรอบปัจจุบัน Codex ยังคงเป็นเจ้าของประวัติเธรดดั้งเดิมและตัวทำ Compaction ดั้งเดิมของตนเอง
วงจรชีวิตของเอเจนต์ย่อย (ไม่บังคับ)
OpenClaw เรียกฮุกวงจรชีวิตของเอเจนต์ย่อยสองรายการที่เป็นตัวเลือก:
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, agentSessionKey: sessionKey, }), }; }, async compact({ sessionId, force }) { // สรุปบริบทเก่า return { ok: true, compacted: true }; }, }));}แฟกทอรี ctx มีค่า config, agentDir และ workspaceDir
ที่เป็นตัวเลือก เพื่อให้ Plugin สามารถเตรียมใช้งานสถานะต่อเอเจนต์หรือต่อพื้นที่ทำงานก่อน
การเรียกวงจรชีวิตครั้งแรก ก่อนการเรียก assemble() ที่ไม่ใช่กลไกเดิม โฮสต์จะดำเนินการ
เตรียมพรอมต์หน่วยความจำแบบอะซิงโครนัสที่ลงทะเบียนไว้จนเสร็จสมบูรณ์ ตัวช่วยแบบซิงโครนัส
buildMemorySystemPromptAddition(...) จะอ่านสแนปช็อตการทำงานที่เปลี่ยนแปลงไม่ได้ดังกล่าว
โดยส่งต่อบริบทของเครื่องมือ การอ้างอิง เอเจนต์ และเซสชันที่ให้มาโดยไม่เปลี่ยนแปลง
จากนั้นเปิดใช้งานในการกำหนดค่า:
{ 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) และรหัสชุดทดสอบ/รันไทม์ที่ระบุหรือไม่ก็ได้contextEngineSelection: รหัสกลไกบริบทที่เลือกและแหล่งที่มาของการเลือกexecutionHost: รหัสและป้ายกำกับโฮสต์สำหรับพื้นผิวที่เรียกใช้ฮุก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" // ตั้งเป็นรหัส 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 ที่พร้อมเติมไว้ด้านหน้า โดยไม่เปิดเผยโครงสร้างของ Plugin หน่วยความจำ
การตัดแต่งเซสชัน
การตัดผลลัพธ์เก่าของเครื่องมือออกจากหน่วยความจำยังคงทำงาน ไม่ว่ากลไกบริบทใดจะใช้งานอยู่
เคล็ดลับ
- ใช้
openclaw doctorเพื่อตรวจสอบว่ากลไกของคุณโหลดอย่างถูกต้อง - เมื่อสลับกลไก เซสชันที่มีอยู่จะดำเนินต่อด้วยประวัติปัจจุบัน กลไกใหม่จะเข้าควบคุมการรันในอนาคต
- ระบบจะบันทึกข้อผิดพลาดของกลไกและกักกันกลไก Plugin ที่เลือกสำหรับกระบวนการ Gateway ปัจจุบัน OpenClaw จะถอยกลับไปใช้
legacyสำหรับรอบสนทนาของผู้ใช้เพื่อให้ตอบกลับต่อไปได้ แต่ยังคงควรซ่อมแซม อัปเดต ปิดใช้งาน หรือถอนการติดตั้ง Plugin ที่เสียหาย - สำหรับการพัฒนา ให้ใช้
openclaw plugins install -l ./my-engineเพื่อเชื่อมโยงไดเรกทอรี Plugin ในเครื่องโดยไม่ต้องคัดลอก
เนื้อหาที่เกี่ยวข้อง
- Compaction - การสรุปบทสนทนาที่ยาว
- บริบท - วิธีสร้างบริบทสำหรับรอบการทำงานของเอเจนต์
- สถาปัตยกรรม Plugin - การลงทะเบียน Plugin กลไกบริบท
- ไฟล์มานิเฟสต์ของ Plugin - ฟิลด์ในไฟล์มานิเฟสต์ของ Plugin
- Plugin - ภาพรวม Plugin