nanoinfra Skill 技能

自托管 AI Agent 基础设施运行时

技能简介

nanoinfra 是一款超轻量级开源自托管 AI Agent 运行时,专门面向基础设施管理场景,以 Python 实现,核心设计原则是「可审计性」——将工具、长程记忆、MCP 集成、模型路由、多 Agent 委托、定时自动化和 OpenAI 兼容 API 全部塞进一个足够小的核心,任何人都能读懂源码并自行部署。安全模型上,nanoinfra 采用「能力边界分离」架构:Agent 进程本身不持有凭证,而是由独立进程(executor)持有凭证并对每次远程操作做出 allow / approve / grant / deny 裁决,Agent 只负责提问,不负责执行决策。发布当天即有 PyPI 2.0.0 版本(MIT 许可证,Python ≥3.11)。

核心能力

  • 多渠道接入:支持浏览器 WebUI、终端 CLI、API 接口,同时内置 Telegram、Discord、Slack、Signal、Email、Mattermost 等 16 个聊天平台的连接器,AI 始终在熟悉的聊天窗口中响应
  • MCP 原生集成:内置 MCP 主机进程,在独立 Linux 账户下以 Landlock 强制隔离运行,每个 MCP 服务器拥有独立的文件系统规则集,互不干扰
  • 凭证边界分离:Agent 进程(gateway)不持有任何凭证,凭证和裁决逻辑运行在独立的 executor 进程(nanoinfra-exec)中,两者通过 Unix Socket 通信,每次远程操作必须经过 executor 的能力门审核
  • 无梗值守模式:无人值守的调用默认无法到达远程主机,异常操作会触发第二认证路径等待人工确认,拒绝操作在当次会话中锁定,防止 Agent 绕过约束
  • 长程记忆系统:内置 Dream 记忆模块,支持跨会话持久化和长期知识管理,Agent 在长程目标执行和定时自动化场景中保持上下文连续性
  • 多模型路由与降级:支持 OpenAI 兼容 API、本地 LLM(Ollama / vLLM)和图像生成等多种模型,可配置模型降级链,确保部分模型不可用时自动切换
  • WebUI 零构建交付:WebUI 直接打包在发布的 wheel 中,无需单独安装 Node.js 或构建步骤,安装完成即可通过 nanoinfra webui 打开浏览器工作台
  • Docker 特权分离:官方容器镜像以 root 启动,完成 executor / fetcher / MCP host 的账户创建和能力边界配置后主动放弃 root 权限,全程无需 --security-opt 或额外 capability 配置
  • OpenAI 兼容 API:暴露 OpenAI 兼容的 API 端点,可被其他工具和平台调用,适合作为企业内部 AI 能力网关
  • Python SDK:提供 Python SDK,方便在 Python 项目中直接集成 nanoinfra 作为 Agent 运行时
  • 可审计小核心:核心代码量受控,所有 Agent 行为(工具调用、记忆写入、模型交互)均可追溯,适合对 AI 操作有合规要求的组织

安装配置

环境要求

  • Python 3.11 或更高版本
  • 或 Docker(用于容器化部署,推荐生产环境使用)
  • 推荐使用 uv 包管理器以获得最佳安装体验

安装步骤

方式一:通过 uv 安装(推荐,最简)

uv tool install nanoinfra

方式二:通过 pip 安装

python -m pip install nanoinfra

若遇到 externally-managed-environment 错误(macOS / Linux 常见),使用 uv tool install 或在虚拟环境中操作。

方式三:Docker 容器安装(生产推荐)

# 首次运行:创建配置和引导
docker run -it --rm -v ~/.nanoinfra:/home/nanoinfra/.nanoinfra 
  ghcr.io/nanoinfraorg/nanoinfra:latest onboard --wizard

# 启动网关服务
docker run -d --name nanoinfra 
  -v ~/.nanoinfra:/home/nanoinfra/.nanoinfra 
  -p 127.0.0.1:8765:8765 
  ghcr.io/nanoinfraorg/nanoinfra:latest gateway

容器镜像支持 latest、次版本(如 1.0)和精确版本(如 1.0.3)三种标签,生产环境建议固定精确版本。

方式四:源码安装

git clone https://github.com/nanoinfraorg/nanoinfra.git
cd nanoinfra
uv sync
uv run nanoinfra --version

源码安装需要 bun 或 npm 来构建 WebUI(如使用 uv,则通过 lockfile 自动处理)。

初始配置

通过向导引导配置(推荐首次安装)

nanoinfra webui

首次运行会自动创建配置文件和工作区,并打开浏览器进入设置界面,引导配置模型供应商凭证。

手动配置模型提供方

在 ~/.nanoinfra/config.json 中配置 Provider,例如添加 OpenAI:

{
  "providers": {
    "openai": {
      "api_key": "sk-...",
      "model": "gpt-4"
    }
  }
}

详细配置参考官方文档:https://docs.nanoinfra.org/configuration/

使用步骤

第一步:打开 WebUI 并配置模型

nanoinfra webui

浏览器访问 http://127.0.0.1:8765,在 Settings → Models 中选择供应商和模型,保存后即可开始对话。

第二步:创建第一个工作区

在 WebUI 右上角选择或创建工作区(Workspace),不同工作区隔离记忆和配置,适合多项目并行。

第三步:让 Agent 执行基础设施操作

在对话中自然语言描述任务,例如「请帮我检查所有服务器的磁盘使用率,并在超过 80% 时发送告警。」Agent 会通过 MCP / SSH / Ansible 等工具链执行操作,每次操作均需 executor 裁决确认。

第四步:连接聊天平台(可选)

在 Settings → Channels 中配置 Telegram / Discord / Slack 等渠道的机器人 Token,将 nanoinfra 接入团队常用的聊天工具。

第五步:设置定时自动化

nanoinfra cron "0 9 * * *" "检查服务器状态并在异常时告警"

或在 WebUI 的 Automations 面板中图形化配置定时任务和触发条件。

第六步:保持服务后台运行

nanoinfra gateway --background

服务在后台持续运行,即使终端关闭也不中断。可通过以下命令管理:

nanoinfra gateway status   # 查看状态
nanoinfra gateway logs     # 查看日志
nanoinfra gateway restart  # 重启
nanoinfra gateway stop     # 停止

适用场景

  • 个人 AI 基础设施助理:在私有服务器上运行,处理日志分析、备份检查、告警响应等日常运维任务
  • 企业内部 AI 网关:作为组织内的 AI 能力统一出口,对接多种模型,统一管理凭证和权限
  • 安全敏感 AI 操作环境:通过能力边界分离架构确保 AI 无法在未经授权的情况下直接操作生产服务器
  • 多聊天平台 AI 助手:统一接入 Telegram / Discord / Slack / Email 等多个渠道的 AI 助手
  • 长程自动化任务:通过目标(Goals)和定时自动化功能执行需要跨多天、多步骤的基础设施任务
  • AI 开发调试:开发者通过 nanoinfra 的 MCP 接口和 WebUI 可观测性功能调试 Agent 行为
  • 自托管 AI 产品基础:基于 nanoinfra 的 OpenAI 兼容 API 和 Python SDK 构建自定义 AI 应用
  • 隔离环境 AI 测试:在容器中以最小权限运行 AI Agent,测试 AI 生成命令和操作的安全性

适用人群

  • DevOps / SRE 工程师:需要 AI 助手处理日常巡检、告警响应、脚本编写的运维人员
  • 技术负责人 / CTO:关注 AI 系统可审计性,需要在组织内控层面确保 AI 行为安全可控
  • 独立开发者:需要自托管 AI 助手处理开发辅助、服务器管理、自动化任务
  • AI 应用开发者:基于 nanoinfra 的 SDK 和 MCP 接口构建需要 AI Agent 能力的工具和产品
  • 安全工程师:利用 nanoinfra 的能力边界分离架构,测试 AI 生成命令的安全性
  • 系统管理员:在私有环境中管理多台服务器,需要统一的 AI 辅助管理界面

工作原理

nanoinfra 采用双进程协作模型,核心是「Agent 提问、Executor 裁决」的设计原则:

Agent Loop(gateway 进程):运行在 nanoinfra 账户下,负责维护对话上下文、与 LLM 提供方交互、调用工具接口,不持有任何凭证,也不做裁决决策。接收到用户消息后,构建上下文并发送给模型,模型返回工具调用请求,Agent 将请求转发给 executor 并将裁决结果返回给模型。

Executor(nanoinfra-exec 进程):持有凭证库和裁决逻辑,每次接收 Agent 的工具调用请求后,根据能力门控规则(默认严格,无人值守时拒绝所有远程操作)和操作凭证判断是否允许执行。裁决结果(allow / approve / grant / deny)追加到只写的审计日志,该日志 Agent 可读但不可写。若裁决为 deny,拒绝操作在该会话中锁定(latch),即使重启进程也会从审计日志重建拒绝状态。

辅助进程:在完整部署中还有 nanoinfra-fetch(独立账户,运行 Web 搜索和抓取,无权访问用户凭证)和 nanoinfra-mcp(独立账户,运行 MCP 服务器,每个 MCP 服务器有独立的 Landlock 隔离策略)。

渠道接入:gateway 进程同时管理 WebUI、WebSocket、终端、API 等多个渠道的消息路由,以及 Telegram、Discord、Slack 等聊天平台的机器人连接,提供统一的对话入口。

长程记忆:Dream 模块管理跨会话持久化记忆,记忆以分区(partition)组织,不同工作区可有独立的 ops / shared / dev 分区,Agent 在每个分区的访问权限受 MAGNEMO_SCOPE 和 MAGNEMO_PARTITIONS 环境变量控制(当 nanoinfra 与 magnemo 集成时)。

官方链接

发布备注:nanoinfra 是 nanobot(作者 Xubin Ren)的活跃分支,由 Alberto Ferrer 维护。发布版本 2.0.0 基于 MIT 许可证,采用 uv/PEP 725 标准发布流程,支持 Python 3.11+。

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论