mujibot

module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 15, 2026 License: MIT

README

Mujibot 轻量级AI助手引擎

Version Go Version License

Mujibot是一个资源高效的个人AI助手系统,专为低配置ARM设备(如玩客云,仅1GB RAM和8GB eMMC存储)设计。该系统启发于OpenClaw理念,使用Go语言实现,提供单二进制部署、极低资源占用(<10MB RAM空闲)和快速启动的特性。

特性

  • 极致轻量: 空闲内存占用 <10MB,峰值 <50MB
  • 单二进制文件: 静态链接,无需依赖,<15MB(UPX压缩后<8MB)
  • 多渠道支持: Telegram、Discord、飞书
  • 多智能体: 支持多个隔离的AI智能体实例
  • LLM集成: 支持OpenAI、Anthropic Claude、Ollama本地模型
  • 工具系统: 文件操作、命令执行、安全沙箱
  • 会话管理: LRU缓存、自动清理、上下文保持
  • 热重载: 配置文件变更无需重启
  • Web调试界面: 实时日志、系统状态、消息调试
  • 健康监控: HTTP端点、内存监控、自动GC

系统要求

目标硬件
组件 最低配置 推荐配置
CPU ARM Cortex-A5 1.5GHz (4核) ARM Cortex-A53 1.8GHz
内存 512MB 1GB+
存储 50MB 100MB+
网络 有线/无线 有线千兆
支持平台
  • 玩客云 (晶晨S805, ARMv7)
  • 树莓派 Zero 2W / 3B / 4B
  • 其他Armbian支持的ARM设备
  • x86_64 Linux服务器

快速开始

一键安装
# 使用安装脚本(需要root权限)
curl -fsSL https://raw.githubusercontent.com/HaohanHe/Mujibot/main/scripts/install.sh | sudo bash
手动安装
  1. 下载二进制文件
# 检测架构
ARCH=$(uname -m)
case $ARCH in
    x86_64) TARGET="amd64" ;;
    aarch64|arm64) TARGET="arm64" ;;
    armv7l|armv7) TARGET="armv7" ;;
esac

# 下载
wget https://github.com/HaohanHe/Mujibot/releases/download/v1.0.1/mujibot-1.0.1-linux-${TARGET}.tar.gz
tar -xzf mujibot-1.0.1-linux-${TARGET}.tar.gz
sudo cp mujibot-1.0.1-linux-${TARGET}/mujibot /usr/local/bin/
  1. 创建配置目录
sudo mkdir -p /opt/mujibot
sudo mkdir -p /var/log/mujibot
  1. 创建配置文件
sudo mujibot --config /opt/mujibot/config.json5
# 首次运行会自动创建默认配置文件
  1. 编辑配置
sudo nano /opt/mujibot/config.json5
  1. 设置环境变量
export TELEGRAM_BOT_TOKEN="your_telegram_bot_token"
export OPENAI_API_KEY="your_openai_api_key"
  1. 启动服务
sudo systemctl enable --now mujibot

配置

配置文件示例
{
  "server": {
    "port": 8080,
    "healthCheck": true
  },
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "${TELEGRAM_BOT_TOKEN}",
      "allowedUsers": [123456789]
    },
    "discord": {
      "enabled": false,
      "token": "${DISCORD_BOT_TOKEN}",
      "allowedGuilds": []
    },
    "feishu": {
      "enabled": false,
      "appId": "${FEISHU_APP_ID}",
      "appSecret": "${FEISHU_APP_SECRET}",
      "encryptKey": "${FEISHU_ENCRYPT_KEY}",
      "allowedUsers": []
    }
  },
  "llm": {
    "provider": "openai",
    "model": "gpt-4o-mini",
    "apiKey": "${OPENAI_API_KEY}",
    "baseURL": "",
    "timeout": 60,
    "maxRetries": 3
  },
  "agents": {
    "default": {
      "name": "Mujibot",
      "systemPrompt": "你是一个运行在低功耗设备上的AI助手。",
      "tools": ["read_file", "write_file", "execute_command", "list_directory"]
    }
  },
  "tools": {
    "workDir": "/opt/mujibot/workspace",
    "timeout": 30,
    "confirmDangerous": true,
    "blockedCommands": ["reboot", "shutdown", "init", "poweroff"]
  },
  "session": {
    "maxMessages": 20,
    "idleTimeout": 3600,
    "maxSessions": 100
  },
  "logging": {
    "level": "info",
    "file": "/var/log/mujibot/app.log",
    "maxSize": 5,
    "format": "json"
  }
}
环境变量
变量 说明 必需
TELEGRAM_BOT_TOKEN Telegram Bot API Token 可选
DISCORD_BOT_TOKEN Discord Bot API Token 可选
FEISHU_APP_ID 飞书应用ID 可选
FEISHU_APP_SECRET 飞书应用密钥 可选
FEISHU_ENCRYPT_KEY 飞书加密密钥 可选
OPENAI_API_KEY OpenAI API密钥 条件
ANTHROPIC_API_KEY Anthropic API密钥 条件

构建

从源码构建
# 克隆仓库
git clone https://github.com/HaohanHe/Mujibot.git
cd mujibot

# 安装依赖
make deps

# 构建当前架构
make build

# 构建所有架构
make build-all

# UPX压缩
make compress
交叉编译
# ARMv7 (玩客云)
make build-armv7

# ARM64 (树莓派4)
make build-arm64

# x86_64
make build-amd64

监控

Web调试界面

启动后访问 http://<ip>:8080 查看:

  • 实时系统状态(内存、Goroutines、会话数)
  • 实时消息日志
  • 智能体列表
  • 消息调试(直接发送测试消息)
API端点
端点 说明
GET /api/status 系统状态
GET /api/logs 最近日志
GET /api/sessions 会话统计
GET /api/agents 智能体列表
GET /api/config 配置信息
POST /api/send 发送测试消息
健康检查
curl http://localhost:8080/api/status

日志

# 查看实时日志
sudo journalctl -u mujibot -f

# 查看最近100行
sudo journalctl -u mujibot -n 100

# 查看日志文件
sudo tail -f /var/log/mujibot/app.log

故障排除

内存使用过高
# 查看内存使用
curl http://localhost:8080/api/status | jq .memory

# 手动触发GC
sudo systemctl kill -s USR1 mujibot
服务无法启动
# 检查配置
sudo mujibot --config /opt/mujibot/config.json5 --help

# 查看详细日志
sudo journalctl -u mujibot -n 200 --no-pager
Telegram Bot不响应
  1. 检查Token是否正确
  2. 确认已向Bot发送 /start
  3. 检查用户ID是否在白名单中
飞书Webhook配置
  1. 在飞书开放平台创建应用
  2. 启用机器人功能
  3. 配置事件订阅URL: http://<your-server>:8080/webhook/feishu
  4. 订阅 im.message.receive_v1 事件

文档

贡献

欢迎提交Issue和PR!

# 开发模式运行
make dev
make run

# 运行测试
make test

# 代码格式化
make fmt

许可证

MIT License - 详见 LICENSE 文件

致谢

  • 基于 OpenClaw 理念
  • 使用 Go 标准库实现,保持轻量

联系方式

Directories

Path Synopsis
cmd
mujibot command
internal
llm
web
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL