SDK агента Claude

Тема дорожной карты · Claude от Anthropic

Claude Agent SDK представляет собой инструментарий для разработки собственных агентов, используя Python или TypeScript. Это библиотека, которая автоматизирует многие аспекты работы с агентами, такие как управление инструментами, выполнение действий и интеграция с MCP. Использование SDK особенно полезно, когда требуется создать агент, который может взаимодействовать с операционной системой через shell и выполнять сложные задачи, выходящие за рамки простого обмена сообщениями.

Как это работает

SDK агента Claude предоставляет официальные библиотеки для Python (anthropic) и TypeScript (@anthropic-ai/sdk). Эти библиотеки обеспечивают обработку повторных попыток (retries), потоковой передачи (streaming) и типобезопасное построение сообщений. Встроенные паттерны включают в себя методы для создания сообщений (client.messages.create(...)) и для потоковой передачи (client.messages.stream(...)). Инструменты и hooks представлены в виде типизированных аргументов, что позволяет разработчикам создавать сложные и гибкие агенты.

Agent SDK на Python и TypeScript предлагает более высокий уровень абстракции для построения агентов со сложными навыками, hooks и циклами использования инструментов. Это позволяет разработчикам сосредоточиться на реализации бизнес-логики, а не на деталях интеграции.

Когда применять

SDK агента Claude следует использовать везде, где требуется взаимодействие с API Claude, а не создание собственного HTTP-клиента. Agent SDK особенно полезен, когда вы строите что-то более сложное, чем простой промпт; он автоматизирует цикл оркестровки, что позволяет сосредоточиться на бизнес-логике.

При использовании SDK рекомендуется активировать кэширование промптов (prompt caching) с самого начала работы с API. Это особенно полезно для повторяющегося контекста, где кэширование окупается уже после 10 запросов. Также важно вести учет затрат (cost logging) с самого начала, записывая usage для каждого вызова.

Типичные ошибки

При работе с SDK агента Claude могут возникнуть различные ошибки, связанные с неправильным использованием потоковой передачи (streaming). Например, неожиданный обрыв вывода (output truncation) может произойти, если не использовать await для потоковых ответов. Другая распространенная ошибка — неправильная обработка частичного JSON в потоковом использовании инструментов (partial JSON parsing). В этом случае необходимо парсить данные инкрементально. Также следует избегать жестко закодированных версий моделей в клиентском коде; вместо этого следует использовать переменные окружения (env var). Наконец, блокировка на одном запросе вместо использования пакетного API (batch API) может привести к снижению производительности.

Связанные понятия

Полезные ресурсы