AI Skill Hub 强烈推荐:OpenSquilla智能代理框架 是一款优质的AI工具。已获得 1.0k 颗 GitHub Star,AI 综合评分 8.0 分,在同类工具中表现稳健。如果你正在寻找可靠的AI工具解决方案,这是一个值得深入了解的选择。
OpenSquilla智能代理框架 是一款基于 Python 开发的开源工具,专注于 MCP协议、AI代理、Token优化 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
OpenSquilla智能代理框架 是一款基于 Python 开发的开源工具,专注于 MCP协议、AI代理、Token优化 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
# 方式一:pip 安装(推荐)
pip install opensquilla
# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install opensquilla
# 方式三:从源码安装(获取最新功能)
git clone https://github.com/opensquilla/opensquilla
cd opensquilla
pip install -e .
# 验证安装
python -c "import opensquilla; print('安装成功')"
# 命令行使用
opensquilla --help
# 基本用法
opensquilla input_file -o output_file
# Python 代码中调用
import opensquilla
# 示例
result = opensquilla.process("input")
print(result)
# opensquilla 配置文件示例(config.yml) app: name: "opensquilla" debug: false log_level: "INFO" # 运行时指定配置文件 opensquilla --config config.yml # 或通过环境变量配置 export OPENSQUILLA_API_KEY="your-key" export OPENSQUILLA_OUTPUT_DIR="./output"
<p align="center"> <img src="assets/opensquilla-long-logo.png" alt="OpenSquilla logo" width="500"> </p>
<p align="center"> <b>Same budget, more capability, better results.</b><br> A microkernel AI agent for your CLI, Web UI, and chat channels. </p>
<p align="center"> <a href="https://github.com/TokenRhythm/opensquilla/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/TokenRhythm/opensquilla/ci.yml?style=for-the-badge" alt="CI"></a> <a href="https://opensquilla.ai/"><img src="https://img.shields.io/badge/website-opensquilla.ai-blue?style=for-the-badge" alt="Website"></a> <a href="https://github.com/TokenRhythm/opensquilla/releases"><img src="https://img.shields.io/github/v/release/TokenRhythm/opensquilla?include_prereleases&style=for-the-badge" alt="GitHub release"></a> <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.12%2B-blue?style=for-the-badge" alt="Python 3.12+"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-blue?style=for-the-badge" alt="Apache 2.0 License"></a> </p>
<p align="center"> <b>English</b> · <a href="README.zh-Hans.md">中文</a> · <a href="README.ja.md">日本語</a> · <a href="README.fr.md">Français</a> · <a href="README.de.md">Deutsch</a> · <a href="README.es.md">Español</a> </p>
---
OpenSquilla is a token-efficient, microkernel AI agent. A local model router sends each turn to the cheapest model that can handle it, while persistent memory, a layered sandbox, built-in web search, and on-device embeddings round out a single shared turn loop.
Every entry point — Web UI, CLI, and chat channels — runs through that same loop, so tool dispatch, retries, and decision logging behave identically everywhere. A pluggable provider layer speaks to TokenRhythm, OpenRouter, OpenAI, Anthropic, Ollama, DeepSeek, Gemini, Qwen/DashScope, and 20+ other LLM providers with no change to your code or config schema.
OpenSquilla 0.5.4 is the current stable release.
For task-oriented product documentation, start with the OpenSquilla Product Guide or the documentation index.
---
| Capability | What it does |
|---|---|
| **Token-efficient routing** | SquillaRouter — a local LightGBM + ONNX classifier in the recommended extra — scores each turn on length, language, code, keywords, and semantic embeddings, then routes it across four tiers (C0–C3; legacy T0–T3 names are aliases) to the cheapest capable model. Classification runs on-device; your prompt never leaves the machine to make that decision. |
| **Adaptive reasoning and prompts** | OpenSquilla requests extended reasoning only for turns the router scores as complex, and the system prompt scales with task complexity — lightweight for trivial turns, full instructions for complex ones. |
| **20+ LLM providers** | The provider registry targets 20+ LLM backends — TokenRhythm, OpenRouter, OpenAI, Anthropic, Ollama, DeepSeek, Gemini, DashScope/Qwen, Moonshot, Mistral, Groq, Zhipu, SiliconFlow, vLLM, LM Studio, and more, with primary-plus-fallback selection; first-run onboarding exposes the verified subset. |
| **On-demand skills and MCP** | 15 bundled skills (coding, GitHub, cron, pptx/docx/xlsx/pdf, summarization, tmux, weather, and more) load only when the task needs them. OpenSquilla is an MCP client, and can also run as an MCP server — opensquilla mcp-server run needs the mcp extra (install opensquilla[recommended,mcp]). Skills can be authored, installed, and published from the CLI. |
| **Persistent local memory** | A curated MEMORY.md plus dated Markdown notes, searched with SQLite full-text keyword search and sqlite-vec semantic recall. Embeddings run on-device via bundled ONNX, or swap to OpenAI/Ollama. Optional exponential decay and opt-in "dream" consolidation are available. |
| **Layered security sandbox** | Three policy tiers (Standard / Strict / Locked) on a permission matrix. Bubblewrap isolates code execution on Linux; macOS runs commands through Seatbelt (sandbox-exec) with generated SBPL profiles; Windows uses the native windows_default backend after setup readiness checks. A denial ledger auto-pauses autonomous runs after repeated denials, rejected outputs are purged, and skill metadata and tool results are XML-escaped against prompt injection. |
| **Built-in tools** | File read/write/edit, shell and background processes, git, web search (DuckDuckGo, Bocha, Brave, IQS, Tavily, or Exa) and fetch behind an SSRF guard, spreadsheet/PPTX/PDF authoring, image generation, and text-to-speech. |
| **Unified gateway** | A Starlette ASGI server on 127.0.0.1:18791 with WebSocket RPC and an embedded control console (/control/). Web UI, CLI, and channels for Terminal, WebSocket, Slack, Telegram, Discord, Feishu, DingTalk, WeCom, Matrix, and QQ all share one TurnRunner. |
| **Durable sessions, subagents, and scheduling** | SQLite-backed session, transcript, and replay storage with per-agent workspaces. Agents spawn depth-bounded subagents, and a SchedulerEngine with an in-tree cron parser runs recurring jobs via opensquilla cron. |
| **Operator controls** | Human-in-the-loop approvals can pause sensitive tool calls for a decision; per-turn and per-session token and cost rollups (opensquilla cost) and diagnostics are available from the CLI and Web UI. |
MetaSkill docs: docs/features/meta-skills.md, docs/features/meta-skill-user-guide.md, and docs/authoring/meta-skills.md.
---
| Requirement | Quick terminal install | Install from source | Develop from source |
|---|---|---|---|
| Python 3.12+ | via uv | via uv or system | via uv |
| Git + Git LFS | — | required | required |
| Node.js 22.12+ + npm | — | required to build the Web UI | required for Web UI and wheels |
uv | installed if missing | recommended | required |
The default recommended profile installs SquillaRouter — OpenSquilla's on-device model router — and its model assets; OPENSQUILLA_INSTALL_PROFILE=core omits those dependencies. The separate --router disabled onboarding flag keeps the dependencies installed but turns the router off at runtime.
On Windows, SquillaRouter's bundled ONNX runtime also needs the Visual C++ runtime. The from-source PowerShell installer installs it automatically via winget; the Quick terminal install (uv tool install) path does not — if startup logs a DLL load failed error, install it manually (see Troubleshooting). OpenSquilla keeps running with direct single-model routing until it is installed.
On macOS terminal installs, SquillaRouter's LightGBM runtime may also need the system OpenMP library. The desktop app bundles the runtime it needs, but Quick terminal install does not install Homebrew/system libraries. If startup logs `Library not loaded: @rpath/libomp.dylib, run brew install libomp`, then restart the gateway. OpenSquilla keeps running with direct single-model routing until it is installed.
OpenSquilla runs on Windows, macOS, and Linux. Pick the path that matches your use case.
Desktop installers and Quick terminal install give you a prebuilt release — no Git required. The other two — Install from source and Develop from source — build from a Git checkout (git clone + Git LFS), including the Vue control console. Release wheels and Desktop installers already contain that console, so their users do not need Node.js or npm.
Release install commands use published GitHub release assets. Python wheel installs use versioned wheel filenames because installers validate the version embedded in the wheel filename.
For 0.5.4 desktop use, prefer the packaged desktop installers from the GitHub Release: OpenSquilla-0.5.4-mac-arm64.dmg on macOS and OpenSquilla-0.5.4-win-x64.exe on Windows.
| Path | Audience | When to use |
|---|---|---|
| [Desktop installers](#desktop-installers) **(recommended desktop)** | macOS and Windows users | Packaged desktop app |
| [Quick terminal install](#quick-terminal-install) **(recommended)** | End users on any OS | Release wheel from a terminal |
| [Install from source](#install-from-source) | Users tracking main | Run from a checkout, not edit it |
| [Develop from source](#develop-from-source) | Contributors | Edit, test, or debug the source |
The 0.5.4 desktop installers package the Vue control console and gateway runtime in an Electron shell.
For faster Mainland China downloads, use the OSS direct-download aliases: - 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>
These fixed links advance only after a newer eligible release passes mirror verification. Use the versioned GitHub Release links above when you need a specific release.
Quit any running OpenSquilla desktop app before upgrading. On macOS, drag the app from the DMG into Applications for installation or updates, eject the DMG, then open the Applications copy. The existing Desktop profile in the platform application-data directory is reused. A terminal installation's ~/.opensquilla is a separate profile; transfer it explicitly from Settings only if needed.
When upgrading the Windows Desktop from RC3 to RC4 or later, run the new installer directly over the existing installation. Do not uninstall RC3 first: its uninstaller may remove Desktop user data. Back up %APPDATA%\OpenSquilla before upgrading. RC4 and later installers preserve profile data during a normal uninstall.
Code signing policy: docs/code-signing-policy.md.
[!NOTE] The published v0.5.4 Windows installer remains unsigned. The current Release Assets workflow Authenticode signs new Windows installers as Beijing TokenRhythm Technologies Co., Ltd. SmartScreen reputation can still take time to build for a new publisher or application. If enterprise policy blocks the Desktop app, use Quick terminal install instead.
The recommended path on Windows, macOS, and Linux. uv installs OpenSquilla into its own isolated environment and manages its own Python — no system Python required. This path installs published releases only; for main, development branches, or local checkouts use Install from source.
1. Install uv — skip if uv --version already works.
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. Install OpenSquilla — the same command on every platform.
uv tool install --python 3.12 "opensquilla[recommended] @ https://github.com/TokenRhythm/opensquilla/releases/download/v0.5.4/opensquilla-0.5.4-py3-none-any.whl"
This installs the OpenSquilla wheel from the release URL, then lets uv download the dependencies declared by the selected extras. The default recommended extra includes SquillaRouter runtime dependencies such as ONNX Runtime, LightGBM, NumPy, and tokenizers, so a first install needs network access unless those wheels are already cached. uv does not install system native runtimes such as macOS libomp or the Windows Visual C++ Redistributable; see Troubleshooting if the router runtime reports a native-library load error.
3. Configure and run.
opensquilla onboard
opensquilla gateway run
[!NOTE] Ifopensquillais not found right after a freshuvinstall, open a new terminal, or re-run the PATH line from step 1.
For a fully pinned install, use the versioned wheel URL: https://github.com/TokenRhythm/opensquilla/releases/download/v0.5.4/opensquilla-0.5.4-py3-none-any.whl.
Use this path to run OpenSquilla from a checkout without editing it. The clone is only the package source for the installer; after install, use the opensquilla command — do not run uv run. Choose Develop from source instead if you intend to modify the code.
git lfs install
git clone https://github.com/TokenRhythm/opensquilla.git
cd opensquilla
git lfs pull --include="src/opensquilla/squilla_router/models/**"
macOS / Linux
bash scripts/install_source.sh
Windows PowerShell
powershell -ExecutionPolicy Bypass -File ./scripts/install_source.ps1
The script installs .[recommended] (SquillaRouter + memory + local models) into a dedicated user environment via uv tool install. Before the Python install, it runs npm ci and npm run build in opensquilla-webui. Every source reinstall recreates the locked node_modules tree and rebuilds the console; the first run normally has the largest dependency download, while a warm npm cache reduces later network use but not all build time or disk writes. It then installs the built console with the Python package, falling back to python -m pip install --user when uv is unavailable. If opensquilla is not on PATH after install (common on a fresh host where ~/.local/bin is not yet on PATH), run uv tool update-shell and open a new terminal; see Troubleshooting for details.
Direct pip install ., uv tool install ., and VCS URL installs are low-level source-build paths, not substitutes for this installer. A local checkout works only after its Web UI has been built; a VCS URL checkout has no generated artifact and is intentionally rejected. Use this source installer or an official release wheel instead.
3. (optional) Install advanced extras. Most channels — Feishu, Telegram, DingTalk, QQ, WeCom, Slack, and Discord — work from the base install. The opt-in extras are:
- matrix — Matrix channel (pulls in matrix-nio) - matrix-e2e — Matrix channel with end-to-end encryption (requires libolm) - document-extras — PDF generation via WeasyPrint
OPENSQUILLA_INSTALL_EXTRAS=matrix bash scripts/install_source.sh # macOS / Linux
powershell -ExecutionPolicy Bypass -File ./scripts/install_source.ps1 -Extras matrix # Windows
<details> <summary>Install from source — terminal prerequisites and installer options</summary>
Install prerequisites (Git, Git LFS, Node.js 22.12+ with npm, uv) from a terminal
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
On Fedora use sudo dnf install -y git git-lfs; on Arch use sudo pacman -S --needed git git-lfs; install Node.js 22.12+ and npm from your distribution or nodejs.org, then install uv with the curl command above. PATH changes from these installers apply to new terminal sessions.
Installer environment variables and PATH checks
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
Verify which opensquilla your shell runs with `command -v opensquilla (macOS/Linux) or where.exe opensquilla` (Windows). If it is not on PATH, run uv tool update-shell. After reinstalling from a local checkout, restart the gateway so it loads the updated package.
</details>
Remove OpenSquilla with opensquilla uninstall. It keeps your data by default and removes only the program:
opensquilla uninstall --dry-run # preview what would be removed and kept
opensquilla uninstall # remove the program, keep your data
To delete data too, opt in explicitly:
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)
The running gateway is drained and stopped first, deletion stays inside the OpenSquilla home, and Docker/desktop installs get guided removal steps instead. Desktop or OS app removal remains platform-specific; the CLI guidance does not remove a desktop app bundle. See docs/cli.md for the full reference.
---
OpenSquilla uses pseudonymous installation telemetry to estimate install counts, version adoption, and runtime compatibility. Data is sent on first gateway startup and once per OpenSquilla version. It also records content-free daily aggregates of completed top-level conversations and token usage by UTC date, and attempts to upload pending cumulative UTC-day snapshots to the telemetry service at startup and once per hour. OpenSquilla may also make passive update checks, including automatic desktop update checks at startup and, while the app remains open, at most once per day. Uploads use a short timeout and never block startup.
See PRIVACY.md for the full privacy policy covering local data, provider requests, network observability, logs, release downloads, and deletion.
What is sent:
- schema version - locally generated stable install_id digest - OpenSquilla version - event type (install, version_seen, or daily_usage) - install method (pip, source, docker, desktop, or unknown) - operating system, OS version, CPU architecture, and Python major/minor version - first-seen and sent timestamps - CI/test-environment marker (ci_environment) - completed UTC day, conversation count, and aggregate input/output/cache/cache-write token counts for daily-usage events
The install_id is a local one-way SHA-256 digest derived from usable MAC addresses, then local IP addresses when no MAC is available, with a random persisted fallback. Raw MAC/IP values are not uploaded.
By default, requests sent directly to the official TokenRhythm HTTPS API may also carry the same pseudonymous, cross-session installation identifier in the optional X-OpenSquilla-Install-Id header. Only the exact official tokenrhythm.studio and api.tokenrhythm.studio HTTPS hosts on port 443 are eligible; custom proxies, OpenRouter, other providers, browser pages, redirected nonofficial targets, and returned image/CDN downloads are excluded. The raw MAC/IP values are never sent. The header is omitted if its background resolution is not ready or fails, so requests continue normally.
What is not sent: usernames, hostnames, paths, API keys, provider config, chat/session/memory/agent content, file names, or file contents. Source IP may be visible to HTTP servers at the transport layer, but is not part of the payload.
To disable non-user-initiated network observability before startup:
OPENSQUILLA_PRIVACY_DISABLE_NETWORK_OBSERVABILITY=true
or set:
[privacy]
disable_network_observability = true
That unified switch covers automatic install telemetry, daily aggregate usage telemetry, passive update checks, and automatic desktop update checks at startup and during long-running app sessions, as well as the TokenRhythm installation header. Explicit update-availability checks remain disabled while the unified or legacy opt-out is active. CI and test environments also suppress the installation header and installation telemetry automatically. Other user-initiated actions may still contact network services after user intent, including release downloads and configured providers, search, or channels.
Legacy opt-out environment variables remain honored:
OPENSQUILLA_TELEMETRY_DISABLED=true
OPENSQUILLA_UPDATE_CHECK_DISABLED=true
The legacy telemetry opt-out suppresses the TokenRhythm installation header; the update-check opt-out by itself does not. TokenRhythm must treat the header as optional and untrusted, and must not use it for authentication, authorization, billing, rate limiting, or anti-abuse decisions. See PRIVACY.md for the complete target and data-handling rules.
Advanced deployments can use their own installation telemetry endpoint:
OPENSQUILLA_TELEMETRY_ENDPOINT=https://example.com/v1/install
---
opensquilla onboard is the interactive first-run wizard. It writes the active config file and keeps provider secrets in environment variables when you pass --api-key-env. The router defaults to recommended (SquillaRouter on supported providers); pass --router disabled for direct single-model routing.
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
In SSH, CI, or any environment without a TTY, use the non-interactive form — keep the secret in the environment and pass its name, not its value:
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 is only an example — substitute any supported provider and its API-key variable.
Re-configure one section later without redoing the whole wizard (these examples assume the relevant API key is already in the environment):
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
Sections: provider, router, channels, search, image-generation, memory-embedding. The Web UI exposes the same catalog and status model at /control/setup: Provider and Router are the fast path, while Channels, Search, Image generation, and Memory embedding sit in the Capability Center and can be configured later. Empty channels are treated as an opt-out, not a failed setup.
Config load order: OPENSQUILLA_GATEWAY_CONFIG_PATH → ./opensquilla.toml → ~/.opensquilla/config.toml → built-in defaults. Environment values for individual secrets always win over file values.
<details> <summary>macOS desktop app keeps bouncing or reports AppTranslocation</summary>
If macOS starts OpenSquilla from a temporary AppTranslocation path, quit OpenSquilla, drag the app into Applications if you are installing it, eject the DMG, then open OpenSquilla again. If an old OpenSquilla icon is still bouncing, force quit the old process first and reopen OpenSquilla.
</details>
<details> <summary>macOS: <code>Library not loaded: @rpath/libomp.dylib</code></summary>
If startup logs Library not loaded: @rpath/libomp.dylib from lightgbm/lib/lib_lightgbm.dylib, OpenSquilla keeps running with direct single-model routing, but the bundled SquillaRouter runtime stays inactive until the macOS OpenMP runtime is installed.
The desktop app bundles the native runtime it needs. If you used Quick terminal install or source install from a shell, install libomp with Homebrew and restart the gateway:
brew install libomp
opensquilla gateway restart
</details>
<details> <summary>Windows: <code>DLL load failed</code> / Visual C++ runtime</summary>
If startup logs `DLL load failed while importing onnxruntime_pybind11_state`, OpenSquilla keeps running with direct single-model routing, but the bundled SquillaRouter runtime stays inactive until the Visual C++ Redistributable for Visual Studio 2015–2022 (x64) is installed.
The from-source PowerShell installer attempts to install the redistributable via winget. If you used Quick terminal install, or winget is unavailable, install it manually and restart PowerShell: <https://aka.ms/vs/17/release/vc_redist.x64.exe>. Then restore the recommended router:
opensquilla onboard --provider openrouter --api-key-env OPENROUTER_API_KEY --router recommended
opensquilla gateway restart
</details>
---
OpenSquilla以Token优化见长的MCP代理框架,架构清晰、社区活跃。Token效率提升方案实用,适合成本敏感型应用,但文档深度有待加强。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。
总体来看,OpenSquilla智能代理框架 是一款质量优秀的AI工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | opensquilla |
| 原始描述 | 开源MCP工具:OpenSquilla — Token-Efficient AI Agent with same budget, higher intelligence den。⭐1.0k · Python |
| Topics | MCP协议AI代理Token优化深度学习基础模型 |
| GitHub | https://github.com/opensquilla/opensquilla |
| License | Apache-2.0 |
| 语言 | Python |
收录时间:2026-05-18 · 更新时间:2026-05-19 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。