Python
Создавайте пользовательских ИИ-агентов с помощью Claude Code Python SDK
Предварительные требования
- Python 3.10+
claude-code-sdk
из PyPI- Node.js 18+
@anthropic-ai/claude-code
из NPM
Чтобы просмотреть исходный код Python SDK, см. репозиторий claude-code-sdk
.
Для интерактивной разработки используйте IPython: pip install ipython
Установка
Установите claude-code-sdk
из PyPI и @anthropic-ai/claude-code
из NPM:
(Необязательно) Установите IPython для интерактивной разработки:
Быстрый старт
Создайте своего первого агента:
Сохраните код выше как legal-agent.py
, затем запустите:
Для блокнотов IPython/Jupyter вы можете запустить код прямо в ячейке:
Примеры Python на этой странице используют asyncio
, но вы также можете использовать anyio
.
Основное использование
Python SDK предоставляет два основных интерфейса:
1. Класс ClaudeSDKClient
(рекомендуется)
Лучше всего подходит для потоковых ответов, многоходовых разговоров и интерактивных приложений:
2. Функция query
Для простых одноразовых запросов:
Параметры конфигурации
Python SDK принимает все аргументы, поддерживаемые командной строкой через класс ClaudeCodeOptions
.
Параметры ClaudeCodeOptions
Детали параметров
system_prompt
:str | None
- Пользовательский системный промпт, определяющий роль агентаappend_system_prompt
:str | None
- Дополнительный текст, добавляемый к системному промптуmax_turns
:int | None
- Максимальное количество ходов разговора (неограниченно, если None)model
:str | None
- Конкретная модель Claude для использованияmax_thinking_tokens
:int
- Максимальное количество токенов для процесса мышления Claude (по умолчанию: 8000)allowed_tools
:list[str]
- Инструменты, специально разрешенные для использованияdisallowed_tools
:list[str]
- Инструменты, которые не следует использоватьcontinue_conversation
:bool
- Продолжить самый последний разговор (по умолчанию: False)resume
:str | None
- UUID сессии для возобновления конкретного разговораcwd
:str | Path | None
- Рабочий каталог для сессииadd_dirs
:list[str | Path]
- Дополнительные каталоги для включения в контекстsettings
:str | None
- Путь к файлу настроек или строка JSON настроекpermission_mode
:str | None
- Режим обработки разрешенийpermission_prompt_tool_name
:str | None
- Имя пользовательского инструмента запроса разрешенийmcp_servers
:dict | str | Path
- Конфигурации MCP серверовextra_args
:dict[str, str | None]
- Передача произвольных флагов CLI в базовый Claude Code CLI
Режимы разрешений
"default"
: CLI запрашивает разрешение для опасных инструментов (поведение по умолчанию)"acceptEdits"
: Автоматически принимать редактирование файлов без запроса"plan"
: Режим планирования - анализировать без внесения изменений"bypassPermissions"
: Разрешить все инструменты без запроса (используйте с осторожностью)
Пример расширенной конфигурации
Структурированные сообщения и входные изображения
SDK поддерживает передачу структурированных сообщений и входных изображений:
Многоходовые разговоры
Метод 1: Использование ClaudeSDKClient для постоянных разговоров
Пользовательские системные промпты
Системные промпты определяют роль, экспертизу и поведение вашего агента:
Пользовательские инструменты через MCP
Протокол контекста модели (MCP) позволяет предоставить вашим агентам пользовательские инструменты и возможности:
Пользовательский инструмент запроса разрешений
Реализуйте пользовательскую обработку разрешений для вызовов инструментов:
Форматы вывода
Текстовый вывод с потоковой передачей
JSON вывод с метаданными
Форматы ввода
Примеры интеграции агентов
Агент реагирования на инциденты SRE
Автоматизированный обзор безопасности
Многоходовой юридический помощник
Лучшие практики для Python
Ключевые паттерны
Советы для IPython/Jupyter
Связанные ресурсы
- Использование CLI и элементы управления - Полная документация CLI
- Интеграция GitHub Actions - Автоматизируйте ваш рабочий процесс GitHub с Claude
- Общие рабочие процессы - Пошаговые руководства для общих случаев использования