Skip to content

第4章:原版Nanobot使用指南

Nanobot安装和配置

安装方法

Nanobot提供多种安装方式,适应不同的使用场景:

1. 从源码安装(推荐用于开发,最新功能)

bash
git clone https://github.com/HKUDS/nanobot.git
cd nanobot
pip install -e .

2. 使用uv安装(稳定,快速)

bash
uv tool install nanobot-ai

3. 从PyPI安装(稳定)

bash
pip install nanobot-ai

快速开始

1. 初始化

bash
nanobot onboard

2. 配置

~/.nanobot/config.json 文件中设置配置:

设置API密钥(例如OpenRouter,推荐全球用户使用):

json
{
  "providers": {
    "openrouter": {
      "apiKey": "sk-or-v1-xxx"
    }
  }
}

设置模型

json
{
  "agents": {
    "defaults": {
      "model": "anthropic/claude-opus-4-5"
    }
  }
}

3. 开始聊天

bash
nanobot agent

这样,你就可以在2分钟内拥有一个工作中的AI助手。

API密钥管理和配置

密钥存储方式

Nanobot提供多种API密钥存储方式,以适应不同的安全需求:

1. 配置文件存储

将API密钥存储在配置文件中(默认位置:~/.nanobot/config.json):

json
{
  "providers": {
    "openai": {
      "apiKey": "sk-xxx"
    },
    "anthropic": {
      "apiKey": "sk-ant-xxx"
    }
  }
}

2. 环境变量存储

将API密钥存储在环境变量中,更加安全:

bash
# OpenAI
export OPENAI_API_KEY=sk-xxx

# Anthropic
export ANTHROPIC_API_KEY=sk-ant-xxx

# OpenRouter
export OPENROUTER_API_KEY=sk-or-v1-xxx

3. 密钥管理服务

对于生产环境,建议使用专业的密钥管理服务,如AWS Secrets Manager、HashiCorp Vault等。

密钥安全最佳实践

  1. 不要硬编码密钥:避免在代码中直接硬编码API密钥
  2. 使用环境变量:优先使用环境变量存储密钥
  3. 限制权限:最小化密钥的使用权限
  4. 定期轮换:定期更换API密钥
  5. 监控使用:监控API密钥的使用情况,发现异常及时处理
  6. 使用密钥管理服务:对于生产环境,使用专业的密钥管理服务

多渠道连接和使用

Nanobot支持多种通信渠道,用户可以通过不同的平台与助手交互:

1. 命令行渠道

使用方法

bash
nanobot agent

特点

  • 简单直接,无需额外配置
  • 适合本地开发和测试
  • 支持基本的文本交互

2. Telegram渠道

配置方法

  1. 在Telegram中搜索 @BotFather
  2. 发送 /newbot 创建新机器人
  3. 按照提示设置机器人名称和用户名
  4. 获取Bot token
  5. 在配置文件中设置token:
json
{
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "YOUR_TELEGRAM_BOT_TOKEN"
    }
  }
}

使用方法

  • 启动Nanobot:nanobot start
  • 在Telegram中搜索你的机器人用户名
  • 开始与机器人聊天

3. Discord渠道

配置方法

  1. 访问 Discord Developer Portal
  2. 创建新应用
  3. 在"Bot"选项卡中创建机器人
  4. 获取Bot token
  5. 启用"Message Content Intent"
  6. 在配置文件中设置token:
json
{
  "channels": {
    "discord": {
      "enabled": true,
      "token": "YOUR_DISCORD_BOT_TOKEN"
    }
  }
}

使用方法

  • 启动Nanobot:nanobot start
  • 将机器人邀请到你的Discord服务器
  • 在服务器中@机器人或直接发送消息

4. WhatsApp渠道

配置方法

  1. 启动Nanobot:nanobot start
  2. 扫描生成的QR码
  3. 开始使用WhatsApp与机器人聊天

5. Feishu渠道

配置方法

  1. 访问 Feishu Developer Console
  2. 创建新应用
  3. 获取App ID和App Secret
  4. 在配置文件中设置:
json
{
  "channels": {
    "feishu": {
      "enabled": true,
      "appId": "YOUR_APP_ID",
      "appSecret": "YOUR_APP_SECRET"
    }
  }
}

使用方法

  • 启动Nanobot:nanobot start
  • 在Feishu中搜索你的应用
  • 开始与机器人聊天

6. 其他渠道

Nanobot还支持其他渠道,如Slack、Email、QQ等,配置方法类似,具体请参考官方文档。

技能系统使用和扩展

内置技能

Nanobot内置多种实用技能,包括:

  1. 搜索技能:使用搜索引擎获取信息
  2. 天气技能:查询天气信息
  3. 计算器技能:进行数学计算
  4. 时间技能:获取当前时间和日期
  5. 市场分析技能:分析市场数据
  6. 代码生成技能:生成代码示例

使用内置技能

方法1:直接请求

请帮我查询北京今天的天气

方法2:使用技能命令

/weather 北京

自定义技能开发

Nanobot支持自定义技能的开发和集成,步骤如下:

1. 创建技能类

python
from nanobot.skills import Skill

class MyCustomSkill(Skill):
    def __init__(self, config):
        super().__init__("my_custom_skill", "我的自定义技能", config)
    
    async def execute(self, **params):
        # 技能逻辑
        return f"这是我的自定义技能,参数:{params}"

2. 注册技能

python
from nanobot.skills import get_skill_manager

skill_manager = get_skill_manager()
skill_manager.register_skill(MyCustomSkill)

3. 使用技能

请使用我的自定义技能,参数1=值1,参数2=值2

技能开发最佳实践

  1. 明确技能目标:每个技能应该有明确的功能和目标
  2. 参数设计:设计合理的参数结构,便于用户使用
  3. 错误处理:添加详细的错误处理和日志记录
  4. 文档完善:为技能添加详细的文档和使用说明
  5. 测试充分:编写测试用例,确保技能的可靠性
  6. 性能优化:优化技能的执行性能,避免长时间阻塞

常见问题和解决方案

1. LLM API连接问题

问题:无法连接到LLM API服务

解决方案

  • 检查网络连接
  • 验证API密钥是否正确
  • 检查API服务是否正常运行
  • 查看防火墙设置,确保允许出站连接

2. 渠道连接问题

问题:Telegram/Discord/WhatsApp等渠道连接失败

解决方案

  • 检查网络连接
  • 验证token/密钥是否正确
  • 检查渠道服务是否正常运行
  • 查看相关平台的开发者文档,确保配置正确

3. 技能执行错误

问题:技能执行失败或返回错误结果

解决方案

  • 检查技能参数是否正确
  • 查看技能的错误处理和日志
  • 验证技能依赖的服务是否正常
  • 检查技能代码是否有bug

4. 系统性能问题

问题:系统响应缓慢,内存占用过高

解决方案

  • 限制会话历史消息长度
  • 定期清理过期会话
  • 优化技能执行性能
  • 考虑使用更强大的硬件或云服务

5. 配置错误

问题:配置文件错误,导致系统无法启动

解决方案

  • 检查配置文件格式是否正确(JSON格式)
  • 验证配置项是否完整
  • 查看系统日志,了解具体错误信息
  • 参考官方文档,确保配置正确

6. 依赖项问题

问题:缺少依赖项或依赖项版本冲突

解决方案

  • 重新安装依赖项:pip install -r requirements.txt
  • 使用虚拟环境隔离依赖:python -m venv venv && source venv/bin/activate && pip install -e .
  • 检查依赖项版本兼容性
  • 参考官方文档,使用推荐的依赖项版本

7. 安全问题

问题:系统存在安全隐患

解决方案

  • 及时更新Nanobot到最新版本
  • 遵循API密钥安全最佳实践
  • 限制系统的网络访问权限
  • 定期检查系统日志,发现异常及时处理

8. 其他问题

问题:遇到其他未列出的问题

解决方案

  • 查看系统日志,了解具体错误信息
  • 参考官方文档和GitHub issues
  • 在GitHub上提交新的issue
  • 加入Nanobot社区,寻求帮助

小结

Nanobot提供了丰富的功能和灵活的配置选项,用户可以根据自己的需求和场景进行定制。通过本章节的学习,你应该已经掌握了Nanobot的基本使用方法,包括安装配置、API密钥管理、多渠道连接和技能系统使用等。

在接下来的章节中,我们将开始手写Nanobot的实践,从零开始构建一个功能完整的轻量级AI助手系统。