[2026-09-27] eagle: family/plans/music-jellyfin-lidarr-taiga.md personal/plans/balda-mm-phase4-agents.md personal/projects/balda/balda-kraken-mm-deploy.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-27 02:15:59 +06:00
1 parent 74193b4d08
commit 51189c64f9
3 files changed
+467 -17

No files matched your search

@@ -4,17 +4,23 @@
> Статус: **✅ РАБОТАЕТ. Бот отвечает аккаунту Alex.** Образ `0.1.10` (коммит `9f1e6c9c`,
> он же PR baldaworks/balda#8).
> 🔴 **ТЕКУЩЕЕ СОСТОЯНИЕ (2026-09-27): бот отвечает ТЕКСТОМ, инструменты вызвать НЕЛЬЗЯ.**
> На Kraken стоит `balda-mm:0.1.11`. Любой ход с **явным вызовом инструмента** падает с
> `duplicate tool: "balda.control.shutdown"` — **на `0.1.11` тоже**, не только на `0.1.12`
> На Kraken стоит **диагностический** `balda-mm:0.1.13-diag` (не `0.1.11` — оно подменено в
> ходе сессии). Любой ход с **явным вызовом инструмента** падает с
> `duplicate tool: "balda.control.shutdown"` — на `0.1.11` тоже, не только на `0.1.12`
> (A/B проведён 2026-09-27, лог подтверждён). Обычные текстовые ответы работают — отсюда
> ложное впечатление «рабочего образа».
> 🔴 **Корень (доказан по коду ADK `v2.4.0`):** двойная паковка инструментов —
> `toolProcessor` (`tools_processor.go:40-58`) расширяет инструменты toolset'ов в `f.Tools`,
> затем `base_flow.go` вызывает `toolPreprocess(f.Tools)` **и** `toolsetPreprocess(Toolsets)`
> без защиты между ними → `PackTool` (`toolutils.go:47-48`) видит имя второй раз → падение.
> **Это дефект ADK, не Балды и не форка.** Полный разбор — [[personal/plans/balda-mm-phase4-agents]] §16.2.
> Фикс (Option A, патч форка `runtime-local/agentfactory/agentfactory.go`) спланирован, но
> **не начат** — ждёт go-ahead Alex. Целевой образ `balda-mm:0.1.13`. См. §18 того же дока.
> 🔴 **КОРЕНЬ (исправлено 2026-09-27, проверено кодом):** Balda регистрирует bundled MCP-сервер
> **ДВАЖДЫ на одном URL** — `registry.Set("balda", …)` (`internalmcp/manager.go:213`) и
> session-scoped привязка `balda-session-memory-<token>` (`sessionmemorymcp/broker.go:111`,
> URL = тот же эндпоинт + `?token`), которую `runtime_manager.go:344-345` добавляет в
> `extraMCPServerIDs`. `hostedToolsets` строит 2 тулсета → одинаковые имена инструментов →
> `PackTool` (`toolutils.go:47-48`) падает.
> ⚠️ **Прежняя версия корня («двойная паковка в ADK», `toolPreprocess`+`toolsetPreprocess`)
> ОПРОВЕРГНУТА исполняемым тестом:** `mcptoolset.set` **не реализует** `ProcessRequest`
> (метод есть только у `mcpTool`), поэтому `toolsetPreprocess` пропускает MCP-тулсеты.
> Это дефект **регистрации в Балде**, не ADK и не форка. Разбор — [[personal/plans/balda-mm-phase4-agents]] §19.
> Фикс **написан** (дедуп тулсетов по эндпоинту в `hostedToolsets`), `go build`/`go vet` ✅,
> тесты не прогнаны. Целевой образ `balda-mm:0.1.13`. См. §19.3-19.5 того же дока.
> ⚠️ Собран был **`0.1.12`** (форк runtime с tool-calling для `type: openai`: `openAIToolsFromConfig`,
> `parseChatResponse`, `TurnComplete = !hasToolCalls`; форк `mallexxx/runtime`, ветка
> `feat/openai-tool-calls-v2`, коммит `733b32d`, PR **https://github.com/normahq/runtime/pull/4**;