openclaw/JARVIS_USER_MANUAL.md
calvin-Yi3Wood 877a9d7c9a feat: 完成贾维斯Bot WhatsApp版本部署配置
## 主要更新

### 安全配置增强
- 添加 api.z.ai 到网络白名单(支持GLM-4.7 API)
- 网络监控改为监控模式(ENFORCE=0)
- 配置单用户授权(+8613219870000)

### 多模型策略实现
- 主模型: GLM-4.7 (文本对话,¥0.015/千tokens)
- 备用模型: Kimi K2.5 (图片识别、视频解析)
- 自动fallback机制

### 文档完善
- 创建完整的 CLAUDE.md 项目文档
- 添加贾维斯使用指南(多模型策略、成本估算)
- 添加快速启动指南和部署摘要

### 自动化脚本
- WhatsApp登录脚本
- 快速启动脚本(start-jarvis-whatsapp.sh)
- 配置验证脚本
- Web UI快捷启动(打开WebUI.bat)

### 配置文件
- env.sh模板(环境变量配置)
- config-template.json(配置模板)
- 响应前缀配置: [🤖贾维斯]

## 测试状态
 WhatsApp连接成功
 API密钥配置完成(GLM + Kimi)
 多模型fallback正常工作
 Web UI可访问(端口18789)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-29 11:02:08 +08:00

1011 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🦞 贾维斯 Bot (Jarvis Bot) 用户手册
**版本**: v1.0
**生成日期**: 2026年1月28日
**基于项目**: Moltbot 安全加固版
---
## 📖 目录
1. [快速开始](#快速开始)
2. [日常使用](#日常使用)
3. [安全功能说明](#安全功能说明)
4. [常用命令示例](#常用命令示例)
5. [日志查看方法](#日志查看方法)
6. [故障排查](#故障排查)
7. [配置参考](#配置参考)
8. [高级功能](#高级功能)
---
## 🚀 快速开始
### 首次部署(一次性配置)
#### 步骤1: 安装依赖
```bash
cd D:\项目库\MOLTBOT助理
pnpm install # 或 npm install
```
**预计时间**: 5-10分钟取决于网络速度
---
#### 步骤2: 创建 Telegram Bot
1. 打开 Telegram 应用
2. 搜索 **@BotFather**
3. 发送 `/newbot`
4. 按提示设置:
- Bot 名称(如:贾维斯助理)
- Bot 用户名MyJarvisBot
5. 复制获得的 **Bot Token**(格式:`123456789:ABCdefGHI...`
---
#### 步骤3: 获取您的 Telegram ID
1. 在 Telegram 搜索 **@userinfobot**
2. 发送任意消息
3. 复制您的 **数字ID**(如:`123456789`
---
#### 步骤4: 运行配置向导
```bash
./setup-telegram-config.sh
```
按照提示输入:
- Bot Token
- 您的 Telegram ID
配置向导将自动:
- ✅ 计算安全哈希
- ✅ 生成配置文件
- ✅ 设置权限
- ✅ 创建环境变量
---
#### 步骤5: 启动服务
```bash
./start-jarvis-safe.sh
```
**预期输出**
```
========================================
🦞 贾维斯 Bot (Jarvis Bot) 安全启动
========================================
步骤1: 加载环境变量
✓ 找到环境变量文件: /home/user/.clawdbot/env.sh
...
正在启动服务...
Gateway listening on ws://127.0.0.1:18789
Telegram channel connected
```
---
#### 步骤6: 与 Bot 对话
1. 打开 Telegram
2. 搜索您创建的 Bot
3. 发送 `/start`
4. 发送 `你好`
**预期响应**: Bot 应该回复您!
---
### 日常启动(已配置后)
每次使用只需一条命令:
```bash
cd D:\项目库\MOLTBOT助理
./start-jarvis-safe.sh
```
---
### 停止服务
在运行窗口按 **Ctrl+C** 即可安全停止。
---
## 💬 日常使用
### 基本对话
直接在 Telegram 与 Bot 对话即可,支持:
-**自然语言问答**
```
你: 今天天气怎么样?
Bot: [AI响应]
```
-**代码编写**
```
你: 用Python写一个计算斐波那契数列的函数
Bot: [生成代码]
```
-**数据分析**
```
你: 分析这段文本的情感倾向
Bot: [分析结果]
```
---
### 本地电脑控制
贾维斯 Bot 可以控制您的本地电脑执行任务:
#### 文件操作
```
你: 创建一个名为 test.txt 的文件
你: 读取 D:\文档\报告.txt 的内容
你: 列出桌面上的所有文件
```
#### 应用程序控制
```
你: 打开记事本
你: 打开浏览器访问 https://www.baidu.com
你: 关闭记事本
```
#### 系统信息
```
你: 显示系统信息
你: 检查磁盘空间
你: 查看正在运行的进程
```
#### 数据处理
```
你: 将CSV文件转换为Excel格式
你: 批量重命名文件夹中的图片
你: 压缩这个文件夹
```
---
### 命令格式规范
对于需要明确路径的操作,建议使用完整路径:
```
✅ 推荐: 打开 D:\项目\代码\main.py
❌ 不推荐: 打开主文件(可能造成歧义)
```
---
## 🔒 安全功能说明
### 1. 单用户授权(最重要!)
**功能**: 仅允许您本人控制 Bot其他人无法使用。
**工作原理**:
1. 您的 Telegram ID 经过 SHA-256 哈希加密
2. 每条消息的发送者 ID 都会验证
3. 如果哈希不匹配,消息被静默拒绝(不回复)
**安全级别**: ⭐⭐⭐⭐⭐
**示例**:
```
您发送: 打开记事本
Bot: [执行操作]
朋友发送: 打开记事本
Bot: [无响应,静默拒绝]
```
**日志记录**:
```json
{
"type": "unauthorized_user",
"userId": "sha256:abc...",
"timestamp": "2026-01-28T13:30:00.000Z"
}
```
---
### 2. 网络白名单
**功能**: 限制 Bot 只能访问指定的网络域名。
**默认白名单**:
- `api.anthropic.com` - Claude AI 服务
- `*.whatsapp.net` - WhatsApp 服务(如果使用)
- `api.telegram.org` - Telegram 服务
**工作模式**:
| 模式 | 行为 | 环境变量 |
|------|------|---------|
| **审计模式** | 记录但不拦截 | `MOLTBOT_HARDENING_NETWORK_ENFORCE=0` |
| **强制模式** | 拦截非白名单请求 | `MOLTBOT_HARDENING_NETWORK_ENFORCE=1` |
**推荐设置**: 强制模式(`=1`
**添加自定义域名**:
编辑 `~/.clawdbot/clawdbot.json`:
```json
{
"security": {
"hardening": {
"network": {
"extraAllowedDomains": ["api.openai.com"],
"extraAllowedSuffixes": [".github.com"]
}
}
}
}
```
---
### 3. 文件系统监控
**功能**: 监控对敏感文件的访问,记录到审计日志。
**默认敏感路径**:
- `~/.ssh` - SSH 密钥
- `~/.aws` - AWS 凭证
- `~/.gnupg` - GPG 密钥
- `~/.clawdbot/credentials` - Bot 凭证
**工作模式**:
| 模式 | 行为 | 环境变量 |
|------|------|---------|
| **审计模式** | 记录但不拦截 | `MOLTBOT_HARDENING_FS_ENFORCE=0` |
| **强制模式** | 拦截敏感文件访问 | `MOLTBOT_HARDENING_FS_ENFORCE=1` |
**推荐设置**: 审计模式(`=0`),避免误拦截合法操作。
**添加自定义敏感路径**:
编辑 `~/.clawdbot/clawdbot.json`:
```json
{
"security": {
"hardening": {
"filesystem": {
"extraSensitivePaths": [
"~/Documents/机密",
"D:\\重要文件"
]
}
}
}
}
```
---
### 4. 审计日志
**功能**: 记录所有安全相关事件。
**日志文件**: `~/.clawdbot/security-audit.log`
**记录的事件类型**:
- `hardening_init` - 系统启动
- `unauthorized_user` - 未授权用户尝试访问
- `network_block` - 网络请求被拦截
- `fs_access` - 敏感文件访问
- `hardening_error` - 安全系统错误
**日志格式**: 结构化 JSON每行一条记录
**日志轮转**: 超过 10MB 自动轮转为 `.log.1`
---
## 💡 常用命令示例
### 文件管理
```
# 创建文件
创建一个名为 TODO.md 的Markdown文件内容是今天的待办事项
# 读取文件
读取 D:\项目\README.md 的内容
# 编辑文件
将 test.txt 中的所有 "旧文本" 替换为 "新文本"
# 搜索文件
在 D:\项目 目录下搜索包含 "TODO" 的所有文件
# 复制/移动
将 backup.zip 复制到 D:\备份 目录
将 temp.txt 移动到回收站
```
---
### 应用程序控制
```
# 打开应用
打开记事本
打开浏览器访问 https://github.com
打开 VSCode
# 关闭应用
关闭记事本
关闭所有浏览器窗口
# 系统操作
锁定屏幕
清空回收站
```
---
### 数据处理
```
# 文本处理
将这段文本翻译成英文
总结这篇文章的要点
检查这段代码的语法错误
# 文件格式转换
将 data.csv 转换为 Excel 格式
将 image.png 转换为 JPG 格式
# 批量操作
批量重命名文件夹中的图片,格式为 photo_001.jpg
压缩 D:\项目 文件夹为 ZIP 文件
```
---
### 系统监控
```
# 系统信息
显示CPU和内存使用率
检查磁盘空间
查看网络连接状态
# 进程管理
列出所有正在运行的进程
结束名为 notepad.exe 的进程
```
---
### 代码辅助
```
# 代码生成
用Python写一个HTTP服务器
生成一个React组件示例
# 代码审查
检查这段代码的安全问题
优化这个SQL查询的性能
# 调试帮助
解释这个错误信息
建议如何修复这个bug
```
---
## 📊 日志查看方法
### 查看审计日志
#### 查看完整日志
```bash
cat ~/.clawdbot/security-audit.log
```
#### 查看最近 20 条
```bash
tail -20 ~/.clawdbot/security-audit.log
```
#### 实时查看(服务运行时)
```bash
tail -f ~/.clawdbot/security-audit.log
```
#### 过滤特定事件
```bash
# 查看所有未授权用户事件
grep "unauthorized_user" ~/.clawdbot/security-audit.log
# 查看所有网络拦截事件
grep "network_block" ~/.clawdbot/security-audit.log
# 查看所有文件访问事件
grep "fs_access" ~/.clawdbot/security-audit.log
```
#### 美化 JSON 输出
```bash
# 安装 jq如果未安装
# Windows Git Bash: choco install jq
# Linux: sudo apt install jq
# 美化最近一条日志
tail -1 ~/.clawdbot/security-audit.log | jq .
# 美化所有日志
cat ~/.clawdbot/security-audit.log | jq .
```
---
### 查看系统日志
#### Gateway 日志
```bash
# 如果使用 start-jarvis-safe.sh 启动
# 日志会直接输出到终端
# 如果后台启动,日志可能在:
tail -f /tmp/moltbot-gateway.log # Linux/macOS
tail -f %TEMP%\moltbot-gateway.log # Windows
```
---
### 日志分析技巧
#### 统计事件类型
```bash
# 统计每种事件的数量
cat ~/.clawdbot/security-audit.log | jq -r '.type' | sort | uniq -c
```
#### 查找特定时间段
```bash
# 查找2026年1月28日的事件
grep "2026-01-28" ~/.clawdbot/security-audit.log
```
#### 提取特定字段
```bash
# 提取所有被拦截的域名
grep "network_block" ~/.clawdbot/security-audit.log | jq -r '.detail.domain'
```
---
## 🔧 故障排查
### 问题1: 启动脚本报错 "环境变量未配置"
**症状**:
```
✗ MOLTBOT_HARDENING_ENABLED 未设置
```
**原因**: 环境变量文件不存在或未加载
**解决方法**:
```bash
# 方法1: 重新运行配置向导
./setup-telegram-config.sh
# 方法2: 手动加载环境变量
source ~/.clawdbot/env.sh
# 方法3: 检查文件是否存在
ls -lh ~/.clawdbot/env.sh
# 方法4: 手动导出环境变量
export MOLTBOT_HARDENING_ENABLED=1
export MOLTBOT_AUTHORIZED_USER_HASH="your_hash"
export TELEGRAM_BOT_TOKEN="your_token"
```
---
### 问题2: Bot 无响应
**症状**: 在 Telegram 发送消息Bot 没有任何回复
**可能原因**:
#### 原因A: Bot Token 错误
**验证**:
```bash
# 检查 Token 是否正确
echo $TELEGRAM_BOT_TOKEN
# 测试 Token需要 curl
curl -s https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getMe
```
**解决**: 重新运行 `./setup-telegram-config.sh` 输入正确的 Token
---
#### 原因B: 您的 Telegram ID 未授权
**症状**: 其他人可能可以使用 Bot但您不能
**验证**:
```bash
# 检查授权哈希
echo $MOLTBOT_AUTHORIZED_USER_HASH
# 重新计算您的哈希
YOUR_ID=123456789 # 替换为您的实际ID
echo -n "$YOUR_ID" | sha256sum
# 对比两个哈希是否一致
```
**解决**: 确保授权哈希是根据**您的 Telegram ID**计算的
---
#### 原因C: Gateway 未启动
**验证**:
```bash
# 检查 Gateway 进程
ps aux | grep moltbot
# 检查端口占用
netstat -ano | findstr 18789 # Windows
ss -ltnp | grep 18789 # Linux
```
**解决**: 运行 `./start-jarvis-safe.sh` 启动服务
---
#### 原因D: Telegram 连接失败
**症状**: 启动日志显示 Telegram 连接错误
**验证**:
```bash
# 查看启动日志中是否有错误
# 搜索 "telegram" 或 "error"
```
**解决**:
1. 检查网络连接
2. 确认 Bot Token 正确
3. 尝试重启服务
---
### 问题3: 网络请求被误拦截
**症状**: Bot 无法访问某些合法的网站/API
**原因**: 域名不在白名单中
**解决方法**:
#### 方法1: 临时禁用网络强制
```bash
# 修改环境变量
export MOLTBOT_HARDENING_NETWORK_ENFORCE=0
# 重启服务
./start-jarvis-safe.sh
```
#### 方法2: 添加域名到白名单
编辑 `~/.clawdbot/clawdbot.json`:
```json
{
"security": {
"hardening": {
"network": {
"enforce": true,
"extraAllowedDomains": [
"api.example.com", // 添加您需要的域名
"cdn.example.com"
]
}
}
}
}
```
重启服务。
---
### 问题4: 文件操作被拦截
**症状**: Bot 无法读取/写入某些文件
**原因**: 文件路径被识别为敏感路径
**解决方法**:
#### 方法1: 切换到审计模式
```bash
# 修改环境变量
export MOLTBOT_HARDENING_FS_ENFORCE=0
# 重启服务
./start-jarvis-safe.sh
```
#### 方法2: 从敏感路径列表中移除
编辑 `src/security/fs-monitor.ts`(不推荐,除非您了解风险)
---
### 问题5: 依赖安装失败
**症状**: `pnpm install``npm install` 报错
**常见错误**:
#### 错误A: 网络超时
**解决**:
```bash
# 使用淘宝镜像
npm config set registry https://registry.npmmirror.com
# 或使用 pnpm
pnpm config set registry https://registry.npmmirror.com
# 重新安装
pnpm install
```
#### 错误B: Python 未安装Windows
某些依赖需要 Python 编译。
**解决**:
```bash
# 安装 windows-build-tools
npm install --global windows-build-tools
# 或手动安装 Python 3.x
# https://www.python.org/downloads/
```
---
### 问题6: 审计日志过大
**症状**: `security-audit.log` 文件很大(> 10MB
**原因**: 日志轮转未自动触发,或事件过多
**解决方法**:
#### 方法1: 手动归档
```bash
# 备份旧日志
mv ~/.clawdbot/security-audit.log ~/.clawdbot/security-audit.$(date +%Y%m%d).log
# 创建新日志(服务会自动创建)
# 重启服务
```
#### 方法2: 定期清理
```bash
# 只保留最近7天的日志
find ~/.clawdbot -name "security-audit.*.log" -mtime +7 -delete
```
---
### 通用调试步骤
当遇到未知问题时,按照以下步骤诊断:
1. **检查服务状态**
```bash
ps aux | grep moltbot
ss -ltnp | grep 18789
```
2. **查看审计日志**
```bash
tail -50 ~/.clawdbot/security-audit.log
```
3. **检查环境变量**
```bash
source ~/.clawdbot/env.sh
env | grep MOLTBOT
env | grep TELEGRAM
```
4. **验证配置文件**
```bash
cat ~/.clawdbot/clawdbot.json | jq .
```
5. **重启服务**
```bash
# Ctrl+C 停止
./start-jarvis-safe.sh # 重新启动
```
---
## ⚙️ 配置参考
### 环境变量完整列表
| 变量名 | 说明 | 必需 | 默认值 |
|--------|------|------|--------|
| `MOLTBOT_HARDENING_ENABLED` | 启用安全加固 | ✅ | 无 |
| `MOLTBOT_AUTHORIZED_USER_HASH` | 授权用户SHA-256哈希 | ✅ | 无 |
| `TELEGRAM_BOT_TOKEN` | Telegram Bot Token | ✅ | 无 |
| `MOLTBOT_HARDENING_NETWORK_ENFORCE` | 网络白名单强制模式 | ❌ | `0` |
| `MOLTBOT_HARDENING_FS_ENFORCE` | 文件系统监控强制模式 | ❌ | `0` |
| `MOLTBOT_HARDENING_LOG_FILE` | 审计日志文件路径 | ❌ | `~/.clawdbot/security-audit.log` |
| `ANTHROPIC_API_KEY` | Claude API密钥可选| ❌ | 无 |
---
### 配置文件结构
#### 主配置文件 `~/.clawdbot/clawdbot.json`
```json
{
"gateway": {
"mode": "local", // 本地模式(推荐)
"bind": "loopback", // 仅本地访问(安全)
"port": 18789, // Gateway端口
"auth": {
"mode": "none" // 本地无需认证
}
},
"security": {
"hardening": {
"enabled": true, // 启用安全加固
"authorizedUserHash": "abc...", // 授权哈希
"network": {
"enforce": true, // 网络强制模式
"extraAllowedDomains": [], // 额外白名单域名
"extraAllowedSuffixes": [], // 额外白名单后缀
"logAllowed": false // 不记录允许的请求
},
"filesystem": {
"enforce": false, // 文件系统审计模式
"extraSensitivePaths": [] // 额外敏感路径
}
}
},
"channels": {
"telegram": {
"enabled": true, // 启用Telegram通道
"botToken": "...", // Bot Token
"dmPolicy": "allowlist", // 白名单模式
"allowFrom": ["123456789"] // 允许的用户ID
}
},
"agents": {
"defaults": {
"model": "claude-3-7-sonnet-20250219", // AI模型
"thinkingLevel": "normal" // 思考级别
}
}
}
```
---
### 推荐的安全配置
#### 高安全模式(推荐)
```bash
# 环境变量
export MOLTBOT_HARDENING_ENABLED=1
export MOLTBOT_HARDENING_NETWORK_ENFORCE=1 # 强制网络白名单
export MOLTBOT_HARDENING_FS_ENFORCE=0 # 审计文件访问
```
#### 平衡模式
```bash
# 环境变量
export MOLTBOT_HARDENING_ENABLED=1
export MOLTBOT_HARDENING_NETWORK_ENFORCE=0 # 审计网络请求
export MOLTBOT_HARDENING_FS_ENFORCE=0 # 审计文件访问
```
#### 调试模式(仅用于测试)
```bash
# 环境变量
export MOLTBOT_HARDENING_ENABLED=0 # 禁用安全加固
# 不推荐在生产环境使用!
```
---
## 🚀 高级功能
### 自定义 AI 模型
编辑 `~/.clawdbot/clawdbot.json`:
```json
{
"agents": {
"defaults": {
"model": "claude-3-opus-20240229", // 更强大的模型
"thinkingLevel": "high" // 更深入的思考
}
}
}
```
支持的模型:
- `claude-3-7-sonnet-20250219` - 平衡(推荐)
- `claude-3-opus-20240229` - 最强(较慢)
- `claude-3-haiku-20240307` - 快速(较弱)
---
### 定时任务
您可以让 Bot 定期执行某些任务需要自行实现Moltbot 支持 Cron 功能)。
示例每天早上9点发送天气预报。
---
### 多通道支持
除了 Telegram还可以配置
- WhatsApp
- Discord
- Slack
- Signal
配置方法参考官方文档https://docs.molt.bot
---
### 远程访问(高级)
如果需要从外网访问 Bot**不推荐,有安全风险**
1. 修改 Gateway 绑定地址
2. 配置防火墙
3. 启用 Gateway 认证(`auth.mode: "password"`
4. 使用 HTTPS/WSS
**警告**: 除非您完全了解风险,否则不要公网暴露 Gateway
---
## 📞 获取帮助
### 查看文档
- **测试报告**: `TEST_REPORT.md`
- **架构分析**: `MOLTBOT项目深度分析报告.md`
- **速查表**: `架构分析速查表.md`
### 检查日志
```bash
# 审计日志
tail -50 ~/.clawdbot/security-audit.log
# 系统日志(如果有)
tail -50 /tmp/moltbot-gateway.log
```
### 重新配置
```bash
# 删除旧配置
rm -rf ~/.clawdbot
# 重新运行向导
./setup-telegram-config.sh
```
---
## 📝 附录
### 常用路径
```
配置目录: ~/.clawdbot/
主配置文件: ~/.clawdbot/clawdbot.json
环境变量: ~/.clawdbot/env.sh
审计日志: ~/.clawdbot/security-audit.log
项目目录: D:\项目库\MOLTBOT助理\
启动脚本: D:\项目库\MOLTBOT助理\start-jarvis-safe.sh
配置向导: D:\项目库\MOLTBOT助理\setup-telegram-config.sh
```
---
### 快速参考命令
```bash
# 启动服务
./start-jarvis-safe.sh
# 停止服务
Ctrl+C
# 查看日志
tail -f ~/.clawdbot/security-audit.log
# 重新配置
./setup-telegram-config.sh
# 安装依赖
pnpm install
# 运行测试
pnpm test -- src/security/hardening.test.ts
```
---
**手册版本**: v1.0
**最后更新**: 2026年1月28日
**维护者**: CMAF技术助理
**反馈**: 请通过 GitHub Issues 报告问题