Разработка инструментов для LLM-фреймворков требует от разработчиков создания функций, необходимых для доступа к коду. Каждый фреймворк описывает эти инструменты по-своему, что приводит к необходимости многократного написания одних и тех же функций под разные обёртки. Например, первая версия инструмента была реализована с использованием функции tool() из AI SDK, затем в проекте появился MCP-сервер, и инструменты были переписаны под registerTool.
Кроме того, соседняя команда использует Genkit, что требует написания тех же инструментов в третий раз, но уже через defineTool. Несмотря на то, что функции остаются прежними, разработчики вынуждены адаптировать их под разные интерфейсы, что увеличивает время разработки и усложняет процесс.
Эта ситуация подчеркивает важность унификации подходов к разработке инструментов для LLM-фреймворков. Устранение дублирования кода и создание стандартных обёрток может значительно упростить процесс разработки и повысить эффективность работы команд.