Files
obsidian-vault/personal/projects/balda/claudio-klaudiy.md
T

60 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Клавдий (Claudio) — эксплуатация
## Расположение
| Item | Value |
|------|-------|
| Repo | `~/Developer/balda/` (один код с Валерой) |
| Compose | `~/Docker/claudio-agent/docker-compose.yaml` → контейнер `claudio-agent-claudio-1` |
| Config | `~/Docker/claudio-agent/.config/balda/config.yaml` |
| Env | `~/Docker/claudio-agent/.env` |
| Dockerfile | `~/Docker/claudio-agent/Dockerfile.claudio` |
## Запуск / рестарт
```bash
cd ~/Docker/claudio-agent
docker-compose restart # без пересборки
docker-compose build && docker-compose up -d # после изменений в коде
```
## Архитектура получения сообщений
Клавдий — **outgoing webhook bot** (bot_type=3). Zulip отправляет webhook только для @mention и DM.
Для получения всех сообщений в теме — **Events API polling** (отключён, после деплоя zulip-router будет удалён из кода):
- `events_polling.enabled: false` в config.yaml (текущее состояние)
- Сообщения приходят только через **outgoing webhook**
## Отличие от Валеры
- **Провайдер**: `claude` (claude-sonnet-4-6) через Claude Proxy (контейнер, порт 3457)
- **Порт webhook**: 8092 (у Валеры 8091)
- **База**: отдельная SQLite (NATS embedded)
## Проблемы и решения
### Валера отвечал вместо Клавдия на @mention
**Причина**: у Валеры в `allowed_owners` был `admin@zulip.local` (реальный email юзера), а у Клавдия — `amartemyanov@duckduckgo.com` (не совпадает). `isAllowedOwner` возвращал false.
**Решение**: добавлен `admin@zulip.local` в allowed_owners Клавдия.
### Валера отвечал на @mention других ботов (через Events API)
**Причина**: оба бота подписаны на Events API с `all_public_streams=true`. Когда кто-то писал `@Клавдий`, Валера получал это сообщение через Events API и, имея активную сессию в том же треде, отвечал.
**Решение**: пропатчен `zulip_handler.go` — добавлена проверка `extractOtherMention()`: если сообщение со стрима содержит @mention другого бота, игнорировать.
### При первом запуске не отвечает на @mention
Если после запуска не отвечает на @mention — проверить в config.yaml `allowed_owners`:
```yaml
zulip:
allowed_owners:
- admin@zulip.local
```
Owner'ы прописаны в config.yaml статически, команда `/start owner=<token>` не нужна.
При необходимости — пересоздать контейнер: `docker-compose up -d`