跳转至

AI

nanobot-ai 搭建

其实按照官网的说明一步步照着做就可以,这里记录一些官方说明未涉及的内容。

安装方法有两个方法:

  • 直接通过 uv 安装
  • 通过 docker 安装

第一个方法非常简单,可以快速跑起来看看效果。建议使用虚拟环境安装,避免影响其他包。

文本详细说一下在 Linux 系统下使用 docker 安装。

介绍一下我的环境:

  • 硬件:ROCK64
  • 软件:Armbian Linux v26.2; Docker (Version 29.3.0)

详细步骤

先确定目录

  • nanobot-ai 配置目录:~/.nanobot/
  • nanobot-ai 源码目录:~/nanobot/
mkdir ~/.nanobot
mkdir ~/nanobot

克隆源码

从 github 克隆源码到 ~/nanobot 目录:

cd ~/nanobot
git clone https://github.com/HKUDS/nanobot.git

构建 Docker Image

docker build -t nanobot .

等待命令结束。

Tip #1:

不知道什么原因,构建镜像时,居然连接不上 debian 的软件源,不得已启用了网路代理。我修改了 git 仓库的 Dockerfile 文件的前几行:

FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim

# 创建目录并复制文件(COPY 会自动创建父目录)
COPY 00proxy /etc/apt/apt.conf.d/00proxy

# Install Node.js 20 for the WhatsApp bridge
RUN apt-get update && \
    apt-get install -y --no-install-recommends curl ca-certificates gnupg git && \
    mkdir -p /etc/apt/keyrings && \
    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \
    echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" > /etc/apt/sources.list.d/nodesource.list && \
    apt-get update && \
    apt-get install -y --no-install-recommends nodejs && \
    apt-get purge -y gnupg && \
    apt-get autoremove -y && \
    rm -rf /var/lib/apt/lists/*

# ...

也就是复制了 00proxy 文件到 /etc/apt/apt.conf.d/ 目录下,00proxy 的内容是:

Acquire::http::Proxy "http://代理主机IP:端口/";
Acquire::https::Proxy "http://代理主机IP:端口/";

如果代理主机是局域网的机器,构建命令也要相应的调整为:

docker build --network host -t nanobot .

配置

配置部分就可以按 github 上的进行。先初始化,主要是初始化配置文件(或者称为工作空间)。

docker run -v ~/.nanobot:/root/.nanobot --rm nanobot onboard

然后修改宿主机 ~/.nanobot/config.json 文件,主要是填写模型服务商的信息,IM 工具等 apikey 等信息。这里不再赘述。

如果你已经有了配置文件,这一步可以省略,但要注意挂载宿主机的目录到容器的 /root/.nanobot 目录。

试一试

配置完成后,可以试一试:

docker run -v ~/.nanobot:/root/.nanobot --rm nanobot agent -m "Hello!"

正常的话,会看到类似如下输出:

🐈 nanobot
Hello! 👋 I'm nanobot, your personal AI assistant. How can I help you today?

创建系统服务

使用 systemd 创建服务。首先创建文件 /etc/systemd/system/nanobot.service ,注意替换其中的 【用户名】。

# /etc/systemd/system/nanobot.service
[Unit]
Description=Nanobot Service
After=docker.service network.target

[Service]
TimeoutStartSec=0
Restart=always
RestartSec=5

# 清理旧容器
ExecStartPre=-/usr/bin/docker rm -f nanobot

# 主服务
ExecStart=/usr/bin/docker run \
    --name nanobot \
    --rm \
    --network host \
    -v /home/【用户名】/.nanobot:/root/.nanobot \
    nanobot gateway

# 停止处理
ExecStop=/usr/bin/docker stop -t 30 nanobot
ExecStopPost=-/usr/bin/docker rm -f nanobot

[Install]
WantedBy=multi-user.target

启用 & 启动服务

sudo systemctl daemon-reload
sudo systemctl enable --now nanobot

查看日志:

journalctl -u nanobot -f

IM 工具集成

目前看来,国内也就是飞书开放些,集成起来非常方便。在 nanobot-ai 中已经集成,只要在修改 ~/.nanobot/config.json,在 channels 下修改 feishu 一节的内容就可以:

    "feishu": {
      "enabled": true,
      "appId": "<APP_ID>",
      "appSecret": "<APP-Secret>",
      "encryptKey": "",
      "verificationToken": "",
      "allowFrom": ["*"],
      "reactEmoji": "THUMBSUP"
    }

enabled 为 true,appId、appSecret 分别填写飞书开放平台上对应的信息,allowFrom 改为 ["*"] 就可以了。

至于飞书开放平台的配置,可以参考很对 openclaw 接入飞书的教程~

最后

我试了 openclaw 和 nanobot-ai 两个项目,都是只设置好系统,连接到飞书机器人。感觉 nanobot-ai 的响应要快很多。当然了两个系统运行的系统也不一样,所谓快慢也只是个人的直观感受而已。

本文完~