NanoBot:港大开源的轻量级个人AI智能体框架,极简架构复刻核心Agent能力

原创 发布日期:
97

一、NanoBot是什么

NanoBot是由香港大学数据科学实验室(HKUDS)开源的超轻量级个人AI智能体框架,以“极简主义”为核心设计理念,仅用约4000行Python代码实现了OpenClaw(Clawdbot)的核心Agent能力,相比原项目代码量精简99%,是兼顾轻量化、高性能与易扩展性的AI助手解决方案。

该项目打破了AI智能体框架“代码量越大功能越强”的固有认知,在保留工具调用、持久记忆、多渠道交互、定时任务等核心能力的基础上,通过架构重构实现极致精简,既适合普通用户快速搭建个人AI助手,也为科研人员、开发者提供了轻量化的Agent学习与二次开发载体,上线24小时内斩获1300+ GitHub Star,成为2026年开源社区备受关注的AI Agent项目。

二、功能特色

NanoBot以“轻、简、全、活”为核心特色,在极小体量下实现了完整的AI智能体能力,具体功能亮点如下:

1. 极致轻量化,低资源高响应

  • 核心代码仅约4000行,可通过bash core_agent_lines.sh实时验证,无冗余依赖,启动速度仅需3秒,内存占用低于100MB,远优于同类框架;

  • 适配低配置设备运行,无需高性能服务器,个人电脑、云服务器轻量实例均可稳定部署,迭代效率大幅提升。

2. 核心能力全覆盖,无功能阉割

  • 支持工具调用:集成文件操作、Shell执行、网页搜索、数据抓取等基础工具,可完成文件读写、代码运行、信息检索等任务;

  • 具备持久记忆:采用分层记忆机制,短期记忆记录对话历史,长期记忆将关键信息持久化至本地文件,跨会话保留上下文;

  • 实现多渠道交互:原生支持Telegram、WhatsApp、飞书等主流通讯平台,可通过手机随时随地与AI助手交互;

  • 支持定时任务:内置Cron调度系统,支持自然语言设置定时提醒、自动执行任务,实现7×24小时自动化工作流。

3. 易用性拉满,一键部署上手

  • 提供PyPI、源码、uv三种安装方式,执行2-3条命令即可完成部署;

  • 交互式初始化引导(nanobot onboard),自动生成配置文件,无需手动编写复杂配置;

  • 支持CLI直接交互,输入指令即可启动对话,新手无需学习复杂操作即可使用。

4. 扩展性极强,适配多元需求

  • 模块化架构设计,支持自定义技能扩展,通过编写简单Python函数即可新增功能(如天气查询、GitHub操作);

  • 兼容多类大模型提供商,支持OpenRouter、Anthropic Claude、DeepSeek、vLLM本地模型等,可灵活切换模型满足不同场景;

  • 支持子代理机制,可将复杂任务拆解为子任务分配给子代理执行,实现多代理协同工作。

5. 科研友好,易读易改

  • 代码结构清晰、注释完善,无复杂封装,开发者可快速通读核心逻辑,理解Agent运行原理;

  • 无技术债务积累,便于科研场景下的定制化修改与实验,是学习AI智能体架构的优质教材。

核心功能对比表

功能维度 NanoBot 传统AI Agent框架(如OpenClaw)
代码行数 约4000行 50000+行
启动速度 约3秒 约30秒
内存占用 <100MB >1GB
部署难度 一键部署,2分钟上手 复杂配置,需专业知识
核心能力 工具调用、记忆、多渠道、定时任务 全功能但冗余较多
学习曲线 平缓,新手友好 陡峭,门槛较高

NanoBot:港大开源的轻量级个人AI智能体框架,极简架构复刻核心Agent能力

三、技术细节

NanoBot采用ReAct(Reasoning + Acting) 核心架构,通过模块化设计拆解核心逻辑,每个模块职责单一、相互解耦,既保证了功能完整性,又实现了代码极简性,整体技术架构如下:

1. 整体架构分层

NanoBot架构分为五层,从交互接入到核心决策层层递进,数据流转清晰:

  1. 渠道接入层:对接Telegram、WhatsApp、飞书、CLI等交互入口,统一消息格式;

  2. 消息总线层:负责消息路由与分发,解耦渠道与核心逻辑,支持异步处理;

  3. 智能体核心层:包含Agent决策循环、上下文构建、记忆管理、技能加载四大核心模块;

  4. 工具执行层:管理内置工具与自定义技能,执行LLM决策的具体操作;

  5. 模型适配层:对接各类大模型API与本地模型,统一推理接口。

2. 核心模块解析

(1)Agent Loop(决策循环)

作为系统核心,实现“感知-思考-行动”闭环,简化版逻辑如下:

class AgentLoop:
  def run(self, user_input: str) -> str:
    # 1. 构建上下文(系统提示+记忆+对话历史)
    context = self.context_builder.build(user_input)
    # 2. LLM推理决策
    response = self.llm.complete(context)
    # 3. 执行工具或直接回复
    if response.has_tool_call:
      result = self.tool_executor.execute(response.tool_call)
      return self.run(f"Observation: {result}")
    else:
      return response.content

该循环持续迭代,直到完成用户任务,是AI智能体自主执行的核心逻辑。

(2)上下文构建器(ContextBuilder)

负责将系统提示、记忆、对话历史、可用工具组装为LLM可理解的Prompt,具备两大优化:

  • 动态截断:当上下文长度超出模型限制时,自动丢弃最旧对话,保留核心记忆与系统提示;

  • 相关性过滤:基于关键词匹配筛选与当前查询相关的记忆,减少无效信息干扰。

(3)记忆系统(MemoryStore)

采用三层记忆机制,兼顾上下文连贯性与存储效率:

  • 工作记忆:当前对话上下文,随对话实时更新;

  • 短期记忆:存储最近N轮对话摘要,避免上下文丢失;

  • 长期记忆:将用户关键信息(如偏好、习惯)持久化至MEMORY.md文件,重启后仍可检索调用。

(4)工具与技能系统

  • 工具注册表:内置文件操作、Shell执行、网页搜索、子代理生成等基础工具,每个工具定义JSON Schema,LLM通过文档字符串理解调用方式;

  • 技能加载器:技能为轻量化功能模块(如GitHub操作、天气查询),支持动态加载,新增技能仅需编写简单函数并注册,无需修改核心代码。

(5)多模型适配

通过统一接口封装不同模型提供商的API,支持:

  • 云端模型:OpenRouter(聚合Anthropic、Mistral等)、DeepSeek、通义千问;

  • 本地模型:vLLM部署的Llama 3、Qwen等开源模型,保障数据隐私。

3. 安全设计

为避免自主执行带来的安全风险,NanoBot内置三重安全机制:

  • 命令白名单:仅允许git、python、pip等安全命令,禁止危险操作;

  • 路径限制:禁止访问/etc、/root等系统敏感目录,仅允许操作工作区文件;

  • 超时控制:工具执行设置超时时间,防止长时间挂起占用资源。

四、应用场景

NanoBot的轻量化与多功能性,使其适配个人、科研、小型团队等多元场景,核心应用场景如下:

1. 个人智能助手

  • 日程管理:通过自然语言设置定时提醒(如“每周一9点提醒写周报”),自动推送通知;

  • 信息检索:实时搜索财经、科技、天气等信息,生成精简简报;

  • 知识管理:记录个人笔记、偏好,跨会话记忆用户习惯,提供个性化回复;

  • 日常辅助:代写文案、计算数据、翻译文本,提升日常效率。

2. 全栈开发辅助

  • 代码生成:根据需求生成Python、Java、前端等代码,自动创建项目结构;

  • 项目管理:执行Shell命令、部署服务、调试代码,辅助完成开发全流程;

  • 文档编写:自动生成接口文档、项目说明,减少重复工作。

3. 金融市场分析

  • 7×24小时监控:定时检索股票、加密货币行情,分析市场趋势;

  • 报告生成:自动整合财经新闻与数据,生成可视化分析简报,推送至通讯工具;

  • 风险提醒:设置行情阈值,触发时自动发送预警通知。

4. 科研与教学

  • Agent架构学习:极简代码便于理解智能体核心逻辑,是高校AI课程的实践案例;

  • 实验验证:快速搭建轻量化Agent原型,测试新的推理逻辑、工具调用策略;

  • 数据处理:辅助科研数据检索、整理、分析,提升研究效率。

5. 小型团队协作

  • 任务分配:通过子代理拆分团队任务,自动跟进执行进度;

  • 信息同步:定时推送团队日报、项目动态,统一信息渠道;

  • 工具集成:对接团队常用工具(如GitHub、飞书),实现协作流程自动化。

五、使用方法

NanoBot提供三种安装方式,支持本地部署与云部署,新手可按以下步骤快速上手:

1. 环境准备

  • 操作系统:Windows、macOS、Linux均可;

  • Python版本:≥3.9;

  • 依赖工具:pip(默认自带)、uv(可选,提升安装速度)。

2. 三种安装方式

方式一:PyPI安装(推荐,稳定版)

# 安装NanoBot
pip install nanobot-ai
# 交互式初始化,生成配置文件
nanobot onboard

方式二:源码安装(开发者,尝鲜最新功能)

# 克隆仓库
git clone https://github.com/HKUDS/nanobot.git
cd nanobot
# 安装依赖
pip install -e .
# 初始化
nanobot onboard

方式三:uv安装(极速安装)

uv tool install nanobot-ai
nanobot onboard

3. 核心配置

初始化后,配置文件位于~/.nanobot/config.json,需补充以下关键信息:

{
 "providers": {
  "openrouter": {
   "api_key": "你的OpenRouter API密钥",
   "model": "anthropic/claude-sonnet-4-20250529"
  }
 },
 "webSearch": {
  "api_key": "你的Brave Search API密钥(可选,启用网页搜索)"
 },
 "channels": {
  "telegram": {
   "token": "你的Telegram Bot Token(可选,启用Telegram交互)"
  }
 }
}

4. 启动与交互

(1)CLI本地交互

# 直接启动对话
nanobot
# 输入指令即可交互,如“帮我写一段Python代码”

(2)多渠道启动

# 启动Telegram网关
nanobot gateway --channel telegram
# 启动WhatsApp网关(扫码登录)
nanobot gateway --channel whatsapp

(3)Docker部署(生产环境)

# 拉取官方镜像
docker pull hkuds/nanobot
# 运行容器
docker run -v ~/.nanobot:/root/.nanobot -d hkuds/nanobot gateway

5. 自定义技能扩展

  1. ~/.nanobot/skills目录下创建Python文件(如weather.py);

  2. 编写功能函数并添加@skill装饰器:

from nanobot import skill

@skill("weather")
def get_weather(city: str) -> str:
  """获取指定城市的天气信息"""
  # 调用天气API实现逻辑
  return f"{city}今日晴,气温25℃"
  1. 重启NanoBot,即可自动加载新技能,直接对话调用。

六、常见问题解答

Q1:NanoBot支持本地大模型吗?如何配置?

A1:支持。可通过vLLM部署本地模型(如Llama 3、Qwen),配置时在config.json中添加vLLM提供商信息,指定本地API地址即可,无需联网即可运行,保障数据隐私。

Q2:没有API密钥还能使用NanoBot吗?

A2:可以。可部署本地开源大模型(通过vLLM),无需调用云端API,仅需配置本地模型接口即可使用基础功能,适合隐私敏感场景。

Q3:NanoBot的长期记忆存储在哪里?会泄露隐私吗?

A3:长期记忆存储在本地~/.nanobot/workspace/memory目录下的Markdown文件中,所有数据均保存在用户本地设备,不会上传至第三方服务器,隐私安全性高。

Q4:如何添加自定义工具或技能?

A4:两种方式:① 编写简单Python函数,添加@skill装饰器后放入技能目录,自动加载;② 修改工具注册表,新增工具定义并配置JSON Schema,LLM即可识别调用,无需改动核心代码。

Q5:NanoBot支持Windows系统吗?安装后无法启动怎么办?

A5:支持Windows、macOS、Linux全平台。无法启动可检查:① Python版本是否≥3.9;② 配置文件config.json格式是否正确;③ 依赖是否完整,可重新执行pip install -e .修复。

Q6:定时任务如何设置?支持自然语言吗?

A6:支持自然语言设置,直接对话输入指令即可,如“每天早上8点给我推送今日新闻”,系统会自动转换为Cron表达式并执行,可通过nanobot task list查看所有定时任务。

Q7:NanoBot与ChatGPT、Claude有什么区别?

A7:ChatGPT/Claude是云端AI助手,功能固定且数据需上传;NanoBot是本地部署的智能体框架,可自定义功能、对接多模型、自主执行工具操作,数据本地化,更灵活且隐私性更强。

Q8:项目停止维护后,还能继续使用吗?

A8:可以。NanoBot核心功能已完善,本地部署后不依赖官方服务,即使停止维护,仍可正常使用,且代码开源可自行修改适配。

七、相关链接

八、总结

NanoBot作为香港大学数据科学实验室开源的超轻量级AI智能体框架,以4000行代码实现了传统大型Agent框架的核心能力,凭借极致轻量化、功能全面、易用易扩展的特点,重新定义了个人AI助手的实现方式。它既解决了传统框架部署复杂、资源占用高的痛点,又保留了工具调用、持久记忆、多渠道交互等关键能力,适配个人日常使用、科研实验、开发辅助等多元场景。无论是新手快速搭建个人AI助手,还是开发者学习Agent架构、进行二次开发,NanoBot都提供了简洁高效的解决方案,是极简主义在AI智能体领域的优秀实践,也为轻量化AI工具的发展提供了全新思路。

打赏
THE END
作者头像
dotaai
正在和我的聊天机器人谈恋爱,它很会捧场。