Fundamentals

กลไกบริบท

A กลไกบริบท ควบคุมวิธีที่ 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 เรียกใช้พรอมต์ของโมเดล กลไกบริบทจะมีส่วนร่วมในสี่จุดของวงจรชีวิต:

    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:

    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,          agentSessionKey: sessionKey,        }),      };    },     async compact({ sessionId, force }) {      // สรุปบริบทเก่า      return { ok: true, compacted: true };    },  }));}

    แฟกทอรี ctx มีค่า config, agentDir และ workspaceDir ที่เป็นตัวเลือก เพื่อให้ Plugin สามารถเตรียมใช้งานสถานะต่อเอเจนต์หรือต่อพื้นที่ทำงานก่อน การเรียกวงจรชีวิตครั้งแรก ก่อนการเรียก assemble() ที่ไม่ใช่กลไกเดิม โฮสต์จะดำเนินการ เตรียมพรอมต์หน่วยความจำแบบอะซิงโครนัสที่ลงทะเบียนไว้จนเสร็จสมบูรณ์ ตัวช่วยแบบซิงโครนัส buildMemorySystemPromptAddition(...) จะอ่านสแนปช็อตการทำงานที่เปลี่ยนแปลงไม่ได้ดังกล่าว โดยส่งต่อบริบทของเครื่องมือ การอ้างอิง เอเจนต์ และเซสชันที่ให้มาโดยไม่เปลี่ยนแปลง

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

    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) และรหัสชุดทดสอบ/รันไทม์ที่ระบุหรือไม่ก็ได้
    • contextEngineSelection: รหัสกลไกบริบทที่เลือกและแหล่งที่มาของการเลือก
    • executionHost: รหัสและป้ายกำกับโฮสต์สำหรับพื้นผิวที่เรียกใช้ฮุก
    • 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"      // ตั้งเป็นรหัส 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 ในเครื่องโดยไม่ต้องคัดลอก

    เนื้อหาที่เกี่ยวข้อง

    Was this useful?
    On this page

    On this page