当别的 AI 还在等你发消息时,nanobot 已经在主动干活了。
nanobot解决了一个核心问题:如何让 AI 从"被动回答"进化到"主动服务"?

核心架构Agent Loop
nanobot 的心脏非常简单—— 一个永不停歇的消息循环:
消息进来 → 组装上下文 → 问 LLM → 执行工具 → 发回结果

最巧妙的设计:LLM 不是直接给答案,而是决定用什么工具。这个过程最多循环 20 次,直到搞定任务。
就像雇了一个聪明实习生:你给他工具箱,他遇到困难会自己翻工具,而不是每次都来问你"这个怎么办"。
三大主动触发机制
真正让 nanobot 与众不同的是它的**"主动性"**:
1. Cron 定时任务 —— 到点就干
- 支持 cron 表达式(
0 9 * * * 每天早上9点) - 持久化存储:任务写在
jobs.json,重启不丢
nanobot cron add --name "喝水提醒" --message "该喝水了!" --every 3600
2. 心跳服务 —— 周期性自检
# HEARTBEAT.md## Active Tasks- [ ] 检查今天的待办邮件- [ ] 同步 GitHub 通知
3. 子 Agent —— 后台并行
模块化设计:像拼乐高一样扩展
技能系统尤其优雅——用 Markdown 写"教学文档",前置 YAML 声明依赖,AI 需要时才加载,既省 token 又精准。
少即是多
nanobot 没有追逐复杂,而是坚持几个原则:
- 文件即配置 ——
HEARTBEAT.md、SKILL.md、MEMORY.md,纯文本,版本友好 - 队列解耦 —— 消息总线让渠道和 AI 逻辑完全分离
- 渐进加载 —— 不用一次性塞满 prompt,需要时才读技能
- 节俭运行 —— 心跳空转时检测内容,无任务直接跳过
定时任务提供节奏,心跳提供主动性,子 Agent 提供并行力,文件系统提供持久化——这套组合拳,让 AI 真正从"聊天工具"变成了"自动化助手"。
https://github.com/HKUDS/nanobot