swarmclaw: vault залит в Knowledge-раздел (189 entries, авто-цитаты) + daily ре-синк

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
dttb
2026-06-08 23:47:46 +03:00
parent 2d25a6d438
commit 2f8c19cfcc

View File

@@ -61,6 +61,12 @@ tags: [dttb, swarmclaw, openclaw, orchestrator, lxc, docker]
- **Проверено:** на вопрос про openclaw агент сам сделал `grep -ril openclaw /app/data/knowledge-base/projects/dttb` → прочитал `openclaw.md` → ответил точно (LXC 137, 10.0.0.239, 100.70.167.54). RAG-доступ работает. - **Проверено:** на вопрос про openclaw агент сам сделал `grep -ril openclaw /app/data/knowledge-base/projects/dttb` → прочитал `openclaw.md` → ответил точно (LXC 137, 10.0.0.239, 100.70.167.54). RAG-доступ работает.
- **Автообновление:** `/root/kb-pull-swarm.sh` (cron `*/15` на LXC 135) — `git pull` vault из Gitea. Как kb-pull у openclaw 137. - **Автообновление:** `/root/kb-pull-swarm.sh` (cron `*/15` на LXC 135) — `git pull` vault из Gitea. Как kb-pull у openclaw 137.
### Встроенный Knowledge-раздел (доп. путь, по запросу Олега)
SwarmClaw имеет раздел **Knowledge** (`/api/knowledge`), и агент использует его **автоматически**: `prompt-builder` + `selectKnowledgeCitations` инжектят релевантные куски в контекст с цитатами (отдельного tool нет; `knowledge_search`/`knowledge_store` как tools удалены). Поиск — текстовое сходство (jaccard, не embeddings) — для фактов норм.
- **Импортировано 189 entries** (`projects`, `decisions`, `snippets`, `claude-memory`, `templates` — без `daily`/`notes` шума): скрипт POST `/api/knowledge {title,content,sourcePath}` по каждому .md. 0 ошибок.
- **Ре-синк:** `/root/kb-knowledge-sync.sh` (cron `30 3 * * *`) — git pull + удалить наши entries (по `sourcePath` префиксу) + импорт заново. Иначе POST плодит дубли (нет upsert).
- **Итог — два механизма:** (1) Knowledge entries → авто-контекст с цитатами (UI-раздел); (2) файловый workspace → агент grep'ает всю базу (свежее, `*/15`). Дополняют друг друга.
## Схема API (для будущих правок headless) ## Схема API (для будущих правок headless)
- `POST /api/providers``{id,name,baseUrl,models[],requiresApiKey,isEnabled}` (type всегда `custom`), хранит JSON в таблице `provider_configs`. - `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`). - `POST /api/agents` → zod `AgentCreateSchema`; обяз. `name`,`provider`; `ollamaMode` только `local|cloud|null` (не `off`).