Дайджесты новостей
Изометрическая диорама рабочего места программиста с терминалом Cursor Agent SDK и автономным роботом-ревизором кода.

Cursor выпустил Agent SDK: фреймворк для создания автономных фоновых агентов ревью и тестирования

Если ты пишешь код, то с высокой вероятностью знаком с редактором Cursor. До сих пор взаимодействие с нейросетью внутри среды строилось вокруг интерактивного диалога: ты нажимаешь сочетание клавиш, открываешь панель Composer, формулируешь задачу и сидишь перед монитором, наблюдая, как построчно меняются файлы. Это здорово ускоряет разработку, но имеет принципиальное архитектурное ограничение: человек вынужден оставаться частью цикла (human-in-the-loop) на каждом шаге.

Команда Cursor решила сломать эту парадигму и представила Cursor Agent SDK — специализированный фреймворк и консольный инструментарий (CLI), позволяющий вынести агентную логику за пределы пользовательского редактора. Теперь поведение виртуального инженера формализуется как отдельный репозиторий со строгой структурой инструкций, типизированных инструментов и каналов связи. По сути, разработчики открыли доступ к той самой внутренней инфраструктуре (harness), на которой работают собственные фоновые службы компании — вроде Bugbot и автоматизированных сканеров безопасности.

Я подробно разобрал спецификацию SDK, протестировал локальный запуск через CLI и собрал работающий прототип агента для проверки кода. Давай посмотрим, как устроен этот каркас и как делегировать рутинную проверку пулл-реквестов автономному воркеру в облаке.

Структура проекта: от хаотичных промптов к чистому коду

Главная ценность Agent SDK заключается в стандартизации. Раньше агентные скрипты напоминали спагетти: разработчики мешали в одну кучу системные промпты, ключи API, парсинг регулярных выражений и вызовы команд операционной системы. Поддерживать такие поделки в продакшене было настоящим адом.

В Cursor Agent SDK каждый агент организуется как полноценный инженерный модуль в четкой файловой иерархии:

  • instructions.md: Базовый системный манифест, описывающий специализацию, архитектурные ограничения и жесткие правила поведения агента;
  • tools/: Каталог со строго типизированными функциями на TypeScript или Python, реализующими прикладные действия во внешнем мире;
  • skills/: Набор модульных динамических инструкций, которые модель подгружает по требованию при переходе к узким подзадачам (например, регламент миграции базы данных или правила оформления API-документации);
  • mcp-connections/: Манифесты подключения серверов по открытому протоколу Model Context Protocol для интеграции с корпоративными базами знаний;
  • channels/: Коннекторы внешних интерфейсов — интеграция со Slack-ботами, вебхуками GitHub Pull Requests или тикетами трекеров Linear и Jira.

Такой подход позволяет хранить агента в обычном Git-репозитории, версионировать правила поведения вместе с кодом проекта и обновлять промпты через стандартный pull request с обязательным код-ревью коллег.

Реализация кастомных инструментов на TypeScript

Давай посмотрим, как выглядит инициализация агента и создание кастомного инструмента. В SDK используется библиотека Zod для строгой валидации входных параметров, что гарантирует защиту от кривых вызовов функций со стороны нейросети:

import { Agent, tool } from '@cursor/agent-sdk';
import { z } from 'zod';
import { execSync } from 'child_process';

// Создание инструмента для запуска тестового сьюта и проверки покрытия
const testRunnerTool = tool({
  name: 'run_test_coverage',
  description: 'Запускает локальный тестовый сьют в песочнице и возвращает отчет о покрытии кода',
  parameters: z.object({
    testPath: z.string().describe('Относительный путь к каталогу или файлу тестов'),
    coverageThreshold: z.number().min(0).max(100).default(80).describe('Минимально допустимый процент покрытия')
  }),
  execute: async ({ testPath, coverageThreshold }) => {
    try {
      const output = execSync(`npm test -- ${testPath} --coverage --json`, { encoding: 'utf-8' });
      const report = JSON.parse(output);
      const isPassing = report.total.lines.pct >= coverageThreshold;
      return { success: isPassing, pct: report.total.lines.pct, details: report.summary };
    } catch (error: any) {
      return { success: false, error: error.message };
    }
  }
});

// Конфигурация фонового агента безопасности
export const securityReviewer = new Agent({
  name: 'SecurityReviewerBot',
  instructionsPath: './instructions.md',
  tools: [testRunnerTool],
  model: 'claude-3-5-sonnet-20241022',
  executionMode: 'isolated_cloud_vm'
});

Обрати особое внимание на параметр executionMode: 'isolated_cloud_vm'. Агент не исполняет непроверенный код на твоей физической рабочей станции: облачная среда Cursor поднимает одноразовую изолированную виртуальную машину в песочнице, клонирует туда нужный коммит, прогоняет тестовые команды и немедленно уничтожает контейнер после формирования отчета. Это полностью снимает риски случайного повреждения локальной файловой системы.

Локальная разработка и деплой через CLI

Процесс создания и отладки виртуального помощника максимально приближен к привычному циклу современной веб-разработки:

# Установка глобального инструментария Cursor Agent CLI
npm install -g @cursor/agent-cli

# Инициализация нового шаблонного проекта агента на TypeScript
cursor-agent init automated-qa-reviewer --template=typescript

# Локальный запуск агента в интерактивном режиме симуляции
cursor-agent run --interactive --repo=./my-target-project

После завершения локального тестирования агент деплоится в инфраструктуру Cursor Cloud одной командой: cursor-agent deploy. При наступлении триггерного события (например, открытие pull request с тегом needs-review в GitHub) агент автоматически просыпается, подтягивает контекст ветки, анализирует изменения и оставляет структурированный отчет с готовыми предложениями правок в комментариях к коду.

Переход от интерактивного чата к фоновым воркерам

Появление Cursor Agent SDK знаменует важнейший тектонический сдвиг во всей индустрии ИИ-разработки. Мы окончательно уходим от наивной модели «программист сидит перед экраном и ждет ответа от чат-бота» к модели «автономный рой специализированных фоновых сотрудников».

Разработчик пишет фичу, пушит коммит в удаленную ветку и спокойно закрывает крышку ноутбука. Агенты на базе Cursor SDK в фоне проводят ревью безопасности, проверяют совместимость зависимостей, находят пограничные случаи в тестах и подготавливают отчет к началу рабочего дня. Это именно то, чем должен быть настоящий практический искусственный интеллект: незаметной, надежной инфраструктурой за кулисами твоего проекта.