NanoBot:港大开源的轻量级个人AI智能体框架,极简架构复刻核心Agent能力
一、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采用ReAct(Reasoning + Acting) 核心架构,通过模块化设计拆解核心逻辑,每个模块职责单一、相互解耦,既保证了功能完整性,又实现了代码极简性,整体技术架构如下:
1. 整体架构分层
NanoBot架构分为五层,从交互接入到核心决策层层递进,数据流转清晰:
渠道接入层:对接Telegram、WhatsApp、飞书、CLI等交互入口,统一消息格式;
消息总线层:负责消息路由与分发,解耦渠道与核心逻辑,支持异步处理;
智能体核心层:包含Agent决策循环、上下文构建、记忆管理、技能加载四大核心模块;
工具执行层:管理内置工具与自定义技能,执行LLM决策的具体操作;
模型适配层:对接各类大模型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. 自定义技能扩展
在
~/.nanobot/skills目录下创建Python文件(如weather.py);编写功能函数并添加
@skill装饰器:
from nanobot import skill
@skill("weather")
def get_weather(city: str) -> str:
"""获取指定城市的天气信息"""
# 调用天气API实现逻辑
return f"{city}今日晴,气温25℃"重启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核心功能已完善,本地部署后不依赖官方服务,即使停止维护,仍可正常使用,且代码开源可自行修改适配。
七、相关链接
GitHub仓库:https://github.com/HKUDS/nanobot
八、总结
NanoBot作为香港大学数据科学实验室开源的超轻量级AI智能体框架,以4000行代码实现了传统大型Agent框架的核心能力,凭借极致轻量化、功能全面、易用易扩展的特点,重新定义了个人AI助手的实现方式。它既解决了传统框架部署复杂、资源占用高的痛点,又保留了工具调用、持久记忆、多渠道交互等关键能力,适配个人日常使用、科研实验、开发辅助等多元场景。无论是新手快速搭建个人AI助手,还是开发者学习Agent架构、进行二次开发,NanoBot都提供了简洁高效的解决方案,是极简主义在AI智能体领域的优秀实践,也为轻量化AI工具的发展提供了全新思路。
版权及免责申明:本文由@dotaai原创发布。该文章观点仅代表作者本人,不代表本站立场。本站不承担任何相关法律责任。
如若转载,请注明出处:https://www.aipuzi.cn/ai-news/nanobot.html

