Перейти до основного вмісту
OpenClaw ізолює вибраний рушій плагіна від основного шляху відповіді. Якщо незастарілий рушій відсутній, не проходить перевірку контракту, викидає помилку під час створення фабрики або викидає помилку з методу життєвого циклу, OpenClaw поміщає цей рушій у карантин для поточного процесу Gateway і понижує роботу context-engine до вбудованого рушія legacy. Помилка записується в журнал разом із невдалою операцією, щоб оператор міг виправити, оновити або вимкнути плагін без того, щоб агент замовк. Збої вимог хоста відрізняються: коли рушій оголошує, що середовище виконання не має потрібної можливості, OpenClaw завершує роботу закрито до запуску виконання. Це захищає рушії, які могли б пошкодити стан, якби працювали в непідтримуваному хості.

ownsCompaction

ownsCompaction керує тим, чи залишається вбудоване в середовище виконання OpenClaw автоматичне стиснення всередині спроби ввімкненим для виконання:
Рушій володіє поведінкою стиснення. OpenClaw вимикає вбудоване автоматичне стиснення середовища виконання OpenClaw і загальну попередню перевірку переповнення перед prompt для цього виконання, а реалізація compact() рушія відповідає за /compact, стиснення для відновлення після переповнення провайдера та будь-яке проактивне стиснення, яке рушій хоче виконувати в afterTurn(). OpenClaw все одно запускає захист від переповнення перед prompt, коли рушій повертає promptAuthority: "preassembly_may_overflow" з assemble().
Вбудоване автоматичне стиснення середовища виконання OpenClaw усе ще може запускатися під час виконання prompt, але метод compact() активного рушія все одно викликається для /compact і відновлення після переповнення.
ownsCompaction: false не означає, що OpenClaw автоматично повертається до шляху стиснення рушія legacy.
Це означає, що існують два допустимі шаблони плагінів:
Реалізуйте власний алгоритм стиснення та встановіть ownsCompaction: true.
Порожній compact() небезпечний для активного рушія без володіння, тому що він вимикає звичайний шлях стиснення /compact і відновлення після переповнення для цього слота рушія.

Довідник конфігурації

{
  plugins: {
    slots: {
      // Select the active context engine. Default: "legacy".
      // Set to a plugin id to use a plugin engine.
      contextEngine: "legacy",
    },
  },
}
Слот є ексклюзивним під час виконання - для заданого виконання або операції стиснення розв’язується лише один зареєстрований рушій контексту. Інші ввімкнені плагіни kind: "context-engine" усе ще можуть завантажуватися й виконувати свій реєстраційний код; plugins.slots.contextEngine лише вибирає, який зареєстрований id рушія OpenClaw розв’язує, коли йому потрібен рушій контексту.
Видалення плагіна: коли ви видаляєте плагін, який наразі вибрано як plugins.slots.contextEngine, OpenClaw скидає слот назад до типового значення (legacy). Така сама поведінка скидання застосовується до plugins.slots.memory. Ручне редагування конфігурації не потрібне.

Зв’язок зі стисненням і пам’яттю

Compaction є однією з відповідальностей рушія контексту. Рушій legacy делегує вбудованому підсумовуванню OpenClaw. Рушії плагінів можуть реалізовувати будь-яку стратегію стиснення (підсумки DAG, векторний пошук тощо).
Плагіни пам’яті (plugins.slots.memory) відокремлені від рушіїв контексту. Плагіни пам’яті забезпечують пошук/отримання; рушії контексту контролюють, що бачить модель. Вони можуть працювати разом - рушій контексту може використовувати дані плагіна пам’яті під час складання. Рушіям плагінів, яким потрібен активний шлях prompt пам’яті, слід надавати перевагу buildMemorySystemPromptAddition(...) з openclaw/plugin-sdk/core, який перетворює активні секції prompt пам’яті на готовий для додавання на початок systemPromptAddition. Якщо рушію потрібен нижчорівневий контроль, він усе ще може отримувати сирі рядки з openclaw/plugin-sdk/memory-host-core через buildActiveMemoryPromptSection(...).
Обрізання старих результатів інструментів у пам’яті все одно виконується незалежно від того, який рушій контексту активний.

Поради

  • Використовуйте openclaw doctor, щоб перевірити, що ваш рушій завантажується правильно.
  • Якщо перемикаєте рушії, наявні сесії продовжують працювати з поточною історією. Новий рушій перебирає майбутні виконання.
  • Помилки рушія записуються в журнал, а вибраний рушій плагіна поміщається в карантин для поточного процесу Gateway. OpenClaw повертається до legacy для ходів користувача, щоб відповіді могли продовжуватися, але вам усе одно слід виправити, оновити, вимкнути або видалити несправний плагін.
  • Для розробки використовуйте openclaw plugins install -l ./my-engine, щоб зв’язати локальний каталог плагіна без копіювання.

Пов’язане