swarmclaw: openclaw-управление агентом — tools openclaw_nodes/workspace включены, грабля gatewayProfileId (ломает chat)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
dttb
2026-06-10 12:36:40 +03:00
parent b593bbc52d
commit b93af4b175

View File

@@ -88,6 +88,12 @@ proxy_send_timeout 3600s;
- **Docker-контейнер дотягивается до 100.70.x БЕЗ доп. настройки** — контейнер → default gw (host) → host route `100.70.0.0/16 dev wt0` + Docker bridge MASQUERADE. Проверено: контейнер → `100.70.167.54:18789` (openclaw) → http 200. Интернет (github/docker для kb-pull) работает одновременно, DNS не сломан (resolv.conf остался 1.1.1.1/8.8.8.8).
- **ГРАБЛЯ: только по IP, не по именам.** Magic-DNS `*.netbird.cloud` в контейнере НЕ резолвится — `search dttb.ru` + wildcard `*.dttb.ru` превращают `openclaw.netbird.cloud``openclaw.netbird.cloud.dttb.ru``10.0.0.195` (NPM) → connect fail. Агент, ходивший по имени, «не мог работать с NetBird». **Фикс:** в systemPrompt обоих агентов добавлена инструкция ходить по IP `100.70.x` (адреса в базе), не по `*.netbird.cloud`. По IP — http 200 (проверено агентом через shell). Если нужен доступ по именам — настраивать NetBird magic-DNS в контейнере (пока не делали, по IP достаточно).
## Управление Антошкой агентом — что реально может (2026-06-10)
Device SwarmClaw (10.0.0.135) спарен на openclaw с `operator.admin` (approve сделан при настройке gateway, pending больше нет — агент Дирижёр советовал повторный approve зря).
- **Агентские openclaw-tools:** `openclaw_nodes` (список openclaw-узлов + exec-команды; **НЕ** cron — `action cron` → «Unknown nodes action») и `openclaw_workspace` (backup/rollback/history конфига). Их **надо явно включить** в `agent.tools` — по умолчанию у агента их нет (поэтому Дирижёр сначала не мог рулить Антошкой). Включены для Dirizhyor + Ассистента.
- **Грабля: `agent.gatewayProfileId`** переключает chat-модель агента на gateway-провайдера (openclaw model «default») → `MODEL_NOT_FOUND 404`, агент перестаёт отвечать. **НЕ ставить** `gatewayProfileId` на агенте; openclaw_nodes сам берёт дефолтный gateway-профиль. Оставлять `gatewayProfileId: null`, provider `omniroute`.
- **Полное управление (cron, agent-files SOUL/IDENTITY/.., models, deploy)** — только через UI (Providers → профиль «Antoshka») или SwarmClaw API напрямую (`/api/openclaw/{cron,agent-files,models,...}?profileId=gateway-0eaf65b0` с cookie `sc_auth`). Через агентский чат cron/файлы НЕ редактируются.
## Схема API (для будущих правок headless)
- `POST /api/providers``{id,name,baseUrl,models[],requiresApiKey,isEnabled}` (type всегда `custom`), хранит JSON в таблице `provider_configs`.
- `POST /api/agents` → zod `AgentCreateSchema`; обяз. `name`,`provider`; `ollamaMode` только `local|cloud|null` (не `off`).