港大开源 Nanobot:4000行Python打造的“极简版” OpenClaw

9 阅读4分钟

🚀 引言:Agent 时代的“断舍离”

2026 年伊始,AI Agent 领域最火的话题莫过于 OpenClaw (Clawdbot) 。它强大的能力让人惊叹,但其 40 万行代码的体量和复杂的依赖环境,让不少想深入研究源码或进行二次开发的个人开发者望而却步。

就在大家对着复杂的架构图头秃时,香港大学数据智能实验室(HKUDS) 开源了 Nanobot

口号很简单: "The Ultra-Lightweight Clawdbot"(超轻量级 Clawdbot)

它用仅约 1% 的代码量(约 4000 行 Python),实现了 OpenClaw 90% 的核心功能。如果你想学习如何从零构建一个能够 写代码、操作文件、联网搜索 且能接入 IM 软件 的智能体,Nanobot 绝对是目前最佳的教科书级项目。


💡 什么是 Nanobot?

Nanobot 是一个基于 Python 的个人 AI 助手框架。它的设计哲学非常明确:极简主义高可扩展性

  • GitHub 地址: HKUDS/nanobot
  • 核心语言: Python
  • 安装方式: pip install nanobot-ai
  • 适用场景: 个人助理、代码解释器、自动化任务执行、Agent 教学研究。

与市面上动辄封装了无数层的 LangChain 或复杂的微服务架构不同,Nanobot 回归了 Agent 的本质——一个优雅的 Event Loop(事件循环)

核心亮点

  1. 轻量级架构:核心逻辑极其精简,没有复杂的类继承地狱,不仅运行速度快,而且非常容易读懂和魔改。

  2. 多模型支持:原生支持 OpenAI、Claude、DeepSeek(国内开发者狂喜)、以及通过 vLLM 进行本地模型部署。

  3. 多端接入:内置了 Telegram飞书 (Feishu/Lark)微信 等 IM 渠道的支持,配置一下 Token 就能在手机上跟你的 Agent 聊天。

  4. 全能工具箱

    • 🐍 Code Interpreter:能写 Python 代码并执行(沙箱环境)。
    • 📂 File System:能读写本地文件。
    • 🌐 Web Search:集成 Google/Bing 搜索能力。

🛠️ 架构解析:它为什么能这么轻?

Nanobot 的源码结构非常适合初学者阅读。剥开外壳,它的核心逻辑其实就是经典的 ReAct (Reason + Act) 模式的简化版。

1. The Agent Loop (主循环)

不同于某些框架复杂的调度器,Nanobot 的主循环逻辑清晰得像伪代码:

Python

# 伪代码逻辑展示
while True:
    # 1. 观察 (Observe):获取用户输入或工具执行结果
    user_input = get_input()
    
    # 2. 思考 (Think):将上下文投喂给 LLM,决定下一步
    response = llm.chat(history)
    
    # 3. 行动 (Act):如果 LLM 决定调用工具
    if response.has_tool_call():
        result = execute_tool(response.tool_name, response.args)
        history.append(result)
    else:
        # 4. 回复 (Response):直接回答用户
        print(response.content)
        break

这种设计让开发者可以清楚地看到每一次“思考”和“行动”是如何发生的,极其利于调试。

2. 工具注册机制

Nanobot 使用简单的装饰器模式来注册工具。你想给 Agent 加一个“查询股票”的功能?只需要写一个 Python 函数并加上装饰器,Agent 就能立即学会使用它。


💻 快速上手:5分钟部署你的专属助理

第一步:安装

建议使用 Python 3.11+ 环境。

Bash

# 使用 pip 安装
pip install nanobot-ai

# 或者如果你使用 uv (推荐,速度更快)
uv tool install nanobot-ai

第二步:初始化配置

Nanobot 会在用户目录下生成配置文件。

Bash

nanobot init

这将创建 ~/.nanobot/config.json。你需要在此文件中填入你的 API Key(例如 DeepSeek 或 OpenAI 的 Key)。

第三步:配置模型(以 DeepSeek 为例)

编辑配置文件,将 provider 设置为对应的模型商:

JSON

{
  "llm": {
    "provider": "deepseek",
    "api_key": "sk-xxxxxx",
    "model": "deepseek-coder"
  }
}

第四步:启动!

Bash

nanobot start

现在,你就可以在终端里和它对话了。你可以试着让它:“帮我写一个贪吃蛇游戏并保存为 snake.py”,你会发现它真的会去写代码、创建文件,甚至如果你配置了运行权限,它还能帮你运行测试。


🆚 Nanobot vs OpenClaw:怎么选?

很多同学会问,既然有了 OpenClaw,为什么还要 Nanobot?

特性OpenClaw (Clawdbot)Nanobot (HKUDS)
代码量~400,000 行~4,000 行
部署难度高 (依赖复杂,Docker 容器编排)极低 (pip install 即可)
定位企业级、生产环境、全功能研究型、个人开发者、轻量级
可扩展性插件体系复杂修改源码极其简单
资源占用较高极低

结论

  • 如果你需要一个企业级、高并发、功能大而全的解决方案,选 OpenClaw
  • 如果你是个人开发者,想学习 Agent 原理,或者想快速搭建一个跑在自己电脑/服务器上的私人助理Nanobot 是不二之选。