Как создать AI-агента на Claude и запустить на VPS
Узнайте, как настроить Claude в качестве ядра логики для вашего AI-агента. Руководство по интеграции Messages API, инструментов и MCP для управления задачами на VPS.
Что означает создание агента с использованием Claude
Создание агента с использованием Claude означает, что Claude выступает в роли ядра логического вывода, в то время как цикл выполнения, инструменты и данные находятся на вашем собственном сервере. Claude принимает решение о дальнейших действиях, а ваш VPS их исполняет. Вы отправляете Claude задачу и текущее состояние, Claude отвечает либо готовым результатом, либо запросом на использование одного из ваших инструментов. Ваш код запускает инструмент и возвращает результат обратно, и этот цикл продолжается до завершения задачи. Интеллектуальные возможности — это сервис, к которому вы обращаетесь через интернет. Всё остальное находится под вашим полным контролем.
Именно это разделение и является преимуществом. Вы получаете возможности логического вывода передового уровня без необходимости эксплуатировать модель самостоятельно, при этом сохраняя полный контроль над тем, к чему агент имеет доступ, так как инструменты работают на вашем оборудовании. Если вы уже создали свою первую программу для Claude, то руководство по первому приложению на Claude на VPS содержит базовые сведения, на которых строится данный материал.
Claude — это «мозг»: Messages API
Все вызовы Claude проходят через один endpoint — Messages API. Вы отправляете историю текущего диалога и список инструментов, которые агент может использовать; Claude возвращает следующее сообщение. Это сообщение является либо окончательным ответом, либо запросом на вызов инструмента. При самостоятельной разработке отдельного «API агента» не существует: использование инструментов является функцией этого единственного endpoint, а цикл обработки запросов вы реализуете самостоятельно.
Claude не сохраняет состояние между вызовами, поэтому он ничего не помнит самостоятельно. Каждый запрос содержит всю историю диалога. Ваш код хранит эту историю и отправляет её на каждом шаге, что и является причиной, по которой каждый следующий шаг в длинной сессии потребляет больше токенов, чем предыдущий. Это не столько ограничение, сколько архитектурное решение: поскольку состояние хранится на вашем сервере, вы сами решаете, что именно видит Claude, и никакие данные о задаче не сохраняются там, где вы не имеете полного контроля. Это означает, что промпт постоянно увеличивается. Хотя контекстное окно Claude легко справляется с этим, локальная модель в аналогичном цикле — нет, поэтому для Ollama необходимо увеличить num_ctx, чтобы она не обрезала длинные промпты.
Использование инструментов — это цикл работы агента
Цикл работы агента с Claude описывается просто. Вы отправляете запрос, который включает ваши инструменты. Claude считывает задачу и, если требуется действие, отвечает запросом на использование инструмента, указывая его имя и заполняя входные данные. Ваш код выполняет этот инструмент, а затем отправляет результат обратно в Claude в следующем запросе. Claude считывает результат и либо запрашивает другой инструмент, либо формирует окончательный ответ. Когда запросы на использование инструментов прекращаются, задача считается выполненной.
Вы можете написать этот цикл вручную в несколько строк, и многие так и делают, поскольку его легко отслеживать и контролировать. Официальные SDK также предоставляют исполнитель инструментов (tool runner), который управляет циклом за вас: вы предоставляете функции инструментов, а SDK берет на себя обмен данными — вызовы Claude, запуск инструментов и передачу результатов обратно до тех пор, пока Claude не завершит работу. В любом случае структура остается прежней. Исполнитель просто избавляет вас от необходимости писать цикл самостоятельно. Если цикл все еще кажется абстрактным, лучше всего написать минимальную его реализацию, прежде чем переходить к использованию готового исполнителя. Это тот шаг, на котором строится все остальное в этом пошаговом руководстве по изучению AI-агентов с нуля.
Три способа создания агентов и их применимость для VPS
Существует три способа создания агента Claude, которые различаются объемом инфраструктуры, которую вы обслуживаете самостоятельно.
Первый способ — написание собственного кода, который обращается к Claude API с использованием ваших инструментов. Вы самостоятельно создаете цикл обработки или используете встроенный в SDK механизм запуска инструментов, размещая всё решение на своем VPS. Это наиболее распространенный выбор, так как он дает полный контроль над инструментами, данными и безопасностью, а само решение работает как обычная программа на сервере. Большая часть этого руководства посвящена именно этому пути.
Второй способ — использование Claude Agent SDK. Это Claude Code, агент для написания кода, оформленный в виде библиотеки, на базе которой можно строить свои решения. Он содержит готовый цикл работы агента и встроенные инструменты для чтения и записи файлов, выполнения shell-команд и поиска, поэтому вам не нужно собирать их с нуля. Он также работает на вашем сервере, что делает его отличным выбором для VPS, если вам нужен функциональный агент для работы с файлами и shell без необходимости самостоятельно создавать обвязку. Агент, который читает файлы и выполняет shell-команды, требует изоляции перед тем, как начать работать без присмотра, и в разделе безопасный запуск Claude Code на сервере рассматриваются система прав доступа, песочница и варианты изоляции.
Третий способ — управляемые агенты (Managed Agents), где Anthropic берет на себя цикл работы и предоставляет песочницу, в которой выполняются инструменты агента. Это вариант с минимальным участием: вам почти не нужно ничего настраивать, но рабочее пространство агента находится в инфраструктуре Anthropic, а не на вашем VPS. Выбирайте этот вариант, если хотите минимизировать эксплуатационные расходы и вам не требуется, чтобы инструменты работали на вашей собственной машине. В двух других случаях ваш сервер является домом для агента, и именно этому посвящена остальная часть данного руководства.
Подключение инструментов с помощью MCP
Какой бы путь вы ни выбрали, вам потребуется подключить агента к реальным системам, и Model Context Protocol — это удобный способ сделать это. MCP представляет собой открытый стандарт для предоставления агенту доступа к инструментам и данным. Вместо того чтобы вручную писать интеграцию для каждого сервиса, вы указываете Claude на MCP-сервер, который уже предоставляет эти возможности в виде инструментов. Вы можете запускать MCP-серверы как небольшие службы на том же VPS, каждая из которых имеет только необходимые ей права доступа, что я рассматриваю в запуске MCP-серверов на VPS.
Выбор модели
Claude представлен несколькими моделями, и выбор конкретной из них — это поиск баланса между функциональностью, скоростью и стоимостью. На момент написания статьи основными вариантами являются Claude Opus 4.8 (claude-opus-4-8) — производительный стандарт для сложных логических задач и длительных агентских сценариев; Claude Sonnet 5 (claude-sonnet-5) — сбалансированный вариант, который дешевле и быстрее, при этом не уступающий Opus во многих задачах; и Claude Haiku 4.5 (claude-haiku-4-5) — самая быстрая и дешевая модель для простых высоконагруженных операций. Выше них находится Claude Fable 5 (claude-fable-5) — наиболее мощная модель для самых ресурсоемких задач. Используйте в коде точный идентификатор модели без указания даты.
Практичный подход заключается в их комбинировании. Поручите более дешевой модели выполнение рутинных вызовов инструментов, а более мощной — принятие сложных решений. Поскольку модель задается простой строкой в запросе, переключение выполняется изменением одной строки кода. Начинайте с производительной модели по умолчанию и переходите к более легким вариантам там, где скорость или стоимость важнее предельного качества.
Запуск в качестве защищенного сервиса на VPS
Агент полезен только тогда, когда он работает, и безопасен только тогда, когда он изолирован. На VPS оба этих условия выполняются при запуске агента как защищенного системного сервиса, а не как программы, запущенной вручную в терминале. В качестве сервиса он запускается при загрузке, перезапускается при сбоях и записывает логи в journal. В защищенном режиме он работает от имени непривилегированного пользователя с минимально необходимыми правами доступа, поэтому последствия ошибки или выполнения вредоносной инструкции ограничены. Юнит сервиса может лишь ограничить доступ процесса к ресурсам, поэтому остальное остается на уровне самого агента — это задачи, которые решают плагины DeepSeek Harness, которые стоит установить на другом уровне: лимиты расходов, правила доступа для отдельных инструментов и сканирование на предмет prompt injection.
Самое важное правило — хранить API key для Claude только на стороне сервера. Этот ключ оплачивает и авторизует каждый запрос, поэтому он должен находиться в файле, доступном для чтения только пользователю агента, загружаться в сервис как переменная окружения и никогда не помещаться в код, репозиторий или любое место, доступное через браузер. Сгенерируйте готовый защищенный юнит сервиса для вашего агента здесь:
Затем завершите настройку самого сервера. Оставьте доступ по SSH только по ключам и ограничьте учетную запись, с которой вы работаете, как описано в укреплении SSH на VPS. Если вы предпочитаете управлять агентом из интерактивной сессии во время его настройки, запуск Claude Code на VPS с помощью tmux станет хорошим подспорьем. Когда у вас открыта вторая сессия на той же машине, они могут передавать задачи друг другу, вместо того чтобы вы переносили каждую инструкцию из одной панели в другую. Если же вас интересуют концепции, лежащие в основе всего этого, без привязки к конкретной модели, в руководстве создание собственного AI-агента на VPS изложены все основы.
Если вам нужен помощник для написания кода в терминале, в статье запуск AI-агента для программирования на VPS рассматриваются Aider и Goose.
FAQ
Какую модель Claude использовать для создания агента?
Начните с Claude Opus 4.8 (claude-opus-4-8) — это универсальный вариант по умолчанию, от которого можно отталкиваться. Claude Sonnet 5 (claude-sonnet-5) дешевле и быстрее для большинства задач, Claude Haiku 4.5 (claude-haiku-4-5) лучше всего подходит для простых высоконагруженных операций, а Claude Fable 5 (claude-fable-5) обладает наибольшими возможностями для самых сложных задач. Распространенный подход — использовать более дешевую модель для рутинных шагов и более мощную для принятия критических решений, так как переключение требует изменения всего одной строки кода.
Где запускать агента: на моем VPS или на стороне Anthropic?
Это зависит от выбранного подхода. Если вы пишете собственный цикл взаимодействия с Claude API или используете Claude Agent SDK, агент работает полностью на вашем VPS, а к Anthropic уходят только запросы к модели. Если вы используете Managed Agents, Anthropic запускает цикл и предоставляет изолированную среду (sandbox) для выполнения инструментов, поэтому на вашем сервере работает меньше компонентов. Для агента, который должен выполняться на вашей машине, используйте один из первых двух вариантов.
В чем разница между Claude API и Claude Agent SDK?
Claude API — это базовый эндпоинт Messages: вы отправляете историю диалога и инструменты, а затем либо самостоятельно пишете цикл управления агентом, либо используете встроенный в SDK исполнитель инструментов. Claude Agent SDK — это библиотека более высокого уровня, Claude Code, адаптированная для разработки; она содержит готовый цикл работы и встроенные инструменты для работы с файлами, оболочкой (shell) и поиском. Используйте API, если хотите контролировать все аспекты самостоятельно, и Agent SDK, если вам нужен функциональный агент без необходимости собирать всю инфраструктуру с нуля.
Как обеспечить безопасность API-ключа Claude на сервере?
Храните его на стороне сервера и не включайте в исходный код. Сохраните ключ в файле, доступном для чтения только той учетной записи, от имени которой работает агент, загружайте его в сервис через переменную окружения и никогда не добавляйте в репозиторий и не передавайте в браузер. Поскольку каждый запрос к Claude отправляется с вашего сервера, ключ никогда не попадает на устройство пользователя, что делает серверного агента более защищенным по сравнению с агентом, встроенным в клиентское приложение.
Нужно ли самостоятельно хостить модель для создания агента на базе Claude?
Нет. В случае с Claude модель является облачным сервисом, к которому вы обращаетесь через API, поэтому на GPU ничего запускать не нужно. Ваш VPS выполняет цикл работы агента, инструменты и обработку данных, а логические вычисления происходят на стороне Anthropic. Именно это позволяет даже скромному серверу запускать мощного агента. Если же вы хотите использовать полностью локальную модель, это путь самостоятельного хостинга, который описан в руководстве по созданию собственного AI-агента.