- 教程
- 文档
- AI Agent
- 人工智能
【免费下载链接】learn-nanobot
面向小白的 HKUDS/nanobot 面试学习指南 | 17章深度教程 | 134道八股文 | 哆啦A梦漫画图解 | STAR面试法 | 简历模板
本文带你用 learn-nanobot 教程仓库,10 分钟掌握基于 Nanobot 框架构建的 AI Agent 的Docker 部署 + 生产安全策略:从镜像构建、容器编排,到沙箱隔离、密钥管理、监控备份的 6 大安全要点,让你的 AI Agent 不止"能跑",更能"安全上线"。🚀
一、为什么 AI Agent 要用 Docker 部署?
很多新手第一次把 Agent 跑起来后,会直接在服务器裸机上运行。但 Agent 和传统 Web 服务不同——它能执行命令、读写文件,一旦出问题,破坏面更大。Docker 容器化正是解决这个问题的关键:
| 优势 | 说明 |
|---|---|
| 🔒 环境隔离 | Agent 的命令执行被限制在容器内,不影响宿主机 |
| 📦 环境一致 | 开发、测试、生产用同一个镜像,告别"在我电脑上没问题" |
| ⚡ 快速恢复 | 容器挂掉秒级重建,配合restart策略自动拉起 |
| 🎛️ 资源控制 | 限制 CPU 和内存,防止 Agent 死循环拖垮服务器 |
💡 部署前建议先读懂架构:Nanobot 由核心引擎(AgentLoop)、记忆系统、技能加载器、工具注册表四大模块组成,理解它们才知道该持久化哪些数据。详见 docs/03-architecture-deep-dive/README.md。
二、Docker 部署四步走
第 1 步:准备配置,密钥走环境变量
生产环境的第一原则:API Key 绝不硬编码进配置文件。用.env文件管理密钥,config.json里只写引用:
{ "providers": { "openai": { "api_key": "${OPENAI_API_KEY}" } } }环境变量示例(.env文件,记得加入.gitignore):
OPENAI_API_KEY=sk-xxxxxxxx TELEGRAM_BOT_TOKEN=123456:ABC...仓库中的 projects/01-hello-nanobot/config.json 就是这种"只引用环境变量"的规范写法,可以直接参考。
第 2 步:构建镜像
Dockerfile 抓住三个关键点即可:
- 用
python:3.12-slim精简基础镜像,减少攻击面 - 安装
nanobot-ai后,创建非 root 用户运行 - 配置健康检查(
HEALTHCHECK),方便编排系统自动巡检
第 3 步:Compose 编排启动
docker-compose.yml的核心配置建议包含四件事:
services: nanobot: build: . restart: unless-stopped # 崩溃自动重启 environment: - OPENAI_API_KEY=${OPENAI_API_KEY} # 密钥从 .env 注入 volumes: - ./config.json:/home/nanobot/workspace/config.json:ro # 配置只读 - nanobot-memory:/home/nanobot/workspace/memory # 记忆持久化 deploy: resources: limits: cpus: '2.0' memory: 2G:ro表示只读挂载——配置文件、技能目录只读,防止 Agent 篡改自己的配置memory/、sessions/用命名卷读写挂载,数据才能持久保存
第 4 步:启动与验证
docker-compose build # 构建镜像 docker-compose up -d # 后台启动 docker-compose logs -f nanobot # 查看日志确认正常完整可运行的 Dockerfile 与 Compose 示例在 docs/11-security-and-deploy/README.md 的 11.4 节,零基础安装流程可配合 docs/06-install-and-hands-on/README.md 一起看。
三、生产安全策略的 6 个关键要点
这是全文最重要的部分。AI Agent 会自主调用工具执行操作,安全防线必须建在代码层面,而不是指望大模型"听话"。
1️⃣ 工作区沙箱:restrict_to_workspace
这是 Nanobot 最核心的安全机制——所有文件读写、Shell 命令都被限制在 workspace 目录内。即使 Prompt 注入让 Agent"想"去读/etc/passwd,代码层的路径校验也会直接拒绝。
2️⃣ 危险命令检测
exec 工具内置正则黑名单,rm -rf /、磁盘格式化、curl | bash远程脚本执行等危险模式会被自动拦截,并配有执行超时控制,防止无限运行。
3️⃣ SSRF 防护
Agent 的web_fetch工具会阻止访问内网地址和云平台元数据地址(如169.254.169.254),防止攻击者借 Agent 之手探测你的内网。生产环境建议再叠加域名白名单,只放行allowed_domains里配置的站点。
4️⃣ 密钥管理三道关
- ✅ API Key 通过环境变量传入,配置文件只写
${VAR}引用 - ✅
.env文件加入.gitignore,永不进 Git - ✅ 日志中对密钥脱敏,只显示前 8 位
5️⃣ 迭代次数限制
max_tool_iterations建议生产环境设为30 以内。它限制了单次对话的工具调用轮数,即使 Agent 被诱导"不停地做",也会到限自动停止——这同时是成本控制手段。
6️⃣ 最小权限原则
SubAgent(子 Agent)默认没有发消息、再派生子 Agent、创建定时任务的权限,迭代上限也更低(15 次)。每个执行层级只拿到完成任务所需的最少权限。
📚 六大攻击场景(Prompt 注入、路径遍历、命令注入等)与防御机制的完整对照表,见 docs/11-security-and-deploy/README.md 的 11.1~11.2 节。
四、记忆数据持久化与备份
AI Agent 的"灵魂"一半在配置里,另一半在记忆文件中。如果容器重建后记忆丢了,你的 Agent 就会"失忆"。
必须持久化/备份的数据:
| 文件 | 作用 |
|---|---|
memory/MEMORY.md | 长期记忆(用户偏好、重要事实) |
memory/HISTORY.md | 历史时间线 |
sessions/*.jsonl | 会话记录 |
config.json/AGENTS.md | 配置与身份定义 |
skills/ | 自定义技能 |
备份实践建议(保持精简,别学太多花活):
- 每天凌晨用
tar打包 workspace 到备份目录,保留最近 30 天 - 用
crontab定时执行备份脚本 - 定期做一次恢复演练——没验证过的备份等于没有备份
完整备份脚本与恢复流程在 docs/11-security-and-deploy/README.md 的 11.8 节。记忆系统的原理可回看 docs/07-memory-system/README.md。
五、上线前安全清单(建议逐条打勾)
| 类别 | 检查项 |
|---|---|
| 🛡️ 安全配置 | restrict_to_workspace已启用;危险命令检测与 SSRF 防护生效;max_tool_iterations ≤ 30 |
| 🔑 密钥管理 | 所有密钥走环境变量;config.json无硬编码密钥;日志已脱敏 |
| 🌐 网络安全 | HTTPS 已配置;Webhook 端点有访问控制;非必要端口已关闭 |
| 🐳 容器安全 | 非 root 用户运行;CPU/内存限制已设置;配置文件只读挂载;健康检查已配置 |
| 💾 数据安全 | 备份策略已实施并测试恢复;日志轮转已配置 |
| 📊 监控告警 | API 调用量、响应延迟、Token 消耗有监控;费用有预算告警 |
其中成本监控值得多说一句:LLM API 是 Agent 最大的运行成本。生产环境建议把temperature调低到 0.3 获得更稳定的输出,把context_window_tokens设为模型窗口的一半(更频繁触发记忆压缩,节省 Token)。
六、延伸:从单实例走向生产架构
完成单机部署后,可以继续进阶:
- 多平台接入:把 Agent 接到 Telegram、飞书、钉钉,Webhook 建议加 Nginx 反向代理 + HTTPS,详见 docs/09-multi-platform/README.md
- 多实例架构:客服、运维、开发 Agent 各占一个独立容器,配置、数据、端口互相隔离
- 子 Agent 与定时任务:用 Cron 让 Agent 定时汇报,详见 docs/10-subagent-and-cron/README.md
- 更多实战:projects/04-multi-platform-bot/ 提供了多平台 Bot 的完整示例配置
小结
| 要点 | 一句话总结 |
|---|---|
| Docker 部署 | slim 镜像 + 非 root + 资源限制 + 配置只读挂载 |
| 沙箱安全 | restrict_to_workspace把所有文件/命令操作锁进工作区 |
| 纵深防御 | 危险命令检测 + SSRF 防护 + 迭代限制,层层拦截 |
| 密钥管理 | 环境变量注入,配置文件永不存密钥 |
| 数据兜底 | Volume 持久化 + 每日备份 + 恢复演练 |
记住一个核心理念:即使大模型被 Prompt 注入操纵,代码级的安全机制依然有效——这就是纵深防御的价值。按本文清单走完,你的 AI Agent 就能安心上线了。🎉
- 教程
- 文档
- AI Agent
- 人工智能
【免费下载链接】learn-nanobot
面向小白的 HKUDS/nanobot 面试学习指南 | 17章深度教程 | 134道八股文 | 哆啦A梦漫画图解 | STAR面试法 | 简历模板
相关推荐
Hunyuan3D-2 图生3D 快速上手:0.6B Mini Turbo 模型 5 步推理、6GB 显存跑通指南
Hunyuan3D 2 图生3D 快速上手:0.6B Mini Turbo 模型 5 步推理、6GB 显存跑通指南 把一张商品照片丢进去,几秒钟后拿到一个可旋转
人工智能深度学习计算机视觉媒体生成3D建模OpenRath Agent Server生产部署完全指南:从Docker到Kubernetes
OpenRath Agent Server生产部署完全指南:从Docker到Kubernetes OpenRath 是一个 PyTorch 风格的开源多智能体(
ComfyUI 模型管理:5 步搞定文件摆放、节点组合与显存降级
ComfyUI 模型管理:5 步搞定文件摆放、节点组合与显存降级 刚装好 ComfyUI 却对着空空的 models/ 目录发愁?ComfyUI 模型管理其实不
人工智能大模型媒体生成计算机视觉推理引擎本地部署
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考