From de451f2e4d33ec1f12614b01032cbbdee0cc2e35 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sun, 21 Jun 2026 21:00:45 +0600 Subject: [PATCH] [2026-06-21] eagle: personal/projects/balda/balda-valera.md --- personal/projects/balda/balda-valera.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/personal/projects/balda/balda-valera.md b/personal/projects/balda/balda-valera.md index 7314b661..643a14ce 100644 --- a/personal/projects/balda/balda-valera.md +++ b/personal/projects/balda/balda-valera.md @@ -181,7 +181,15 @@ MCP серверы зарезолвлены, тулсеты переданы в **Логи подтверждают:** `function_call_part_count=0` в ответе DeepSeek. -**Фикс:** в `pkg/runtime/hostedagent/openai.go`: +**Фикс:** добавить передачу tools в OpenAI запрос и парсинг tool_calls из ответа. +**Сделано (2026-06-21):** в `openai.go` добавлены: +- `openAIToolDefinition`, `openAIFunction`, `openAIToolCall` — структуры для API +- Поле `Tools` в `openAIChatRequest` +- Функция `openAIToolsFromConfig()` — конвертирует `genai.Tool[]` → OpenAI tool definitions +- Функция `contentToOpenAI()` — обрабатывает FunctionCall/FunctionResponse из ADK +- Парсинг `tool_calls` в `parseChatResponse()` +- **Тесты:** 17 тестов на new функциональность + 3 существующих = все проходят + 1. Добавить поле `Tools` в `openAIChatRequest` + `openAIToolDefinition` 2. В `buildChatRequest` читать `req.Config.Tools` → конвертировать в OpenAI tool definitions 3. В `parseChatResponse` парсить `tool_calls` из ответа (ADK сам выполнит MCP)