OpenSquilla

by opensquilla (open source) · Python 3.12+, GPT, Claude, Llama, Mistral, локальные модели через Ollama/vLLM, Windows, macOS, Linux

Assistant AI Assistants Open Source v0.5.3 · 13.08.2026 активный

Token-эффективный AI-агент — та же плотность интеллекта при том же бюджете токенов.

v0.5.3
13.08.2026 current

Установка
# Установка uv (пропустить, если уже установлен)
# Linux / macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
. "$HOME/.local/bin/env"
# Windows PowerShell:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
$env:Path = "$env:USERPROFILE\.local\bin;" + $env:Path

# Установка OpenSquilla (одинакова на всех платформах)
uv tool install --python 3.12 "opensquilla[recommended] @ https://github.com/opensquilla/opensquilla/releases/download/v0.5.3/opensquilla-0.5.3-py3-none-any.whl"

# Настройка и запуск
opensquilla onboard
opensquilla gateway run
показать оригинал переведено ИИ

OpenSquilla — Экономичный к токенам AI-агент

Логотип OpenSquilla

Тот же бюджет, больше возможностей, лучшие результаты.
Микроядерный AI-агент для вашего CLI, веб-интерфейса и чат-каналов.

CI Веб-сайт Релиз GitHub Python 3.12+ Лицензия Apache 2.0

English · 中文 · 日本語 · Français · Deutsch · Español


Новости

  • 📢 2026-08-22 — Английская версия нашего технического отчёта теперь доступна на aiXiv: aixiv.260822.000001. См. Цитирование для информации о том, как цитировать OpenSquilla.
  • 📢 2026-08-21 — PDF-версии нашего технического отчёта теперь доступны в этом репозитории: English · 中文.
  • 📢 2026-07-14 — Наш технический отчёт Agentic Routing: The Harness-Native Data Flywheel теперь на arXiv. Он показывает, как встроенный в каркас маршрутизатор превращает повседневный трафик агентов в самоулучшающийся цикл обработки данных, и как ансамблевая маршрутизация нескольких моделей превосходит Fable 5.

Обзор

OpenSquilla — это экономичный к токенам микроядерный AI-агент. Локальный маршрутизатор моделей отправляет каждый ход самой дешёвой модели, которая может с ним справиться, а постоянная память, многоуровневая песочница, встроенный веб-поиск и встроенные эмбеддинги на устройстве дополняют единый общий цикл ходов.

Каждая точка входа — веб-интерфейс, CLI и чат-каналы — работает через этот же цикл, поэтому диспетчеризация инструментов, повторные попытки и журналирование решений ведут себя одинаково везде. Подключаемый уровень провайдеров работает с TokenRhythm, OpenRouter, OpenAI, Anthropic, Ollama, DeepSeek, Gemini, Qwen/DashScope и 20+ другими LLM-провайдерами без изменений вашего кода или схемы конфигурации.

OpenSquilla 0.5.3 — текущая стабильная версия.

Для документации о продукте, ориентированной на задачи, начните с Руководства по продукту OpenSquilla или индекса документации.


Установка

OpenSquilla работает на Windows, macOS и Linux. Выберите путь, который соответствует вашему сценарию использования.

Установщики для настольных ПК и быстрая установка через терминал дают вам готовый релиз — без необходимости Git. Два других варианта — Установка из исходников и Разработка из исходников — собираются из Git-клона (git clone + Git LFS), включая консоль управления Vue. Релизные колеса и установщики для настольных ПК уже содержат эту консоль, поэтому их пользователям не нужны Node.js или npm.

Команды установки релиза используют опубликованные ресурсы релиза GitHub. Установка Python-колеса использует версионированные имена файлов колес, поскольку установщики проверяют версию, встроенную в имя файла колеса.

Для использования на настольном ПК с версией 0.5.3 предпочтительны упакованные установщики для настольных ПК из Релиза GitHub: OpenSquilla-0.5.3-mac-arm64.dmg на macOS и OpenSquilla-0.5.3-win-x64.exe на Windows.

Путь Аудитория Когда использовать
Установка с рабочего стола (рекомендуется для настольных ПК) Пользователи macOS и Windows Готовое настольное приложение
Быстрая установка из терминала (рекомендуется) Конечные пользователи на любой ОС Готовый wheel-пакет из терминала
Установка из исходников Пользователи, следящие за веткой main Запуск из клонированного репозитория, без редактирования
Разработка из исходников Контрибьюторы Редактирование, тестирование или отладка исходного кода

Предварительные требования

Требование Быстрая установка из терминала Установка из исходников Разработка из исходников
Python 3.12+ через uv через uv или системный через uv
Git + Git LFS — требуется требуется
Node.js 22.12+ + npm — требуется для сборки веб-интерфейса требуется для веб-интерфейса и wheel-пакетов
uv устанавливается при отсутствии рекомендуется требуется

Профиль recommended по умолчанию устанавливает SquillaRouter — маршрутизатор моделей OpenSquilla на устройстве — и его ресурсы моделей; OPENSQUILLA_INSTALL_PROFILE=core исключает эти зависимости. Отдельный флаг онбординга --router disabled оставляет зависимости установленными, но отключает маршрутизатор во время выполнения.

В Windows встроенная среда выполнения ONNX от SquillaRouter также требует наличия Visual C++ runtime. Установщик PowerShell из исходников устанавливает его автоматически через winget; путь Быстрой установки из терминала (uv tool install) этого не делает — если при запуске появляется ошибка DLL load failed, установите его вручную (см. Устранение неполадок). OpenSquilla продолжает работу с прямым одномодельным маршрутизированием, пока он не установлен.

При установке из терминала на macOS среда выполнения LightGBM от SquillaRouter может также потребовать системную библиотеку OpenMP. Настольное приложение включает необходимую среду выполнения, но Быстрая установка из терминала не устанавливает библиотеки Homebrew/системные библиотеки. Если при запуске появляется Library not loaded: @rpath/libomp.dylib, выполните brew install libomp, затем перезапустите шлюз. OpenSquilla продолжает работу с прямым одномодельным маршрутизированием, пока он не установлен.

Ссылки для установки: Git · Git LFS · Node.js · uv.

Установка с рабочего стола

Установщики рабочего стола версии 0.5.3 упаковывают консоль управления Vue и среду выполнения шлюза в оболочку Electron.

Для более быстрой загрузки в материковом Китае используйте псевдонимы прямой загрузки OSS: - macOS Apple Silicon: https://opensquilla-releases.oss-cn-beijing.aliyuncs.com/releases/latest/OpenSquilla-mac-arm64.dmg - Windows x64: https://opensquilla-releases.oss-cn-beijing.aliyuncs.com/releases/latest/OpenSquilla-win-x64.exe

Эти фиксированные ссылки обновляются только после того, как более новая подходящая версия пройдёт проверку зеркала. Используйте перечисленные выше версионированные ссылки на GitHub Release, когда вам нужен конкретный релиз.

Перед обновлением закройте все запущенные экземпляры настольного приложения OpenSquilla. На macOS перетащите приложение из DMG в папку «Программы» для установки или обновления, извлеките DMG, затем откройте копию из «Программ». Существующий профиль Desktop в каталоге данных приложения платформы будет использоваться повторно. Каталог ~/.opensquilla терминальной установки — это отдельный профиль; переносите его явно через «Настройки», только если это необходимо.

При обновлении Windows Desktop с RC3 до RC4 или более поздней версии запустите новый установщик прямо поверх существующей установки. Не удаляйте RC3 заранее: его деинсталлятор может удалить пользовательские данные настольной версии. Создайте резервную копию %APPDATA%\OpenSquilla перед обновлением. Установщики RC4 и более поздних версий сохраняют данные профиля при обычном удалении.

Политика подписи кода: docs/code-signing-policy.md.

[!ПРИМЕЧАНИЕ] Сборки для Windows в настоящее время не подписаны. Если появится SmartScreen, выберите Дополнительно → Выполнить в любом случае. Если Smart App Control или корпоративная политика блокирует неподписанное приложение, используйте вместо этого Быструю установку из терминала.

Быстрая установка из терминала

Рекомендуемый путь для Windows, macOS и Linux. uv устанавливает OpenSquilla в собственную изолированную среду и управляет собственным Python — системный Python не требуется. Этот путь устанавливает только опубликованные релизы; для ветки main, веток разработки или локальных копий используйте Установку из исходников. 1. Установите uv — пропустите этот шаг, если uv --version уже работает.

Linux / macOS:

curl -LsSf https://astral.sh/uv/install.sh | sh
. "$HOME/.local/bin/env"

Windows PowerShell:

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
$env:Path = "$env:USERPROFILE\.local\bin;" + $env:Path

2. Установите OpenSquilla — команда одинакова на всех платформах.

uv tool install --python 3.12 "opensquilla[recommended] @ https://github.com/opensquilla/opensquilla/releases/download/v0.5.3/opensquilla-0.5.3-py3-none-any.whl"

Эта команда устанавливает колесо OpenSquilla по указанному URL релиза, а затем позволяет uv загрузить зависимости, объявленные выбранными дополнительными опциями. Дополнительная опция recommended по умолчанию включает зависимости рантайма SquillaRouter, такие как ONNX Runtime, LightGBM, NumPy и токенизаторы, поэтому при первой установке требуется доступ к сети, если эти колеса не были закэшированы. uv не устанавливает системные нативные рантаймы, такие как macOS libomp или распространяемый пакет Visual C++ для Windows; см. Устранение неполадок, если рантайм роутера сообщает об ошибке загрузки нативной библиотеки.

3. Настройте и запустите.

opensquilla onboard
opensquilla gateway run

[!ПРИМЕЧАНИЕ] Если opensquilla не найден сразу после свежей установки через uv, откройте новый терминал или повторно выполните строку PATH из шага 1.

Для полностью зафиксированной установки используйте URL колеса с версией: https://github.com/opensquilla/opensquilla/releases/download/v0.5.3/opensquilla-0.5.3-py3-none-any.whl.

Установка из исходного кода

Используйте этот путь для запуска OpenSquilla из локальной копии без её изменения. Клон содержит только исходный код пакета для установщика; после установки используйте команду opensquilla — не запускайте uv run. Вместо этого выберите Разработка из исходного кода, если вы намерены изменять код.

  1. Клонируйте репозиторий с LFS-ассетами

    sh git lfs install git clone https://github.com/opensquilla/opensquilla.git cd opensquilla git lfs pull --include="src/opensquilla/squilla_router/models/**"

  2. Запустите установщик

    macOS / Linux

    sh bash scripts/install_source.sh

    Windows PowerShell

    powershell powershell -ExecutionPolicy Bypass -File ./scripts/install_source.ps1

    Скрипт устанавливает .[recommended] (SquillaRouter + память + локальные модели) в выделенное пользовательское окружение через uv tool install. Перед установкой Python он выполняет npm ci и npm run build в opensquilla-webui. Каждая повторная установка из исходников пересоздаёт заблокированное дерево node_modules и пересобирает консоль; первый запуск обычно требует наибольшей загрузки зависимостей, а тёплый кэш npm сокращает последующий сетевой трафик, но не всё время сборки или записи на диск. Затем он устанавливает собранную консоль вместе с Python-пакетом, возвращаясь к python -m pip install --user, если uv недоступен. Если opensquilla не находится в PATH после установки (частая ситуация на новом хосте, где ~/.local/bin ещё не в PATH), выполните uv tool update-shell и откройте новый терминал; подробности см. в разделе Устранение неполадок.

    Прямые pip install ., uv tool install . и установки по VCS URL — это низкоуровневые пути сборки из исходников, а не замена этому установщику. Локальная копия работает только после сборки её веб-интерфейса; копия по VCS URL не имеет сгенерированного артефакта и намеренно отклоняется. Используйте этот установщик из исходников или официальное релизное колесо.

  3. (Необязательно) Установите дополнительные функции. Большинство каналов — Feishu, Telegram, DingTalk, QQ, WeCom, Slack и Discord — работают из базовой установки. Дополнительные опции, подключаемые вручную:

    • matrix — канал Matrix (подтягивает matrix-nio)
    • matrix-e2e — канал Matrix со сквозным шифрованием (требуется libolm)
    • document-extras — генерация PDF через WeasyPrint

    sh OPENSQUILLA_INSTALL_EXTRAS=matrix bash scripts/install_source.sh # macOS / Linux

    powershell powershell -ExecutionPolicy Bypass -File ./scripts/install_source.ps1 -Extras matrix # Windows

  4. Настройте и запустите — см. Конфигурация.

Установка из исходного кода — требования к терминалу и параметры установщика

Установка предварительных требований (Git, Git LFS, Node.js 22.12+ с npm, uv) из терминала

Windows PowerShell:

winget install --id Git.Git -e
winget install --id GitHub.GitLFS -e
winget install --id OpenJS.NodeJS.LTS -e
powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"
git lfs install

macOS (Homebrew):

brew install git git-lfs node uv
git lfs install

Debian / Ubuntu:

sudo apt update && sudo apt install -y git git-lfs curl
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
curl -LsSf https://astral.sh/uv/install.sh | sh
git lfs install

На Fedora используйте sudo dnf install -y git git-lfs; на Arch используйте sudo pacman -S --needed git git-lfs; установите Node.js 22.12+ и npm из вашего дистрибутива или с nodejs.org, затем установите uv с помощью команды curl выше. Изменения PATH от этих установщиков применяются к новым сеансам терминала.

Переменные окружения установщика и проверки PATH

OPENSQUILLA_INSTALL_PROFILE=core   bash scripts/install_source.sh   # minimal runtime, no SquillaRouter
OPENSQUILLA_INSTALL_DRY_RUN=1      bash scripts/install_source.sh   # print the plan only

Проверьте, какой opensquilla запускает ваша оболочка, с помощью command -v opensquilla (macOS/Linux) или where.exe opensquilla (Windows). Если она не в PATH, выполните uv tool update-shell. После переустановки из локального клона перезапустите шлюз, чтобы он загрузил обновлённый пакет.

Разработка из исходного кода

Используйте этот способ, когда вы работаете с исходным кодом OpenSquilla: вносите изменения, запускаете тесты или отлалаживаете поведение в этом клоне. Это не обычный путь установки. В отличие от Установки из исходного кода, этот способ требует uv: uv sync создаёт локальный для репозитория .venv, а uv run выполняет команды с файлами из этого клона.

cd opensquilla-webui
npm ci
npm run build
cd ..
uv sync --extra recommended --extra dev
uv run opensquilla --help

Запустите npm run build снова после изменения исходных файлов Web UI. Стандартные сборки wheel завершаются ошибкой, если сгенерированная консоль отсутствует или устарела; редактируемые установки uv sync остаются доступными для работы только с бэкендом.

Дополнительный пакет recommended включает SquillaRouter для разработки; пакет dev устанавливает инструменты тестирования, линтинга и проверки типов. Установите дополнительные пакеты в то же окружение, которое вы используете:

uv sync --extra recommended --extra dev --extra matrix
uv run opensquilla channels status matrix --json

В этом режиме добавляйте uv run перед каждой командой opensquilla в Конфигурации. Не отлаживайте разрабатываемый клон с помощью пользовательской команды opensquilla — эта команда работает в другом окружении Python.

Удаление

Удалите OpenSquilla с помощью opensquilla uninstall. По умолчанию он сохраняет ваши данные и удаляет только программу:

opensquilla uninstall --dry-run   # preview what would be removed and kept
opensquilla uninstall             # remove the program, keep your data

Чтобы также удалить данные, явно согласитесь:

opensquilla uninstall --purge-state    # sessions, logs, cache, scheduler, memory
opensquilla uninstall --purge-config   # config.toml and secrets (.env)
opensquilla uninstall --purge-all      # everything (asks you to type a confirmation)

Сначала запущенный шлюз останавливается и завершается, удаление остаётся в пределах домашнего каталога OpenSquilla, а для установок Docker/desktop предоставляются пошаговые инструкции по удалению. Удаление настольного приложения или приложения ОС остаётся специфичным для платформы; инструкции CLI не удаляют пакет настольного приложения. Полную справку см. в docs/cli.md.


Конфиденциальность установки

OpenSquilla использует псевдонимную телеметрию установки для оценки количества установок, внедрения версий и совместимости во время выполнения. Данные отправляются при первом запуске шлюза и один раз для каждой версии OpenSquilla. Он также записывает агрегированные данные без содержимого о завершённых разговорах верхнего уровня и использовании токенов по датам UTC, и пытается загружать накопленные снимки за UTC-день в службу телеметрии при запуске и раз в час. OpenSquilla также может выполнять пассивные проверки обновлений, включая автоматические проверки обновлений для настольных приложений при запуске и, пока приложение открыто, не чаще одного раза в день. Загрузки используют короткий тайм-аут и никогда не блокируют запуск.

Полную политику конфиденциальности, охватывающую локальные данные, запросы к провайдерам, наблюдаемость сети, журналы, загрузки релизов и удаление, см. в PRIVACY.md.

Что отправляется:

  • версия схемы
  • локально сгенерированный стабильный дайджест install_id
  • версия OpenSquilla
  • тип события (install, version_seen или daily_usage)
  • метод установки (pip, source, docker, desktop или unknown)
  • операционная система, версия ОС, архитектура ЦП и основная/дополнительная версия Python
  • метки времени первого появления и отправки
  • маркер CI/тестового окружения (ci_environment)
  • завершённый день UTC, количество разговоров и агрегированные счётчики токенов ввода/вывода/кэша/записи в кэш для событий ежедневного использования

install_id — это локальный односторонний дайджест SHA-256, полученный из доступных MAC-адресов, а затем локальных IP-адресов, если MAC недоступен, со случайным сохранённым запасным вариантом. Сырые значения MAC/IP не загружаются.

По умолчанию запросы, отправляемые непосредственно на официальный HTTPS API TokenRhythm, могут также содержать тот же псевдонимный идентификатор установки в необязательном заголовке X-OpenSquilla-Install-Id. Только точные официальные HTTPS-хосты tokenrhythm.studio и api.tokenrhythm.studio на порту 443 имеют право; пользовательские прокси, OpenRouter, другие провайдеры, страницы браузера, перенаправленные неофициальные цели и возвращённые загрузки изображений/CDN исключаются. Сырые значения MAC/IP никогда не отправляются. Заголовок опускается, если его фоновое разрешение не готово или не удалось, поэтому запросы продолжаются нормально.

Что не отправляется: имена пользователей, имена хостов, пути, ключи API, конфигурация провайдера, содержимое чатов/сеансов/памяти/агентов, имена файлов или содержимое файлов. Исходный IP-адрес может быть виден HTTP-серверам на транспортном уровне, но не является частью полезной нагрузки.

Чтобы отключить сетевое наблюдение, не инициированное пользователем, перед запуском:

OPENSQUILLA_PRIVACY_DISABLE_NETWORK_OBSERVABILITY=true

или установите:

[privacy]
disable_network_observability = true

Этот единый переключатель охватывает автоматическую телеметрию установки, ежедневную агрегированную телеметрию использования, пассивные проверки обновлений и автоматические проверки обновлений на рабочем столе при запуске и во время длительных сеансов работы приложения, а также заголовок установки TokenRhythm. Явные проверки доступности обновлений остаются отключенными, пока активен единый или устаревший отказ. Среды CI и тестирования также автоматически подавляют заголовок установки и телеметрию установки. Другие действия, инициируемые пользователем, могут по-прежнему связываться с сетевыми службами после намерения пользователя, включая загрузку релизов и настроенных провайдеров, поиск или каналы.

Переменные окружения для устаревшего отказа по-прежнему учитываются:

OPENSQUILLA_TELEMETRY_DISABLED=true
OPENSQUILLA_UPDATE_CHECK_DISABLED=true

Устаревший отказ от телеметрии подавляет заголовок установки TokenRhythm; отказ от проверки обновлений сам по себе этого не делает. TokenRhythm должен рассматривать заголовок как необязательный и ненадежный и не должен использовать его для решений об аутентификации, авторизации, выставлении счетов, ограничении скорости или защите от злоупотреблений. См. PRIVACY.md для полных правил обработки целей и данных.

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

OPENSQUILLA_TELEMETRY_ENDPOINT=https://example.com/v1/install

Конфигурация

Настройка при первом запуске

opensquilla onboard — это интерактивный мастер первого запуска. Он записывает активный файл конфигурации и хранит секреты провайдера в переменных окружения, когда вы передаете --api-key-env. Маршрутизатор по умолчанию имеет значение recommended (SquillaRouter на поддерживаемых провайдерах); передайте --router disabled для прямой маршрутизации одной модели.

opensquilla onboard                # full interactive wizard
opensquilla onboard --if-needed    # idempotent: safe for scripts and re-installs
opensquilla onboard --minimal      # provider only; skip channels and search
opensquilla onboard status         # inspect every setup section without writing

В SSH, CI или любой среде без TTY используйте неинтерактивную форму — храните секрет в окружении и передавайте его имя, а не значение:

Linux / macOS

export OPENROUTER_API_KEY="sk-..."
opensquilla onboard --provider openrouter --api-key-env OPENROUTER_API_KEY

Windows PowerShell

$env:OPENROUTER_API_KEY="sk-..."
opensquilla onboard --provider openrouter --api-key-env OPENROUTER_API_KEY

OpenRouter — это лишь пример — подставьте любого поддерживаемого провайдера и его переменную API-ключа.

Перенастройте один раздел позже, не переделывая весь мастер (эти примеры предполагают, что соответствующий API-ключ уже находится в окружении):

opensquilla configure provider --provider openai --model gpt-4o --api-key-env OPENAI_API_KEY
opensquilla configure router --router recommended
opensquilla configure search   --search-provider duckduckgo
opensquilla configure search   --search-provider exa --api-key-env EXA_API_KEY
opensquilla configure channels

Разделы: provider, router, channels, search, image-generation, memory-embedding. Веб-интерфейс предоставляет ту же модель каталога и состояния на /control/setup: Provider и Router — это быстрый путь, в то время как Channels, Search, Image generation и Memory embedding находятся в Центре возможностей и могут быть настроены позже. Пустые каналы рассматриваются как отказ, а не как неудачная настройка.

Порядок загрузки конфигурации: OPENSQUILLA_GATEWAY_CONFIG_PATH → ./opensquilla.toml → ~/.opensquilla/config.toml → встроенные значения по умолчанию. Значения окружения для отдельных секретов всегда имеют приоритет над значениями из файлов.

Миграция с OpenClaw или Hermes Agent

Если у вас уже есть состояние в ~/.openclaw или ~/.hermes, сначала выполните пробный прогон, чтобы просмотреть отчет о миграции, а затем примените его явно:

opensquilla migrate openclaw --json
opensquilla migrate openclaw --apply

opensquilla migrate hermes --json
opensquilla migrate hermes --apply

Используйте opensquilla migrate --source openclaw,hermes --apply для импорта обоих домашних каталогов по умолчанию. Добавляйте --migrate-secrets только после просмотра отчета пробного прогона. См. MIGRATION.md для пользовательских путей и обработки конфликтов.

Запуск

opensquilla gateway run                # foreground, 127.0.0.1:18791
opensquilla gateway start --json       # background + health wait
opensquilla chat                       # interactive REPL
opensquilla agent -m "your prompt"     # one-shot, automation-friendly

Для прогресса подпроцесса добавьте --event-stream-stderr. Конечный результат сохраняет существующий формат stdout, в то время как stderr получает инкрементально сбрасываемые, ограниченные конфиденциальностью события v1 JSONL. Потребители должны непрерывно читать stderr и рассматривать только объекты с "_event": true как события, поскольку обычные диагностические сообщения могут использовать тот же поток. См. docs/cli.md для версионированной схемы и контракта совместимости.

Параллельные подпроцессы агента должны использовать отдельные домашние каталоги профилей и корни постоянного состояния. Установите обе переменные для каждого дочернего процесса:

OPENSQUILLA_STATE_DIR=/tmp/agent-a \
OPENSQUILLA_GATEWAY_STATE_DIR=/tmp/agent-a/state \
  opensquilla agent -m "task A" --json --event-stream-stderr &
OPENSQUILLA_STATE_DIR=/tmp/agent-b \
OPENSQUILLA_GATEWAY_STATE_DIR=/tmp/agent-b/state \
  opensquilla agent -m "task B" --json --event-stream-stderr &
wait

В Windows установите оба значения в окружении каждого дочернего процесса. Если оркестратор копирует config.toml или .env, также удалите или перепишите каждое значение state_dir или OPENSQUILLA_GATEWAY_STATE_DIR. Явно общие пути к базе данных сеансов, рабочей области, временным файлам, транскриптам и использованию остаются общими по замыслу.

Терминальный интерфейс OpenTUI только для разработки. Релизные установки продолжают использовать чат на Python. Более богатый полноэкранный интерфейс в настоящее время работает только из разработки из исходного кода; сопутствующий хост не публикуется в релизных сборках и не устанавливается установщиком релиза. Из Из этого клона установите зафиксированные зависимости Bun один раз, затем запустите с тем же деревом исходников:

sh bun install --frozen-lockfile --cwd=src/opensquilla/cli/tui/opentui/package OPENSQUILLA_TUI_DEV_SOURCE_HOST=1 uv run opensquilla chat --ui tui

Используйте opensquilla chat --ui plain для стабильного рендерера. См. docs/tui.md для использования терминального чата и docs/features/tui-frontend.md для деталей бэкенда.

Откройте веб-интерфейс по адресу http://127.0.0.1:18791/control/. Представление Health показывает, готов ли OpenSquilla, что не готово, и следующие шаги восстановления. Из CLI выполните:

opensquilla doctor
opensquilla doctor --json
opensquilla doctor --config ./opensquilla.toml --json

/health и /healthz — это облегченные конечные точки проверки активности процессов. opensquilla doctor и представление Health в веб-интерфейсе являются поверхностями готовности для конфигурации провайдера, памяти, журналов, поиска, каналов, состояния песочницы, маршрутизатора, генерации изображений и рекомендаций по восстановлению. Нажмите Ctrl+C, чтобы остановить работающий на переднем плане шлюз.

Другие группы команд включают sessions, skills, memory, migrate, cron, channels, providers, models и cost. Выполните opensquilla --help или opensquilla <group> --help для подробностей.

Дополнительная конфигурация — проверка канала, привязка к публичной сети, Docker

Подключение и проверка канала обмена сообщениями

Сохранение канала — это изменение конфигурации, а не доказательство подключения в реальном времени. Перезапустите шлюз после изменения канала, затем проверьте активный канал:

opensquilla gateway restart
opensquilla channels status <name> --json

Считайте канал подключенным только когда в статусе указано enabled=true, configured=true и connected=true. Feishu по умолчанию использует режим websocket, Telegram — polling, а Slack может использовать Socket Mode — ни один из этих режимов не требует публичного URL. Режимы webhook для Feishu, Telegram, Slack и WeCom требуют публичный URL, доступный провайдеру.

Привязка к публичной сети

Чтобы получить доступ к веб-интерфейсу с другой машины, привяжите шлюз ко всем интерфейсам и используйте публичный IP хоста:

opensquilla gateway run --listen 0.0.0.0 --port 18791

Публичный доступ также требует, чтобы брандмауэр хоста или группа безопасности облака разрешали входящий TCP на этом порту. Не открывайте шлюз с [auth] mode = "none" — настройте аутентификацию по токену перед привязкой к 0.0.0.0.

Docker

Готовые многоплатформенные образы (amd64/arm64) публикуются в ghcr.io/opensquilla/opensquilla на тегах релизов. 0.5.3 опубликован как v0.5.3, так и под движущимся тегом latest — docs/docker.md — это полное руководство по контейнерам (домашние серверы и NAS, доступ в локальной сети с аутентификацией по токену, обновления):

OPENSQUILLA_GATEWAY_IMAGE=ghcr.io/opensquilla/opensquilla:latest docker compose up -d

Без OPENSQUILLA_GATEWAY_IMAGE путь compose запускает образ opensquilla:local, который вы собираете сами. Соберите его из клонированного исходного кода с загруженными ассетами маршрутизатора Git LFS (см. Установка из исходников для клонирования и git lfs pull):

docker build -t opensquilla:local .

./start.sh (или start.ps1 в Windows) затем выполняет docker compose up -d и выводит журналы шлюза. Docker позволяет избежать установки Python на хосте — но не сборку локального образа.

Уровни провайдера, настройка песочницы, генерация изображений и параметры параллелизма находятся в opensquilla.toml.example.


Что нового в 0.5.0

OpenSquilla 0.5.0 — первый стабильный выпуск линейки 0.5, включающий предварительные версии 1-4 и последующие исправления:

  • Ансамбль моделей и маршрутизация между несколькими провайдерами — один запрос может выполняться на нескольких моделях с предустановленными или настраиваемыми составами, управление провайдерами сохраняет проверенное состояние провайдера между перезапусками, а локальная маршрутизация на устройстве сохраняет классификацию локальной.
  • Безопасные обновления и защита профилей — защищенные предварительные просмотры миграции, восстановление профиля и сохранение данных профиля Windows при удалении.
  • Зрелость настольной версии — подписанные и нотариально заверенные сборки macOS с обновлениями внутри приложения, восстановление запуска шлюза и перезапуски с закрытием при ошибке.
  • Отчеты об использовании и стоимости — ежедневные сводки использования в надежном журнале с точной арифметикой выставления счетов.
  • Варианты загрузки — версионированные ресурсы GitHub, многоплатформенные образы GHCR и зеркало Alibaba Cloud OSS со стабильными псевдонимами загрузки. Архивы Windows Portable остаются снятыми с производства.

Полные примечания: CHANGELOG.md · docs/releases/0.5.0.md.

Что нового в 0.2.1

OpenSquilla 0.2.1 — это обслуживающий релиз, сосредоточенный на запуске пакета релиза и надёжности долго работающих агентов:

  • Портативный запуск Windows — портативный загрузчик лучше обнаруживает и загружает среду выполнения Visual C++, необходимую для встроенного ONNX-роутера.
  • Долгие ходы агента — сессии WebUI с большим количеством инструментов более чисто восстанавливаются после слишком больших результатов инструментов, некорректных вызовов инструментов, передачи артефактов и деградировавших финальных ответов.
  • Более чистый вывод WebUI — маркеры сгенерированных артефактов исключаются из обычного воспроизведения чата, при этом доставленные файлы остаются видимыми.
  • Оценка извлечения из памяти — локальные и совместимые с OpenAI эмбеддинги нормализуются перед семантическим поиском, а сильные совпадения по ключевым словам остаются полезными при низких векторных оценках.

Полные примечания: CHANGELOG.md · примечания к релизу.

Что нового в 0.2.0

Этот релиз расширяет OpenSquilla в области миграции, CLI-чата, каналов, планирования и долгой работы с инструментами:

  • Путь миграции из существующих домашних каталогов агентов — opensquilla migrate предпросматривает и применяет импорт из существующих домашних каталогов OpenClaw/Hermes, включая память, файлы персон, навыки, конфигурацию MCP/каналов, обработку конфликтов и отчёты о миграции.
  • Рабочий CLI-чат — opensquilla chat имеет стабильный терминальный интерфейс, потоковый вывод, очередь ввода, обнаружение слэш-режимов, полосы инструментов/статусов и более детерминированное поведение живого приглашения.
  • Кросс-поверхностная автоматизация cron — задания cron теперь охватывают структурированные расписания, точные/каждые/cron запуски с учётом часового пояса, доставку в каналы или вебхуки, назначение при сбоях, ручные запуски и паритет WebUI/CLI/RPC.
  • Улучшенные каналы Feishu и Discord — адаптеры каналов раскрывают более понятные метаданные возможностей, более безопасную обработку личных сообщений и групп, нативные пути файлов и артефактов, улучшенное поведение вложений и веток, при этом привилегированные действия остаются ограниченными.
  • Более надёжные долгие ходы — неудачные ходы исключаются из повтора провайдера, некорректные вызовы инструментов обрабатываются безопаснее, а повторные попытки с одобрением ожидают решений оператора.
  • Более умное бюджетирование контекста и инструментов — сжатие бюджета провайдера, сохранение кэша подсказок, ограниченные результаты инструментов и конкурентность с учётом побочных эффектов делают большие сессии с инструментами более предсказуемыми.
  • Полировка веб-интерфейса и релиза — сортировка по новизне, макет таблиц, мобильное управление, дублирующиеся уведомления, формы настройки, URL-адреса релизов и пути установки уточнены для 0.2.0.

Полные примечания: CHANGELOG.md · примечания к релизу.


Ключевые возможности

Возможность Что делает
Эффективная маршрутизация по токенам SquillaRouter — локальный классификатор LightGBM + ONNX в дополнительном пакете recommended — оценивает каждый ход по длине, языку, коду, ключевым словам и семантическим эмбеддингам, затем маршрутизирует его через четыре уровня (C0–C3; старые имена T0–T3 являются псевдонимами) на самую дешёвую подходящую модель. Классификация выполняется на устройстве; ваш промпт никогда не покидает машину для принятия этого решения.
Адаптивные рассуждения и промпты OpenSquilla запрашивает расширенные рассуждения только для тех ходов, которые роутер оценивает как сложные, а системный промпт масштабируется в зависимости от сложности задачи — лёгкий для тривиальных ходов, полные инструкции для сложных.
20+ LLM-провайдеров Реестр провайдеров нацелен на 20+ LLM-бэкендов — TokenRhythm, OpenRouter, OpenAI, Anthropic, Ollama, DeepSeek, Gemini, DashScope/Qwen, Moonshot, Mistral, Groq, Zhipu, SiliconFlow, vLLM, LM Studio и другие, с выбором основной + резервной; при первом запуске онбординг раскрывает проверенный поднабор.
Навыки и MCP по требованию 15 встроенных навыков (кодирование, GitHub, cron, pptx/docx/xlsx/pdf, суммаризация, tmux, погода и другие) загружаются только тогда, когда задача требует их. OpenSquilla является MCP-клиентом и также может работать как MCP-сервер — opensquilla mcp-server run требует дополнительный пакет mcp (установите opensquilla[recommended,mcp]). Навыки можно создавать, устанавливать и публиковать из CLI.
Постоянная локальная память Курируемый MEMORY.md плюс датированные заметки в Markdown, ищутся с помощью полнотекстового поиска по ключевым словам SQLite и семантического поиска sqlite-vec. Эмбеддинги выполняются на устройстве через встроенный ONNX или могут быть заменены на OpenAI/Ollama. Доступны опциональное экспоненциальное затухание и опциональная консолидация "снов".
Многоуровневая песочница безопасности Три уровня политик (Standard / Strict / Locked) в матрице разрешений. Bubblewrap изолирует выполнение кода в Linux; macOS выполняет команды через Seatbelt (sandbox-exec) с генерируемыми профилями SBPL; Windows использует нативный бэкенд windows_default после проверок готовности. Журнал отказов автоматически приостанавливает автономные запуски после повторных отказов, отклонённые выходные данные удаляются, а метаданные навыков и результаты инструментов экранируются XML для защиты от инъекций в промпты.
Встроенные инструменты Чтение/запись/редактирование файлов, шелл и фоновые процессы, git, веб-поиск (DuckDuckGo, Bocha, Brave, IQS, Tavily или Exa) и выборка за SSRF-защитой, создание электронных таблиц/PPTX/PDF, генерация изображений и синтез речи.
Единый шлюз Starlette ASGI-сервер на 127.0.0.1:18791 с WebSocket RPC и встроенной консолью управления (/control/). Веб-интерфейс, CLI и каналы для Terminal, WebSocket, Slack, Telegram, Discord, Feishu, DingTalk, WeCom, Matrix и QQ используют общий TurnRunner.
Устойчивые сессии, субагенты и планирование Хранилище сессий, транскриптов и воспроизведения на базе SQLite с рабочими пространствами для каждого агента. Агенты порождают субагентов с ограничением глубины, а SchedulerEngine со встроенным cron-парсером выполняет периодические задачи через opensquilla cron.
Контроль оператора Подтверждения с участием человека могут приостанавливать вызовы чувствительных инструментов для принятия решения; сводки токенов и затрат за ход и за сессию (opensquilla cost) и диагностика доступны из CLI и веб-интерфейса.

Документация MetaSkill: docs/features/meta-skills.md, docs/features/meta-skill-user-guide.md, и docs/authoring/meta-skills.md.


Результаты бенчмарков

Средние результаты PinchBench 1.2.1 по 25 задачам:

Агент Базовая модель Средний балл Всего входных токенов Всего выходных токенов Общая стоимость
OpenSquilla Маршрутизатор моделей (Opus4.7, GLM5.1, DS4 Flash) 0.9251 1,721,328 61,475 $0.688
OpenClaw Claude Opus 4.7 0.9255 3,066,243 50,890 $6.233

Балл — это среднее по 25 задачам; количество токенов и стоимость являются итогами за весь запуск.


Устранение неполадок

Приложение для macOS постоянно «прыгает» или сообщает об AppTranslocation

Если macOS запускает OpenSquilla из временного пути AppTranslocation, закройте OpenSquilla, перетащите приложение в папку «Программы», если вы устанавливаете его, извлеките DMG, затем снова откройте OpenSquilla. Если старый значок OpenSquilla всё ещё «прыгает», сначала принудительно завершите старый процесс и снова откройте OpenSquilla.

macOS: Library not loaded: @rpath/libomp.dylib

Если при запуске в журнале появляется сообщение Library not loaded: @rpath/libomp.dylib из lightgbm/lib/lib_lightgbm.dylib, OpenSquilla продолжает работать с прямым маршрутизированием одной модели, но встроенный рантайм SquillaRouter остаётся неактивным, пока не будет установлена среда выполнения OpenMP для macOS.

В настольном приложении уже есть необходимый нативный рантайм. Если вы использовали быструю установку через терминал или установку из исходников из оболочки, установите libomp с помощью Homebrew и перезапустите шлюз:

brew install libomp
opensquilla gateway restart

Windows: DLL load failed / среда выполнения Visual C++

Если при запуске в журнале появляется сообщение DLL load failed while importing onnxruntime_pybind11_state, OpenSquilla продолжает работать с прямым маршрутизированием одной модели, но встроенный рантайм SquillaRouter остаётся неактивным, пока не будет установлен распространяемый пакет Visual C++ для Visual Studio 2015–2022 (x64).

Установщик PowerShell из исходников пытается установить распространяемый пакет через winget. Если вы использовали быструю установку через терминал или winget недоступен, установите его вручную и перезапустите PowerShell: https://aka.ms/vs/17/release/vc_redist.x64.exe. Затем восстановите рекомендуемый маршрутизатор:

opensquilla onboard --provider openrouter --api-key-env OPENROUTER_API_KEY --router recommended
opensquilla gateway restart

Благодарности

OpenSquilla вдохновлён OpenClaw. Встроенный сторонний контент указан в THIRD_PARTY_NOTICES.md.

Участники сообщества перечислены в CONTRIBUTORS.md, включая атрибуцию для конкретных релизов. Заметки для squash-объединённой или воспроизведённой работы.


Участники

Спасибо всем, кто вносит вклад в OpenSquilla.

Участники OpenSquilla


Внесение вклада

Приветствуются любые виды вклада — сообщения об ошибках, идеи новых функций, документация, новые адаптеры провайдеров или каналов, навыки и работа над основным ядром. Смотрите CONTRIBUTING.md, затем открывайте issue или pull request на GitHub.

Кодекс поведения · Безопасность · Конфиденциальность · Политика подписи кода · Уведомления для третьих сторон · Поддержка · Лицензия (Apache-2.0)


Цитирование

Если вы используете OpenSquilla в своих исследованиях, пожалуйста, укажите наш технический отчёт:

@misc{opensquilla2026,
  title         = {OpenSquilla: Token-Efficient Agent = Models + Routing Harness},
  author        = {{TokenRhythm Technologies}},
  year          = {2026},
  month         = aug,
  eprint        = {aixiv.260822.000001},
  archivePrefix = {aiXiv},
  howpublished  = {aiXiv preprint},
  url           = {https://aixiv.science/abs/aixiv.260822.000001},
  note          = {Version 1.0, under review}
}
Войдите, чтобы оставить комментарий