[2026-06-16] balda: sync docs with disabled events polling; add zulip-router bot creation guide
This commit is contained in:
@@ -19,24 +19,24 @@ docker-compose build && docker-compose up -d
|
||||
## Архитектура получения сообщений
|
||||
Валера — **outgoing webhook bot** (bot_type=3). Zulip отправляет webhook только для @mention и DM.
|
||||
|
||||
Для получения всех сообщений в теме — Events API polling (горутина в коде):
|
||||
- `events_polling.enabled: true` в config.yaml
|
||||
- Очередь регистрируется с `all_public_streams=true`
|
||||
- Бот подписывается на все публичные стримы при старте (`SubscribeToPublicStreams`)
|
||||
Для получения всех сообщений в теме — **Events API polling** (отключён, после деплоя zulip-router будет удалён из кода):
|
||||
- `events_polling.enabled: false` в config.yaml (текущее состояние)
|
||||
- Сообщения приходят только через **outgoing webhook** (webhook_token в .env)
|
||||
- После @mention создаётся сессия; последующие сообщения без @mention обрабатываются
|
||||
|
||||
**После перезапуска**: нужно один раз написать `@Валера <текст>` чтобы создать сессию в теме.
|
||||
|
||||
## Диагностика молчания
|
||||
1. Проверить логи: `docker logs balda-agent-valera-1 --tail 50`
|
||||
2. Проверить что Events API polling запустился: `zulip events queue registered` в логах
|
||||
2. Проверить что бот запущен и webhook слушает: в логах `zulip webhook server starting addr=0.0.0.0:8091`
|
||||
3. Стухший NATS-таск (симптом: логов нет после @mention)
|
||||
Фикс: `docker-compose restart` (NATS embedded, состояние в памяти)
|
||||
4. Бот не подписан на стримы (симптом: `processing zulip message trigger=stream` не появляется):
|
||||
4. Проверить webhook со стороны: отправить POST с curl:
|
||||
```bash
|
||||
curl -u "<bot_email>:<api_key>" https://zulip.qentra.top/api/v1/users/me/subscriptions
|
||||
curl -X POST http://localhost:8091/zulip/webhook \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"type":"test"}'
|
||||
```
|
||||
Если пустой — должен подписаться при следующем старте. Или вручную через API.
|
||||
|
||||
## Патчи в коде (общие с Клавдием)
|
||||
|
||||
@@ -82,7 +82,7 @@ balda:
|
||||
provider: deepseek
|
||||
zulip:
|
||||
events_polling:
|
||||
enabled: true
|
||||
enabled: false # true → если events polling нужен (сейчас отключён)
|
||||
stream_only_with_session: true
|
||||
runtime:
|
||||
providers:
|
||||
|
||||
@@ -22,9 +22,9 @@ docker-compose build && docker-compose up -d # после изменений в
|
||||
|
||||
Клавдий — **outgoing webhook bot** (bot_type=3). Zulip отправляет webhook только для @mention и DM.
|
||||
|
||||
Для получения всех сообщений в теме — **Events API polling**:
|
||||
- Подписан на все публичные стримы при старте
|
||||
- После @mention создаётся сессия; последующие сообщения без @mention обрабатываются
|
||||
Для получения всех сообщений в теме — **Events API polling** (отключён, после деплоя zulip-router будет удалён из кода):
|
||||
- `events_polling.enabled: false` в config.yaml (текущее состояние)
|
||||
- Сообщения приходят только через **outgoing webhook**
|
||||
|
||||
## Отличие от Валеры
|
||||
|
||||
|
||||
@@ -75,16 +75,35 @@ zulip:
|
||||
|
||||
**Compose:** `~/Docker/zulip-router/docker-compose.yaml`
|
||||
|
||||
**Env vars:**
|
||||
### Перед запуском: создать бота-роутера в Zulip
|
||||
|
||||
Нужен **отдельный** бот (не valera-bot, не claudio-bot).
|
||||
|
||||
1. В Zulip: **Settings → Bots → Add a new bot**
|
||||
2. Тип: **Outgoing webhook**
|
||||
3. Имя: `zulip-router` (или любое)
|
||||
4. Bot email: скопировать (понадобится в .env)
|
||||
5. API key: скопировать (понадобится в .env)
|
||||
6. Endpoint URL: не заполнять (роутер сам поллит, webhook от Zulip ему не нужен)
|
||||
7. Сохранить
|
||||
|
||||
### Env vars
|
||||
|
||||
Создать `~/Docker/zulip-router/.env`:
|
||||
```env
|
||||
ZULIP_ROUTER_API_KEY=<api-key бота-роутера>
|
||||
ZULIP_ROUTER_BOT_EMAIL=zulip-router-bot@zulip.qentra.top
|
||||
ZULIP_ROUTER_API_KEY=<api-key из шага 5>
|
||||
|
||||
# Куда форвардить
|
||||
VALERA_WEBHOOK=http://balda-agent-valera-1:8091/zulip/webhook
|
||||
CLAUDIO_WEBHOOK=http://claudio-agent-claudio-1:8092/zulip/webhook
|
||||
```
|
||||
|
||||
**Запуск:**
|
||||
### Запуск
|
||||
```bash
|
||||
cd ~/Docker/zulip-router
|
||||
docker-compose up -d
|
||||
```
|
||||
docker logs zulip-router --tail 20 # проверить что poll loop запущен
|
||||
|
||||
## TODO
|
||||
|
||||
|
||||
Reference in New Issue
Block a user