当前位置:首页>java>港大团队用4000行代码复刻Openclaw(Clawdbot),项目已开源

港大团队用4000行代码复刻Openclaw(Clawdbot),项目已开源

  • 2026-08-26 14:55:01
港大团队用4000行代码复刻Openclaw(Clawdbot),项目已开源

1. 项目介绍

nanobot是一个超轻量个人AI助手框架,灵感来自Clawdbot,目标是以极少的代码实现核心代理能力。

项目现状

• 当前版本:0.1.3.post3(Python包名nanobot-ai)

• GitHub热度:Star约1.4k、Fork约169(截至2026-02-03,数据来源: https://github.com/HKUDS/nanobot/issues)

• 里程碑:2025-02-01正式发布

2. 核心定位

项目背景

• 从Clawdbot等大型Agent框架出发,强调“足够好”的核心能力与最小可读实现。

开发团队

• HKUDS(香港大学数据智能实验室)团队维护。

主要用途与痛点

• 让个人AI助手的基本能力落在“可读、可改、可扩展”的小代码基座上。

• 为研究/实验场景提供更短的理解链路与更低的工程成本。

3. 主要功能

• 统一的Agent loop:消息接入、上下文构建、模型调用、工具执行、结果回传

• 多模型接入:基于LiteLLM,支持OpenRouter、Anthropic、OpenAI、Gemini及vLLM

• 结构化工具系统:文件读写、Shell、Web搜索/抓取、消息转发、子代理

• 多渠道对话:CLI、Telegram、WhatsApp(通过bridge)

• 计划任务:内置Cron服务与调度管理

• 心跳唤醒:定期触发主动任务

4. 技术架构

核心设计

• 以消息总线为中枢(bus),将输入输出统一成事件流

•AgentLoop负责完整推理与工具执行闭环

• Provider层用LiteLLM统一适配多模型

• Channels层对接Telegram/WhatsApp,Bridge负责WhatsApp连接

关键依赖

• typer、rich:CLI与交互输出

• litellm:多模型统一调用

• pydantic / pydantic-settings:配置与数据结构

• httpx、websockets、websocket-client:网络通信

• loguru:日志

• croniter:定时任务

• python-telegram-bot:Telegram接入

AI细节

- 模型调用通过LiteLLM,默认配置指向OpenRouter,可切换为vLLM等本地模型服务。

- Web搜索可选接入Brave Search API。

5. 代码解读

本部分基于GitHub源码进行简化梳理。

目录结构(核心部分)

nanobot/

├── agent/          # 代理核心逻辑

│   ├── loop.py     # 推理主循环

│   ├── context.py  # 上下文构建

│   ├── memory.py   # 记忆持久化

│   ├── skills.py   # 技能加载

│   └── tools/      # 内置工具

├── cli/            # CLI命令入口

├── providers/      # 模型提供方适配

├── channels/       # Telegram/WhatsApp接入

├── bus/            # 消息总线

├── cron/           # 计划任务

├── heartbeat/      # 定期唤醒

├── session/        # 会话管理

└── config/         # 配置加载与schema

代码入口与调用链

• 安装后入口:nanobot -> nanobot.cli.commands:app

• CLI命令nanobot agent / nanobot gateway -> 初始化Provider与AgentLoop

• AgentLoop:构建上下文 -> 调用LLM -> 解析工具调用 -> 执行工具 -> 汇总结果

主要逻辑拆解

• AgentLoop统一处理消息流与工具执行,减少分叉逻辑,保持最短路径。

• ToolRegistry负责工具注册与路由,便于扩展。

• LiteLLMProvider在模型层做兼容处理,包括OpenRouter与vLLM前缀适配。

6. 项目部署和运行

环境要求

• Python≥3.11

• 可选:Node.js≥18(用于WhatsApp bridge)

安装与运行(最小路径)

pip install nanobot-ai

nanobot onboard

# 编辑 ~/.nanobot/config.json

nanobot agent -m "Hello from nanobot"

本地模型(vLLM)

vllm serve meta-llama/Llama-3.1-8B-Instruct --port 8000

# 配置 apiBase 指向本地服务

nanobot agent -m "Hello from my local LLM!"

7. 资源整合

• GitHub仓库:https://github.com/HKUDS/nanobot

• Demo演示:https://github.com/HKUDS/nanobot#-quick-start

8. 总结

nanobot用极小的代码体量实现了可用的Agent基础闭环:消息接入、上下文构建、模型调用与工具执行。它的核心价值在于“可读、可改、可扩展”,适合研究者与工程实践者用来快速验证想法、搭建轻量级助手。对于追求完整生态的重型框架来说,nanobot更像一套高密度的最小实现,提供了一个清晰的学习与二次开发起点。

欢迎加入AI交流群:

请在微信客户端打开

最新文章

随机文章