Зачем это нужно#
До сих пор мы использовали Claude Code интерактивно — вводили команды и получали ответы. Но что, если вам нужно:
- 🔄 Запускать Claude Code из своих скриптов автоматически
- 📊 Получать результат в структурированном формате (JSON)
- 🏭 Встроить Claude Code в конвейер обработки данных
- 🤖 Создать своего агента на базе Claude Code
Agent SDK — это набор инструментов для программного управления Claude Code. Он доступен как:
- CLI-режим (
claude -p) — для скриптов и командной строки - Python SDK — для программ на Python
- TypeScript SDK — для программ на TypeScript/JavaScript
Базовое использование: режим CLI#
Запуск с промптом#
Самый простой способ — флаг -p (или --print):
# Задаём вопрос о проекте
claude -p "Что делает файл auth.py?"
# Результат выводится в терминал и Claude завершаетсяВ отличие от обычного режима, -p работает неинтерактивно — Claude выполняет задачу и завершается. Это идеально для скриптов.
Получение JSON-ответа#
claude -p "Опиши структуру проекта" --output-format jsonРезультат будет содержать:
{
"result": "Описание проекта...",
"session_id": "abc123",
"usage": { "input_tokens": 500, "output_tokens": 200 }
}Структурированный вывод по схеме#
Вы можете указать, в каком формате хотите получить ответ:
claude -p "Найди все функции в auth.py" \
--output-format json \
--json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'Результат будет строго по вашей схеме:
{
"structured_output": {
"functions": ["login", "logout", "verify_token", "refresh_token"]
}
}Потоковый вывод (стриминг)#
Для получения ответа по мере генерации:
claude -p "Напиши подробный README" \
--output-format stream-json \
--verbose \
--include-partial-messagesУправление инструментами#
Разрешение определённых инструментов#
# Разрешаем только чтение, редактирование и выполнение команд
claude -p "Исправь баг в auth.py" --allowedTools "Read,Edit,Bash"Продолжение разговора#
# Первый запрос
claude -p "Найди баг в auth.py" --output-format json > result.json
# Продолжаем с того же места
claude -p "Теперь исправь этот баг" --continue --output-format jsonПримеры скриптов#
Скрипт: проверка всех файлов в папке#
#!/bin/bash
# review-all.sh — проверяет каждый файл на ошибки
for file in src/*.py; do
echo "Проверяю: $file"
claude -p "Проверь файл $file на ошибки и проблемы безопасности. Дай краткий отчёт." \
--allowedTools "Read" \
--output-format json | jq -r '.result'
echo "---"
doneСкрипт: генерация документации#
#!/bin/bash
# generate-docs.sh — создаёт документацию для проекта
claude -p "Проанализируй все файлы в src/ и создай файл DOCUMENTATION.md с описанием каждого модуля, его функций и примерами использования." \
--allowedTools "Read,Write" \
--output-format json | jq -r '.result'Пример на Python (используя subprocess)#
import subprocess
import json
def ask_claude(prompt, tools="Read"):
"""Запускает Claude Code и возвращает результат."""
result = subprocess.run(
["claude", "-p", prompt,
"--allowedTools", tools,
"--output-format", "json"],
capture_output=True, text=True
)
return json.loads(result.stdout)
# Использование
response = ask_claude("Что делает функция main() в app.py?")
print(response["result"])Плагин agent-sdk-dev#
В репозитории Claude Code есть плагин agent-sdk-dev, который помогает создавать проекты с Agent SDK:
Команда /new-sdk-app#
claude --plugin-dir ./plugins/agent-sdk-dev
> /agent-sdk-dev:new-sdk-app my-agentЭта команда:
- Спросит язык (Python или TypeScript)
- Спросит тип агента (кодирование, бизнес, кастомный)
- Создаст все необходимые файлы
- Установит последнюю версию SDK
- Проверит настройку
Агенты-верификаторы#
Плагин включает агентов для проверки правильности настройки:
- agent-sdk-verifier-py — для Python-проектов
- agent-sdk-verifier-ts — для TypeScript-проектов
Когда использовать Agent SDK#
| Задача | Подход |
|---|---|
| Разовый вопрос о коде | Обычный claude |
| Автоматическая проверка в CI/CD | claude -p |
| Обработка множества файлов | Bash-скрипт с claude -p |
| Встраивание в своё приложение | Python/TypeScript SDK |
| Создание кастомного агента | Agent SDK |
Итоги урока#
- Agent SDK позволяет использовать Claude Code программно, не в интерактивном режиме
- Флаг
claude -pзапускает Claude Code в неинтерактивном режиме --output-format jsonвозвращает структурированный результат--json-schemaпозволяет задать точный формат ответа--allowedToolsограничивает доступные инструменты--continueпозволяет продолжить предыдущий разговор- Плагин
agent-sdk-devпомогает создавать проекты с Agent SDK - Для полноценного SDK доступны пакеты на Python и TypeScript