Fundamentals

กลไกบริบท

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

OpenClaw มาพร้อมกับกลไก legacy ในตัวและใช้เป็นค่าเริ่มต้น ติดตั้งและเลือกกลไก Plugin เฉพาะเมื่อต้องการลักษณะการประกอบบริบท การทำ Compaction หรือการเรียกคืนข้อมูลข้ามเซสชันที่แตกต่างออกไป

เริ่มต้นอย่างรวดเร็ว

  • ตรวจสอบว่ากลไกใดกำลังทำงาน

    bash
    openclaw doctor# หรือตรวจสอบการกำหนดค่าโดยตรง:cat ~/.openclaw/openclaw.json | jq '.plugins.slots.contextEngine'
  • ติดตั้งกลไก Plugin

    Plugin กลไกบริบทติดตั้งได้เช่นเดียวกับ Plugin อื่นของ OpenClaw

    จาก npm

    bash
    openclaw plugins install @martian-engineering/lossless-claw

    จากพาธภายในเครื่อง

    bash
    openclaw plugins install -l ./my-context-engine
  • เปิดใช้งานและเลือกกลไก

    json5
    // 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:

    ts
      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 สามารถกำหนดค่าเริ่มต้นของสถานะต่อเอเจนต์หรือต่อพื้นที่ทำงานก่อนที่ ฮุกวงจรชีวิตแรกจะทำงาน

    จากนั้นเปิดใช้งานในการกำหนดค่า:

    json5
    {  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: ปัจจุบันคือ 1
    • runtime: โฮสต์ OpenClaw, โหมดรันไทม์ (normal, fallback หรือ degraded) และ ID ของชุดทดสอบ/รันไทม์ที่ระบุหรือไม่ก็ได้
    • contextEngineSelection: ID ของกลไกบริบทที่เลือกและแหล่งที่มาของการเลือก
    • executionHost: ID และป้ายกำกับของโฮสต์สำหรับพื้นผิวที่เรียกใช้ฮุก
    • model: โมเดลที่ร้องขอ โมเดลที่ได้รับการแก้ไข ผู้ให้บริการ และตระกูลโมเดลที่ระบุหรือไม่ก็ได้
    • limits: งบประมาณโทเค็นพรอมต์และจำนวนโทเค็นเอาต์พุตสูงสุดเมื่อทราบ
    • diagnostics: รหัสเหตุผลของการปิดทางเลือกสำรองและการทำงานที่ลดระดับลงเมื่อทราบ

    ฟิลด์ที่อาจไม่ทราบจะแสดงเป็น null; ฟิลด์ตัวจำแนก เช่น โหมดรันไทม์และแหล่งที่มาของการเลือก ยังคงไม่อนุญาตให้เป็น null กลไกรุ่นเก่ายังคง ใช้งานร่วมกันได้: หากกลไกแบบดั้งเดิมที่เข้มงวดปฏิเสธ runtimeSettings เนื่องจากเป็น พร็อพเพอร์ตีที่ไม่รู้จัก OpenClaw จะลองเรียกวงจรชีวิตอีกครั้งโดยไม่มีพร็อพเพอร์ตีนี้ แทนที่จะกักกันกลไก

    ข้อกำหนดของโฮสต์

    กลไกบริบทสามารถประกาศข้อกำหนดด้านความสามารถของโฮสต์ใน info.hostRequirements OpenClaw จะตรวจสอบข้อกำหนดเหล่านี้ก่อนเริ่มการดำเนินการ และปฏิเสธการทำงาน พร้อมข้อผิดพลาดที่อธิบายชัดเจนเมื่อรันไทม์ที่เลือกไม่สามารถตอบสนองข้อกำหนดได้

    สำหรับการรันเอเจนต์ ให้ประกาศ assemble-before-prompt เมื่อกลไกต้องควบคุม พรอมต์จริงของโมเดลผ่าน assemble():

    ts
    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 และเส้นทางการกู้คืนจากโอเวอร์โฟลว์สำหรับช่องกลไกนั้น

    ข้อมูลอ้างอิงการกำหนดค่า

    json5
    {  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 ภายในเครื่องโดยไม่ต้องคัดลอก

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

    Was this useful?
    On this page

    On this page