openclaw/CLAUDE.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

Symbolic link
19 KiB
Raw Blame History

贾维斯 Bot - Claude AI 助手指导文件

🎯 项目概述

项目名称: 贾维斯 Bot (Jarvis Bot) 基于: Moltbot 2026.1.27-beta.1 安全加固版 用途: 个人 AI 助理,通过 WhatsApp 远程控制 安全等级: 企业级4层防护 用户: 单用户模式(+8613219870000


🤖 核心配置

多模型策略

文本对话 Fallback

主模型: zai/glm-4.7 (¥0.015/千tokens - 性价比最高)
备用模型: moonshot/kimi-k2.5 (¥0.12/千tokens - GLM失败时自动切换)

图片/视频处理

当用户发送图片或视频时:
- GLM-4.7 会失败(不支持多模态)
- 系统自动 fallback 到 Kimi K2.5
- Kimi K2.5 支持:图片识别 + 视频解析

优势

  • 日常文本对话成本低GLM-4.7
  • 图片/视频自动切换高级模型Kimi K2.5
  • 无需手动切换,智能 fallback

响应格式

所有回复统一前缀[🤖贾维斯]

示例

用户: 你好
Bot: [🤖贾维斯] 你好!有什么可以帮你的?

🔒 安全加固架构

4层防护体系

第1层单用户授权

  • 机制: SHA-256 哈希验证
  • 授权号码: +8613219870000
  • 哈希值: 6a83effb5e342436e0f55ad8171db7f5666594a0a869a2aa3b9570335b324444
  • 效果: 其他号码消息自动拒绝

第2层网络白名单

  • 模式: 监控模式(记录但不拦截)
  • 原因: 保持功能灵活性,允许添加新 API
  • 审计: 所有网络请求记录到日志
  • 切换: 可随时改为强制模式

第3层文件系统监控

  • 模式: 审计模式(记录但不拦截)
  • 监控: ~/.ssh/, ~/.aws/ 等敏感路径
  • 日志: 所有文件操作记录

第4层审计日志

  • 位置: ~/.clawdbot/security-audit.log
  • 内容: 所有安全事件(访问、拦截、异常)
  • 轮转: 自动轮转(每 10MB

🔍 监控与安全维护策略

监控哲学

核心原则:

  • 这是个人使用场景,不需要 7x24 实时监控
  • AI 助手采用"定期人工触发"模式,而非"常驻守护进程"
  • 重点关注异常检测,而非性能优化
  • 成本控制:避免过度自动化导致 API 调用浪费

何时触发监控:

  • 每日首次启动时(自动)
  • 用户明确请求时(手动)
  • 检测到异常行为后(响应式)
  • 不采用定时轮询(浪费资源)

📅 监控时间表

每日检查启动时自动执行2分钟

触发时机: 每次运行 start-jarvis-whatsapp.sh

检查清单:

1. 审计日志健康检查

# 检查日志文件是否存在
[ ] 文件存在: ~/.clawdbot/security-audit.log

# 检查最近 24 小时内是否有日志记录
[ ] 最近记录时间: ____应在 24 小时内)

# 统计事件类型分布
[ ] hardening_init: __ 次(启动事件)
[ ] unauthorized_user: __ 次(应为 0
[ ] blocked_network: __ 次(记录但评估是否正常)
[ ] sensitive_file_access: __ 次(记录但评估是否正常)

2. 异常事件检测

# 搜索关键词
[ ] 搜索 "unauthorized_user"(应为空)
[ ] 搜索 "Error"(应为空或已知错误)
[ ] 搜索 "Exception"(应为空)

3. 配置文件完整性

[ ] ~/.moltbot/moltbot.json 存在且可读
[ ] ~/.clawdbot/env.sh 存在且可读
[ ] MOLTBOT_HARDENING_ENABLED=1
[ ] MOLTBOT_AUTHORIZED_USER_HASH 长度为 64 字符
[ ] ZAI_API_KEY 已设置
[ ] MOONSHOT_API_KEY 已设置

执行命令

cd "D:\项目库\MOLTBOT助理"
./日常监控检查.sh  # 自动检查脚本

输出格式(如果正常):

✅ 每日监控通过(无异常)
- 审计日志: 正常记录
- 未授权访问: 0 次
- 配置完整性: 通过

输出格式(如果有异常):

⚠️ 每日监控发现异常:
- 发现 3 次 unauthorized_user 事件(时间: 2026-01-28 14:30-14:35
- 建议:检查是否有人尝试非法访问

每周检查需用户手动触发5分钟

触发指令: 用户说"执行每周安全检查"或"检查项目安全状态"

检查清单:

1. 审计日志深度分析

# 统计最近 7 天的事件类型
[ ] 总事件数: ____
[ ] unauthorized_user 趋势: ____ (应稳定在 0)
[ ] blocked_network 趋势: ____ (评估是否有异常域名)
[ ] sensitive_file_access 趋势: ____ (评估是否有可疑访问)

# 日志文件大小检查
[ ] 当前大小: ____ MB
[ ] 是否触发轮转: ____ (10MB 应自动轮转)
[ ] 轮转文件是否存在: security-audit.log.1

2. 代码完整性检查

# 检查安全模块是否被修改
[ ] Git 状态检查: git status src/security/
[ ] 如有修改,列出文件: ____
[ ] 修改是否经过授权: ____

# 检查依赖是否有更新
[ ] npm outdated列出过期依赖
[ ] 是否有安全漏洞: npm audit

3. 配置漂移检测

# 对比配置文件与初始配置
[ ] authorizedUserHash 是否改变: ____
[ ] 网络白名单模式是否改变: ____
[ ] 文件监控配置是否改变: ____

# 如有改变,列出差异并询问用户是否预期

4. 系统资源检查

[ ] 磁盘空间: ____ GB 剩余(日志目录)
[ ] node_modules 大小: ____ MB
[ ] 内存占用(运行时): ____ MB

执行命令

cd "D:\项目库\MOLTBOT助理"
./每周安全检查.sh  # 深度检查脚本

输出格式:

📊 每周安全检查报告2026-01-28

✅ 审计日志: 健康
   - 7 天内共 156 个事件
   - 未授权访问: 0 次
   - 日志大小: 3.2 MB

✅ 代码完整性: 通过
   - 安全模块无修改
   - 依赖无严重漏洞

⚠️ 发现 1 个建议:
   - 有 3 个依赖包有小版本更新可用
   - 建议: 运行 pnpm update 后重新测试

🔍 详细报告已保存到: ~/.clawdbot/weekly-report-20260128.md

每月检查需用户手动触发10分钟

触发指令: 用户说"执行每月深度检查"

检查清单:

1. 完整测试套件执行

[ ] 运行 49 个单元测试: pnpm test
[ ] 结果: __/49 通过
[ ] 如有失败,详细分析原因

2. 审计日志历史分析

# 分析 30 天趋势
[ ] 每日事件数趋势(文本图表)
[ ] 异常峰值检测: ____
[ ] 新出现的事件类型: ____

3. 安全配置审查

[ ] 网络白名单是否需要更新
[ ] 敏感路径列表是否完整
[ ] 是否需要添加新的安全规则

4. 性能与存储检查

[ ] 日志轮转是否正常工作(检查 .log.1, .log.2 等)
[ ] 审计日志总大小: ____ MB
[ ] 是否需要归档旧日志(建议 6 个月归档)

5. 依赖更新评估

[ ] 列出所有过期依赖
[ ] 评估更新风险major/minor/patch
[ ] 建议更新计划: ____

执行命令

cd "D:\项目库\MOLTBOT助理"
./每月深度检查.sh  # 完整检查脚本

输出格式:

📈 每月深度检查报告2026-01

✅ 测试通过率: 100% (49/49)

✅ 安全状态: 优秀
   - 30 天内无未授权访问
   - 无新增安全威胁
   - 配置未发生漂移

⚠️ 维护建议3项:
   1. 建议更新 5 个 patch 版本依赖
   2. 审计日志已累积 12 MB建议归档 30 天前日志
   3. 无需额外操作

📋 详细报告: ~/.clawdbot/monthly-report-202601.md

🚨 异常响应流程

发现未授权访问unauthorized_user

严重级别: 🔴 高危

立即响应:

  1. 停止服务:立即执行 Ctrl+C 停止运行

  2. 检查日志

grep "unauthorized_user" ~/.clawdbot/security-audit.log | tail -20
  1. 分析来源

    • 记录攻击者 userId哈希值
    • 记录时间戳
    • 统计尝试次数
  2. 报告用户

🚨 安全警报:检测到未授权访问尝试

时间: 2026-01-28 14:30:25
尝试次数: 3 次
攻击者标识: sha256:abc123...

建议措施:
1. 确认是否为您的其他设备
2. 如不是,检查 WhatsApp 关联设备列表
3. 考虑更换授权哈希(重新运行 setup 脚本)
4. 检查配置文件是否泄露
  1. 等待用户确认后再重启

发现异常网络请求blocked_network

严重级别: 🟡 中危

分析流程:

  1. 提取被拦截的域名
grep "blocked_network" ~/.clawdbot/security-audit.log | tail -20
  1. 分类评估

    • 正常新服务(如新 API→ 建议添加到白名单
    • ⚠️ 可疑域名(如短链接、未知 CDN→ 深度调查
    • 🔴 恶意域名(如 C2 服务器)→ 记录并分析来源代码
  2. 报告用户

⚠️ 网络拦截通知

域名: example-api.com
拦截次数: 5 次
首次时间: 2026-01-28 10:15:30
调用来源: [显示代码栈]

初步判断: 正常(新 API 服务)
建议: 添加到网络白名单

操作方法:
1. 编辑 src/security/network-monitor.ts
2. 添加域名到 DEFAULT_ALLOWED_DOMAINS
3. 重新构建: pnpm build
4. 重启网关

发现敏感文件访问sensitive_file_access

严重级别: 🟡 中危到 🔴 高危

分析流程:

  1. 确认访问路径

    • 🔴 ~/.ssh/id_rsa → 极敏感SSH 私钥)
    • 🔴 ~/.aws/credentials → 极敏感AWS 凭证)
    • 🟡 ~/Documents/personal.txt → 可能正常
  2. 检查操作类型

    • read → 评估是否合理
    • write → 高度警惕
    • unlink → 极度警惕(删除操作)
  3. 核对用户指令

    • 查看当时的对话上下文
    • 确认是否为用户明确要求的操作
  4. 报告用户

⚠️ 敏感文件访问记录

文件: ~/.ssh/id_rsa
操作: read
时间: 2026-01-28 11:20:45

用户指令: "帮我检查 SSH 配置"

判断: 合理操作(用户明确要求)
建议: 无需额外操作

如果操作不合理

🚨 异常敏感文件访问

文件: ~/.aws/credentials
操作: read
时间: 2026-01-28 11:20:45

用户指令: "你好"

判断: ⚠️ 异常!用户只是打招呼,不应访问 AWS 凭证

建议:
1. 立即停止服务
2. 检查是否有恶意代码注入
3. 审查最近的代码/配置修改
4. 考虑回滚到安全版本

配置文件异常修改

严重级别: 🔴 高危

检测方法

# 检查配置文件最后修改时间
stat -c "%y" ~/.moltbot/moltbot.json

# 对比备份文件
diff ~/.moltbot/moltbot.json ~/.moltbot/moltbot.json.backup

响应流程

  1. 停止服务
  2. 对比差异
  3. 确认是否为用户修改
  4. 如未授权,恢复备份
  5. 分析修改来源

🛠️ 监控工具和脚本

日常监控检查脚本

文件: 日常监控检查.sh

功能:

  • 检查审计日志健康状态
  • 统计异常事件数量
  • 验证配置文件完整性
  • 显示简化监控报告

使用:

./日常监控检查.sh

每周安全检查脚本

文件: 每周安全检查.sh

功能:

  • 深度日志分析7天趋势
  • 代码完整性检查Git status
  • 依赖安全扫描npm audit
  • 配置漂移检测
  • 生成详细报告

使用:

./每周安全检查.sh

每月深度检查脚本

文件: 每月深度检查.sh

功能:

  • 完整测试套件执行49 个单元测试)
  • 30 天日志历史分析
  • 性能和存储优化建议
  • 依赖更新评估
  • 生成月度安全报告

使用:

./每月深度检查.sh

📊 监控数据分析

正常运行基准

每日事件数10-50 个

  • hardening_init: 1-5 次(启动次数)
  • blocked_network: 0-10 次(监控模式,仅记录)
  • sensitive_file_access: 0-5 次(正常文件操作)
  • unauthorized_user: 应为 0

日志增长速度100KB - 500KB/天

异常阈值

  • 🔴 unauthorized_user > 0立即告警
  • 🟡 blocked_network > 50/天:评估是否正常
  • 🟡 sensitive_file_access > 20/天:深度分析

🔧 维护操作指南

日志归档(每月)

触发条件:日志文件 > 50MB

操作步骤

cd ~/.clawdbot

# 压缩归档
gzip security-audit.log.1
mv security-audit.log.1.gz archive/security-audit-$(date +%Y%m).log.gz

# 保留最近 3 个月日志
find archive/ -name "*.log.gz" -mtime +90 -delete

配置备份(每次修改前)

自动备份

# 修改配置前自动备份
cp ~/.moltbot/moltbot.json ~/.moltbot/moltbot.json.backup.$(date +%Y%m%d_%H%M%S)

恢复备份

# 如果配置出错,恢复最近备份
cp ~/.moltbot/moltbot.json.backup.20260128_160000 ~/.moltbot/moltbot.json

依赖更新流程

评估阶段

# 检查过期依赖
pnpm outdated

# 检查安全漏洞
pnpm audit

更新策略

  • patch 版本1.2.3 → 1.2.4):安全更新,优先级高
  • ⚠️ minor 版本1.2.0 → 1.3.0):评估风险,测试后更新
  • 🔴 major 版本1.x → 2.x重大变更谨慎评估

更新流程

# 1. 备份
cp -r node_modules node_modules.backup

# 2. 更新
pnpm update

# 3. 测试
pnpm test

# 4. 如果失败,回滚
rm -rf node_modules
mv node_modules.backup node_modules

🎯 AI 助手监控职责

作为 Claude AI 助手,我的监控职责

主动监控场景

1. 启动时自检

用户启动网关时,我应该:
- 自动执行日常监控检查
- 如发现异常,主动提醒用户
- 提供一键修复建议

2. 用户请求监控

用户说"检查安全状态"时,我应该:
- 执行对应级别的检查(日常/每周/每月)
- 生成结构化报告
- 提供可操作的建议

3. 异常检测响应

当检测到异常时,我应该:
- 立即停止可能有风险的操作
- 详细记录异常上下文
- 向用户解释风险和建议措施
- 等待用户确认后再继续

被动监控原则

不应该做的

  • 不主动轮询日志(浪费 API 调用)
  • 不定时自动执行检查(用户未请求)
  • 不自动修改配置(必须用户授权)
  • 不自动删除日志(保留审计证据)

应该做的

  • 用户请求时立即执行
  • 启动时快速健康检查
  • 发现异常时主动告警
  • 提供修复建议但等待授权

📚 监控命令参考

快速命令

# 查看最近 10 条日志
tail -10 ~/.clawdbot/security-audit.log

# 搜索未授权访问
grep "unauthorized_user" ~/.clawdbot/security-audit.log

# 搜索拦截事件
grep "blocked" ~/.clawdbot/security-audit.log | tail -20

# 统计事件类型
grep -o '"type":"[^"]*"' ~/.clawdbot/security-audit.log | sort | uniq -c

# 检查网关是否运行
netstat -ano | grep 18789

# 验证 API 密钥
echo $ZAI_API_KEY | head -c 10
echo $MOONSHOT_API_KEY | head -c 10

📁 重要文件路径

配置文件

~/.moltbot/moltbot.json          # 主配置文件
~/.clawdbot/env.sh               # 环境变量API 密钥)
C:\Users\55239\clawd\            # Agent 工作区
C:\Users\55239\clawd\USER.md     # 用户偏好设置

日志文件

~/.clawdbot/security-audit.log   # 安全审计日志
\tmp\moltbot\moltbot-*.log       # 网关运行日志

脚本文件

start-jarvis-whatsapp.sh         # 启动网关
login-whatsapp.sh                # WhatsApp 登录
验证配置.sh                      # 配置验证
日常监控检查.sh                  # 每日监控(待创建)
每周安全检查.sh                  # 每周检查(待创建)
每月深度检查.sh                  # 每月检查(待创建)
打开WebUI.bat                    # 打开 Web 控制面板

🚀 常用操作

启动和停止

# 启动网关
cd "D:\项目库\MOLTBOT助理"
./start-jarvis-whatsapp.sh

# 停止网关
Ctrl+C

# 重启网关
Ctrl+C
./start-jarvis-whatsapp.sh

查看日志

# 实时查看审计日志
tail -f ~/.clawdbot/security-audit.log

# 实时查看网关日志
tail -f /tmp/moltbot/moltbot-$(date +%Y-%m-%d).log

验证配置

# 运行验证脚本
./验证配置.sh

# 手动检查
cat ~/.moltbot/moltbot.json
source ~/.clawdbot/env.sh && echo $ZAI_API_KEY | head -c 10

🆘 故障排除

问题:收到 "connection error"

诊断

# 检查 API 密钥
echo $ZAI_API_KEY
echo $MOONSHOT_API_KEY

# 检查审计日志
grep "blocked_network" ~/.clawdbot/security-audit.log | tail -10

解决

  • 如果密钥为空:编辑 ~/.clawdbot/env.sh 配置密钥
  • 如果看到 blocked_network检查域名是否在白名单
  • 重启网关应用配置

问题Web UI 无法访问

诊断

# 检查网关是否运行
netstat -ano | grep 18789

# 查看错误日志
tail -20 /tmp/moltbot/moltbot-*.log | grep "unauthorized\|token"

解决


问题:图片/视频无法识别

诊断

# 检查 Moonshot API 密钥
echo $MOONSHOT_API_KEY

# 查看 fallback 日志
tail -20 /tmp/moltbot/moltbot-*.log | grep "fallback\|kimi"

解决


💰 成本控制

估算用量

日常使用(假设每天 100 条消息)

  • 文本对话100条 × 200tokens × ¥0.015/千 = ¥0.3/天
  • 图片识别5张 × 1000tokens × ¥0.12/千 = ¥0.6/天
  • 视频解析2个 × 2000tokens × ¥0.12/千 = ¥0.48/天
  • 总计: 约 ¥1.4/天¥42/月

仅文本对话(不发图片/视频)

  • 总计: 约 ¥0.3/天¥9/月

成本优化建议

  1. 日常对话用 GLM-4.7(已配置)
  2. 避免频繁发送大图片/长视频
  3. 定期检查 API 用量(登录 Z.AI / Moonshot 控制台)

🎓 最佳实践

安全实践

  1. 定期备份配置文件(每次修改前)
  2. 定期检查审计日志(每周一次)
  3. 不将配置文件提交到 Git(已添加 .gitignore
  4. API 密钥定期轮换(每 3 个月)

运维实践

  1. 保持依赖更新(每月检查一次)
  2. 及时归档旧日志(每月归档)
  3. 监控系统资源(避免磁盘满)
  4. 记录重大变更(维护变更日志)

📞 联系和支持

项目信息

  • 部署日期: 2026-01-28
  • 系统版本: Moltbot 2026.1.27-beta.1
  • 安全等级: 企业级4层防护
  • 维护模式: 个人使用,阶段性监控

文档资源

  • 使用指南:贾维斯使用指南.md
  • GLM 配置:GLM4.7_配置指南.md
  • 测试报告:TEST_EXECUTION_REPORT.md
  • 本文件:CLAUDE.md

最后更新: 2026-01-29 文档版本: V1.0 维护者: AI 助手 (Claude Sonnet 4.5)