Запись архива

Как собрать агента на базе Claude: пошаговая инструкция по Anthropic Agent SDK

Anthropic выпустила Agent SDK с открытым исходным кодом. Разбираем, как устроен инструмент, где его применять и какие ограничения стоит учитывать при сборке агентов на Claude.

Репозиторий Anthropic Agent SDK на GitHub — интерфейс документации и примеры кода
Репозиторий Anthropic Agent SDK на GitHub — интерфейс документации и примеры кода
Редакционная тематическая обложка COMRAD404

В конце июля 2026 года Anthropic выпустила Agent SDK — официальный набор инструментов для построения агентов на базе Claude. До этого разработчики собирали агентские системы вручную, используя raw API и сторонние фреймворки вроде LangChain или CrewAI. Теперь у них есть референсная реализация от самой Anthropic.

SDK не стал сенсацией в духе «ИИ заменит программистов». Это прагматичный инструмент для тех, кто уже работает с Claude API и хочет стандартизировать процесс создания агентов. В этой колонке я разберу, как устроен фреймворк, какие задачи он решает и где его применение пока преждевременно.

Что такое Anthropic Agent SDK и зачем он нужен

Anthropic Agent SDK — это Python-библиотека с открытым исходным кодом (Apache 2.0), которая предоставляет базовые примитивы для построения агентов: управление контекстом, вызов инструментов, обработку ошибок и возврат результатов. По сути, это обёртка над Messages API, автоматизирующая цикл «запрос → вызов инструмента → обработка результата → следующий запрос».

Основная идея — уйти от «голого» API, где разработчик вручную управляет историей диалога и маршрутизацией. Вместо этого SDK предлагает декларативное описание агента: какие инструменты доступны, как обрабатывать ошибки, когда завершать выполнение.

По данным из официального репозитория на GitHub, SDK поддерживает:
– Определение инструментов через Pydantic-модели или обычные функции Python.
– Встроенную обработку rate limits и повторных попыток.
– Логирование шагов агента для отладки.
– Асинхронный режим работы.

Почему это важно для практиков

До появления SDK разработчики сталкивались с типовыми проблемами: раздутый код для обработки цикла «мысль-действие», отсутствие единого подхода к логированию, необходимость вручную реализовывать повторные попытки при ошибках API. Каждая команда изобретала свой велосипед.

Anthropic Agent SDK не решает всех проблем, но задаёт стандарт. Если вы используете Claude для автоматизации, вы можете взять готовую архитектуру вместо того, чтобы писать её с нуля. Это особенно актуально для небольших команд, где нет ресурсов на разработку собственного агентского фреймворка.

Кроме того, Anthropic явно ориентируется на опыт сообщества. В SDK реализованы паттерны, которые ранее обсуждались в технических блогах и на форумах — например, механизм `ToolResult` для передачи результатов вызова инструмента обратно модели. Это значит, что фреймворк уже прошёл «полевые испытания» в продакшн-сценариях.

Как устроен SDK: архитектура и пример сборки

Библиотека строится вокруг нескольких ключевых классов:

Класс Назначение
`Agent` Основной класс, описывающий агента: системный промпт, модель, инструменты
`Tool` Базовый класс для инструментов. Можно наследовать или использовать декоратор `@tool`
`Runner` Управляет выполнением агента: цикл запрос-инструмент-ответ
`AgentContext` Контейнер для состояния агента: история сообщений, результаты инструментов

Простой пример агента, который ищет информацию в базе знаний:

python
from anthropic_agent_sdk import Agent, Runner, tool

@tool
def search_knowledge_base(query: str) -> str:
“””Ищет информацию во внутренней базе знаний.”””
# здесь логика поиска
return f”Результаты по запросу: {query}”

agent = Agent(
name=”search_agent”,
instructions=”Ты — ассистент, который ищет информацию в базе знаний. Отвечай только на основе найденных данных.”,
tools=[search_knowledge_base]
)

runner = Runner(agent)
response = runner.run(“Какие версии Claude поддерживают vision?”)
print(response)

Код читается как декларативное описание: «вот инструмент, вот правила, выполни». Runner сам управляет циклом — если Claude решает вызвать инструмент, SDK обрабатывает вызов, передаёт результат обратно модели и продолжает диалог.

Практический сценарий: агент для анализа логов

Рассмотрим более сложный пример. Допустим, нужно собирать и анализировать логи сервера, выявлять аномалии и отправлять уведомления.

python
@tool
def get_recent_logs(service: str, minutes: int = 60) -> str:
“””Получает последние логи указанного сервиса.”””
# вызов к API логирования
return f”Логи сервиса {service} за последние {minutes} минут”

@tool
def send_alert(channel: str, message: str) -> str:
“””Отправляет уведомление в указанный канал.”””
# интеграция с Slack/Telegram
return f”Уведомление отправлено в {channel}”

agent = Agent(
name=”log_analyzer”,
instructions=”Анализируй логи сервисов. Если обнаруживаешь ошибки 5xx или превышение времени ответа более 5 секунд, отправляй уведомление.”,
tools=[get_recent_logs, send_alert]
)

Здесь важно: SDK не решает проблему парсинга логов или определения аномалий. Он берёт на себя маршрутизацию: Claude решает, какие инструменты вызвать и в каком порядке. Разработчик сосредотачивается на бизнес-логике инструментов.

Ограничения и подводные камни

Несмотря на очевидные плюсы, SDK — не серебряная пуля. Вот что нужно учитывать:

Привязка к Claude. SDK заточен под Messages API Anthropic. Если вы используете несколько моделей (например, GPT-4 для одних задач и Claude для других), придётся поддерживать несколько фреймворков.

Отсутствие оркестрации. SDK управляет одним агентом. Для сложных multi-agent систем (где агенты общаются друг с другом) потребуется внешний оркестратор. В репозитории есть примеры, но это не встроенная возможность.

Стоимость. Каждый шаг агента — отдельный вызов API. Если агент делает 5-10 шагов, стоимость одной задачи может быть значительной. SDK не предоставляет встроенных механизмов для оптимизации затрат.

Документация. На момент написания статьи документация есть, но она минимальна. Примеры покрывают базовые сценарии, но для сложных случаев придётся разбираться в исходном коде.

В обсуждении на Reddit (r/ClaudeAI) разработчики отмечают, что SDK хорошо подходит для прототипирования, но в продакшене многие предпочитают более зрелые решения вроде LangGraph или собственные реализации. Основная претензия — недостаточная гибкость в обработке ошибок и отсутствие встроенной поддержки стриминга.

Что можно протестировать уже сейчас

Если вы работаете с Claude API, вот несколько шагов для начала:

Установите SDK: `pip install anthropic-agent-sdk`

Создайте агента с двумя инструментами — например, поиск по документации и отправка email.
3. Протестируйте на простой задаче: «Найди в документации описание параметра max_tokens и отправь мне письмо с результатом».
4. Проверьте логирование — SDK выводит каждый шаг агента, что полезно для отладки.
5. Оцените стоимость: посчитайте, сколько токенов уходит на один цикл, и сравните с ручной реализацией.

Важно помнить: SDK — это инструмент, а не решение. Он не сделает агента умнее, не добавит ему «рассуждений» и не гарантирует корректность результатов. Качество работы по-прежнему зависит от системного промпта, выбора инструментов и данных, которые вы передаёте модели.

Для тех, кто хочет глубже разобраться, рекомендую изучить исходный код на GitHub — он написан чисто и хорошо комментирован. Там же можно найти issues с обсуждением будущих фич и багов, которые сообщество уже обнаружило.