Конфигурация Велеса
Основной файл конфигурации Велеса обычно находится в~/.veles/config.json. При запуске с --config можно использовать другой файл.
Ключи принимаются в camelCase и snake_case, но в пользовательском JSON лучше держаться camelCase.
Редактирование через интерфейс
В настройках Nerve есть раздел «Конфиг». Он читает текущийconfig.json через шлюз Велеса, строит поля по той же схеме, которую использует сервер, и поэтому автоматически подхватывает новые поля после изменения veles/config/schema.py.
Разделы agents, providers, gateway, channels, tools, secrets и skills выбираются через выпадающий список. Если внутри раздела есть вложенные объекты, например channels.telegram или channels.email, рядом появляется второй список подразделов. Такие объекты редактируются обычными полями формы, а не как сырой JSON. Кнопка «Сохранить и перезапустить» записывает файл и сразу планирует перезапуск шлюза, чтобы изменения применились без отдельного ручного действия.
Названия полей в форме показываются как обычный текст: например, blockPrivateNetworks отображается как «Block private networks». Если строковое значение в JSON содержит управляющую escape-последовательность вроде \b, поле показывает её явно, чтобы путь или логин не выглядели обрезанными.
gateway.token в этом разделе не показывается и не редактируется. При сохранении Велес сохраняет прежнее значение из исходной конфигурации. Значения, которые вынесены в зашифрованные секреты или представлены объектом-ссылкой на секрет, показываются как заглушки; сам секрет через этот раздел не раскрывается.
Кнопка «Править JSON» открывает полный физический config.json в обычной вкладке файлового редактора Nerve. Этот режим показывает gateway.token и секреты, если они записаны в файле открытым текстом. Сохранение проверяет JSON и схему Велеса, но не планирует перезапуск шлюза; после такой правки перезапустите шлюз вручную, когда захотите применить изменения.
Общая структура
agents
Разделagents.defaults задаёт поведение Велеса по умолчанию.
agents.defaults остаётся глобальной конфигурацией по умолчанию. Конкретная личность может иметь собственные model и thinkingLevel в personality.json; это не создаёт отдельную рабочую область, память или набор сессий.
compression — сжатие контекста
Блокagents.defaults.compression управляет сжатием контекста: когда беседа
разрастается, Велес заменяет старые ходы одним структурированным резюме, а
свежие сообщения и системный промпт сохраняет дословно. Подробное описание —
на странице Сжатие контекста.
Если
provider равен auto, префиксы в models работают как маршруты к поставщикам. Например, openrouter/... использует OpenRouter, а custom/... использует собственный совместимый адрес и передает ему имя модели без префикса.
Если запись модели не содержит modalities или модель не перечислена в списке, Велес считает её текстовой. Вложения-изображения передаются как данные только в модели, где явно указана поддержка image или vision; для остальных моделей Велес убирает данные изображения из запроса и оставляет текстовое описание вложения.
reasoningEfforts задаёт точный набор значений в переключателе уровня рассуждения для одной модели. Допустимы off, minimal, low, medium, high, xhigh и max; устаревшее имя uhigh приводится к xhigh. Для моделей с обязательным рассуждением не добавляйте off. Если поле не задано, Nerve получает доступные уровни из каталога OpenRouter. Идентификаторы openrouter/openai/<модель> и openai-codex/<модель> сопоставляются с одной записью openai/<модель> в этом каталоге. Явно заданное поле всегда имеет приоритет и позволяет сохранить нужный набор при недоступности внешнего каталога.
Если каталог возвращает supported_efforts: null, модель принимает все уровни шлюза. Если поле supported_efforts отсутствует, модель не предоставляет ручной выбор уровня: Nerve показывает фиксированное значение auto и не передаёт уровень поставщику. При смене модели Nerve одновременно сохраняет новую модель и совместимый с ней уровень, поэтому, например, max от предыдущей модели не переносится в модель без такого уровня.
providers
Каждый провайдер обычно имеетapiKey, apiBase и иногда extraHeaders.
openaiCodex и githubCopilot не требуют обычного apiKey в config.json. Для openaiCodex используется пустой блок-маркер, а токены доступа и обновления остаются только в зашифрованном хранилище:
apiBase для выбранного провайдера. Это только черновое значение внутри открытого раздела: если выйти назад или отменить раздел, конфигурация не считается изменённой и адрес не сохраняется.
Подробнее: Провайдеры и модели.
gateway
Разделgateway настраивает сервер Велеса: интерфейс, внутренние вызовы, каналы, расписания и периодические проверки.
gateway.token обязателен для запуска сервера. Не публикуйте его и не вставляйте в чат. Если токен удобнее передавать через окружение, используйте VELES_GATEWAY_TOKEN: это значение переопределяет gateway.token из config.json.
Nerve может запускаться без собственного GATEWAY_TOKEN: после входа пользователя он вызывает auth.login у Велеса, получает текущий токен только в серверный процесс и использует его для внутренних запросов. Пароль Nerve хранится в зашифрованном хранилище Велеса, а не в окружении Nerve.
channels
channels содержит настройки встроенных каналов и каналов-расширений. Общие поля:
allowFrom — белый список отправителей. Пустой список означает запрет всем. Чтобы разрешить всех, укажите ["*"].
Подробнее: Каналы и интеграции.
tools
Разделtools управляет встроенными инструментами, веб-поиском, MCP, памятью, распознаванием текста, аудио и глубоким исследованием.
blockPrivateNetworks управляет сетевой защитой инструментов. По умолчанию значение true: Велес блокирует адреса, которые указывают на частные сети, loopback и служебные локальные диапазоны. Если поставить false, exec и загрузка страниц смогут обращаться к внутренним доменам и частным адресам, если среда Велеса видит эту сеть.
Для постоянной установки включайте restrictToWorkspace, особенно если включён exec или внешние MCP-серверы.
Подробнее: Инструменты, веб-поиск и MCP.
sessionMemory и memoryFlush
sessionMemory управляет сохранением итогов завершённых сессий в память.
deleteBehavior: "hide" скрывает сессии из списков интерфейса Велеса, но оставляет точный поиск и возможность повторной активации. delete физически удаляет файлы через обычные пути удаления.
vectorMemory
Векторная память индексирует файлы внутриworkspace/docs/<project>. Документация самого Велеса при старте копируется в workspace/docs/agent рекурсивно, включая .md и .mdx, поэтому её можно искать как проект agent.
Векторная память индексирует документы для поиска по проекту.
Пустые файлы и фрагменты, состоящие только из пробелов, пропускаются и не отправляются в модель эмбеддингов.
docs/ и материалов, которые Велес должен находить по смыслу.
secrets
secrets описывает источники SecretRef: окружение, файл или команду.
VELES_SECRETS_MASTER_KEY.
Подробнее: Секреты и токены.
skills
skills.entries включает настройки отдельных навыков.
SKILL.md, даже если вы не добавляли их вручную в config.json. requires.env делает секрет обязательным для доступности навыка, а secrets.env создаёт опциональную цель в панели секретов.