开启左侧

OpenClaw Skills实战:nanobot通过env var注入实现动态system tool白名单控制

[复制链接]
AI小编 发表于 4 天前 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:CSDN博客
OpenClaw Skills实战:nanobot通过env var注入实现动态system tool白名单控制

1. nanobot简介

nanobot是一款受OpenClaw启发的超轻量级个人人工智能助手,仅需约4000行代码即可提供核心代理功能。相比Clawdbot的430k多行代码,体积缩小了99%。当前实时代码行数为3510行(可通过运行bash core_agent_lines.sh进行验证)。
内置vllm部署的Qwen3-4B-Instruct-2507模型,使用chainlit进行推理交互。支持通过简单配置接入QQ聊天机器人,为开发者提供灵活的AI助手解决方案。
2. 环境准备与部署验证

2.1 模型服务状态检查

部署完成后,可以通过以下命令验证模型服务是否正常运行:
  1. cat /root/workspace/llm.log
复制代码
当看到服务启动成功的日志信息时,表示模型已准备就绪。
2.2 使用chainlit调用nanobot

通过chainlit可以方便地与nanobot进行交互。启动chainlit后,在界面中输入问题即可获得AI助手的智能回复。
3. 动态system tool白名单控制

3.1 环境变量注入机制

nanobot通过环境变量注入实现了动态system tool白名单控制,这是其核心安全特性之一。开发者可以通过设置以下环境变量来控制系统工具的使用权限:
  1. export NANOBOT_ALLOWED_TOOLS="nvidia-smi,ls,cat"
复制代码
3.2 白名单配置示例

在config.json中配置基础白名单:
  1. {
  2.   "system": {
  3.     "allowed_tools": ["nvidia-smi", "df", "free"]
  4.   }
  5. }
复制代码
环境变量将覆盖配置文件中的设置,实现运行时动态控制。
3.3 权限验证流程

当用户请求执行系统命令时,nanobot会按照以下顺序检查权限:
    检查环境变量NANOBOT_ALLOWED_TOOLS检查配置文件中的allowed_tools如果均未设置,则拒绝所有系统工具请求
4. 接入QQ机器人实战

4.1 注册QQ开放平台

    访问QQ开放平台(https://q.qq.com/#/apps)注册个人或企业开发者账号创建新的机器人应用
4.2 配置nanobot连接QQ

修改nanobot配置文件:
  1. vim /root/.nanobot/config.json
复制代码
添加QQ机器人配置:
  1. {
  2.   "channels": {
  3.     "qq": {
  4.       "enabled": true,
  5.       "appId": "YOUR_APP_ID",
  6.       "secret": "YOUR_APP_SECRET",
  7.       "allowFrom": []
  8.     }
  9.   }
  10. }
复制代码
4.3 启动网关服务

执行以下命令启动QQ机器人网关:
  1. nanobot gateway
复制代码
服务启动成功后,即可通过QQ与nanobot进行交互。
5. 安全注意事项

    谨慎配置system tool白名单,仅开放必要的工具权限定期检查环境变量设置,避免意外权限提升生产环境建议结合IP白名单等额外安全措施及时更新到最新版本以获取安全补丁
6. 总结

通过本文介绍,我们了解了如何利用nanobot的环境变量注入机制实现动态system tool白名单控制。这种设计既保证了灵活性,又提供了必要的安全防护。结合QQ机器人的接入示例,展示了nanobot在实际应用中的强大能力。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。




原文地址:https://blog.csdn.net/weixin_29940495/article/details/158093390
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )