MP4格式转换器
39.11M · 2026-04-16
Nanobot 是一个面向日常工作的通用 AI Agent 运行时 。它不是某个封闭的 SaaS 产品,也不是仅存在于网页聊天窗口中的"黑盒"服务,而是一个可以部署在你自己的机器上、完全由你掌控的智能体框架。
这意味着:
与传统重量级 Agent 框架(如 LangChain、AutoGen)不同,Nanobot 选择了一条"向下兼容、向上轻量"的技术路线 [[4]]:
| 维度 | Nanobot 的选择 | 传统框架的常见做法 |
|---|---|---|
| 代码规模 | ~4,000 行核心代码 | 数万行,依赖树庞大 |
| 抽象层级 | 最小必要抽象,代码可读性强 | 多层封装,学习成本高 |
| 扩展方式 | Markdown 声明式 Skills + 工具注册 | 代码级自定义 Chain/Agent |
| 适用场景 | 个人助手、轻量自动化、研究实验 | 企业级 RAG、复杂 Pipeline |
这种"极简主义"并非功能阉割,而是通过清晰的模块边界与高效的数据流设计,在保持功能完整性的同时,大幅降低理解与维护成本。
Nanobot 采用经典的消息驱动架构(Message-Driven Architecture) + ReAct 循环(Reasoning + Acting):
Nanobot 的智能体循环完整实现了"感知-思考-行动-学习"的闭环流程:
感知(Perception)
ContextBuilder 动态组装系统提示词思考(Reasoning)
行动(Acting)
学习(Learning)
记忆管理是 Agent 系统的核心挑战。Nanobot 采用三层记忆架构,在上下文效率与长期知识保留之间取得平衡 。
workspace/
├── SOUL.md # Bot 的人格与沟通风格(持久化)
├── USER.md # 用户偏好与稳定信息(持久化)
└── memory/
├── MEMORY.md # 项目事实、决策与上下文(持久化)
├── history.jsonl # 对话摘要归档(机器优先)
├── .cursor # Consolidator 写入游标
├── .dream_cursor # Dream 消费游标
└── .git/ # 长期记忆文件的版本历史
当会话长度接近 LLM 上下文窗口限制时,Consolidator 会自动:
memory/history.json{
"cursor": 42,
"timestamp": "2026-04-03 00:02",
"content": "- 用户偏好深色模式n- 决定使用 PostgreSQL 作为数据库"
}
该文件采用追加写入 + 游标管理设计,确保机器解析高效、人类可读性次之。
Dream 是更慢速、更深思熟虑的记忆层,默认按定时任务(cron)运行:
history.jsonl 新条目 + 当前 SOUL.md/USER.md/MEMORY.md这种设计使记忆系统具备解释性而非单纯归档:知识会随时间沉淀、关联、进化。
所有长期记忆文件(SOUL.md/USER.md/MEMORY.md)的变更可通过 GitStore 记录版本历史,支持:
/dream-log:查看最新记忆变更/dream-restore <sha>:回滚到指定版本这使"自动记忆"不再是黑盒,用户始终保有检查、理解、恢复的控制权。
Skills 是 Nanobot 的能力扩展单元,采用Markdown 声明式配置,无需编写复杂代码即可为 Agent 添加新能力。
# 技能名称:代码审计助手
## 触发条件
当用户请求包含"review code", "检查漏洞", "安全扫描"时激活。
## 可用工具
- `run_shell`: 执行静态分析脚本
- `read_file`: 读取目标源码
## 执行规范
1. 优先读取文件内容
2. 调用 `run_shell` 执行审计命令
3. 输出结构化报告(漏洞类型、行号、修复建议)
## 输出格式
```json
{
"vulnerabilities": [...],
"suggestions": [...]
}
skills/ 目录,解析 Markdown 结构这种设计实现了能力扩展的低门槛与执行过程的可控性的统一。
Nanobot 预置 8+ 核心工具,覆盖高频自动化场景:
| 工具 | 功能 | 安全机制 |
|---|---|---|
filesystem | 安全目录下的文件读写 | 工作区沙箱限制 |
shell | 受限命令执行 | 白名单 + 超时熔断 |
web_search | 聚合搜索引擎(Bing/DuckDuckGo) | 结果过滤 + 速率限制 |
scheduler | Cron 定时任务管理 | 任务权限校验 |
messaging | 跨平台消息推送 | 用户白名单 |
code_executor | 安全沙箱内代码运行 | 资源限制 + 输出审计 |
得益于 Platform Adapter 模式,Nanobot 可无缝接入多种通信渠道:
nanobot agent 直接对话,适合本地开发辅助消息格式统一转换为框架内部标准事件,开发者只需关注业务逻辑,无需重复处理平台差异。
通过 Provider 抽象层,支持主流大模型无缝切换:
{
"providers": {
"openrouter": { "apiKey": "sk-or-xxx", "baseUrl": "https://openrouter.ai/api/v1" },
"qwen": { "apiKey": "sk-xxx", "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1" },
"vllm": { "baseUrl": "http://localhost:8000/v1" }
},
"agents": {
"defaults": {
"model": "anthropic/claude-sonnet-4",
"provider": "openrouter",
"toolCallingStrategy": "function_calling"
}
}
}
toolCallingStrategy 可选 function_calling(推荐)或 react_prompt(兼容旧模型)# 方式1:pip 安装(推荐生产环境)
pip install nanobot-ai
# 方式2:uv 安装(更快依赖解析)
uv tool install nanobot-ai
# 方式3:源码安装(便于二次开发)
git clone
cd nanobot
pip install -e .
# 一键初始化配置
nanobot onboard
# 或使用交互式向导
nanobot onboard --wizard
配置文件位置:
~/.nanobot/config.json%USERPROFILE%.nanobotconfig.json关键字段配置:
{
"providers": {
"openrouter": {
"apiKey": "sk-or-v1-xxxxxxxxxxxx"
}
},
"agents": {
"defaults": {
"model": "anthropic/claude-opus-4-5",
"provider": "openrouter",
"timezone": "Asia/Shanghai",
"dream": {
"intervalH": 2,
"maxBatchSize": 20
}
}
}
}
# 终端模式启动
nanobot agent
# 或连接特定平台
nanobot serve --platform telegram
启动后,终端即成为你的 Agent"醒着的地方"。输入自然语言指令,即可体验:
结合 filesystem + shell + web_search 工具,Nanobot 可充当本地开发环境的"结对编程伙伴":
通过记忆系统的 Dream 机制,Nanobot 可自动:
MEMORY.md)利用多平台适配器,企业可将 Nanobot 部署为统一消息中枢:
推荐:
暂不推荐:
根据社区规划,Nanobot 将持续优化:
在技术民主化的浪潮中,Nanobot 证明了一个真理:强大的工具未必复杂,清晰的抽象胜过冗长的封装。如果你正在寻找一个透明、轻量、可定制的 AI Agent 起点,Nanobot 值得纳入你的技术选型清单。