Appearance
第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-ai3. 从PyPI安装(稳定)
bash
pip install nanobot-ai快速开始
1. 初始化
bash
nanobot onboard2. 配置
在 ~/.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-xxx3. 密钥管理服务
对于生产环境,建议使用专业的密钥管理服务,如AWS Secrets Manager、HashiCorp Vault等。
密钥安全最佳实践
- 不要硬编码密钥:避免在代码中直接硬编码API密钥
- 使用环境变量:优先使用环境变量存储密钥
- 限制权限:最小化密钥的使用权限
- 定期轮换:定期更换API密钥
- 监控使用:监控API密钥的使用情况,发现异常及时处理
- 使用密钥管理服务:对于生产环境,使用专业的密钥管理服务
多渠道连接和使用
Nanobot支持多种通信渠道,用户可以通过不同的平台与助手交互:
1. 命令行渠道
使用方法:
bash
nanobot agent特点:
- 简单直接,无需额外配置
- 适合本地开发和测试
- 支持基本的文本交互
2. Telegram渠道
配置方法:
- 在Telegram中搜索
@BotFather - 发送
/newbot创建新机器人 - 按照提示设置机器人名称和用户名
- 获取Bot token
- 在配置文件中设置token:
json
{
"channels": {
"telegram": {
"enabled": true,
"token": "YOUR_TELEGRAM_BOT_TOKEN"
}
}
}使用方法:
- 启动Nanobot:
nanobot start - 在Telegram中搜索你的机器人用户名
- 开始与机器人聊天
3. Discord渠道
配置方法:
- 访问 Discord Developer Portal
- 创建新应用
- 在"Bot"选项卡中创建机器人
- 获取Bot token
- 启用"Message Content Intent"
- 在配置文件中设置token:
json
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_DISCORD_BOT_TOKEN"
}
}
}使用方法:
- 启动Nanobot:
nanobot start - 将机器人邀请到你的Discord服务器
- 在服务器中@机器人或直接发送消息
4. WhatsApp渠道
配置方法:
- 启动Nanobot:
nanobot start - 扫描生成的QR码
- 开始使用WhatsApp与机器人聊天
5. Feishu渠道
配置方法:
- 访问 Feishu Developer Console
- 创建新应用
- 获取App ID和App Secret
- 在配置文件中设置:
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:使用技能命令
/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. 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助手系统。
