Оглавление: болевые точки · сравнение с LangGraph и CrewAI · минимальные права · схема и предохранитель · шаги воспроизведения · разбор сбоев · цифры для слайдов · FAQ
Ещё по теме: PydanticAI, ретраи JSON Schema, Instructor. Без входа: главная, справка, тарифы, аренда узла.
Три класса отказов которые закрывает эта схема
1. Разрастание инструментов. Локальные добавления обходят шлюз если таблица имён в git не совпадает с маршрутами OpenClaw при старте.
2. Зависание валидатора. Большие ответы делают JSON Schema дорогой; без отдельного дедлайна сбой схемы неотличим от задержки модели.
3. Штормы повторов. Без circuit breaker пятисотые и сбои валидатора клинят память на том же удалённом Mac с инференсом и JSONL.
Чем Strands отличается от LangGraph и CrewAI в этой точке архитектуры
Шлюз везде единый choke point для токена и маршрутов; отличается только модель внутри цикла: Strands — шаги и узлы инструментов, LangGraph — чекпоинты графа, CrewAI — роли и задачи.
| Фокус фреймворка | Что движется внутри цикла агента | Что остаётся на OpenClaw |
|---|---|---|
| Strands Agents | Шаги рабочего процесса, явные узлы инструментов, передачи между стадиями. | Область Bearer, разрешённые маршруты, схемы, таймауты, JSONL, конверты ошибок. |
| LangGraph | Чекпоинты графа, прерываемое состояние, композиция в стеке LangChain. | Тот же контракт шлюза; см. инструменты LangGraph за OpenClaw и песочницу чекпоинтов. |
| CrewAI | Ролевые агенты, доски задач, иерархическая маршрутизация. | Тот же токен и маршруты; см. роутинг CrewAI через шлюз. |
Минимальные права и белый список как контракт RPC
Одна таблица в git: имя, версия схемы аргументов, область диска, владелец. Зеркало в Strands и OpenClaw, неизвестные имена — отказ до побочных эффектов. Только чтение на код, отдельный scratch на SSD, домашний каталог оператора не монтировать без тикета. Bearer только на маршруты инструментов; см. IDE bridge и пробы.
JSON Schema, таймаут валидации и circuit breaker
Каноническая JSON Schema на шлюзе до инференса; этапу валидации — отдельный потолок ниже HTTP таймаута Strands для класса schema_timeout.
Исполнение на шлюзе ниже клиентского дедлайна, очередь с капом, circuit breaker после трёх сбоев валидатора или пятисотых upstream, охлаждение около тридцати секунд. Повторы схемы — инцидент по JSON Pointer а не слепой retry.
# Иллюстративные переменные окружения — секреты вне git
export OPENAI_BASE_URL="http://127.0.0.1:8742/v1"
export STRANDS_HTTP_TIMEOUT_S=62
export OPENCLAW_GATEWAY_TIMEOUT_S=55
export OPENCLAW_JSON_SCHEMA_VALIDATE_TIMEOUT_S=8
export OPENCLAW_BREAKER_THRESHOLD=3
export OPENCLAW_BREAKER_COOLDOWN_S=30
export STRANDS_TOOL_ALLOWLIST_PATH="$HOME/openclaw-scratch/config/strands-tools.yaml"
export STRUCTURED_LOG_PATH="$HOME/openclaw-scratch/logs/strands-workflow.jsonl"Воспроизводимые шаги для инженерного журнала
- Среда. Node 22 LTS, venv Strands, зафиксированные клиенты, пути для launchd или systemd user.
- OpenClaw. gateway listen на 127.0.0.1, токен chmod 600, openclaw doctor --json в артефакты релиза.
- Доступ. SSH reverse tunnel или mesh, без публичного ingress, токены не в репозитории рабочего процесса.
- Списки. Фатальный старт при любом расхождении имён Strands и шлюза.
- Схемы. JSON Schema на маршрут, таймаут валидации, HTTP клиент Strands чуть выше предохранителя шлюза.
- Ошибки. Конверт correlation_id stage code pointer ремедиация для ветвления оркестратора.
- Дым. Успех, нарушение enum, заторможенный upstream — проверка breaker и JSONL.
Разбор типичных сбоев
- Инструменты пропали после минорного обновления. Снова выполните openclaw doctor, сравните манифесты маршрутов шлюза и проверьте не ужесточились ли флаги видимости сессии в закреплённой версии.
- Circuit breaker открывается пока модель ещё стримит текст. Невалидный структурированный JSON считается отказом; расширьте схему или ужесточите промпт, не отключайте валидацию в продакшене.
- SSH туннель рвётся ночью. Включите TCP keepalive на клиенте и сервере, назначьте владельца runbook и алерт по проверке здоровья шлюза с тем же путём что и прод трафик.
Три цифры которые можно цитировать на ревью архитектуры
- Держите таймаут валидации схемы восемь секунд или меньше когда внешний HTTP бюджет близок к минуте на загруженных хостах.
- Открывайте circuit breaker после трёх последовательных отказов с охлаждением тридцать секунд и требуйте явного подтверждения человека перед автоматическим half-open.
- Выравнивайте потолок шлюза на пять–семь секунд ниже клиентского дедлайна чтобы сеть и сериализация оставляли запас на JSON конверт ошибки без обрыва.
- Ротируйте JSONL еженедельно и сжимайте файлы более двухсот мегабайт чтобы диск на Apple Silicon не деградировал при всплесках трафика и длительных ночных прогонах.
FAQ
Нужна ли локальная валидация JSON в Strands? Да для скорости разработки но шлюз остаётся авторитетным источником контракта чтобы все вызывающие стороны делили одну политику отказов.
Где размещать повторы? Рабочий процесс выполняет ограниченный ремонт структурированных полей; OpenClaw владеет транспортно-осознанным backoff после того как circuit breaker снова пропускает трафик.
Публично без входа: тарифы, оформление узла, центр помощи, главная LlmMac, блог.
Итог: зеркалируйте минимальный набор инструментов Strands на OpenClaw, валидируйте JSON Schema под отдельным таймаутом, выровняйте предохранители шлюза с клиентскими дедлайнами и возвращайте обезличенные failure summary чтобы рабочие процессы на удалённом Mac оставались аудируемыми и с минимальными привилегиями по умолчанию.