nanobot 在一台电脑上多实例运行,怎么操作?
根据官方文档,nanobot 完美支持在同一台电脑上运行多实例(Multiple Instances)。这意味着你可以同时运行多个独立的机器人(例如:一个连接 Telegram,一个连接 Discord,或者一个用于测试,一个用于生产),它们互不干扰。
以下是具体的操作步骤:
核心原理
每个实例需要拥有:
- 独立的配置文件 (
config.json) - 独立的工作空间 (
workspace) —— 用于存储记忆、会话历史和技能数据 - 独立的端口 (如果同时运行 Gateway)
操作步骤
假设你要运行两个实例:实例 A (Telegram) 和 实例 B (Discord)。
-
创建目录结构 (以 Windows 为例,Linux/Mac 类似):
# 在用户主目录下创建两个新文件夹 mkdir C:\Users\Administrator\.nanobot-telegram mkdir C:\Users\Administrator\.nanobot-discord -
初始化并复制配置:
你可以先运行一次默认的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"
常见问题与注意事项
-
端口冲突:
默认端口18790。务必在每个配置的gateway.port中设置不同的端口号 -
数据隔离:
确保agents.defaults.workspace指向不同的文件夹。如果两个实例共用同一个 workspace,它们的记忆(Memory)、会话历史(Sessions)和定时任务(Cron)会混在一起,导致逻辑混乱。 -
后台运行 (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
- 可以使用
浙公网安备 33010602011771号