Как создавать инструменты для агентов

Anthropic поделилась подробным руководством по созданию инструментов для ИИ-агентов. Материал основан на их опыте разработки Model Context Protocol, который позволяет агентам использовать сотни различных инструментов.

Подход Anthropic интересен тем, что они предлагают использовать самих ИИ-агентов для создания и улучшения инструментов — своего рода «мета-подход».

Агенты создают инструменты для агентов

Основная идея: вместо того чтобы программисты гадали, какие инструменты будут удобны для ИИ, лучше дать самому ИИ протестировать их и предложить улучшения.

Процесс выглядит так: создаёте прототип инструмента, даёте его Claude Code для тестирования, анализируете результаты и позволяете агенту переписать код. Компания утверждает, что такой подход дал лучшие результаты, чем экспертные реализации, написанные их собственными исследователями.

При этом ребята из Anthropic обнаружили, что агенты воспринимают инструменты совершенно иначе, чем традиционное ПО.

Контекст дороже памяти

Ключевая проблема: у ИИ-агентов ограниченный контекст, тогда как у компьютеров память практически бесконечна.

Представьте поиск контакта в адресной книге. Обычная программа эффективно пройдётся по списку и найдёт нужный контакт. Агент же, получив ВСЕ контакты сразу, будет читать их токен за токеном, тратя драгоценный контекст на ненужную информацию.

Поэтому вместо инструмента list_contacts лучше делать search_contacts. Вместо read_logs — search_logs, который вернёт только релевантные записи.

Логично, но на практике многие разработчики просто оборачивают существующие API в инструменты, не задумываясь об особенностях восприятия агентов.

Принципы «агентного» дизайна

Anthropic выделяет несколько ключевых принципов:

— Меньше инструментов — больше пользы. Слишком много инструментов сбивают агента с толку. Лучше создать несколько продуманных инструментов, которые объединяют несколько операций.

— Неймспейсинг. Когда у агента доступ к сотням инструментов от разных разработчиков, важно чётко разграничить их функции. asana_search и jira_search лучше, чем просто search.

— Контекст важнее гибкости. Инструменты должны возвращать только значимую информацию. Вместо технических UUID — понятные имена и описания.

— Оптимизация токенов. Ограничения по объёму ответов, пагинация, фильтрация — всё это критично для эффективной работы агентов.

Промпт-инжиниринг описаний

Самый эффективный способ улучшить инструменты — переписать их описания. Anthropic сравнивает это с объяснением инструмента новому сотруднику: нужно сделать явным весь неявный контекст.

Небольшие изменения в описаниях дали драматические улучшения результатов. Claude Sonnet 3.5 показал state-of-the-art результаты на бенчмарке SWE-bench Verified во многом благодаря точной настройке описаний инструментов.

Пример из жизни: клиентская поддержка

Представим, что мы создаём инструменты для ИИ-агента в службе поддержки.

Плохой подход (традиционное API):

get_customer_by_id — получить данные клиента

list_transactions — список всех транзакций

list_support_tickets — все тикеты поддержки

list_notes — все заметки менеджеров

Агент получает задачу: «Клиент ID 9182 жалуется на тройное списание за одну покупку». Что происходит? Агент делает четыре отдельных вызова, получает огромные массивы данных, тратит контекст на чтение сотен несвязанных записей и в итоге может пропустить важную деталь.

Хороший подход (агенто-ориентированный):

get_customer_context — сводка всей релевантной информации о клиенте

search_payment_issues — поиск проблем с платежами по критериям

Теперь агент делает один целенаправленный запрос search_payment_issues(customer_id=9182, issue_type="duplicate_charge") и сразу получает контекст: детали транзакции, похожие случаи, статус расследования.

PS

Интересно, что «агенто-дружелюбные» инструменты интуитивно понятны и для людей. Возможно, оптимизация под ИИ-агентов — это просто хороший дизайн в принципе.

Подписывайтесь на Telegram Нейрократия.

2
1 комментарий