tool calling.

Мы удалили AI-менеджера для маркетплейсов и написали заново

Мы уже рассказывали, как собрали AI-менеджера маркетплейсов на регулярках, а потом пересадили его на агента и тут же обложили ограничениями: восемь шагов на ход, узкие инструменты с лимитами, урезанные данные, запись в кабинет только после «да» владельца.Мы обещали поделиться результатами. Делимся: через четыре дня после запуска мы удалили своего агента целиком. Ниже — что показали тесты, почему не стали чинить и что сделали вместо него.Что показали тесты

продолжить чтение

AI-менеджер для WB, Ozon и Маркета: отдали решения агенту и сразу его ограничили

Недавно мы рассказывали, как собрали AI-менеджера маркетплейсов на правилах : фраза проходит через регулярки, превращается в операцию из закрытого списка, операция идёт в API площадки. Модель там только помогала угадать операцию. Всё, что меняет кабинет, — только кнопкой владельца.Первые владельцы с ним поговорили. Ниже — что мы увидели в этих разговорах, почему переделали менеджера почти с нуля и почему новая версия получилась свободнее, но при этом вся в ограничителях.Что показали первые разговорыЛюди пишут не по списку.

продолжить чтение

ReAct-агент изнутри. Модель, инструменты и управляющий цикл

Как ответ языковой модели превращается в чтение файла, запуск команды или изменение кода? Разберем этот путь на четырех общих схемах, затем посмотрим реализацию на Python и схему работы агента на примере падающего теста. Для понимания кода достаточно знать Python, JSON и принцип HTTP-запроса. Агентные фреймворки здесь не понадобятся.Чем агент отличается от одного запроса к модели

продолжить чтение

Tool calling в Go: почему вызов модели ещё не разрешение выполнить команду

С tool calling у LLM появляется возможность не только отвечать на вопросы, но и вызывать функции нашего приложения. Можно дать модели доступ к поиску заказов, проверке платежей, созданию документов или изменению настроек.Интеграция на первый взгляд довольно простая. Передаём модели описание функций, получаем название инструмента и аргументы, проверяем JSON и вызываем нужный обработчик.Но здесь есть проблема. Валидный tool call ещё не означает, что операцию вообще разрешено выполнять.

продолжить чтение

Проверяю выбор функций и значения аргументов в ELM

Если вы подключаете к чату настоящие инструменты, нужно проверить два случая: когда вызов следует выполнить и когда ни один инструмент не подходит. Я сравнил два способа: модель сама пишет вызов или выбирает функцию и аргументы из готовых вариантов.Второй способ я исследую в собственной экспериментальной системе ELM — так я называю свой проект. Код предлагает варианты, нейросеть выбирает из них, а код собирает вызов. В проверяемом здесь режиме нейросеть не генерирует текст вызова.

продолжить чтение

Как сделать RAG-чат для сайта, который не выдумывает цены: пять решений из моего бота

С июня я делаю AI-чат для сайтов, который не выдумывает цены и не соглашается с клиентом во всём подряд. К пяти решениям из статьи я пришёл через ошибки.Зачем вообще ещё один чат-ботПо

продолжить чтение

Маскирование ПДн для LLM: метрика, которую не считает никто, и шесть шлюзов против живого агента

Это первая статья серии: измеряем, что происходит с LLM-агентом, когда шлюз замаскировал данные. Дальше разберём находки по чужим системам и то, что нашлось у нас.1. Зачем это меритьАгент поддержки получает: «Здравствуйте, я Кузнецова Дарья, телефон 8 935 747 66 22, проверьте заказ». До модели доходит «я <PERSON_1>, телефон <PHONE_NUMBER_2>», и она вызывает check_order(phone=…).Тут половина решений на рынке и ломается: инструменту нужен настоящий телефон, по <PHONE_NUMBER_2> заказ не найдётся. Шлюз обязан вернуть реальное значение в аргумент вызова ровно в той форме, в какой написала модель.

продолжить чтение

Как показать работу AI-агента в Telegram: статусы инструментов, анимации и кнопка Stop

Пользователь просит Telegram-бота сравнить две модели наушников для рабочих звонков. Агент ищет обзоры, читает страницы, проверяет, что пишут о микрофонах. Всё это занимает время, а по надписи «печатает…» трудно понять, на каком этапе он сейчас находится.В Telegram есть встроенный интерфейс для такой работы: временное сообщение с блоком состояния, анимированными иконками и кнопкой Stop. На примере своего агента swift-claw покажу, как связать его с вызовами инструментов и отменой задачи.

продолжить чтение

Каждый LLM-фреймворк описывает инструмент по-своему

Чтобы дать LLM доступ к своему коду, пишут инструменты (tools). Инструмент — это функция и всё, что модели нужно знать, чтобы её вызвать: имя, описание и схема аргументов.Потом те же инструменты приходится писать ещё раз. Первая версия сделана на tool() из AI SDK. В проекте появляется MCP-сервер, и инструменты переписывают под registerTool. Соседняя команда использует Genkit, и те же инструменты пишут в третий раз, через defineTool. Функции остаются прежними, меняется только обёртка.К тому же каждая обёртка привязана к своему фреймворку. tool() берётся из пакета ai, defineTool — метод экземпляра Genkit, registerTool

продолжить чтение

Строим продвинутый каркас для ИИ-агента

В основе базового agentic harness — простой цикл: LLM получает задачу, выбирает и вызывает инструмент, результат возвращается в контекст, после чего модель решает, какое действие выполнить следующим. Цикл продолжается, пока модель не решит, что задача выполнена.

продолжить чтение

123