[2026-09-27] eagle: personal/plans/balda-mm-phase4-agents.md personal/projects/balda/balda-kraken-mm-deploy.md personal/tech/adk-hostedagent-openai-mcp.md
This commit is contained in:
1 parent
0459fecd6b
commit
982ebb60e7
3 files changed
+244
-15
No files matched your search
@@ -23,8 +23,8 @@
|
||||
| 6e | 🔴 MCP-инструменты НЕ исполняются | ✅ **патч готов 2026-09-27** — форк `mallexxx/runtime` + PR [#4](https://github.com/normahq/runtime/pull/4), `replace` в `go.mod`, образ `balda-mm:0.1.12`. См. §15-16 |
|
||||
| 6f | 🔴 `duplicate tool` — **КОРЕНЬ НАЙДЕН И ДОКАЗАН** (2026-09-27) | ✅ **корень: Balda регистрирует bundled-сервер ДВАЖДЫ на одном URL** (`balda` + `balda-session-memory-<token>`), `hostedToolsets` строит 2 тулсета с одинаковыми инструментами → `PackTool` падает. ⚠️ Прежняя версия («двойная паковка в ADK через `toolPreprocess`+`toolsetPreprocess`») **ОПРОВЕРГНУТА исполняемым тестом** — `mcptoolset.set` не реализует `ProcessRequest`. См. §19 |
|
||||
| 6g | A/B-эксперимент откатом на `0.1.11` | ✅ **доведён 2026-09-27** — `0.1.11` падает С ТЕМ ЖЕ `duplicate tool`. Гипотеза §16.2 («форк обнажил») **ОПРОВЕРГНУТА**: баг был всегда, независимо от раунда. См. §16.4 |
|
||||
| 6h | Фикс дублирующегося тулсета | 🟡 **КОД НАПИСАН 2026-09-27** — дедуп по эндпоинту в `hostedToolsets` (`runtime-local/agentfactory/agentfactory.go`) + 4 теста в `duplicate_toolset_test.go`. `go build`/`go vet` ✅, тесты **не прогнаны**. Остаётся: тесты → образ `balda-mm:0.1.13` → деплой → приёмка. См. §19.3-19.5 |
|
||||
| 7 | Приёмка от аккаунта Alex | 🟡 **метод готов и проверен** — `mmctl --local token generate admin` даёт токен владельца без пароля; пост от `admin` проходит авторизацию (`settlement_stage: accepted`, лог подтверждает). Блокер — ход падает на `duplicate tool` (п. 6f/6h). См. §17 |
|
||||
| 6h | Фикс дублирующегося тулсета | ✅ **ИСПРАВЛЕНО 2026-09-27, `balda-mm:0.1.13` задеплоен** — дедуп по эндпоинту в `hostedToolsets` (`runtime-local/agentfactory/agentfactory.go`) + 6 тестов. `go build`/`go vet`/`go test ./...` ✅. Приёмка от владельца: `@balda вызови executor_health` → ответ `**executor_health:** ok`, `turn_complete: true`, `duplicate tool:` = **0**, deadletter = **0**. См. §19.3-19.5 |
|
||||
| 7 | Приёмка от аккаунта Alex | ✅ **ПРОЙДЕНА 2026-09-27** — пост владельца `cbwsorzwoigbtrdnteugnx4aqo` → ответ бота `edxrgupoxiyig5gzmr79tjypbme`: `**executor_health:** ok`. `settlement_stage: accepted`, `turn_complete: true`, инструмент исполнился. См. §17, §19.5 |
|
||||
|
||||
---
|
||||
|
||||
@@ -1205,7 +1205,37 @@ for _, id := range ids {
|
||||
| `TestMCPEndpointKey` | `?ctx=tok`, `?a=1&b=2` → ключ без query |
|
||||
| `TestMcpToolsetImplementsRequestProcessor` | фиксирует факт: `mcptoolset.set` **не** имеет `ProcessRequest` |
|
||||
|
||||
### 19.5 Состояние и остаток работ
|
||||
### 19.5 ✅ ПРИЁМКА ПРОЙДЕНА — `balda-mm:0.1.13` (2026-09-27)
|
||||
|
||||
Гейты: `go build ./...` ✅ · `go vet ./...` ✅ · `go test ./...` форка ✅ ·
|
||||
`go test ./agentfactory/ -run 'Toolset|MCPEndpoint|McpToolset' -v` → **6/6 PASS**.
|
||||
|
||||
Деплой: compose `image: balda-mm:0.1.13` (бэкап `docker-compose.yml.bak-013-<ts>`),
|
||||
`docker compose up -d --force-recreate`, старт OK (`Balda bot started`).
|
||||
|
||||
**Приёмка от владельца** (`@balda вызови executor_health и покажи результат`):
|
||||
|
||||
```
|
||||
1790454574509 | cbwsorzwoigb | @balda вызови executor_health и покажи результат
|
||||
1790454694404 | edxrgupoxiyg | **executor_health:** `ok`
|
||||
```
|
||||
|
||||
Метрики нового контейнера:
|
||||
|
||||
| Проверка | Значение |
|
||||
|---|---|
|
||||
| `duplicate tool:` (ошибка) | **0** ✅ |
|
||||
| `turn task failed` / `command deadlettered` | **0** ✅ |
|
||||
| `turn_complete` / `final_response` | `true` / `true` ✅ |
|
||||
| `function_response_part_count` | **1** — инструмент реально вызван ✅ |
|
||||
| `delivery settled` (`agent_reply`) | `success` ✅ |
|
||||
| Строка фикса в логе | `[mcp] skipping duplicate toolset "balda": endpoint already served by "balda-session-memory-<token>"` ✅ |
|
||||
|
||||
⚠️ **Питфолл своей же проверки:** `grep -c "duplicate tool"` даёт **1**, потому что моя строка
|
||||
лога — «skipping **duplicate tool**set». Искать ошибку надо строго как `grep -c "duplicate tool:"`
|
||||
(с двоеточием, как в формате `PackTool`). Иначе ложная тревога на ровном месте.
|
||||
|
||||
Остаток: §0 строка 6e (форк) — закрыта ранее; **6f/6g/6h/7 — ✅**.
|
||||
|
||||
Гейты (прогнано 2026-09-27): `go build ./...` → **OK**, `go vet ./...` → **OK**,
|
||||
`go test ./...` в форке → **все зелёные**. Целевой прогон:
|
||||
@@ -1213,6 +1243,21 @@ for _, id := range ids {
|
||||
видно требуемое поведение: `[mcp] skipping duplicate toolset "balda": endpoint already served
|
||||
by "balda-session-memory-abc123"` — выживает именно scoped-запись.
|
||||
|
||||
### 19.6 Остаток работ (незначительный)
|
||||
|
||||
| # | Пункт | Почему не срочно |
|
||||
|---|---|---|
|
||||
| 1 | Удалить с Kraken диагностический образ `balda-mm:0.1.13-diag` | Он уже не используется: compose указывает на `0.1.13`. Занимает ~79 МБ |
|
||||
| 2 | Почистить старые теги `balda-mm:0.1.0`…`0.1.9` | Оставлены ранее осознанно для отката; `0.1.10`-`0.1.13` трогать не нужно |
|
||||
| 3 | Завести Access Application на `agents-bridge.qentra.top` | Отдельный пункт §9.5, к этому дефекту не относится |
|
||||
|
||||
⛔ **Не удалять** без явного подтверждения Alex (правило: никаких удалений без апрува).
|
||||
|
||||
⚠️ **Урок про перегенерацию образа:** сборка, запущенная **до** последней правки кода, даёт
|
||||
устаревший бинарник. В этой сессии так и случилось: build стартовал, затем правки в
|
||||
`mcpEndpointKey` (добавлен `sse`), пришлось убивать процесс и пересобирать. Порядок:
|
||||
**сначала все правки → финальный `go build`/`go test` → и только потом docker build.**
|
||||
|
||||
🔴 **Проверка чувствительности теста:** отключение keeper-предпочтения (`if false && …`)
|
||||
тест **не ломает** — он проверял только количество. Поэтому добавлен `selectScopedOnly`:
|
||||
теперь тест падает, если выживает не scoped-запись. Слабый тест = ложная уверенность.
|
||||
|
||||
Reference in new issue
Block a user