AI Agent框架对比笔记

AI Agent 框架对比笔记

一、项目概览

项目Star数代码行数语言定位
PicoClaw12,000+Go超轻量个人AI助手
ZeroClaw活跃更新RustAI助手基础设施
NanoBot活跃更新~11,200行Python超轻量OpenClaw
CountBot新项目~426,700行Python+Vue中文优先AI Agent
OpenClaw活跃更新~205,200行TypeScript企业级个人助手

二、核心架构对比

1. Agent Loop (核心循环)

NanoBot - 简洁同步

while iteration < max_iterations:
    response = await provider.chat(messages, tools)
    if response.has_tool_calls:
        for tool_call in response.tool_calls:
            result = await tools.execute(tool_call.name, args)
            messages.append(tool_result)
    else:
        break

CountBot - 增强异步流式

while iteration < max_iterations:
    async for chunk in provider.chat_stream(messages, tools):
        if chunk.is_content:
            yield chunk.content  # 实时推送
        if chunk.is_tool_call:
            tool_calls_buffer.append(chunk.tool_call)
    
    # 带重试的工具执行
    for tool_call in tool_calls_buffer:
        for attempt in range(max_retries):
            try:
                result = await tools.execute(tool_name, args)
                break
            except Exception:
                await asyncio.sleep(retry_delay)

OpenClaw - Pi框架 + 多级重试

// 32-160次重试迭代,带Auth Profile轮换
const maxRetries = resolveMaxRunRetryIterations(profileCount);
for (let attempt = 0; attempt < maxRetries; attempt++) {
  try {
    const result = await runEmbeddedAttempt({
      messages,
      tools,
      thinkingLevel,
      sandbox
    });
    return result;
  } catch (error) {
    if (isFailoverError(error)) {
      await markAuthProfileFailure(profile);
      continue; // 切换到下一个Auth Profile
    }
  }
}

2. Agent Loop 核心原理

ReAct = Reasoning + Acting(推理 + 行动)

Reasoning (推理): 思考要做什么
    ↓
Acting (行动): 执行工具完成
    ↓
Observation (观察): 查看结果
    ↓
回到 Reasoning (继续推理)

循环流程:

┌─────────────────────────────────────────┐
│         Agent Loop (循环)              │
├─────────────────────────────────────────┤
│  1. 接收用户消息                        │
│  2. 构建上下文 (历史/记忆/技能)          │
│  3. 调用 LLM 生成回复                   │
│  4. 解析 LLM 响应                      │
│     ├─ 有工具调用? → 执行工具            │
│     └─ 无工具调用? → 返回答案            │
│  5. 将工具结果反馈给 LLM                │
│  6. 回到步骤 3,继续循环 (直到完成)       │
└─────────────────────────────────────────┘

三、详细对比

1. Context Builder (上下文构建)

特性NanoBotCountBotOpenClaw
系统提示基础身份12种性格系统Bootstrap Files
Bootstrap5个文件7个文件
记忆上下文MEMORY.md智能记忆总结Memory Search
技能加载渐进式自动加载动态加载
自定义性格✅ 完全自定义✅ AGENTS.md自定义

Bootstrap文件对比:

# NanoBot
- AGENTS.md
- SOUL.md
- USER.md
- TOOLS.md
- IDENTITY.md

# OpenClaw
- AGENTS.md
- SOUL.md
- USER.md
- TOOLS.md
- IDENTITY.md
- SKILLS.md
- MEMORY.md

2. Memory System (记忆系统)

特性NanoBotCountBotOpenClaw
存储方式双文件行式存储SQLite + Search
记忆格式Markdown日期|来源|内容结构化 + 向量
总结方式LLM工具调用自动触发 + LLM智能总结 + 搜索
搜索方式grep HISTORY.md关键词搜索向量搜索 + 关键词

CountBot 行式存储示例:

2026-02-22|web-chat|用户询问天气API方案;决定使用OpenWeatherMap;缓存策略选Redis
2026-02-22|telegram|用户要求每天早上9点发送日报;已创建cron任务

3. Channels (渠道支持)

渠道NanoBotCountBotOpenClaw
Telegram
Discord✅ 深度集成
WhatsApp
Slack
Feishu
DingTalk
QQ
Signal
iMessage
Web UI✅ Vue 3✅ WebChat
总计9615+

4. Tools (工具系统)

工具类型NanoBotCountBotOpenClaw
文件操作4个4个
Shell✅ PTY支持
Web2个1个✅ browser-tool
浏览器✅ Puppeteer集成
Canvas✅ 可视化工作区
Cron
Discord Actions✅ 消息/频道/版主
Sessions✅ 会话管理
Subagents✅ 深度嵌套
Terminal✅ 终端集成
总计~81374+

5. Security (安全机制)

特性NanoBotCountBotOpenClaw
工作空间限制
沙箱✅ 完整沙箱
危险命令检测基础详细模式✅ 策略管道
命令白名单
审计日志
API密钥加密✅ Fernet✅ OAuth轮换
远程认证渐进式安全✅ 配对认证
限流令牌桶
Auth Profiles✅ 多配置轮换
Failover✅ 自动故障转移

四、技术栈对比

组件NanoBotCountBotOpenClaw
Web框架✅ FastAPI✅ Express
数据库SQLiteSQLite + PG✅ SQLite
ORM✅ SQLAlchemy
前端✅ Vue 3✅ React
WebSocket
配置管理Pydantic Settings✅ Pydantic v2
日志LoguruLoguru
LLM统一接口LiteLLMLiteLLM✅ @mariozechner/pi-ai
定时任务CroniterCroniter
浏览器自动化✅ Puppeteer
沙箱✅ Docker/Podman
插件系统✅ 完整SDK

五、部署方式对比

方式NanoBotCountBotOpenClaw
CLInanobot agentpython start_app.pyopenclaw agent
Docker✅ Compose✅ Dockerfile
桌面应用start_desktop.py✅ 原生应用
Web UIhttp://localhost:8000✅ WebChat
Daemon服务✅ systemd/launchd
图形化配置✅ Web界面✅ 向导
远程访问自动密码保护✅ 配对认证

六、性能对比

指标NanoBotCountBotOpenClaw
内存占用>100MB~200MB~300MB
启动时间~30s~5s~3s
代码复杂度
响应延迟中等极低
并发处理异步异步+队列异步+Lane队列
缓存支持✅ Context缓存

七、适用场景

场景NanoBotCountBotOpenClaw
学习Agent原理
快速原型开发
中文个人助手
生产Web应用
多渠道国际化
国内企业应用
边缘设备部署
需要图形界面
浏览器自动化
Discord深度集成
企业级部署
插件开发

八、核心差异总结

NanoBot 的优势

  1. 极简设计: ~11K行代码,易于理解和修改
  2. 研究友好: 代码清晰,适合学习Agent原理
  3. MCP支持: Model Context Protocol
  4. 多渠道: 9个渠道,国际化支持好
  5. 轻量级: 内存占用低,适合个人使用

CountBot 的优势

  1. 中文优先: 12种性格系统,深度适配国产大模型
  2. 生产级: 完整的Web UI、数据库、审计日志
  3. 智能记忆: 自动总结+关键词搜索
  4. 流式响应: WebSocket实时推送工具进度
  5. 安全完善: 多层安全机制,API密钥加密
  6. 技能丰富: 10种内置技能,开箱即用
  7. 图形化配置: 无需编辑配置文件

OpenClaw 的优势

  1. 企业级功能: 74个工具,15+渠道
  2. 浏览器自动化: 内置Puppeteer
  3. Canvas可视化: 可视化工作区
  4. 多级重试: 32-160次重试,Auth Profile轮换
  5. 沙箱隔离: 完整的Docker/Podman沙箱
  6. 插件生态: 完整的插件SDK
  7. 原生应用: macOS/iOS/Android原生体验
  8. Thinking Levels: 流式思考输出
  9. 深度Discord集成: 消息/频道/版主操作
  10. Failover机制: 自动故障转移

九、选择建议

需求推荐方案
学习研究NanoBot
中文个人助手CountBot
生产Web应用CountBot
企业级部署OpenClaw
Discord深度集成OpenClaw
浏览器自动化OpenClaw
简单易用NanoBot/CountBot
功能最全OpenClaw
快速原型NanoBot
多渠道国际化NanoBot/OpenClaw

十、总结

代码规模

  • 最轻量: NanoBot (~11K行)
  • 中等: OpenClaw (~205K行)
  • 最完整: CountBot (~426K行)

功能特性

  • 研究学习: NanoBot
  • 中文友好: CountBot
  • 企业级: OpenClaw

技术选择

  • Python生态: NanoBot, CountBot
  • TypeScript生态: OpenClaw
  • Go生态: PicoClaw
  • Rust生态: ZeroClaw

最终推荐

  • 初学者/研究者: NanoBot
  • 中文用户: CountBot
  • 企业/技术用户: OpenClaw