Technical reference

Архітектура середовища виконання агента

OpenClaw володіє вбудованим середовищем виконання агента. Код середовища виконання розташований у src/agents/, транспорт моделей/провайдерів — у src/llm/, а контракти для плагінів надаються через модулі-агрегатори openclaw/plugin-sdk/*.

Структура середовища виконання

Шлях Відповідає за
src/agents/embedded-agent-runner/ Вбудований цикл спроб (run.ts, run/), вибір моделі та нормалізацію провайдера (model*.ts), параметри запитів для кожного провайдера (extra-params.*), Compaction, підключення транскриптів і сеансів.
src/agents/sessions/ Збереження сеансів (session-manager.ts), виявлення ресурсів (package-manager.ts, resource-loader.ts), завантаження extensions у межах сеансу, шаблони запитів, навички, теми та засоби візуалізації інструментів на основі TUI (tools/).
packages/agent-core/ Багаторазово використовуване ядро агента (@openclaw/agent-core): цикл агента, типи середовища, повідомлення, допоміжні засоби Compaction, шаблони запитів, навички та контракти сховища сеансів.
src/agents/runtime/ Фасад OpenClaw, який з’єднує @openclaw/agent-core із середовищем виконання LLM у SDK плагінів і повторно експортує його разом із локальними проксі-утилітами.
src/agents/agent-tools*.ts Визначення інструментів, що належать OpenClaw, схеми параметрів, політику інструментів, адаптери до та після виклику інструментів, а також інструменти редагування на хості й у пісочниці.
src/agents/agent-hooks/ Вбудовані перехоплювачі середовища виконання: запобіжник Compaction, інструкції Compaction, скорочення контексту.
src/agents/harness/ Реєстр середовищ, політику вибору та життєвий цикл вбудованих і зареєстрованих плагінами середовищ.
src/llm/ Реєстр моделей/провайдерів, допоміжні засоби транспорту та реалізації потокового передавання для окремих провайдерів (src/llm/providers/).

Межі

Ядро викликає вбудоване середовище виконання через модулі OpenClaw і модулі-агрегатори SDK; зовнішніх пакетів фреймворків агентів більше немає. Плагіни використовують документовані точки входу openclaw/plugin-sdk/* і не імпортують внутрішні компоненти src/**.

@earendil-works/pi-tui залишається сторонньою залежністю: це набір термінальних компонентів, який використовується локальним TUI та засобами візуалізації інструментів сеансу. Його перенесення до внутрішнього коду потребувало б окремої роботи з включення залежності до репозиторію.

Маніфести

Пакети ресурсів оголошують ресурси OpenClaw у метаданих package.json. Записи є шляхами до файлів або шаблонами пошуку відносно кореня пакета:

json
{  "openclaw": {    "extensions": ["extensions/index.ts"],    "skills": ["skills/*.md"],    "prompts": ["prompts/*.md"],    "themes": ["themes/*.json"]  }}

Для типів ресурсів, не зазначених у маніфесті, використовується виявлення стандартних каталогів extensions/, skills/, prompts/ і themes/.

Вибір середовища виконання

  • Ідентифікатор вбудованого середовища виконання — openclaw. Застарілий псевдонім pi нормалізується до openclaw; codex-app-server нормалізується до codex.
  • Середовища плагінів реєструють додаткові ідентифікатори середовища виконання (наприклад, codex).
  • Політика середовища виконання визначається конфігурацією agentRuntime.id у межах моделі/провайдера (запис моделі має пріоритет над записом провайдера). Невстановлене значення або default перетворюється на auto.
  • auto вибирає зареєстроване середовище плагіна, яке підтримує ефективний маршрут провайдера, а інакше — вбудоване середовище виконання OpenClaw. Самого лише префікса провайдера або моделі ніколи не достатньо для вибору середовища.
  • OpenAI може неявно вибрати codex лише для точного офіційного HTTPS-маршруту Platform Responses або ChatGPT Responses без явно заданого перевизначення запиту. Адаптери Completions, власні кінцеві точки та маршрути з явно заданою поведінкою запитів залишаються на openclaw; офіційні кінцеві точки зі звичайним HTTP відхиляються. Див. Неявне середовище виконання агента OpenAI.

Пов’язані матеріали

Was this useful?
On this page

On this page