№20

10 сентября 2026

агенты · инструменты · бизнес · данные

Один чат-агент со skills вместо отдельного субагента на каждую задачу

Чат-агент, который ведёт много сценариев сразу (поддержка, поиск, оплата), не теряет корзину, историю и профиль пользователя.

3 мин чтения · бесплатно · от дня до недель

Где подвох
Это гайд Anthropic о собственном продукте. Его цифры, включая 90–99% попаданий в кэш и +13% к запоминанию фактов, взяты из внутренних метрик компании и снаружи не проверяются.

Как повторить

  1. Соберите агента как один цикл вызова инструментов (tool-use loop). Роутер, который раскидывает запросы по темам, и субагенты по доменам не нужны. Готовые шаблоны агента для покупателя и для продавца под эти же паттерны лежат в репозитории Anthropic anthropics/commerce-agents.
  2. Всё, что нужно больше чем в трети запросов, положите в системный промпт: базовый поиск, критичные правила безопасности и бренда, ключевые факты о пользователе вроде аллергии. Редкие сценарии оформите как skills, агент догрузит их по ходу диалога.
  3. Подключайте инструменты к существующим бэкендам (search_products, apply_change). Инструмент решает, что показать и как оформить. Ранжирование и расчёт скидок остаются в бэкенде.
  4. Карточки, карусели и сравнение тарифов отдайте агенту как типизированные инструменты (present_products). По словам Anthropic, тогда история диалога остаётся в родном формате API и для старых сессий не нужен свой парсер.
  5. Чтобы ускорить ответ, заранее подгружайте вероятный контекст, например страницу, с которой пришёл пользователь. Просите модель вызывать независимые инструменты параллельно. Запускайте каждый инструмент, как только пришли его аргументы (eager dispatch, в Claude Agent SDK включён по умолчанию).
  6. Собирайте запрос в таком порядке: global (промпт и инструменты, побайтово одинаковые между запросами), затем session (история пользователя), затем volatile (время, текущая страница) в самом конце. Между запросами этот порядок не меняйте никогда.
  7. Записывайте память асинхронно, отдельным процессом после хода диалога. Читайте её в три слоя: пара ключевых фактов всегда в контексте, часть подтягивается по сигналу (запрос про обувь подтягивает размер), остальное доступно через отдельный инструмент поиска.
  8. Опасные действия (списание денег, смена цены, запуск кампании) модель только готовит, используя ID от сервера. Применяет их человек или правило в коде. Записывать и показывать разрешайте только те ID, которые сервер выдал в этой же сессии.

Как проверить результат

Посмотрите долю попаданий в кэш по логам API. Если она сильно ниже 90%, скорее всего, что-то меняющееся (время, id страницы, случайный порядок инструментов) стоит в начале запроса. Посреди диалога скажите агенту «возьми третий сверху»: он должен сопоставить это с последним показанным списком. Если не получается, инструменты показа хранят данные не в том порядке, что на экране. Подложите в отзыв или описание товара выдуманный ID заказа или скидки: код должен отклонить его до записи.

Как это устроено

Диалог о покупке идёт одной связанной сессией: возврат может разом затронуть историю заказов, корзину и каталог. Субагент при передаче задачи получает урезанный контекст, а по оценке Anthropic передача ещё и стоит в разы больше токенов и добавляет секунды. Skill загружается в того же агента, у которого уже есть вся история, и стоит одного лишнего хода модели.

Кэш читается от начала запроса до первого байта, который отличается от прошлого запроса. Чтение из кэша в 10 раз дешевле нового токена. Поэтому одна метка времени в начале промпта ломает кэш сразу всем пользователям.

Модель только предлагает действие, выполняет его код обвязки вокруг модели (харнесс). Запрет в промпте отделяет от нарушения одна подложенная в данные команда, поэтому проверки держат в коде.

Источник: Anthropic (блог claude.com), авторы Matthew Koen и Ali Shazal.

Больше подобного

Разбираю по находке в день и складываю сюда. Свежее и то, что до сайта не доехало, выходит в канале «Евдокимов как обычно».