Создавайте пользовательских ИИ-агентов с помощью Claude Code SDK
Установите SDK
@anthropic-ai/claude-code
из NPM:Установите ваш API ключ
ANTHROPIC_API_KEY
:Создайте своего первого агента
Запустите агента
@anthropic-ai/claude-code
из NPMclaude
. Используйте флаг --print
(или -p
) для запуска в неинтерактивном режиме и печати окончательного результата:Флаг | Описание | Пример |
---|---|---|
--print , -p | Запуск в неинтерактивном режиме | claude -p "запрос" |
--output-format | Указать формат вывода (text , json , stream-json ) | claude -p --output-format json |
--resume , -r | Возобновить разговор по ID сессии | claude --resume abc123 |
--continue , -c | Продолжить самый последний разговор | claude --continue |
--verbose | Включить подробное логирование | claude --verbose |
--append-system-prompt | Добавить к системному промпту (только с --print ) | claude --append-system-prompt "Пользовательская инструкция" |
--allowedTools | Список разрешенных инструментов, разделенных пробелами, или строка со списком разрешенных инструментов, разделенных запятыми | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Список запрещенных инструментов, разделенных пробелами, или строка со списком запрещенных инструментов, разделенных запятыми | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | Загрузить MCP серверы из JSON файла | claude --mcp-config servers.json |
--permission-prompt-tool | MCP инструмент для обработки промптов разрешений (только с --print ) | claude --permission-prompt-tool mcp__auth__prompt |
ANTHROPIC_API_KEY
, как показано в Быстром старте.
CLAUDE_CODE_USE_BEDROCK=1
и настройте учетные данные AWSCLAUDE_CODE_USE_VERTEX=1
и настройте учетные данные Google Cloud--allowedTools
. Имена инструментов MCP следуют шаблону mcp__<serverName>__<toolName>
, где:serverName
- это ключ из вашего файла конфигурации MCPtoolName
- это конкретный инструмент, предоставляемый этим серверомmcp__<serverName>
), все инструменты с этого сервера будут разрешены.Шаблоны glob (например, mcp__go*
) не поддерживаются.--permission-prompt-tool
для передачи инструмента MCP, который мы будем использовать для проверки того, предоставляет ли пользователь модели разрешения на вызов данного инструмента. Когда модель вызывает инструмент, происходит следующее:
--allowedTools
и --disallowedTools
, переданные в SDK; если одна из этих настроек разрешает или запрещает вызов инструмента, мы продолжаем с вызовом инструмента--permission-prompt-tool
--permission-prompt-tool
получает имя инструмента и входные данные, и должен вернуть JSON-строковую полезную нагрузку с результатом. Полезная нагрузка должна быть одной из:
updatedInput
, чтобы сказать модели, что промпт разрешений изменил ее входные данные; в противном случае установите updatedInput
на оригинальные входные данные, как в примере выше. Например, если инструмент показывает пользователю diff редактирования файла и позволяет ему редактировать diff вручную, инструмент промпта разрешений должен вернуть этот обновленный diff.init
, за которым следует список сообщений пользователя и помощника, за которым следует финальное системное сообщение result
со статистикой. Каждое сообщение выдается как отдельный JSON объект.
Message
и MessageParam
доступны в Anthropic SDK. Например, смотрите Anthropic TypeScript и Python SDK.
stdin
, где каждое сообщение представляет оборот пользователя. Это позволяет несколько оборотов разговора без перезапуска бинарного файла claude
и позволяет предоставлять руководство модели во время обработки запроса.
Каждое сообщение является JSON объектом ‘Сообщение пользователя’, следующим тому же формату, что и схема выходных сообщений. Сообщения форматируются с использованием формата jsonl, где каждая строка ввода является полным JSON объектом. Потоковый JSON ввод требует -p
и --output-format stream-json
.
В настоящее время это ограничено только текстовыми сообщениями пользователя.