Зачем вам Newelle 1.2, если все уже устали от облачных ботов?
Представьте себе: локальный ассистент, который не просто болтает, а лезет в ваши документы, помнит, о чем вы говорили неделю назад, и умеет управлять системой. Без интернета. Без ежемесячных счетов. Без шпионажа. Звучит как утопия? Это Newelle 1.2.
Релиз 1.2 — это не косметика. Это полноценный инженерный прорыв. Поддержка llama.cpp наконец-то отвязывает нас от капризных Python-оберток. Гибридный поиск перестает гадать на кофейной гуще. Семантическая память — та самая фича, о которой все кричат, но никто не умеет делать правильно. И да, инструменты команд через MCP — это ваша кнопка "сделать всё".
Готовы? Запаситесь кофе. Это не кликбейтный туториал из пяти шагов. Мы будем копать глубоко, потому что поверхностная настройка — это потраченные часы и нулевой результат.
Что сломается, если вы пропустите подготовку
Первый грех новичков — лезть в установку, не проверив систему. Newelle — не игрушка. Ему нужны ресурсы и правильное окружение.
1 Проверка железа и софта
- Оперативная память: Минимум 16 ГБ. Для моделей 7B параметров — сойдет. Для 13B+ — 32 ГБ и молитесь.
- Видеокарта (опционально, но очень желательно): NVIDIA с 8+ ГБ VRAM или современный AMD с поддержкой ROCm. Без нее llama.cpp будет работать на CPU, и вы уснете, ожидая ответа.
- Диск: 20 ГБ свободного места. Модели весят прилично.
- Дистрибутив: Любой современный дистр с поддержкой Flatpak. Мы будем ставить через него, потому что это самый чистый способ избежать dependency hell.
# Проверяем, что Flatpak установлен и работает
flatpak --version
# Если команда не найдена, ставим (на примере Ubuntu/Debian)
sudo apt install flatpak
2 Установка Flatpak-пакета Newelle
Репозиторий пока не в Flathub. Качаем и ставим вручную.
# Скачиваем пакет (актуальная версия на момент написания)
wget https://releases.newelle.ai/newelle-1.2.flatpak
# Устанавливаем локально
flatpak install --user --bundle newelle-1.2.flatpak
# Запускаем первый раз для инициализации конфигов
flatpak run ai.newelle.app
После запуска закройте окно. Нам нужно лезть в конфиги, а графический интерфейс пока бесполезен.
Сердце системы: заставляем llama.cpp петь, а не хрипеть
Встроенная версия llama.cpp часто собрана с минимальными оптимизациями. Мы заменим ее на свежую, собранную под наше железо. Это даст прирост скорости в 1.5-2 раза.
# Переходим в директорию данных Newelle
cd ~/.var/app/ai.newelle.app/data/newelle
# Скачиваем последнюю стабильную версию llama.cpp
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
# Собираем с поддержкой GPU (CUDA). Для AMD замените CUDA на ROCm.
make LLAMA_CUBLAS=1 -j$(nproc)
Теперь нужно указать Newelle использовать наш собранный бинарник. Редактируем конфиг.
nano ~/.var/app/ai.newelle.app/config/newelle/config.yaml
Находим секцию llama_cpp и меняем путь:
llama_cpp:
server_path: "/home/ваш_пользователь/.var/app/ai.newelle.app/data/newelle/llama.cpp/server"
model_path: "/home/ваш_пользователь/.var/app/ai.newelle.app/data/newelle/models"
Абсолютные пути. Только так. Относительные сломаются из-за изоляции Flatpak.
3 Загрузка модели: какой вес выбрать и куда его пихать
Newelle умеет тянуть модели из ollama, но я не доверяю их репозиторию. Качаем вручную с Hugging Face. Для гибридного поиска и работы с инструментами нужна модель, которая умеет следовать инструкциям и не галлюцинирует в JSON.
- Для слабых систем: TinyLlama-1.1B-Chat-v1.0-GGUF (1.5 ГБ). Быстро, но глупо.
- Золотая середина: Llama-3.2-1B-Instruct-GGUF (0.9 ГБ) или Mistral-7B-Instruct-v0.3-GGUF (4.5 ГБ).
- Для серьезных задач: Llama-3.1-8B-Instruct-GGUF (5.5 ГБ). Моя рекомендация.
# Создаем папку для моделей
mkdir -p ~/.var/app/ai.newelle.app/data/newelle/models
cd ~/.var/app/ai.newelle.app/data/newelle/models
# Качаем выбранную модель (пример для Llama 3.1 8B)
wget https://huggingface.co/bartowski/Llama-3.1-8B-Instruct-GGUF/resolve/main/Llama-3.1-8B-Instruct-Q4_K_M.gguf
Теперь в конфиге config.yaml укажите имя файла модели в секции model.
Гибридный поиск: когда и ключевые слова, и смысл работают вместе
Обычный RAG часто промахивается. Вы ищете "как настроить сеть", а он находит документ со словом "сеть" в контексте рыбалки. Гибридный поиск комбинирует два метода: лексический (классический поиск по словам) и семантический (поиск по смыслу). Newelle 1.2 делает это из коробки, но настройка — ключ к точности.
Откройте конфиг и найдите секцию rag.
rag:
enabled: true
hybrid_search:
enabled: true
weight_semantic: 0.7 # Вес семантического поиска (0-1)
weight_keyword: 0.3 # Вес ключевого поиска
vector_database:
type: chroma # Встроенная база векторов
persist_directory: "/home/ваш_пользователь/.var/app/ai.newelle.app/data/newelle/vectors"
Вес 0.7/0.3 — это отправная точка. Если ваши документы технические, с кучей специфичных терминов (например, логи сервера), увеличьте weight_keyword до 0.5. Если это творческие тексты или переписка — оставляйте уклон в семантику.
Как загрузить документы? Бросьте PDF, TXT, MD файлы в папку ~/.var/app/ai.newelle.app/data/newelle/library. При запуске Newelle проиндексирует их автоматически. Первая индексация может занять время.
Семантическая память: заставить ассистента помнить, что вы — не золотая рыбка
Без памяти каждый диалог — это разговор с незнакомцем. Newelle хранит контекст не только в рамках сессии, но и вычленяет из него ключевые факты ("пользователь живет в Москве", "работает DevOps-инженером", "ненавидит Docker Compose") и кладет их в долгосрочное хранилище. Принцип похож на stateful memory в продвинутых агентах.
В конфиге ищем memory:
memory:
semantic:
enabled: true
extraction_model: "llama-3.1-8b" # Модель для извлечения фактов (можно оставить как есть)
storage_path: "/home/ваш_пользователь/.var/app/ai.newelle.app/data/newelle/memory.db"
context_window: 8192 # Размер окна контекста модели
Самая частая ошибка — дать модели с маленьким контекстом (например, 2K) пытаться запоминать много фактов. Она начнет терять нить. Убедитесь, что context_window соответствует возможностям вашей GGUF-модели.
Инструменты команд (MCP): дайте ассистенту руки
Без инструментов ассистент — просто болтун. Model Context Protocol (MCP) — это относительно новый стандарт, который позволяет безопасно подключать к LLM инструменты вроде поиска в интернете, выполнения кода или управления файлами. Newelle 1.2 имеет встроенный MCP-сервер.
Настройка в config.yaml:
mcp:
enabled: true
servers:
- name: "filesystem"
command: "python3"
args: ["-m", "mcp_server_fs", "--root", "/home/ваш_пользователь/Documents"]
- name: "bash"
command: "node"
args: ["/путь/к/mcp-server-bash/dist/index.js"]
MCP-серверы — это отдельные программы. Простейший сервер для работы с файловой системой можно поставить через pip:
# Установите pip для пользователя, если нет
pip install --user mcp-server-fs
Но помните: давать LLM доступ к bash — это как дать ребенку паяльник. Ограничивайте корневую директорию и используйте только в доверенной среде. Подробнее о философии инструментов читайте в нашем руководстве по n8n и инструментам.
Запуск и первые команды: момент истины
# Запускаем Newelle с нашего собранного llama.cpp сервера
flatpak run ai.newelle.app
Интерфейс откроется в браузере. Первое, что делаем:
- Выбираем модель в настройках (должна появиться наша загруженная GGUF).
- Включаем RAG и указываем папку с документами.
- Активируем семантическую память.
- Проверяем подключение MCP-серверов в логах (должно быть "Connected to server 'filesystem'").
Тестовая команда, которая использует всё сразу: "Найди в моих документах информацию о настройке Nginx и создай в папке 'конфиги' текстовый файл с краткой выжимкой".
Где все падает: разбор типичных ошибок
| Ошибка | Причина | Решение |
|---|---|---|
| "Failed to load model" | Неверный путь к модели или битая GGUF-файл. | Проверьте права на файл и путь в config.yaml. Скачайте модель заново. |
| RAG не находит документы | Индексация не запустилась или формат файла не поддерживается. | Бросьте простой .txt файл в папку library. Перезапустите Newelle и смотрите логи на предмет ошибок парсинга. |
| MCP-сервер не подключается | Команда или аргументы в конфиге неверны. Или сервер не установлен глобально. | Запустите команду из конфига вручную в терминале. Убедитесь, что она работает. Используйте абсолютные пути. |
| Ответы медленные (1-2 слова в секунду) | Модель работает на CPU, а не на GPU. | Убедитесь, что llama.cpp собран с LLAMA_CUBLAS=1 (для NVIDIA) или LLAMA_HIPBLAS=1 (для AMD). В логах запуска ищите строку "CUDA enabled". |
Что дальше? Неочевидный трюк, который меняет всё
Вы все настроили. Newelle работает. Что теперь? Самый сок — в кастомизации промптов системы. Откройте ~/.var/app/ai.newelle.app/data/newelle/prompts/system.md. Там лежит шаблон, который определяет личность ассистента.
Не пишите "ты — полезный ассистент". Это бесполезно. Дайте ему роль, характер, ограничения. Например:
Ты — ОСЬ, операционная система, встроенная в компьютер пользователя.
Твои принципы:
1. Минимализм. Отвечай коротко, по делу.
2. Контекст — всё. Всегда используй память и документы перед ответом.
3. Не предлагай помощь, если не спросили. Ты — инструмент, а не надоедливый коллега.
4. При использовании инструментов (MCP) всегда выводи точную команду, которую выполнил.
Формат ответов: [ОСЬ] <ответ>. Если используешь инструмент: [ОСЬ|ФАЙЛ] <действие>.
Такая тонкая настройка превращает Newelle из просто поисковика с чатом в настоящего AI-монстра в одной коробке. Он начинает вести себя предсказуемо и полезно.
Дальше — экспериментируйте. Подключите внешние MCP-серверы для работы с календарем или почтой. Настройте speculative decoding для ускорения. Или заставьте его парсить JSON, как описано в нашем гиде по структурированному выводу.
Главное — помните: это ваш ассистент. Он должен работать на вас, а не вы на него. Если что-то не нравится — лезьте в конфиги и ломайте. Это Linux. Это свобода.