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. Записи є шляхами до файлів або шаблонами пошуку відносно кореня пакета:
{ "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.