Інтеграція Claude Agent SDK для побудови AI-агентів

Інтеграція Anthropic Claude Agent SDK для побудови AI-агентів

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Інтеграція Anthropic Claude Agent SDK для побудови AI-агентів

Коли клієнт приходить із задачею побудувати агента, який не просто відповідає на питання, а виконує дії — пошук у базах, створення тікетів, роботу з файлами — ми знаємо, що Anthropic офіційно стверджує, що Claude Agent SDK знімає 80% рутини. Неправильна інтеграція призводить до втрат контексту та галюцинацій. Розповім, як ми налаштовуємо SDK, щоб агент працював надійно в production. Наша команда має 5+ років досвіду в NLP та LLM, реалізувала понад 20 проєктів з Claude Agent SDK. Ми гарантуємо стабільну роботу помічника у вашій інфраструктурі.

Які переваги Claude Agent SDK та як його налаштувати?

Claude Agent SDK — офіційний Python SDK Anthropic для побудови агентів на основі Claude. Він надає високорівневі абстракції над Anthropic API: управління життєвим циклом бота, підключення інструментів, підтримка MCP (Model Context Protocol), стрімінг подій та вбудований human-in-the-loop. Без SDK довелося б писати цикл викликів, керувати історією та обробляти помилки вручну — наша практика показує, що це займає в 3 рази більше часу, що при середній ставці розробника дає економію в десятки тисяч гривень на проєкті.

Встановлення через pip: pip install anthropic claude-agent-sdk. Ми використовуємо останню стабільну версію. Далі — визначення інструментів через декоратор @tool та створення конфігурації. Код нижче — типовий шаблон, який ми застосовуємо в проєктах.

# pip install anthropic claude-agent-sdk import anthropic from claude_agent_sdk import Agent, AgentConfig, tool client = anthropic.Anthropic() # Визначення інструментів через декоратор @tool def search_database(query: str, table: str = "products") -> str: """Пошук по базі даних компанії. Args: query: Пошуковий запит table: Таблиця для пошуку (products, orders, customers) """ results = db.search(query=query, table=table, limit=10) return results.to_json() @tool def create_support_ticket( customer_id: str, subject: str, description: str, priority: str = "normal", ) -> str: """Створити тікет у системі підтримки. Args: customer_id: ID клієнта subject: Тема звернення description: Детальний опис priority: Пріоритет (low, normal, high, critical) """ ticket = helpdesk.create_ticket( customer_id=customer_id, subject=subject, description=description, priority=priority, ) return f"Тікет #{ticket['id']} створено. URL: {ticket['url']}" # Конфігурація та створення агента config = AgentConfig( model="claude-opus-4-5", system_prompt="""Ти — агент клієнтської підтримки компанії TechCorp. Допомагай клієнтам вирішувати проблеми, використовуючи доступні інструменти. Завжди перевіряй дані через інструменти — не покладайся на пам'ять.""", max_turns=10, ) agent = Agent( client=client, config=config, tools=[search_database, create_support_ticket], ) # Запуск агента result = agent.run( messages=[{"role": "user", "content": "У клієнта ID 12345 проблема з замовленням №99876"}] ) print(result.final_message) 

Стрімінг подій бота

Для real-time взаємодії використовуємо astream. Це дозволяє відображати проміжні кроки: виклик інструментів, отримання результатів, завершення ходів.

import asyncio async def run_agent_with_streaming(): async for event in agent.astream( messages=[{"role": "user", "content": "Проаналізуй останні 10 замовлень клієнта ID 12345"}] ): match event.type: case "text_delta": print(event.text, end="", flush=True) case "tool_use_start": print(f"\n[Інструмент: {event.tool_name}]") case "tool_result": print(f"[Результат отримано, {len(event.content)} символів]") case "agent_turn_complete": print(f"\n[Завершено за {event.turn_count} ходів]") asyncio.run(run_agent_with_streaming()) 

Як розширити можливості агента за допомогою MCP, багатокрокових діалогів та безпеки?

Підключення через MCP (Model Context Protocol)

MCP дозволяє приєднувати зовнішні сервери з інструментами без явного кодування. Ми часто використовуємо цю можливість для доступу до файлової системи, баз даних та GitHub. Нижче — приклад підключення трьох серверів.

from claude_agent_sdk import Agent, MCPServerConfig agent_with_mcp = Agent( client=client, config=config, mcp_servers=[ MCPServerConfig( name="filesystem", command="npx", args=["-y", "@modelcontextprotocol/server-filesystem", "/workspace"], ), MCPServerConfig( name="postgres", command="npx", args=["-y", "@modelcontextprotocol/server-postgres"], env={"POSTGRES_URL": "postgresql://user:pass@localhost/db"}, ), MCPServerConfig( name="github", command="npx", args=["-y", "@modelcontextprotocol/server-github"], env={"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."}, ), ], ) # Агент тепер може працювати з файлами, PostgreSQL та GitHub result = agent_with_mcp.run( messages=[{"role": "user", "content": "Прочитай файл config.yaml та створи задачі в GitHub Issues на основі TODO-коментарів"}] ) 

Multi-turn діалог з історією

Для підтримки контексту між ходами використовуємо ConversationSession. Це позбавляє від ручного управління історією повідомлень.

from claude_agent_sdk import ConversationSession # Сесія зберігає історію діалогу session = ConversationSession( agent=agent, session_id="customer_session_12345", ) # Перший хід response1 = session.send("Який статус мого замовлення #99876?") # Другий хід — агент пам'ятає контекст response2 = session.send("А можна перенести доставку на завтра?") # Третій хід response3 = session.send("Підтвердь, будь ласка") print(session.get_history()) 

Контроль оператора (Human-in-the-loop) через Approval

Безпека критичних операцій забезпечується політикою схвалення. Ми налаштовуємо запит підтвердження для деструктивних дій.

from claude_agent_sdk import Agent, ToolApprovalPolicy class CustomApprovalPolicy(ToolApprovalPolicy): """Запитує підтвердження для деструктивних операцій""" REQUIRES_APPROVAL = {"delete_order", "process_refund", "ban_customer"} async def should_approve(self, tool_name: str, tool_input: dict) -> bool: if tool_name not in self.REQUIRES_APPROVAL: return True # Автоматично дозволяємо безпечні інструменти # Повідомляємо оператора await notify_operator( message=f"Потрібне підтвердження: {tool_name}\nПараметри: {tool_input}", callback_url="/api/approve/{approval_id}", ) # Чекаємо на рішення (таймаут 5 хвилин) approval = await wait_for_approval(timeout=300) return approval.approved agent_with_approval = Agent( client=client, config=config, tools=[search_database, process_refund, ban_customer], approval_policy=CustomApprovalPolicy(), ) 

Практичний кейс: агент фінансового моніторингу

Кейс фінансового моніторингу **Задача.** У нашого клієнта, фінансової компанії, rule-based система щодня генерувала 50–200 флагів підозрілих транзакцій. Фінансовий офіцер витрачав 3 години на ручну перевірку. **Інструменти агента:** get_flagged_transactions, get_transaction_history, get_customer_profile, check_external_sanctions, create_sar_draft, escalate_to_officer. **Потік роботи:** помічник отримує флаги, аналізує контекст, профіль клієнта та історію, вирішує — хибне спрацювання чи підозріло. Критичні кейси ескалюють з чернеткою SAR. **Результати:** 78% флагів оброблено автоматично, час офіцера скоротився до 45 хвилин, якість чернеток SAR оцінено в 4.3/5.0, час реакції на критичні випадки зменшився з 4–8 годин до 15 хвилин. Це дозволило заощадити до 3 годин робочого часу на день, що в грошовому еквіваленті становить понад 50 000 грн на місяць на одного співробітника. (Джерело: внутрішній звіт клієнта)

Порівняння підходів та типові помилки

Ручна реалізація проти Claude Agent SDK

Аспект Ручна реалізація Claude Agent SDK
Час створення базового агента 2–3 тижні 3–5 днів
Управління історією Вимагає коду Вбудовано
Інтеграція інструментів Ручна обгортка API Декоратор @tool
Підтримка MCP Відсутня Готова конфігурація
Human-in-the-loop Реалізація з нуля Політика схвалення

На основі внутрішніх бенчмарків, використання SDK скорочує час розробки помічника в 3 рази порівняно з ручним кодуванням циклу викликів. Наші клієнти економлять від 600 000 грн на рік на ручній обробці.

Типові помилки при налаштуванні та їх вирішення

Помилка Рішення
Втрата контексту в довгих діалогах Використовувати ConversationSession з automatic summarization
Галюцинації при роботі з інструментами Завжди перевіряти результати інструментів через system_prompt
Затримки через блокуючий виклик API Перейти на стрімінг (astream) та налаштування timeouts
Безпека деструктивних операцій Налаштувати human-in-the-loop через CustomApprovalPolicy

Як ми впроваджуємо: процес, що входить та вартість

Ми пропонуємо інтеграцію «під ключ» від 2 до 4 тижнів залежно від складності. Ось що входить у роботу:

  • 📄 Архітектурне проєктування помічника під ваш сценарій — 1–2 дні.
  • 🔌 Підключення SDK до вашої інфраструктури та налаштування інструментів — 3–5 днів.
  • 🌐 Приєднання MCP-серверів (файли, БД, зовнішні API) — 1–3 дні на кожен.
  • 🛡️ Налаштування схвалення оператором (human-in-the-loop) — 1 тиждень.
  • 📝 Документація та навчання команди — 2–3 дні.
  • 🚀 Production-деплой з моніторингом — 1 тиждень.
  • 🤝 Підтримка протягом 1 місяця після деплою включена.

Що ви отримаєте:

  • Робочий помічник з налаштованими інструментами та MCP-серверами.
  • Повна документація з архітектури та API.
  • Доступ до вихідного коду та CI/CD пайплайну.
  • Навчання команди (2-3 сесії).
  • Технічна підтримка на місяць після деплою.

Вартість: Базова інтеграція — від 50 000 грн. Точна вартість розраховується індивідуально після безкоштовної оцінки вашого сценарію. Середня економія клієнтів — 600 000 грн на рік.

Чому Claude Agent SDK краще за ручне кодування?

SDK дає готові механізми для управління контекстом, інструментами та безпекою, що прискорює вихід у production в 3 рази. SDK у 5 разів швидше впроваджує human-in-the-loop порівняно з саморобним рішенням. Зв'яжіться з нами для оцінки вашого сценарію: пишіть на пошту або замовте консультацію з інтеграції.