nanobot 通过 webhook 对接钉钉与飞书,实现跨平台消息同步
nanobot 简介
nanobot 是一个受 OpenClaw 启发的超轻量级个人 AI 助手,核心代理功能仅需约 4000 行代码。相比传统方案,它在保持强大功能的同时大幅精简了体积。内置 vllm 部署的 Qwen3-4B-Instruct-2507 模型,配合 chainlit 进行推理交互。除了作为 QQ 聊天机器人使用外,它还能通过 webhook 对接企业通讯工具,如钉钉和飞书。
基础环境验证
检查模型服务状态
扩展功能前,先确认基础服务正常。执行以下命令查看模型部署日志:
cat /root/workspace/llm.log
若看到"Model loaded successfully"或"Service started on port xxxx"等提示,说明模型已就绪。
测试基础问答功能
使用 chainlit 与 nanobot 对话测试:
chainlit run app.py
在打开的界面输入'查看显卡配置',系统应能正确回复硬件信息。这证明核心问答功能工作正常。
配置 webhook 对接企业通讯工具
钉钉机器人配置
- 在钉钉开放平台创建自定义机器人。
- 获取 webhook 地址及安全设置(加签或 IP 白名单)。
- 记录生成的 access_token。
飞书机器人配置
- 登录飞书开发者后台创建应用。
- 启用机器人功能并配置权限。
- 获取 app_id 和 app_secret。
修改配置文件
编辑配置文件以添加 webhook 支持:
vim /root/.nanobot/config.json
添加或修改以下内容:
{
"webhooks": {
"dingtalk": {
"enabled": true,
"access_token": "YOUR_DINGTALK_TOKEN",
"secret": "YOUR_SECRET"
},
"feishu": {
"enabled": true,
"app_id": "YOUR_APP_ID",
"app_secret": "YOUR_APP_SECRET"
}
}
}
启动网关服务并测试
启动网关服务
执行以下命令启动消息网关:
nanobot gateway
成功启动后,日志会显示"Webhook Gateway started on port 8080"。
测试消息同步
现在可以验证跨平台消息同步:
- 在 QQ 向机器人发送消息。
- 检查钉钉或飞书是否收到相同内容。
- 在任一平台回复,验证是否能同步到其他平台。
高级配置与优化
消息格式自定义
在 config.json 中定义消息转换规则,例如:
"message_format": {
"text": "【{platform}】{sender}: {content}",
"rich_media": {
"title": "跨平台消息",
"content": "{content}"
}
}
安全设置建议
生产环境建议采取以下措施:
- 为每个平台配置 IP 白名单。
- 启用消息加密。
- 设置速率限制防止滥用。
性能监控
添加以下配置启用监控:
"monitoring": {
"enabled": true,
"prometheus_port": 9090
}
常见问题解决
消息未同步排查步骤
- 检查网关服务日志。
- 验证各平台配置参数。
- 测试单独平台消息接收。
- 检查网络连接和防火墙设置。
性能优化建议
- 增加消息队列缓冲。
- 启用消息批量处理。
- 优化数据库连接池。
扩展开发接口
nanobot 提供了丰富的 API 用于二次开发:
from nanobot.sdk import WebhookClient
client = WebhookClient(config_path="/path/to/config.json")
client.send_message(platform="dingtalk", content="测试消息")
总结
nanobot 的轻量级设计使其非常适合作为消息中转枢纽。webhook 配置简单直观,支持主流企业通讯工具,且消息格式可灵活定制。完善的安全机制能有效保障企业数据安全。后续可以尝试开发自定义消息处理器、集成更多通讯平台或构建消息分析看板。
