[2026-10-09] eagle: family/how-to/samsung-m2020.md personal/plans/balda-callee-prism-plan.md personal/plans/balda-mm-endtoend-plan.md personal/plans/balda-mm-phase4-agents.md personal/plans/balda-runtime-rebuild-mm-validation.md personal/projects/balda/balda-kraken-mm-deploy.md personal/projects/balda/balda-mm-delegation-plan.md personal/projects/balda/balda-valera.md personal/projects/balda/claudio-klaudiy.md personal/projects/balda/fast-rlm-integration.md
This commit is contained in:
1 parent
c3d6d48141
commit
b4747b5c09
16 files changed
+132
-66
No files matched your search
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Исторический документ
|
||||
> Не использовать как runbook текущей Balda. Актуальная локальная схема, пути и команды: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Текущий контейнер: `balda-mm-mac`; config: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`; Obsidian MCP: `type: http`, `http://host.docker.internal:3101/mcp`.
|
||||
> Материал ниже сохранён только как история.
|
||||
|
||||
# Фаза 3 — Балда на Kraken + Mattermost (деплой)
|
||||
|
||||
> ⛔ **2026-09-29: СТЕК СНЕСЁН.** Контейнеры `balda-mm`, `balda-executor-mcp`, `obsidian-mcp`
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# Balda 2.0 — Mattermost + распределённое делегирование (план)
|
||||
|
||||
> Создан 2026-09-25. Статус (обновлён **2026-09-28**): **Фазы 1-3 закрыты** (MM на Kraken ·
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# Балда / Валера — эксплуатация & MCP debug
|
||||
|
||||
> ## ⛔ СНЕСЁН 2026-09-29 — агент удалён на Mac
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# Клавдий (Claudio) — эксплуатация
|
||||
|
||||
## Расположение
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Исторический документ
|
||||
> Не использовать как runbook текущей Balda. Актуальная локальная схема, пути и команды: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Текущий контейнер: `balda-mm-mac`; config: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`; Obsidian MCP: `type: http`, `http://host.docker.internal:3101/mcp`.
|
||||
> Материал ниже сохранён только как история.
|
||||
|
||||
# fast-rlm MCP HTTP integration with Balda
|
||||
|
||||
> ## ⚠️ СТАТУС (2026-09-25)
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
> [!WARNING] Историческая схема Balda
|
||||
> Не использовать пути, контейнеры, provider или MCP transport из этой заметки для текущего запуска.
|
||||
> Канонический текущий runbook: [[personal/projects/balda/setup|Balda — актуальный локальный запуск]].
|
||||
> Актуально: `balda-mm-mac`, `/Users/admin/Docker/balda-mm-mac/config/config.yaml`, Mattermost, Codex ACP, Obsidian `type: http` → `http://host.docker.internal:3101/mcp`.
|
||||
|
||||
# Mattermost на Kraken — деплой (arm64)
|
||||
|
||||
> Создано 2026-09-26. Обновлено 2026-09-26. Статус: **✅ СЕРВЕР РАБОТАЕТ**.
|
||||
|
||||
@@ -1,86 +1,79 @@
|
||||
# Balda — Setup & Config
|
||||
# Balda — актуальный локальный запуск
|
||||
|
||||
_Последнее обновление: 2026-06-24_
|
||||
_Проверено: 2026-10-09._
|
||||
|
||||
## Хост
|
||||
> Это основной runbook для текущей Balda на Mac. Старые документы про `balda-agent-valera-1`, Zulip и Kraken — исторические.
|
||||
|
||||
Mac (Eagle), **Colima** (arm64, 8 CPU, 24 GB RAM, 100 GB sparse disk). Контейнеры собираются из исходников в `~/Developer/balda/`.
|
||||
## Текущая схема
|
||||
|
||||
**Важно:** `buildx_buildkit_arm64builder0_state` volume — основная причина зависаний Zulip при сборке. См. [[tech/docker-mac-disk-issues]].
|
||||
- Хост: Mac.
|
||||
- Контейнер: `balda-mm-mac`.
|
||||
- Канал: Mattermost.
|
||||
- Провайдер: Codex ACP.
|
||||
- Compose: `/Users/admin/Docker/balda-mm-mac/docker-compose.yml`.
|
||||
- Конфиг: `/Users/admin/Docker/balda-mm-mac/config/config.yaml`.
|
||||
- Состояние и managed plugins: `/Users/admin/Docker/balda-mm-mac/state`.
|
||||
- Рабочие каталоги: `/Users/admin/Docker/balda-mm-mac/work`.
|
||||
|
||||
## Компоненты
|
||||
Каталоги `config`, `state` и `work` bind-mounted в контейнер. Домашний каталог контейнера хранится в Docker volume `balda_balda-home`.
|
||||
|
||||
| Бот | Порт | Провайдер | Dockerfile |
|
||||
|-----|------|-----------|------------|
|
||||
| **Валера** (`balda-agent-valera-1`) | `:8091` | DeepSeek | `Dockerfile` (одинаковый) |
|
||||
| **Клавдий** (`claudio-agent-claudio-1`) | `:8092` | Claude (через proxy :3457) | `Dockerfile.claudio` (тот же + arm64 target) |
|
||||
## Что применять какой командой
|
||||
|
||||
## Расположение
|
||||
| Изменение | Действие |
|
||||
|---|---|
|
||||
| Только содержимое `config/config.yaml` | `docker restart balda-mm-mac` |
|
||||
| `.env`, environment, mounts или service definition в Compose | `docker-compose up -d balda` |
|
||||
| Новый image/tag | `docker-compose pull && docker-compose up -d balda` |
|
||||
| Изменение исходного кода | Собрать image, затем `docker-compose up -d balda` |
|
||||
| Managed plugin | Использовать `/plugin install\|upgrade\|enable\|disable\|remove` |
|
||||
| Plugin/skill для уже открытой беседы | `/reset` после активации изменения |
|
||||
|
||||
| Item | Валера | Клавдий |
|
||||
|------|--------|---------|
|
||||
| Compose | `~/Docker/balda-agent/docker-compose.yaml` | `~/Docker/claudio-agent/docker-compose.yaml` |
|
||||
| Config volume | `~/Docker/balda-agent/.config/balda/` | `~/Docker/claudio-agent/.config/balda/` |
|
||||
| Env | `~/Docker/balda-agent/.env` | `~/Docker/claudio-agent/.env` |
|
||||
| Dev repo (общий) | `~/Developer/balda/` | `~/Developer/balda/` |
|
||||
`docker restart` перечитывает bind-mounted `config.yaml`, потому что Balda читает его при старте процесса. Он не перечитывает `.env` и не применяет изменения Compose.
|
||||
|
||||
**Важно:** оба бота собираются из одного репозитория `~/Developer/balda/` (normahq/balda fork). Разница — только в config.yaml (провайдер) и .env (Zulip credentials).
|
||||
Принудительное `--force-recreate` для изменения только `config.yaml` не требуется.
|
||||
|
||||
## Образ
|
||||
## Plugins и skills
|
||||
|
||||
- Собирается локально из `Dockerfile` (Go, multi-stage: golang:1.26 → alpine:3)
|
||||
- Target: `linux/arm64` (статический Go бинарник)
|
||||
- Image name: `balda-agent-valera:latest` / `claudio-agent-claudio:latest` (по имени compose проекта)
|
||||
- Entrypoint: `/usr/local/bin/balda` (ELF arm64)
|
||||
- Сеть: `balda_default` (bridge, внешняя, создаётся через docker network create)
|
||||
Managed plugin revisions в `state` неизменяемые и проверяются по digest. Их нельзя редактировать вручную в папке. Изменения устанавливаются через команды `/plugin`.
|
||||
|
||||
## Запуск / рестарт
|
||||
Каталог плагинов обновляется в работающем процессе после install/upgrade/enable/disable/remove. Уже созданная сессия закреплена за старым snapshot, поэтому для неё нужен `/reset`.
|
||||
|
||||
Файлы standalone skills редактировать можно, но существующая сессия также увидит новый snapshot только после `/reset`.
|
||||
|
||||
## Codex ACP
|
||||
|
||||
Актуальный reasoning effort: `medium`.
|
||||
|
||||
Codex авторизация хранится в home-volume контейнера. Для headless-входа:
|
||||
|
||||
**Валера:**
|
||||
```bash
|
||||
cd ~/Docker/balda-agent
|
||||
docker-compose restart # без пересборки, без перечитывания .env
|
||||
docker-compose up -d # пересоздаёт контейнер с текущим .env
|
||||
docker-compose build && docker-compose up -d # после изменений в коде
|
||||
cd /Users/admin/Docker/balda-mm-mac
|
||||
docker-compose run --rm --entrypoint codex balda login --device-auth
|
||||
```
|
||||
|
||||
**Клавдий:**
|
||||
## Obsidian MCP
|
||||
|
||||
Codex ACP поддерживает `stdio` и Streamable HTTP. SSE-конфигурация не поддерживается.
|
||||
|
||||
```yaml
|
||||
mcp_servers:
|
||||
obsidian:
|
||||
type: http
|
||||
url: http://host.docker.internal:3101/mcp
|
||||
name: obsidian
|
||||
```
|
||||
|
||||
После изменения только этого блока:
|
||||
|
||||
```bash
|
||||
cd ~/Docker/claudio-agent
|
||||
# те же команды
|
||||
docker restart balda-mm-mac
|
||||
```
|
||||
|
||||
**После изменений кода** (в `~/Developer/balda/`): `build && up -d` в каждом compose.
|
||||
## Проверка
|
||||
|
||||
## .env (общие переменные)
|
||||
|
||||
```env
|
||||
OPENAI_BASE_URL=https://api.deepseek.com/v1 # обязательна для deepseek provider
|
||||
# для claude provider не нужна
|
||||
```bash
|
||||
docker ps --filter name=balda-mm-mac
|
||||
docker logs --tail 120 balda-mm-mac
|
||||
```
|
||||
|
||||
**Важно:** `docker-compose restart` не перечитывает `.env`. Только `docker-compose up -d`.
|
||||
|
||||
## Известные грабли
|
||||
|
||||
### 1. OPENAI_BASE_URL — обязательна для DeepSeek
|
||||
Norma не читает `base_url` из config.yaml для `provider: deepseek`. Читает env `OPENAI_BASE_URL`.
|
||||
Без неё запросы уходят на `api.openai.com` (401).
|
||||
|
||||
### 2. DOCKER_OPTS — пустая строка убивает старт
|
||||
```env
|
||||
DOCKER_OPTS={"max_tokens": 2048, "temperature": 0.7}
|
||||
```
|
||||
Не пустая строка! Иначе `strconv.ParseFloat: parsing ""` при старте.
|
||||
|
||||
### 3. exec format error на arm64
|
||||
Симптом: контейнер в crash-цикле, логи повторяют `exec /usr/local/bin/balda: exec format error`.
|
||||
Docker показывает `Up N hours` (накопленное время рестартов), но exec не работает.
|
||||
|
||||
**Причина:** контейнер создан с `Platform: linux/amd64` (старый Docker Desktop или первый run без platform). Образ arm64, контейнер amd64 — несовместимость.
|
||||
|
||||
**Фикс:** `docker-compose down; docker-compose up -d` — удаляет старый контейнер и создаёт новый с правильной платформой.
|
||||
|
||||
### 4. После перезапуска нужно @mention для создания сессии
|
||||
Events API polling подхватывает сообщения только если есть активная сессия в теме.
|
||||
После рестарта: написать `@Валера <текст>` (или `@Клавдий`).
|
||||
В логах должны быть успешная инициализация Codex ACP, готовность provider и подключение Mattermost WebSocket.
|
||||
Reference in new issue
Block a user