Skip to content
Dormon's Hideaway
Go back

从OpenClaw到FastClaw:Agent框架的设计演进

来源:X @idoubicc

构建Agent基础设施时,仅将所有功能集成到一个进程中并非最佳实践。

OpenClaw的创新与局限

OpenClaw作为一款自托管的AI助理,在产品方向上展现了前瞻性,带来了多项创新,例如:

然而,OpenClaw的架构也存在显著不足,使其难以作为生产级多租户平台使用:

  1. 缺乏平台级多租户: 隔离粒度停留在Agent层面,而非用户或账户层面,导致难以安全高效地服务多个互不信任的用户。
  2. 单点故障: 所有组件运行在单一Node.js进程中,任何一个组件(如插件或通道)的问题都可能导致整个系统崩溃。
  3. Token消耗高: 默认上下文偏重,SOUL.mdMEMORY.md等引导文件和对话历史会不断增加提示词长度,导致Token消耗失控。
  4. 资源占用大: Node.js环境和大量npm依赖导致内存占用较高,对硬件要求较高。
  5. 云原生不友好: 配置和状态主要存储在本地文件系统,难以实现水平扩展、动态伸缩和滚动更新等云原生特性。
  6. 依赖臃肿: 庞大的npm依赖树导致构建时间长,且依赖管理复杂。
  7. Web UI体验不佳: 虽然配置底层与CLI一致,但用户界面粗糙,配置体验不流畅。
  8. 安全模型不足: 主要针对单机单操作者设计,缺少多用户场景所需的沙盒隔离、密钥加密、租户级RBAC和注入防护机制。

FastClaw的设计原则与改进

FastClaw旨在解决OpenClaw的痛点,强调轻量、快速、云原生,并在其官方网站上提出“The fastest way to run your own AI agents”,并支持“Single binary”、“Any LLM”、“Multi-agent”、“Sandbox”和“Cloud-ready”等特性。

其核心设计包括:

1. 云原生优先

2. 多租户与RBAC

FastClaw采用四层配置继承机制,实现了灵活的多租户管理:

3. 会话隔离

FastClaw通过将Session key定义为(user_id, agent_id, channel_type, chat_id)四元组,确保每个Session的记忆和历史独立,即使同一Agent被多人使用也互不影响。同时,X-Fastclaw-End-User Header允许SaaS层透传终端用户身份,实现零代码多租户接入。

4. 高并发支持

Go语言的goroutine使得FastClaw能高效处理并发会话。关键在于Session是无状态的,状态存储在数据库中,每次请求从DB加载上下文,处理后再写回,从而实现任意Pod处理任意请求和水平扩展。

5. 单二进制分发

FastClaw采用Go编译为原生机器码,无node_modules,无运行时依赖,无构建步骤,极大地简化了部署和分发。

6. 低内存占用

相较于OpenClaw(Node.js),FastClaw(Go)的闲置内存占用显著低于OpenClaw,且Go语言没有GC停顿和JIT预热,在相同硬件条件下能承载10倍以上流量。

7. 插件隔离

不同于OpenClaw插件在主进程中运行,FastClaw通过JSON-RPC子进程隔离插件,确保插件崩溃不会影响Gateway,并限制插件的文件系统访问权限。同时,提供了openclaw-plugin-bridge兼容OpenClaw的TypeScript插件生态。

8. 工具Provider的Fallback机制

FastClaw为Web Search、Image Gen、TTS等外部工具设计了统一的Provider和Fallback Chain架构。例如,主Web Search Provider(如Tavily)限流时,可自动切换到备用Provider(如SerpAPI),用户无感知,提高了系统鲁棒性。

FastClaw的架构设计与定位

FastClaw的核心架构决策是存算分离:计算层(Gateway)无状态可水平扩展,处理LLM调用、工具执行和会话管理;存储层(数据库和对象存储)作为唯一真相源,通过SQLite或Postgres持久化数据,S3存储二进制文件。

FastClaw还通过基于Scope的配置继承实现极高的灵活性,以及对所有外部依赖(LLM Provider、Tool Provider、Sandbox)的Fallback容错机制,确保系统在面临外部服务问题时仍能稳定运行。

FastClaw不仅是一个“更好的OpenClaw”,更具备以下四个递进定位:

  1. Assistant: 个人助理,可替代OpenClaw等用于日常的AI助手、Telegram Bot、飞书机器人等。
  2. Factory: Agent制造工厂,提供云平台创建个性化Agent,适合Skills创作者和提示词工程师。
  3. Runtime: Agent运行时,导出API供其他Agent产品使用,开发者可专注于前端交互,无需实现Agent Loop和Sandbox。
  4. Platform: Agent协作平台,可私有化部署作为团队版OpenClaw,共享知识库和技能。

多Agent框架设计经验总结

在开发FastClaw过程中,总结出以下关键经验:

  1. 先做单租户,但架构要预留多租户: 多租户并非功能,而是核心架构决策,越早考虑越能避免后续的重构。
  2. 存储决定一切: 避免文件系统存储状态数据,应使用数据库作为唯一真相源,以便实现多实例部署、水平扩展和数据备份。
  3. 隔离是可靠性的前提: 对于故障域不同的组件,应避免共享进程,通过子进程、沙盒或数据库事务进行隔离。
  4. Fallback是必需品: 生产级Agent必须对所有外部依赖(如LLM API、Web Search API)提供Fallback机制,以应对限流、宕机或涨价等情况。
  5. Token是钱,上下文是金: 精简SOUL文件,按需检索记忆,摘要长对话,分层说明工具,高效的上下文管理是节省Token和提升Agent性能的关键。

从单纯的开源项目到生产级平台,核心在于解决工程问题。在迭代之前,清晰地理解存算分离、多租户隔离和Fallback容错这三大原则,将大大减少开发过程中的弯路。FastClaw项目(见fastclaw.ai和GitHub仓库)正是这些经验的实践与结晶。


Share this post:

Previous Post
深度指南:从识别到解决AI写作痕迹
Next Post
斯坦福STORM法:用AI进行深度多视角研究