feat(nanobot): add README and docker-compose configuration for multi-channel AI assistant

feat(openclaw): introduce OpenClaw personal AI assistant with multi-channel support and CLI

fix(mineru): update MinerU version to 2.7.6 in Dockerfile and documentation
This commit is contained in:
Sun-ZhenXing
2026-02-07 13:34:36 +08:00
parent 28ed2462af
commit d53dffca83
14 changed files with 874 additions and 110 deletions

269
apps/nanobot/README.zh.md Normal file
View File

@@ -0,0 +1,269 @@
# Nanobot
[中文说明](README.zh.md) | [English](README.md)
Nanobot 是一个轻量级、生产就绪的个人 AI 助手支持多渠道Telegram、Discord、WhatsApp、飞书本地模型集成以及强大的工具能力。
## 特性
- 🤖 **多 LLM 提供商支持**OpenRouter、Anthropic、OpenAI、DeepSeek、Groq、Gemini 等
- 🖥️ **本地模型**:使用 vLLM 或任何 OpenAI 兼容服务器运行您自己的模型
- 💬 **多渠道**:集成 Telegram、Discord、WhatsApp 和飞书
- 🛠️ **强大工具**文件操作、Shell 执行、网络搜索和自定义技能
- 📅 **定时任务**:支持自然语言的类 Cron 任务调度
- 🎯 **记忆与技能**:持久化记忆和可扩展技能系统
- 🔒 **安全性**:沙盒模式、访问控制和安全命令执行
## 快速开始
### 前置要求
- 已安装 Docker 和 Docker Compose
- 至少一个 LLM 提供商 API 密钥(推荐:[OpenRouter](https://openrouter.ai/keys)
### 配置步骤
1. **复制环境变量示例文件:**
```bash
cp .env.example .env
```
2. **编辑 `.env` 并至少配置一个 LLM 提供商:**
```bash
# 使用 OpenRouter推荐可访问所有模型
OPENROUTER_API_KEY=sk-or-v1-xxxxx
# 或使用其他提供商
ANTHROPIC_API_KEY=sk-ant-xxxxx
OPENAI_API_KEY=sk-xxxxx
```
3. **启动服务:**
```bash
docker compose up -d
```
4. **初始化配置(仅首次需要):**
```bash
docker compose exec nanobot nanobot onboard
```
5. **检查状态:**
```bash
docker compose exec nanobot nanobot status
```
## 使用方法
### CLI 模式
直接与 nanobot 对话:
```bash
docker compose exec nanobot nanobot agent -m "2+2 等于多少?"
```
交互模式:
```bash
docker compose exec nanobot nanobot agent
```
### 网关模式(默认)
默认的 `docker compose up` 会启动网关服务器,支持:
- Telegram 机器人集成
- Discord 机器人集成
- WhatsApp 消息(需要额外配置)
- 飞书 / Lark 集成
- HTTP API 访问(端口 18790
### 渠道配置
#### Telegram
1. 通过 Telegram 上的 [@BotFather](https://t.me/BotFather) 创建机器人
2. 从 [@userinfobot](https://t.me/userinfobot) 获取您的用户 ID
3. 在 `.env` 中配置:
```bash
TELEGRAM_ENABLED=true
TELEGRAM_TOKEN=你的机器人令牌
```
4. 重启服务
#### Discord
1. 在 [Discord 开发者门户](https://discord.com/developers/applications) 创建机器人
2. 在机器人设置中启用 **MESSAGE CONTENT INTENT**
3. 在 `.env` 中配置:
```bash
DISCORD_ENABLED=true
DISCORD_TOKEN=你的机器人令牌
```
4. 重启服务
#### WhatsApp
需要 Node.js 和额外配置。详见 [官方文档](https://github.com/HKUDS/nanobot#-chat-apps)。
#### 飞书
1. 在 [飞书开放平台](https://open.feishu.cn/app) 创建应用
2. 启用机器人能力并添加 `im:message` 权限
3. 在 `.env` 中配置:
```bash
FEISHU_ENABLED=true
FEISHU_APP_ID=你的应用ID
FEISHU_APP_SECRET=你的应用密钥
```
4. 重启服务
## 配置
### 环境变量
所有可用配置选项请参见 [.env.example](.env.example)。
关键设置:
| 变量 | 描述 | 默认值 |
| ----------------------- | -------------------------------------- | --------------------------- |
| `NANOBOT_MODEL` | 要使用的 LLM 模型 | `anthropic/claude-opus-4-5` |
| `NANOBOT_COMMAND` | 要运行的命令gateway、agent、status | `gateway` |
| `RESTRICT_TO_WORKSPACE` | 沙盒模式 - 限制工具访问工作空间 | `false` |
| `BRAVE_API_KEY` | 网络搜索工具的 API 密钥 | (空) |
| `TELEGRAM_ENABLED` | 启用 Telegram 渠道 | `false` |
| `DISCORD_ENABLED` | 启用 Discord 渠道 | `false` |
### LLM 提供商优先级
当配置了多个提供商时nanobot 将:
1. 根据模型名称匹配提供商(例如 `gpt-4` → OpenAI
2. 回退到第一个可用的 API 密钥
### 安全性
对于生产部署:
- 设置 `RESTRICT_TO_WORKSPACE=true` 以沙盒化所有文件和 Shell 操作
- 在配置文件中为渠道访问控制配置 `allowFrom` 列表
- 为渠道集成使用专用用户账户
- 监控 API 使用并设置支出限制
- 将凭证保存在环境变量中,绝不在代码中
## 定时任务
按计划运行任务:
```bash
# 添加每日提醒
docker compose exec nanobot nanobot cron add \
--name "morning" \
--message "早上好!今天有什么安排?" \
--cron "0 9 * * *"
# 列出计划任务
docker compose exec nanobot nanobot cron list
# 删除任务
docker compose exec nanobot nanobot cron remove <job_id>
```
## 本地模型vLLM
使用您自己的本地模型运行 nanobot
1. **启动 vLLM 服务器:**
```bash
vllm serve meta-llama/Llama-3.1-8B-Instruct --port 8000
```
2. **在 `.env` 中配置:**
```bash
VLLM_API_KEY=dummy
VLLM_API_BASE=http://host.docker.internal:8000/v1
NANOBOT_MODEL=meta-llama/Llama-3.1-8B-Instruct
```
3. **重启服务**
## 数据卷
- `nanobot_config`:配置文件和凭证
- `nanobot_workspace`:代理工作空间和文件
## 端口
- `18790`:网关 HTTP API可通过 `NANOBOT_PORT_OVERRIDE` 配置)
## 资源限制
默认资源限制:
- CPU1.0 核心限制0.5 核心(预留)
- 内存1GB限制512MB预留
通过环境变量调整:`NANOBOT_CPU_LIMIT`、`NANOBOT_MEMORY_LIMIT` 等。
## 故障排除
### 查看日志
```bash
docker compose logs -f nanobot
```
### 验证配置
```bash
docker compose exec nanobot nanobot status
```
### 测试 LLM 连接
```bash
docker compose exec nanobot nanobot agent -m "你好!"
```
### 常见问题
**未配置 API 密钥:**
- 确保在 `.env` 中至少设置了一个提供商 API 密钥
- 更新环境变量后重启服务
**渠道无响应:**
- 检查渠道是否在 `.env` 中启用
- 验证机器人令牌是否正确
- 检查日志中的连接错误
**文件权限错误:**
- 确保数据卷具有适当的权限
- 调试时尝试使用 `RESTRICT_TO_WORKSPACE=false` 运行
## 许可证
Nanobot 是一个开源项目。许可证详情请参见 [官方仓库](https://github.com/HKUDS/nanobot)。
## 链接
- 官方仓库:<https://github.com/HKUDS/nanobot>
- 文档:<https://github.com/HKUDS/nanobot#readme>
- 问题反馈:<https://github.com/HKUDS/nanobot/issues>