ShibaClaw

ShibaClaw

自托管的、安全优先的 AI 智能体,内置 Web UI

version PyPI Downloads python license Ask DeepWiki

功能 · 快速开始 · 安全 · 记忆 · 提供商 · 架构 · 渠道 · 故障排查

🌐 简体中文 · Español · Português (BR) · 日本語 · Deutsch · Français

--- > [!NOTE] > 发布说明见 [CHANGELOG.md](./CHANGELOG.md)。
📢 最新动态 — v0.9.12(点击展开) **最新版本(2026-07-22):** - **修复 ExecTool 命令注入漏洞** — 通过将基于 shell 的执行替换为安全的 `shlex` 参数解析和直接进程执行(`create_subprocess_exec`),解决了 Shell 执行中的严重命令注入漏洞(CWE-78)。 - **依赖项安全漏洞修复** — 通过更新 `protobufjs` (v7.6.5) 和 `sharp` (v0.35.3) 的覆盖配置,解决了 bridge npm 依赖项中的安全漏洞。 - **智能体循环与转向稳定性** — 修复了 `/update` 命令导致的崩溃,修复了活动任务期间消息转向的会话路由和事件发射。 - **WebUI Token 估算** — 修复了传递消息列表时 `estimate_prompt_tokens` API 端点中的参数类型处理。 - **云端 RAG 依赖** — 纠正了云端 RAG 依赖项范围和默认嵌入模型配置。 完整版本历史请查看 [CHANGELOG.md](./CHANGELOG.md)。
--- ShibaClaw 是一个自托管的 AI 智能体,可在你自己的机器或服务器上运行:一个 Python 引擎,内置 Web UI,原生支持 28 家模型提供商,并集成了 11 个聊天平台(Discord、Telegram、Slack、WhatsApp、Matrix 等)。它围绕三大优先事项构建 —— 简洁、安全与隐私 —— 防御能力(如安装时 CVE 审计、提示注入包裹、SSRF 防护)内置于核心引擎,而非作为外部胶水代码附加。

ShibaClaw Desktop Demo ShibaClaw Mobile Demo

> [!NOTE] > 发布说明见 [CHANGELOG.md](./CHANGELOG.md)。 ## 功能 - **安全优先核心** —— 加密凭据保险库、安装时 CVE 审计、提示注入包裹、SSRF/DNS 重绑定防护 - **三级记忆** —— 工作记忆、语义记忆(FAISS)和程序性记忆,具备主动学习与自动压缩 - **28 家提供商,原生 SDK** —— OpenAI、Anthropic、Gemini、DeepSeek 等,无 LiteLLM 代理层 - **Web 与移动端** —— 将 WebUI 暴露到局域网,即可在手机上使用同一个智能体 - **Windows 桌面应用** —— 带系统托盘集成的原生启动器 - **MCP 就绪** —— 连接任意 MCP 服务器,工具自动注册 ## 快速开始 **要求:** Docker,或通过 pip 方式需要 Python 3.12+。Windows 自动安装程序两者都不需要 —— 它附带预构建的桌面应用。 ### 自动安装程序(推荐) 一条命令即可下载最新版本、创建快捷方式并启动界面。 > [!TIP] > 自带模型:连接本地端点(Ollama、LM Studio)或通过 OpenRouter 使用免费 API 额度,零成本开始聊天。 **🪟 Windows(PowerShell):** ```powershell irm https://github.com/RikyZ90/ShibaClaw/releases/latest/download/install.ps1 | iex ``` **🐧 Linux / 🍎 macOS:** ```bash curl -fsSL https://github.com/RikyZ90/ShibaClaw/releases/latest/download/install.sh | bash ``` > [!NOTE] > 在 Windows 上,此命令会从最新的 GitHub Release 下载预构建的桌面应用 —— 无需 Python,并会在桌面/开始菜单创建快捷方式,可通过“应用和功能”干净卸载。在 Linux/macOS 上,脚本会在隔离的虚拟环境中通过 pip 安装。 ### Docker ```bash curl -fsSL https://raw.githubusercontent.com/RikyZ90/ShibaClaw/main/docker-compose.yml -o docker-compose.yml docker compose up -d # 从 Docker Hub 拉取 docker exec -it shibaclaw-gateway shibaclaw print-token ``` 打开 `http://localhost:3000`,粘贴令牌,并按照引导向导操作。将 `shibaclaw-web` 暴露到你的局域网(例如通过反向代理),即可从手机访问。 ### pip ```bash pip install shibaclaw shibaclaw web --with-gateway # 在 :3000 启动 WebUI + 智能体引擎 ``` 打开 `http://localhost:3000` 并按照引导向导操作,或运行 `shibaclaw onboard` 执行相同设置的 CLI 版本。 --- ## 安全 通常分散在应用胶水代码或外部代理中的防御能力,在 ShibaClaw 核心中默认开启、直接提供。 | 层级 | 作用 | |---|---| | 安装时审计 | 在执行前审计 `pip` 和 `npm` —— 拦截严重/高危 CVE | | 提示注入包裹与预扫描 | 用随机生成的 `` 边界包裹每个工具结果;用正则预扫描越狱内容 | | Shell 加固 | 20+ 拒绝模式、转义规范化、内部 URL 检测 | | 本地优先引擎 | 原生命令模拟器(`ls`、`cat`)绕过子进程开销;离线 `tiktoken` 回退 | | 网络防护 | SSRF 过滤、重定向重新验证、DNS 重绑定安全解析 | | 工作区沙箱 | 文件工具与文件浏览器锁定在配置的工作区内 | | 访问控制 | Bearer 令牌认证、恒定时间校验、渠道白名单、可选速率限制 | | 分布式引擎 | UI(约 128 MB)与智能体大脑(约 256 MB+)解耦 | 每个工具结果都被包裹在带有随机 nonce 的动态生成边界中(例如 ``),因此攻击者无法提前关闭标签或通过工具输出注入伪造的系统指令 —— 该边界在每个会话中都是不可预测的。 > [!TIP] > 此包裹机制也可作为独立的 [Muzzle](https://github.com/RikyZ90/Muzzle) 使用,这是一个零依赖的 Python 库,可放入任何智能体框架(LangChain、LlamaIndex、CrewAI、AutoGen 或自定义循环)中。 ## 记忆系统 ShibaClaw 采用三级记忆架构: 1. **工作记忆**(每会话)—— 滚动上下文,具备自动摘要与令牌感知截断 2. **语义记忆**(跨会话)—— FAISS + sentence-transformers 向量存储,具备自动事实提取与语义搜索 3. **程序性记忆**(技能与自动化)—— 以可复用技能保存的学习工作流,以及类 cron 的调度 主动学习会自动提取并存储有用的事实,自动压缩可防止上下文溢出,会话以仅追加的 JSONL 形式存储,便于快速、缓存友好的日志记录。 ## MCP 与集成 ShibaClaw 支持 Model Context Protocol,因此无需修改核心代码即可连接任意兼容 MCP 的服务器 —— Google Drive、Slack、GitHub、PostgreSQL 等。可从设置面板配置服务器。 对于热门 SaaS 工具(Gmail、Google Drive、Slack、GitHub、Outlook……),ShibaClaw 集成了 [Klavis](https://klavis.ai):一个 API 密钥即可获得一键式 OAuth 连接,而无需为每个提供商手动注册 OAuth 应用。已连接的应用会在活动会话中自动注册为 MCP 服务器。 ## 支持的提供商 ShibaClaw 使用原生 SDK —— 无 LiteLLM 代理 —— 并从所选模型或带提供商前缀的模型 ID 解析提供商。所有已配置的提供商目录会在 WebUI 中合并为一个可搜索列表。 **API 密钥** | 提供商 | 环境变量 | |---|---| | OpenAI | `OPENAI_API_KEY` | | Anthropic | `ANTHROPIC_API_KEY` | | DeepSeek | `DEEPSEEK_API_KEY` | | Google Gemini | `GEMINI_API_KEY`¹ | | Groq | `GROQ_API_KEY` | | Moonshot | `MOONSHOT_API_KEY` | | MiniMax | `MINIMAX_API_KEY` | | Zhipu AI | `ZAI_API_KEY` | | DashScope | `DASHSCOPE_API_KEY` | ¹ 设置 `GEMINI_API_KEY` 即可 —— OpenAI 兼容端点已预配置。 **网关 / 代理** —— OpenRouter、AiHubMix、SiliconFlow、VolcEngine、BytePlus,通过密钥前缀或 `api_base` 自动检测。 **本地** —— Ollama、LM Studio、llama.cpp、vLLM,或任意 OpenAI 兼容端点。 > [!NOTE] > 在 Docker 中,`localhost` 指向容器内部。要访问主机上的本地服务器(LM Studio、Ollama),在 Windows/macOS 上使用 `http://host.docker.internal:PORT`,在原生 Linux 上使用 `http://172.17.0.1:PORT`。 **OAuth** | 提供商 | 流程 | 设置 | |----------|------|-------| | OpenRouter | PKCE 浏览器流程,将返回的 API 密钥存入提供商配置 | WebUI 设置 | | GitHub Copilot | 设备流程,自动刷新令牌 | `shibaclaw provider login github-copilot` 或 WebUI 设置 | | OpenAI Codex | PKCE 浏览器流程 | `shibaclaw provider login openai-codex` 或 WebUI 设置 | | Google Gemini CLI | PKCE 浏览器流程,需要 `SHIBACLAW_GEMINI_OAUTH_CLIENT_ID` 和 `SHIBACLAW_GEMINI_OAUTH_CLIENT_SECRET` 环境变量。**注意:** 非官方第三方集成,Google 可能施加账户限制。如有顾虑,请使用单独的账户。 | WebUI 设置 | 对于 OpenRouter,回调默认复用当前 WebUI 的 URL 和端口,因此 `http://localhost:3000` 并非专用的 OAuth 端口。如果你在反向代理后暴露 WebUI,或需要不同的公共回调来源,请在启动服务器前设置 `SHIBACLAW_OPENROUTER_CALLBACK_BASE_URL=https://your-public-webui-host`。 ### 💡 专业提示:高性价比与高级模型 ShibaClaw 即使不花费昂贵的 API 费用也能表现出色: - **免费/开放模型:** 我们强烈推荐使用 **OpenRouter** 访问强大的免费模型,如 `nvidia/nemotron-3-super-120b-a12b:free` 或 `gemma-4-31b-it:free`。 - **无限高级模型:** 如果你使用 **GitHub Copilot** OAuth 集成,即可零额外成本访问 `raptor`(`oswe-vscode-prime`)等高级模型, effectively 获得无限请求。 *** ## 📊 ShibaClaw 对比(安全优先) > [!NOTE] > OpenRouter 的 OAuth 回调复用当前 WebUI 的 URL 和端口。在反向代理后,请在启动服务器前设置 `SHIBACLAW_OPENROUTER_CALLBACK_BASE_URL`。 对于零成本使用,OpenRouter 的免费额度(例如 `nvidia/nemotron-3-super-120b-a12b:free`)和 GitHub Copilot OAuth 集成(无限访问 `raptor` 等模型)都无需付费 API 密钥即可良好运行。 ## 架构

ShibaClaw architecture

**Docker Compose** | 服务 | 角色 | 默认端口 | |---|---|---| | `shibaclaw-gateway` | 核心智能体循环、消息总线、渠道集成 | 19999 (HTTP) · 19998 (WS) | | `shibaclaw-web` | WebUI(Starlette + WebSocket)、自动化服务 | 3000 | 两者共享 `~/.shibaclaw/` 卷(配置、工作区、记忆、自动化任务、媒体缓存)。单独运行 `shibaclaw web` 会在单一进程中启动智能体 + WebUI + 自动化,无需网关容器。 **技术栈** —— Uvicorn/Starlette(ASGI)、原生 WebSocket、原生 JS + Marked.js + Highlight.js 前端、JSONL 仅追加会话。 **资源占用** —— 每个组件(网关、WebUI)空闲约 120 MB / 峰值约 350 MB。Docker Compose 将每个容器上限设为 512 MB / 预留 256 MB;工具输出以有界缓冲区流式传输,因此长时间运行的命令不会撑爆内存。 ## CLI 参考 ```bash shibaclaw web # 启动 WebUI(进程内运行智能体 + 自动化) shibaclaw gateway # 仅启动网关(用于 Docker 拆分) shibaclaw onboard # 基于 CLI 的首次设置向导 shibaclaw agent -m "Hello" # 通过终端发送一次性消息 shibaclaw agent # 带历史记录的交互式 REPL shibaclaw status # 提供商、工作区、OAuth 健康检查 shibaclaw print-token # 显示 WebUI 认证令牌 shibaclaw channels status # 列出已启用的渠道 shibaclaw provider login

# OAuth 登录(github-copilot、openai-codex) shibaclaw desktop # 启动 Windows 桌面应用 ``` ## 渠道 | 渠道 | 类型 | 说明 | |---|---|---| | WebUI | 内置 | 主界面,完整功能访问 | | Discord | 机器人 | 富嵌入、斜杠命令、附件 | | Telegram | 机器人 | 内联键盘、媒体、回复标记 | | WhatsApp | 插件 | 通过 WhatsApp Web | | Slack | 机器人 | Block kit、线程、应用提及 | | DingTalk | 机器人 | 企业消息 | | Feishu/Lark | 机器人 | 富卡片、交互元素 | | QQ | 机器人 | 群聊与私聊消息 | | WeCom | 机器人 | 职场沟通 | | Matrix | 机器人 | 去中心化、端到端加密 | | MoChat | 机器人 | 微信生态 | 每个渠道在 WebUI 设置中独立配置,并支持配置更改时的热重载。 ## 插件系统 ShibaClaw 通过 Python 入口点发现插件: - **渠道插件** —— 实现 `BaseChannel`,可通过 `shibaclaw.integrations` 发现 - **TTS 插件** —— 实现 `BaseTTS`,可通过 `shibaclaw.tts` 发现 内置:`shibaclaw-channel-whatsapp`(WhatsApp Web)和 `shibaclaw-tts-supertonic`(免费、离线 ONNX 语音合成,31 种语言)。可从 WebUI 设置 > 插件中安装或移除插件,支持热重载和版本固定。要构建你自己的插件,请参阅 [`docs/PLUGINS_DEVELOPMENT_GUIDE.md`](./docs/PLUGINS_DEVELOPMENT_GUIDE.md)。 ## 文本转语音 内置的 Supertonic 引擎在 ONNX 上离线运行(无 PyTorch 依赖,仅 CPU),支持 31 种语言,具备 `F1`/`M1` 语音配置和可调语速,并通过浏览器内组件播放。在 WebUI 设置 > TTS 中启用。 ## 自动化与调度 后台任务按类 cron 的调度或事件触发器(消息、Webhook、系统事件)运行,在隔离的会话中执行,不会污染聊天历史。可从自动化面板管理、监控和查看日志;任务通过 JSONL 存储跨重启持久化。 ## 知识库(RAG) 本地、隐私优先的检索增强生成:将文档组织到命名集合中(PDF、CSV、HTML、TXT、Markdown),通过拖放上传,并使用基于 `all-MiniLM-L6-v2` 嵌入的 FAISS 索引进行搜索。智能体可在对话中调用 `knowledge_search`,或使用 `@kb:name` 定位特定集合。它是可选依赖 —— 通过 `pip install shibaclaw[rag]` 安装。 ## 故障排查 | 问题 | 尝试 | |---|---| | 常规状态检查 | `shibaclaw status` | | 容器日志 | `docker logs shibaclaw-gateway` / `docker logs shibaclaw-web` | | WebUI 无法连接 | 用 `shibaclaw print-token` 检查令牌,验证端口绑定 | | 提供商错误 | `shibaclaw status` 显示 API 密钥和 OAuth 状态 | | 从 v0.9.5 升级后登录失败 | 运行 `shibaclaw reset-admin` | | 安全策略 | [`SECURITY.md`](./SECURITY.md) | ---

查看 CONTRIBUTING.md 参与贡献,查看 CHANGELOG.md 了解发布历史。