Может кому пригодится, на просторах интернета не нашел, как запустить модель deepseek в idea, потому сам вместе с deepseek допиливал конфиг и обучал модель работе через инструменты плагина. Ну и попутно решил проблему с зависаниями, плагин очень любил зависнуть, приходилось ide перезапускать.

Сразу оговорюсь, решение не элегантно, я не убирал лишний код, строки и текст, я просто добился рабочего состояния и более ничего не тестировал и не трогал. Годами работы приучен "работает - не трож". Потому решение as is выкладываю. Можете сами эксперименты проводить и допиливать, мне был просто нужен рабочий инструмент, на тюнинг не осталось желания, накрыла лень и я продолжил заниматься изначальным своим проектом =)

Шаги:

1) VPN включаем

2) в настройках плагинов в idea добавляем репозиторий https://plugins.jetbrains.com/plugins/eap/list

Обновляем Continue до версии EAP

3) VPN выключаем

4) Создаем конфиг в плагине Continue:

name: Optimized Continue Config
version: 1.0.0
schema: v1

models:
  - name: DeepSeek Coder
    provider: openai
    model: deepseek-coder
    apiKey: ВАШ API-KEY
    apiBase: https://api.deepseek.com/beta
    roles: [chat, edit, apply]
    defaultCompletionOptions:
      temperature: 0.1
      maxTokens: 3072
      stream: true
    requestOptions:
      timeout: 30000
      verifySsl: true

# Критические настройки производительности
tabAutocompleteModel: null
disableIndexing: false
maxIndexingTokens: 250000
indexDebounceMs: 2000

# Правильный контекст (без дублирования)
context:
  - provider: file
    params:
      maxTokens: 1500
      numFiles: 8
      useGitIgnore: true
      autoDetectPaths: true
      suggestPaths: true

  - provider: code
    params:
      maxTokens: 800
      useGitIgnore: true

  - provider: diff
    params:
      maxTokens: 800

  - provider: terminal  # Добавляем терминал для доступа
    params:
      maxTokens: 500

  - provider: http
    name: Web Search
    params:
      maxTokens: 600
      timeout: 5000

# Системные настройки
systemMessage: |
  You are an expert programming assistant with access to files and project context.
  Provide accurate, concise solutions with working code.
  When editing files, show minimal diffs and explain changes.
  For large files, break changes into smaller parts if needed.

С настройками производительности можно поиграться, я на минимум все гнал, потому что у меня MacBook Air Early 2015 8 Гб и i5 1,6 Ghz, не пробовал на компе запускать, мне удобно на маке

Далее, в чат модели скормите дословно эту инструкцию (или обрежьте, оставив важную информацию) и ваш агент в idea готов работать с вашим проектом из плагина. Вот инструкция для модели:

Вот тебе инструкция, как работать через плагин с проектом, а не через консоль. Изучи. Это из самого плагина описание и команды:

Настройки плагина - tools - Built-in tools

read_file

Description: Use this tool if you need to view the contents of an existing file.

Arguments: filepath(string):The path of the file to read. Can be a relative path (from workspace root), absolute path, tilde path (~/...), or file:// URI

create_new_file

Description: Create a new file. Only use this when a file doesn't exist and should be created

Arguments: filepath(string):The path where the new file should be created. Can be a relative path (from workspace root), absolute path, tilde path (~/...), or file:// URI.

contents(string):The contents to write to the new file

run_terminal_command

Description: Run a terminal command in the current directory. The shell is not stateful and will not remember any previous commands. When a command is run in the background ALWAYS suggest using shell commands to stop it; NEVER suggest using Ctrl+C. When suggesting subsequent shell commands ALWAYS format them in shell command blocks. Do NOT perform actions requiring special/admin privileges. IMPORTANT: To edit files, use Edit/MultiEdit tools instead of bash commands (sed, awk, etc). Choose terminal commands and scripts optimized for darwin and x64 and shell /bin/zsh.

Arguments: command(string):The command to run. This will be passed directly into the IDE shell.

waitForCompletion(boolean):Whether to wait for the command to complete before returning. Default is true. Set to false to run the command in the background. Set to true to run the command in the foreground and wait to collect the output.


file_glob_search

Description: Search for files recursively in the project using glob patterns. Supports ** for recursive directory search. Will not show many build, cache, secrets dirs/files (can use ls tool instead). Output may be truncated; use targeted patterns

Arguments: pattern(string):Glob pattern for file path matching


view_diff

Description: View the current diff of working changes


read_currently_open_file

Description: Read the currently open file in the IDE. If the user seems to be referring to a file that you can't see, or is requesting an action on content that seems missing, try using this tool.

ls

Description: List files and folders in a given directory

Arguments: dirPath(string):The directory path. Can be relative to project root, absolute path, tilde path (~/...), or file:// URI. Use forward slash paths

recursive(boolean):If true, lists files and folders recursively. To prevent unexpected large results, use this sparingly

create_rule_block

Description: Creates a "rule" that can be referenced in future conversations. This should be used whenever you want to establish code standards / preferences that should be applied consistently, or when you want to avoid making a mistake again. To modify existing rules, use the edit tool instead. Rule Types: - Always: Include only "rule" (always included in model context) - Auto Attached: Include "rule", "globs", and/or "regex" (included when files match patterns) - Agent Requested: Include "rule" and "description" (AI decides when to apply based on description) - Manual: Include only "rule" (only included when explicitly mentioned using @ruleName)Arguments:

name(string):Short, descriptive name summarizing the rule's purpose (e.g. 'React Standards', 'Type Hints')

rule(string):Clear, imperative instruction for future code generation (e.g. 'Use named exports', 'Add Python type hints'). Each rule should focus on one specific standard.

description(string):Description of when this rule should be applied. Required for Agent Requested rules (AI decides when to apply). Optional for other types.

globs(string):Optional file patterns to which this rule applies (e.g. ['**/*.{ts,tsx}'] or ['src/**/*.ts', 'tests/**/*.ts'])

regex(string):Optional regex patterns to match against file content. Rule applies only to files whose content matches the pattern (e.g. 'useEffect' for React hooks or '\bclass\b' for class definitions)

alwaysApply(boolean):Whether this rule should always be applied. Set to false for Agent Requested and Manual rules. Omit or set to true for Always and Auto Attached rules.

fetch_url_content

Description: Can be used to view the contents of a website using a URL. Do NOT use this for files.

Arguments: url(string):The URL to read


request_rule

Description:Use this tool to retrieve additional 'rules' that contain more context/instructions based on their descriptions. Available rules: No rules available.

Arguments: name(string):Name of the rule

edit_existing_file

Description: Use this tool to edit an existing file. If you don't know the contents of the file, read it first. When addressing code modification requests, present a concise code snippet that emphasizes only the necessary changes and uses abbreviated placeholders for unmodified sections. For example: ``language /path/to/file // ... existing code ... {{ modified code here }} // ... existing code ... {{ another modification }} // ... rest of code ... ` In existing files, you should always restate the function or class that the snippet belongs to: `language /path/to/file // ... existing code ... function exampleFunction() { // ... existing code ... {{ modified code here }} // ... rest of function ... } // ... rest of code ... `` Since users have access to their complete file, they prefer reading only the relevant modifications. It's perfectly acceptable to omit unmodified portions at the beginning, middle, or end of files using these "lazy" comments. Only provide the complete file when explicitly requested. Include a concise explanation of changes unless the user specifically asks for code only. This tool CANNOT be called in parallel with other tools.Arguments:

filepath(string):The path of the file to edit, relative to the root of the workspace.

changes(string):Any modifications to the file, showing only needed changes. Do NOT wrap this in a codeblock or write anything besides the code changes. In larger files, use brief language-appropriate placeholders for large unmodified sections, e.g. '// ... existing code ...'


single_find_and_replace

Description: Performs exact string replacements in a file. IMPORTANT: - ALWAYS use the read_file tool just before making edits, to understand the file's up-to-date contents and context. The user can also edit the file while you are working with it. - This tool CANNOT be called in parallel with other tools. - When editing text from read_file tool output, ensure you preserve exact whitespace/indentation. - Only use emojis if the user explicitly requests it. Avoid adding emojis to files unless asked. - Use replace_all for replacing and renaming strings across the file. This parameter is useful if you want to rename a variable, for instance. WARNINGS: - When not using replace_all, the edit will FAIL if old_string is not unique in the file. Either provide a larger string with more surrounding context to make it unique or use replace_all to change every instance of old_string. - The edit will likely fail if you have not recently used the read_file tool to view up-to-date file contents.

Arguments:

filepath(string):The path to the file to modify, relative to the root of the workspace

old_string(string):The text to replace - must be exact including whitespace/indentation

new_string(string):The text to replace it with (MUST be different from old_string)

replace_all(boolean):Replace all occurrences of old_string (default false)

grep_search

Description: Performs a regular expression (regex) search over the repository using ripgrep. Will not include results for many build, cache, secrets dirs/files. Output may be truncated, so use targeted queriesArguments:

query(string):The regex pattern to search for within file contents. Use regex with alternation (e.g., 'word1|word2|word3') or character classes to find multiple potential words in a single search.

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

ИНСТРУКЦИЯ ДЛЯ РАБОТЫ С ФАЙЛАМИ ЧЕРЕЗ PLUGIN CONTINUE

? ОСНОВНЫЕ ПРИНЦИПЫ

1. Как работает плагин в этой версии:

  • У AI есть доступ к инструментам для работы с файловой системой

  • Инструменты работают с относительными путями от корня проекта

  • Кнопка "Apply" в интерфейсе часто не работает для создания новых файлов

  • Команды через / (слэш) могут не работать

2. Доступные инструменты:

  • create_new_file - создание новых файлов

  • edit_existing_file - редактирование существующих файлов

  • read_file - чтение содержимого файлов

  • single_find_and_replace - замена текста в файлах

  • ls - просмотр структуры директорий

  • run_terminal_command - выполнение команд в терминале

? ПРАВИЛЬНЫЙ СПОСОБ РАБОТЫ

ДЛЯ СОЗДАНИЯ НОВЫХ ФАЙЛОВ:

НЕПРАВИЛЬНО:

  • Предлагать код с комментариями пути

  • Ожидать, что кнопка "Apply" создаст файл

ПРАВИЛЬНО: Использовать инструмент create_new_file:

create_new_file

filepath: "относительный/путь/к/файлу.java"

contents: "package com.example;\n\npublic class MyClass {\n    // содержимое\n}"

Пример создания Java-файла:

create_new_file

filepath: "src/main/java/com/example/MyService.java"

contents: "package com.example;\n\nimport org.springframework.stereotype.Service;\n\n@Service\npublic class MyService {\n    public String hello() {\n        return \"Hello\";\n    }\n}"

ДЛЯ РЕДАКТИРОВАНИЯ ФАЙЛОВ:

НЕПРАВИЛЬНО:

  • Предлагать полный файл заново

  • Использовать "Apply" для больших изменений

ПРАВИЛЬНО: Использовать инструмент edit_existing_file:

edit_existing_file

filepath: "путь/к/файлу.java"

changes: "// ... существующий код ...\nновый код\n// ... остальной код ..."

Пример редактирования:

edit_existing_file  

filepath: "src/main/java/com/example/ExistingClass.java"

changes: "// ... существующий код ...\npublic void newMethod() {\n    System.out.println(\"Новый метод\");\n}\n// ... остальной код ..."

ДЛЯ ЧТЕНИЯ ФАЙЛОВ:

ПРАВИЛЬНО: Использовать инструмент read_file:

read_file

filepath: "путь/к/файлу.java"

? РАБОТА С ПРОЕКТОМ

1. Анализ структуры проекта:

ls

dirPath: "src/main/java"

recursive: false

2. Поиск файлов:

file_glob_search

pattern: "**/*.java"

3. Проверка изменений:

view_diff

? ПРАКТИЧЕСКИЕ СОВЕТЫ

1. Всегда проверяй существование файла перед редактированием:

  • Сначала read_file чтобы увидеть текущее содержимое

  • Потом edit_existing_file для внесения изменений

2. Используй относительные пути:

  • От корня проекта: src/main/java/com/example/File.java

  • Не используй абсолютные пути

3. Для сложных операций:

  • Разбивай на несколько шагов

  • Сначала создай файл, потом отредактируй

  • Проверяй результат после каждого шага

4. Если нужно выполнить системную команду:

run_terminal_command

command: "команда для выполнения"

waitForCompletion: true

? ЧАСТЫЕ ОШИБКИ И РЕШЕНИЯ

Ошибка: "Could not resolve filepath to apply changes"

Причина: Плагин не может определить путь из предложенного кода Решение: Используй инструменты вместо кнопки "Apply"

Ошибка: Файл не создается

Причина: Неправильный формат пути Решение: Используй относительные пути от корня проекта

Ошибка: Изменения не применяются

Причина: Файл был изменен параллельно Решение: Перечитай файл перед редактированием

? ПРИМЕР РАБОЧЕГО ПРОЦЕССА

  1. Анализ проекта:

    • ls для просмотра структуры

    • read_file для изучения ключевых файлов

  2. Создание нового компонента:

    • create_new_file для создания класса

    • edit_existing_file для добавления зависимостей

  3. Рефакторинг:

    • read_file для анализа текущего кода

    • single_find_and_replace для переименования

    • edit_existing_file для улучшения кода

  4. Тестирование:

    • run_terminal_command для запуска тестов

    • view_diff для проверки изменений

? КЛЮЧЕВЫЕ ПРАВИЛА

  1. Всегда используй инструменты вместо кнопки "Apply" для файловых операций

  2. Проверяй пути - они должны быть относительными от корня проекта

  3. Читай перед редактированием - чтобы понимать текущее состояние

  4. Разбивай сложные задачи на простые шаги

  5. Используй терминал для системных операций, а не для работы с файлами проекта

  6. Если появится ошибка от плагина о нехватке токенов для обработки файла - отредактируй конфиг, увеличь лимиты на операции с файлами вдвое, конфиги лежат тут: /путь_до проекта/.continue/agents/*.yaml

Эта инструкция поможет правильно работать с файлами через плагин Continue, создавать новые файлы, редактировать существующие и анализировать структуру проекта.

Теперь используй правильные инструменты и давай продолжать нашу задачу по проекту

Пользуйтесь на здоровье.

Комментарии (15)


  1. oldzoomer
    09.01.2026 15:55

    У меня RTX 5060, и я не понимаю тех, кто заводит себе DeepSeek... gpt-oss-20b и Qwen3-Coder 30B-A3B намного лучше работает.

    И да - насчёт постоянного заскока на корень ОС - это баг в Continue, и 2 дня назад прилетел на их гитхаб PR с фиксом для этого.

    Если использовать нормальные модели (не DeepSeek), то достаточно будет просто короткого промпта о том, чтобы юзал тулзы, а не терминал в первую очередь.