nanobot 在一台电脑上多实例运行,怎么操作?

根据官方文档,nanobot 完美支持在同一台电脑上运行多实例(Multiple Instances)。这意味着你可以同时运行多个独立的机器人(例如:一个连接 Telegram,一个连接 Discord,或者一个用于测试,一个用于生产),它们互不干扰。

以下是具体的操作步骤:

核心原理

每个实例需要拥有:

  1. 独立的配置文件 (config.json)
  2. 独立的工作空间 (workspace) —— 用于存储记忆、会话历史和技能数据
  3. 独立的端口 (如果同时运行 Gateway)

操作步骤

假设你要运行两个实例:实例 A (Telegram)实例 B (Discord)

  1. 创建目录结构 (以 Windows 为例,Linux/Mac 类似):

    # 在用户主目录下创建两个新文件夹
    mkdir C:\Users\Administrator\.nanobot-telegram
    mkdir C:\Users\Administrator\.nanobot-discord
    
  2. 初始化并复制配置
    你可以先运行一次默认的 nanobot onboard 生成基础配置,然后将其复制到新目录,或者手动创建 config.json

    更推荐的做法:直接在新目录中创建 config.json,内容基于默认配置修改。

第二步:配置每个实例

编辑每个目录下的 config.json,确保关键参数不同。

实例 A (C:\Users\Administrator\.nanobot-telegram\config.json):

{
  "agents": {
    "defaults": {
      "workspace": "~/.nanobot-telegram/workspace", 
      "model": "anthropic/claude-sonnet-4-6"
    }
  },
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "YOUR_TELEGRAM_BOT_TOKEN",
      "allowFrom": ["YOUR_USER_ID"]
    }
  },
  "gateway": {
    "port": 18790 
  }
}

注意:workspace 路径建议显式指定为该实例的目录,防止冲突。

实例 B (C:\Users\Administrator\.nanobot-discord\config.json):

{
  "agents": {
    "defaults": {
      "workspace": "~/.nanobot-discord/workspace",
      "model": "openai/gpt-4o" 
    }
  },
  "channels": {
    "discord": {
      "enabled": true,
      "token": "YOUR_DISCORD_BOT_TOKEN",
      "allowFrom": ["YOUR_USER_ID"],
      "groupPolicy": "mention"
    }
  },
  "gateway": {
    "port": 18791 
  }
}

关键点:

  • Workspace: 必须不同 (~/.nanobot-discord/workspace)。
  • Port: 必须不同 (实例 A 用 18790, 实例 B 用 18791)。
  • Channels: 配置不同的渠道或 Token。

第三步:启动多实例

使用 --config 参数指定不同的配置文件来启动网关。你需要打开多个终端窗口或使用后台运行工具。

终端 1 (启动 Telegram 实例):

python.exe -m nanobot gateway --config C:/Users/Administrator/.nanobot-telegram/config.json

(注意:Windows 路径分隔符在命令行中通常可以用 / 或转义的 \)

终端 2 (启动 Discord 实例):

python.exe -m nanobot gateway --config C:/Users/Administrator/.nanobot-discord/config.json

如果需要在启动时临时覆盖工作空间(不修改 config 文件),可以加上 --workspace 参数:

python.exe -m nanobot gateway --config ~/.nanobot-telegram/config.json --workspace C:/tmp/test-workspace

第四步:与特定实例交互 (CLI 模式)

如果你想通过命令行与特定的实例对话(而不是通过聊天软件),使用 -c (config) 参数:

# 与 Telegram 实例背后的逻辑对话
nanobot agent -c C:/Users/Administrator/.nanobot-telegram/config.json -m "Hello Telegram instance"

# 与 Discord 实例背后的逻辑对话
nanobot agent -c C:/Users/Administrator/.nanobot-discord/config.json -m "Hello Discord instance"

常见问题与注意事项

  1. 端口冲突
    默认端口 18790务必在每个配置的 gateway.port 中设置不同的端口号

  2. 数据隔离
    确保 agents.defaults.workspace 指向不同的文件夹。如果两个实例共用同一个 workspace,它们的记忆(Memory)、会话历史(Sessions)和定时任务(Cron)会混在一起,导致逻辑混乱。

  3. 后台运行 (Windows)
    如果你希望它们一直在后台运行而不占用终端窗口:

    • 可以使用 start /b 命令:
      start /b python.exe -m nanobot gateway --config ~/.nanobot-telegram/config.json
      start /b python.exe -m nanobot gateway --config ~/.nanobot-discord/config.json
      

posted on 2026-03-13 11:03  anjun_xf  阅读(215)  评论(0)    收藏  举报

导航

TOP