Есть ли способы интегрировать DeepSeek в PhpStorm?

Можно ли подключить DeepSeek к PhpStorm в агентском режиме? <br/> Я пробовал несколько плагинов — они лишь встраивают чат в IDE и не дают полноценного агентного поведения.
  • 4 апреля 2026 г. 9:00
Ответы на вопрос 3
Коротко — да, можно, но «из коробки» PhpStorm/плагины обычно только встраивают окно чата. Чтобы добиться настоящего агентного поведения (агент наблюдает IDE, делает правки, запускает команды, реагирует на события), нужно либо написать мост/плагин, который предоставляет DeepSeek доступ к API IDE, либо заставить DeepSeek работать как сервер/CLI, с которым плагин общается и который принимает команды.

Ниже — варианты и практическая схема реализации.

Варианты интеграции

1) Полноценный плагин для PhpStorm (рекомендуемый)
- Плагин на базе IntelliJ Platform SDK (Kotlin/Java) подключается к DeepSeek через HTTP/WebSocket/API.
- Плагин регистрирует фоновые службы и слушатели событий (открытие/сохранение файла, курсор, тесты, run configurations).
- Когда DeepSeek «решает» выполнить действие, плагин применяет его через OpenAPI (WriteCommandAction для правок, ExecutionManager для запуска, ToolWindow/Notifications для вывода).
- Плюсы: полный контроль, агент может автоматически вносить изменения, запускать тесты, показывать превью правок.
- Минусы: требуется разработка плагина и работа с безопасностью/разрешениями.

2) Через LSP (если DeepSeek может выступать LSP-сервером)
- Если DeepSeek умеет говорить по LSP, можно использовать встроенную поддержку LSP (или плагин LSP) — тогда агент получит доступ к diagnostics, code actions, completions.
- Ограничение: LSP хорош для анализа/рефакторинга/предложений, но не для произвольных действий в IDE (запуск терминала, создание конфигураций и т.п.).

3) CLI/скрипт + лёгкий плагин-адаптер
- DeepSeek работает как CLI/daemon. Плагин передаёт контекст (файлы, выделение) и получает инструкции.
- Подходит, если DeepSeek уже умеет работать через командную строку или вебвебхук.
- Проще в реализации, чем полноценный агент-плагин, но может быть менее отзывчивым.

4) Быстрая прототипная интеграция через LivePlugin / IDE scripting
- Для быстрого прототипа можно использовать LivePlugin (Groovy/JavaScript) или встроенную IDE scripting console (Kotlin) — написать скрипт, который вызывает API DeepSeek и делает простые правки.
- Ограниченно, но быстро для проверки концепции.

Что именно нужно плагину, чтобы получить «агентное» поведение
- Долгоживущая сессия (WebSocket или долгий опрос) с DeepSeek.
- Слушатели IDE-событий (EditorFactoryListener, PsiTreeChangeListener, FileEditorManagerListener и т.д.).
- Механизм доверенных команд: все автоматические правки должны выполняться через WriteCommandAction.runWriteCommandAction(project) и быть отзывчивыми/отменяемыми.
- UI для подтверждения/отмены действий (preview, diff, soft-apply).
- Auth UI для ввода ключа DeepSeek, безопасность/шифрование.
- Логи/локальная история, откат (LocalHistory) — безопасность при автоправках.

Практические соображения
- Безопасность: плагин получает доступ к коду — владельцы репозитория должны знать про это. Публикуемый на Marketplace плагин должен явно запрашивать права и объяснять использование ключей.
- Скорость/контекст: передавать в DeepSeek минимально достаточный контекст (файлы, AST, выделение), не весь проект, чтобы снизить задержки и утечку данных.
- Пользовательский контроль: рекомендую режим «предложить + подтвердить» по умолчанию и «автоприменять» — по настройке.
- Тестирование: запускайте изменения в sandbox/ветке, автоматические тесты перед применением.

Минимальная архитектура плагина (шаги)
1. UI: окно/ToolWindow для авторизации и чата.
2. Сервис: фонова служба (ProjectService) с подключением к DeepSeek (WS/HTTP).
3. Слушатели: подхватывают события (файлы, выделение) и отправляют контекст.
4. Обработчик команд: переводит ответы агента в действия IDE (правка файлов, запуск тестов).
5. UX: показывать превью/лог, журнал действий, кнопку отката.

Пример-псевдокод (Kotlin, сильно упрощённый)
- Инициализация сервиса:
  val service = project.getService(DeepSeekAgentService::class.java)
  service.connect(apiKey)

- Применение правки, когда агент прислал инструкцию:
  ApplicationManager.getApplication().invokeLater {
    WriteCommandAction.runWriteCommandAction(project) {
      val psiFile = PsiManager.getInstance(project).findFile(vFile)
      psiFile?.let { modifyPsi(it, newContent) }
    }
  }

Готов помочь дальше
- Если у DeepSeek есть конкретный HTTP/WS API или CLI — пришлите спецификацию (или пример запроса/ответа), и я помогу набросать skeleton-плагин (Kotlin) для PhpStorm.
- Могу дать более конкретный пример кода для: а) фоновой службы и общения с WebSocket; б) применения изменений в файлах с превью; в) регистрации слушателей событий IDE.

Хотите, я подготовлю стартовый плагин-скелет (Kotlin) для PhpStorm, который: авторизуется в DeepSeek, слушает открытые файлы и умеет применять/показывать правки? Если да — укажите версию PhpStorm/IDEA и доступную форму API у DeepSeek (REST/WebSocket/CLI).
а ты CodeGPT пробовал? у него не просто чат, а полноценный agent mode, DeepSeek поддерживает. плюс начиная с 2025.2 в шторме MCP-сервер встроен, можно aider в терминале гонять с дипсиком, он через MCP к IDE цепляется
Плагин Continue поддерживает режимы Chat, Plan, Agent, Background + Выбор моделей для Autocomlete, Aply, Embed, Rerank <br/> Есть MPC <br/> Плагин так себе, мне для тестов хватило. Я больше различные модели тестировал, а не удобство в IDE
Похожие вопросы