RikyZ90/ShibaClaw
GitHub: RikyZ90/ShibaClaw
ShibaClaw 是一个自托管、注重安全防护的轻量级多渠道 AI 助手框架,通过提示注入防御和智能包审计为个人数字工作区提供可信赖的智能辅助。
Stars: 14 | Forks: 1
# 智能。忠诚。强大。 🐕
ShibaClaw 是一个**忠诚、智能且轻量级**的个人 AI 助手框架 —— 旨在为您的数字工作区保驾护航。
**唯一**结合了**极致多层安全防护**(通过结构化工具输出包装防御提示注入 + 在每次安装包之前进行实时 CVE 扫描的智能安装守护)与**最小化 Token 消耗**的 AI Agent 框架,在不牺牲强大功能的前提下保持低成本。
## 📢 新闻
- **2026-04-01** 📂 **内置文件浏览器 (WebUI)** — 现在可以直接通过 WebUI 侧边栏使用完全集成的文件资源管理器。浏览 Agent 工作区,以保留语法布局的方式打开和查看文件,点击编辑模式(铅笔按钮)即可编辑,并将更改保存回服务器 —— 或将其下载到本地。具备路径遍历保护和工作区沙箱隔离。
- **2026-04-01** 📎 **WebUI 中的文件与图片附件** — 直接将文件和图片拖拽或粘贴到聊天框中。图片将内联预览;其他文件将作为可下载链接附加。所有上传内容均存储在 `workspace/uploads/` 中,并作为上下文流式传输给 Agent。
- **2026-04-01** 🧹 **代码库清理与安全加固** — 完成了全面的生产环境审计。重构、去重并清理了所有源文件。修复了涵盖 CRITICAL/HIGH/MEDIUM/LOW 严重性级别的 14 个 Bug:包括会话级 asyncio 锁、文件 I/O 竞态条件、Agent 双重初始化竞态、文件路由中的路径遍历、CORS 配置错误、通过 codecs 的 unicode 注入、pip-audit 严重性解析以及 TCP 资源泄漏。
- **2026-04-01** 🧠 **主动学习 (气味挖掘)** — ShibaClaw 现在会在后台自动反思您的对话。它会提取关键事实和偏好,以更新您的长期记忆 (`MEMORY.md`),而无需等待上下文窗口填满或会话结束。
- **2026-03-31** 🔍 **智能安装守护** — 包安装(`pip install`、`npm install`、`apt install` 等)不再被盲目拦截。相反,它们会在执行前**被拦截并使用 `pip-audit` 和 `npm audit` 进行 CVE 审计**。只有具有严重/高危漏洞的包才会被拦截;安全的包可以自由安装。破坏性操作(`uninstall`、`remove`、`purge`)仍被拦截。
- **2026-03-29** 🛡️ 安全加固 — 通过**随机化工具输出包装**(每次会话使用动态随机数)增强了针对间接提示注入的防护,以防止来自不受信任数据的指令劫持 Agent。
- **2026-03-29** 🐾 移除了 LiteLLM 依赖 — 架构现代化,开始使用原生 SDK(`openai`、`anthropic`),极大地减少了 Docker 镜像大小、启动时间和不透明的依赖风险。
- **2026-03-29** 🔐 GitHub Copilot OAuth 使用原生异步设备流重写,实现了无需代理依赖的高稳定性后台 Token 刷新。
- **2026-03-29** 💬 会话 UI 重构 — 移除了嵌套频道分组。对话现在以时尚的按时间顺序排列的动态流展示,并带有“显示更多”历史记录面板。
- **2026-03-29** 🎨 UI/UX 优化 — 原生浏览器弹窗(`alert`、`confirm`、`prompt`)已完全被自定义 CSS 模态对话框(`shibaDialog`)取代。
- **2026-03-29** 🛡️ WebUI 设置修复 — 解决了一个导致 Config `_deep_merge` 在底层使用 `****` 脱敏字符串覆盖合法 API 密钥的严重 Bug。
- **2026-03-29** 🔐 网关重启加固 — 阻止了通过健康检查端点的未授权 `/restart` 请求,并对 Web UI/网关重启强制执行基于 Token 的身份验证。
- **2026-03-29** 🛡️ Shell 工具安全 — 扩展了 `ExecTool.deny_patterns` 以包含 `$()`、反引号、Shell 管道、通过管道传输到 Shell 的 curl/wget 以及 `<()>` 进程替换。
- **2026-03-29** ⚡ WebSockets 与网关稳定性 — 彻底解决了“滚动条抖动”问题,并实现了带缓存清除机制的 `Gateway health` 轮询机制
- **2026-03-26** 🧠 动态系统提示词 — 在每次 LLM 调用时刷新运行时上下文(时间戳、频道、迭代次数),使 Agent 更加“鲜活”
- **2026-03-26** 🐾 优化了 SOUL.md 模板 — 更整洁的格式和更丰富的个性定义
- **2026-03-24** 🖥️ WebUI Token 身份验证(Jupyter 风格) — 使用自动生成的 Token 进行安全访问
- **2026-03-24** 🔐 从 UI 进行 OAuth 登录 — 直接从设置中验证 GitHub Copilot 和 OpenAI Codex
- **2026-03-24** 💬 聊天记录渲染修复及更宽的消息布局
- **2026-03-22** 🧩 带有选项卡的设置模态框 — Agent、提供商、工具、网关、频道、OAuth
- **2026-03-21** ⚡ 实时 WebUI — Socket.IO 流式传输、进程组、打字指示器
- **2026-03-20** 🐾 交互式新手引导向导 — 选择您的提供商、模型自动补全,然后开始使用
- **2026-03-19** 🛡️ 通过工具输出包装防御间接提示注入
## 🐾 核心功能
- **快速且忠实**:极少的启动时间和依赖项。
- **多渠道**:支持 Telegram、Discord、Slack、WhatsApp 等。
- **时刻警惕**:内置 Cron 和心跳任务调度器。
- 🧩 **技能注册中心**:模块化且可扩展的技能系统,原生支持 ClawHub 市场
- ⚡ **并行多 Agent 执行**:内置扇出编排模型,可并发生成和协调专门的子 Agent,以实现更快、可扩展的任务解决
- **高级思考**:支持 OpenAI、Azure 和深度推理思考者。
- **🛡️ 内置安全防护**:通过**结构化随机包装**和严格的每会话安全策略,防御间接提示注入。
- **🔍 智能安装守护**:包安装会在执行前进行 CVE 审计 — 安全的包可自由安装,有漏洞的包会被拦截并提供完整的 CVE 报告。
- **🧠 主动学习 (气味挖掘)**:定期对活跃对话进行后台分析,以提取并将关键事实持久化到长期记忆中,确保即使在长会话中也不会丢失任何“气味”。
- **📂 内置文件浏览器**:直接从 WebUI 浏览、查看、编辑和保存工作区文件 —— 无需终端。
- **📎 文件和图片附件**:直接将文件和图片拖拽或粘贴到聊天中,作为 Agent 的上下文使用。
## 🔒 只忠于您
就像最忠诚的护卫犬一样,ShibaClaw 被训练为只服从其主人的命令。得益于其先进的**工具输出包装**系统,该框架得到了强化,能够抵御*间接提示注入*攻击。它将来自网站、文件或工具的外部数据视为字面信息,绝不作为新指令。您的命令就是最终决定;对 ShibaClaw 来说,外部的噪音只不过是一只松鼠 🐿️。
## 🔍 智能安装守护
当 Agent 尝试运行包安装命令时,ShibaClaw 不再盲目拦截。相反,它会**拦截该命令,审计包的已知漏洞(CVE),并且只有在风险可接受时才会继续执行**。
### 工作原理
1. **检测** — `ExecTool` 识别出针对 `pip`、`npm`、`yarn`、`pnpm`、`apt`、`dnf`/`yum` 和 `brew` 的安装命令。
2. **审计** — 在执行前,将对包进行扫描:
- **Python (`pip install ...`)** → `pip-audit --format json` 针对 OSV/PyPA 咨询数据库进行检查。
- **Node.js (`npm install ...`)** → `npm audit --json` 针对 npm 安全咨询数据库进行检查。
- **系统包 (`apt`/`dnf`)** — 检查安全标志(例如 `--allow-unauthenticated`、`--nogpgcheck`);假定具备仓库级别的安全性。
- **Homebrew** — 允许以中等置信度安装(受管理的 formulae)。
3. **决策** — 基于配置的严重性阈值:
- `critical` 或 `high` 漏洞 → **拦截安装**,并且 Agent 会收到完整的 CVE 报告。
- `medium` 或 `low` 漏洞 → **继续安装**,并在输出中附加警告。
- 无漏洞 → 干净地**继续安装**。
4. **回退** — 如果审计工具不可用(无网络、未安装 `pip-audit`),安装将被**允许并附带警告**,而不是被拦截。
### 配置
在 `config.json` 的 `tools.exec` 中:
```
{
"tools": {
"exec": {
"installAudit": true,
"installAuditTimeout": 120,
"installAuditBlockSeverity": "high"
}
}
}
```
| 选项 | 默认值 | 描述 |
|--------|---------|-------------|
| `installAudit` | `true` | 启用/禁用针对安装的漏洞扫描 |
| `installAuditTimeout` | `120` | 在回退之前等待审计工具的秒数 |
| `installAuditBlockSeverity` | `"high"` | 触发拦截的最低严重性级别:`critical`、`high`、`medium`、`low` |
## 🧠 主动学习 (气味挖掘)
ShibaClaw 不会等到您的会话结束或上下文窗口填满才去记住重要的细节。通过**主动学习**,Agent 会在后台定期“嗅探”最近的对话,以提取事实和项目上下文。
### 工作原理
1. **脉冲** — 每隔 10 条消息(默认值),就会触发一个后台任务。
2. **反思** — 一次专门的 mini-LLM 调用会分析自上次脉冲以来的近期历史记录。
3. **持久化** — 提取新的事实、项目状态变更或用户偏好,并将其合并到 `MEMORY.md` 中。
4. **零延迟** — 学习过程通过 `_schedule_background` 异步运行。您可以不受任何干扰地继续聊天。
### 配置
在 `config.json` 的 `agents.defaults` 中:
```
{
"agents": {
"defaults": {
"learning_enabled": true,
"learning_interval": 10
}
}
}
```
| 选项 | 默认值 | 描述 |
|--------|---------|-------------|
| `learning_enabled` | `true` | 启用定期的后台事实提取 |
| `learning_interval` | `10` | 两次学习脉冲之间的消息数量 |
## 🐾 快速入门
准备好开始狩猎了吗?选择您的方式:
### 🐋 Docker (推荐)
```
docker compose up -d --build # gateway + webUI
docker exec -it shibaclaw-gateway shibaclaw onboard --wizard # first-time setup
```
打开 **http://localhost:3000** — 要获取您的访问 Token,请运行 `shibaclaw print-token`,并将其粘贴到登录界面,或使用附加了 Token 的直接 URL 进行访问。
### 🐍 裸金属 (Bare Metal)
```
pip install .
shibaclaw onboard --wizard # first-time setup
shibaclaw web --port 3000 # start the WebUI (agent runs in-process)
```
请参阅完整的[轻松部署指南](./deploy_guide.md)以获取详细说明和故障排除。
## 🖥️ WebUI
### 功能概览
- **🔐 Token 身份验证** — 启动时打印自动生成的访问 Token(可通过 `SHIBACLAW_AUTH=false` 禁用)
- **多会话聊天** — 创建、重命名、归档和在对话之间切换
- **实时进程组** — 观看 Agent 的推理和工具调用流式传输并显示耗时
- **设置模态框** — 配置模型、提供商、API 密钥、工具、网关、频道和 OAuth 提供商
- **从 UI 进行 OAuth 登录** — 直接从“设置”面板验证 GitHub Copilot 和 OpenAI Codex
- **上下文查看器** — 检查工作区上下文和 Token 使用情况
- **网关监视器** — 核心人工智能引擎的健康检查和一键重启
- **打字指示器** — Agent 工作时的动画反馈
- **响应式设计** — 适用于桌面和移动端
### 架构
| 层 | 技术栈 |
|-------|-------|
| **服务器** | Uvicorn → Starlette (ASGI) + python-socketio |
| **实时通信** | Socket.IO 4.7.5 (WebSocket,轮询回退) |
| **前端** | 原生 JS · Marked.js · Highlight.js (github-dark) |
| 容器 | 命令 | 端口 | 角色 |
|-----------|---------|------|------|
| `shibaclaw-gateway` | `shibaclaw gateway` | 19999 | 核心 AI 循环 + 消息总线 |
| `shibaclaw-web` | `ibaclaw web --port 3000` | 3000 | WebUI (Starlette + Socket.IO) |
两个容器共享 `.shibaclaw/` 卷,用于存放配置、工作区、工具和缓存。
## 🧩 支持的提供商
ShibaClaw 包含一个统一的提供商注册中心,并支持多种 LLM 后端。
### 🔑 基于 API 密钥的提供商
- OpenAI (`OPENAI_API_KEY`)
- Anthropic (`ANTHROPIC_API_KEY`)
- DeepSeek (`DEEPSEEK_API_KEY`)
- Gemini (`GEMINI_API_KEY`)
- Zhipu AI (`ZAI_API_KEY`, `ZHIPUAI_API_KEY`)
- DashScope (`DASHSCOPE_API_KEY`)
- Moonshot (`MOONSHOT_API_KEY`, `MOONSHOT_API_BASE`)
- MiniMax (`MINIMAX_API_KEY`)
- Groq (`GROQ_API_KEY`)
### 🔗 网关提供商 (通过密钥前缀 / api_base 自动检测)
- OpenRouter (`OPENROUTER_API_KEY`,自动密钥前缀 `sk-or-`,base `openrouter`)
- AiHubMix (`OPENAI_API_KEY`,base `aihubmix`)
- SiliconFlow (`OPENAI_API_KEY`,base `siliconflow`)
- VolcEngine / BytePlus / Coding Plans (`OPENAI_API_KEY` + URL 匹配)
### 🏠 本地提供商
- vLLM / 通用的兼容 OpenAI 的本地服务器 (`HOSTED_VLLM_API_KEY`,`api_base` 配置)
- Ollama (`OLLAMA_API_KEY`,默认 `http://localhost:11434`)
### 🔐 OAuth 提供商
- OpenAI Codex (OAuth,`openai-codex`)
- GitHub Copilot (OAuth,`github-copilot`)
OAuth 提供商需要一次性登录。使用 WebUI 中的 **设置 → OAuth 提供商** 选项卡检查状态并直接从浏览器进行验证。GitHub Copilot 流程使用设备码;OpenAI Codex 会打开基于浏览器的 PKCE 流程。
CLI 回退方式:
```
shibaclaw provider login openai-codex # oauth-cli-kit device flow
shibaclaw provider login github-copilot # async device flow
```
要求:`pip install oauth-cli-kit` (Codex)
### 常用命令
- `shibaclaw onboard --wizard`
- `shibaclaw status` (检查提供商状态和 OAuth 标志 — 对于已通过身份验证的 OAuth 提供商会显示 `✓ (OAuth)`)
- `shibaclaw agent -m "Hello"`
## ✅ 检查状态与故障排除
- `shibaclaw status` 报告工作区、配置路径和提供商状态。
- `docker logs shibaclaw-gateway` / `docker logs shibaclaw-web` 用于查看容器日志。
- 请参考 `shibaclaw/thinkers/registry.py` 了解提供商列表和前缀匹配行为。
## 🏗️ 项目结构与架构
- `shibaclaw/` - 核心实现
- `webui/` - Web 界面 (server.py + 静态资源)
- `agent/` - AI Agent 循环和大脑
- `thinkers/` - LLM 提供商注册中心
- `cli/` - CLI 命令
- `bridge/` - WhatsApp 连接模块
- `tests/` - 验证和测试
- `assets/` - 项目品牌和视觉资源
## 致谢
本项目灵感来自 Nanobot❤️(https://github.com/HKUDS/nanobot)
由 HKUDS 开发,基于 MIT 许可证发布。
标签:AI助手框架, AI网络安全, asyncio, ATT&CK 框架, CISA项目, Discord机器人, Docker一键部署, GitHub Advanced Security, LLM Agent, MCP支持, OAuth认证, PE 加载器, Python, Python 3.11, Slack机器人, Telegram机器人, WebUI, 个人AI助理, 代码安全, 代码编辑器, 低Token消耗, 多平台集成, 多通道通信, 安全加固, 实时漏洞扫描, 并行智能体, 开源AI框架, 异步编程, 提示词安全, 文件上传下载, 文件浏览器, 文件管理, 无后门, 智能体安全, 智能工作空间, 模型上下文协议, 沙箱隔离, 漏洞枚举, 自托管AI, 语法高亮, 请求拦截, 路径遍历防护, 轻量级框架, 逆向工具, 防提示词注入