[2026-09-26] eagle: personal/plans/balda-mm-phase4-agents.md personal/tech/balda-go-fx-pitfalls.md
This commit is contained in:
1 parent
aa5b66a442
commit
593b867467
2 files changed
+97
-2
No files matched your search
@@ -182,6 +182,38 @@ func(broker *sessionmemorymcp.ContextBroker, enabled bool) baldaagent.SessionMCP
|
||||
effective = bundled(balda) + runtime.providers.<id>.mcp_servers + balda.mcp_servers
|
||||
```
|
||||
|
||||
🔴 **Не перечислять ID серверов ДВАЖДЫ** (`balda.mcp_servers` **и**
|
||||
`runtime.providers.<id>.mcp_servers`) — эффективный набор это **объединение**, и каждый
|
||||
сервер подключается дважды. Симптом — ход падает ещё до вызова модели:
|
||||
|
||||
```
|
||||
error … "agent run: duplicate tool: \"balda.control.shutdown\""
|
||||
→ в чате тишина; в логе `turn task failed` + `command deadlettered` (5 попыток)
|
||||
```
|
||||
|
||||
Источник ошибки — библиотека ADK, не Балда:
|
||||
```go
|
||||
// google.golang.org/adk/v2/tool/toolutils/toolutils.go:47-48
|
||||
if _, ok := req.Tools[name]; ok {
|
||||
return fmt.Errorf("duplicate tool: %q", name)
|
||||
}
|
||||
```
|
||||
🔴 **`duplicate tool` в исходниках Balda не найти** (`grep` пустой) — это `google.golang.org/adk`.
|
||||
Искать в `$(go env GOMODCACHE)/google.golang.org/adk/`, а не в репозитории.
|
||||
📌 Правило: держать список ID в **одном** месте — у провайдера; `balda.mcp_servers: []`.
|
||||
Слияние в `session/manager.go:251-270` дедуплицирует **ID**, но не защищает от
|
||||
повторной регистрации **инструментов** уже подключённого сервера.
|
||||
|
||||
⚠️ **`session_memory.enabled: true` тянет за собой structured-output память.** На
|
||||
`deepseek-chat` worker памяти не может отдать нужную JSON-схему:
|
||||
```
|
||||
warn … session-memory capability retry limit exhausted
|
||||
operation=dead_letter kind=boundary.v1 error_code=model_failure
|
||||
error: output does not match schema: (root): output is required
|
||||
```
|
||||
7 попыток → dead letter. Ответы бота при этом работают, но **память не наполняется**.
|
||||
Не блокер для MCP; отдельный дефект совместимости модели и схемы derivation.
|
||||
|
||||
---
|
||||
|
||||
## 🔴 Сброс падающих тестов: сначала `git stash`, потом слово «регрессия»
|
||||
|
||||
Reference in new issue
Block a user