Files
chatballs/apps
Andrey 8b75a3fcd5 ✨ feat(ai): вызов инструментов в провайдерах
ChatMessage и ChatResult несут tool_calls, у сообщения есть роль tool с
tool_call_id; провайдеры принимают список ToolSpec. Формат OpenAI — в
provider/openai_tools.py: chat_completions передаёт tools, разбирает
tool_calls из ответа и отправляет раунд обратно модели (SPEC-0023 R-11).

Признак «модель вызывает инструменты» отдаёт провайдер: OpenRouter — из
supported_parameters каталога, свой endpoint — из проверочного вызова с
обязательным инструментом. ai/tool_support.py кеширует ответ на пару
«интеграция — модель»; карточка агента отдаёт его полем modelSupportsTools,
список агентов читает только кеш (R-10).

Демо-провайдер детерминированно вызывает инструменты, подходящие к вопросу,
и отвечает по их результатам без сети и ключей (R-14).
2026-10-05 22:25:36 +03:00
..