Skip to content
Dormon's Hideaway
Go back

Agent架构:从单体到多租户

来源:X @idoubicc

2026 年初,自托管 AI 助理 OpenClaw 走红 [0],其 SOUL.md 架构形成的生态被描述为”病毒式成功”[5]。素材作者从事 Agent 基础设施一年,为 500 多个用户提供托管,最终选择不修改 OpenClaw,而是从底层重写框架 FastClaw [0]。将这次演进理解为”Node.js 换成 Go”会遗漏关键:OpenClaw 的局限源于它默认”单机单操作者”信任模型——文档写明 Gateway 主机上 exec 默认安全级别为 full、审批提示默认关闭 [26],沙盒默认不启用 [28,35]——FastClaw 的设计则围绕”在互不信任的用户之间隔离”这一目标展开 [0]

五个被验证的产品方向

OpenClaw 在产品层面的探索被证明有效,素材总结了五个方向 [0]

多端接入。OpenClaw 通过网关接入 Telegram、Discord、Slack、WhatsApp、Signal、iMessage、飞书、Matrix、Microsoft Teams 等 IM,以及 Web Chat 和 CLI [0]。渠道并非简单转发器:在 openclaw.json 中,Bindings 机制可以精确控制哪个渠道的消息流向哪个 Agent [66],实现”飞书上是严谨的工作流助手、Telegram 上是毒舌树洞”的区分 [66]

SOUL.md 人格机制。SOUL.md 用自然语言定义 Agent 的人格、语气与价值观,每次会话启动时自动加载 [3,13,9]。模板鼓励 Agent 自我修改:“This file is yours to evolve”[9,3]。人设与底层模型解耦,同一份 SOUL 可配不同模型 [0]。素材声称这会带来”留存率比纯工具型 Agent 高几倍”[0],但公开讨论中无数据支撑该数字;讨论集中在两个实际问题:token 成本(每个 token 每次消息都会进上下文,建议控制在 400-500 token 以内 [4])和攻击面(见下文)[3]

分层记忆。长期记忆收敛在 MEMORY.md,逐日明细存于 memory/YYYY-MM-DD.md [11,5,13]。社区常用 SOUL 模板要求每个会话先读 SOUL.md、USER.md 及当天和昨天的日记,主会话再读 MEMORY.md [11];按 token 估算,读当天和昨天的日记各需 1500-3000 token [5]。素材主张将每日明细移出上下文,靠检索按需取用以节省 token [0]。workspace 中还有 IDENTITY.md(身份)、TOOLS.md(环境)、AGENTS.md(行为规则)、HEARTBEAT.md(定时任务清单)等文件 [7,13]

主动通知与对话式安装。HEARTBEAT.md 是一份 cron 检查清单 [13],配合定时任务使 Agent 从”你问我答”变为主动提醒 [0]。技能安装发生在对话中,例如说”帮我装个翻译技能”,Agent 会自行搜索、安装、配置 [0]

多 Agent 协作。不同 Agent 拥有独立的记忆、灵魂文件与认证/模型绑定,互不混淆 [66,8],解决单 Agent 模式下的上下文污染、人设混乱与 token 浪费 [70]。Agent 之间可通过 sessions_send 等内线机制协作 [66]

单体进程、本地文件系统与”单操作者”默认值

OpenClaw 是 Node.js 应用 [40],所有 Channel、Plugin、Agent 的运行时挂在同一个 Node.js 进程里 [0]。一个插件内存泄漏会拖垮整个 Gateway,一个渠道超时会卡住所有渠道 [0]

配置与状态都保存在本地。~/.openclaw/openclaw.json 管理所有 Provider、渠道、插件与 Skill 配置 [30,0];Session 存 JSONL,媒体与 cron 运行记录持续增长 [41]。素材指出,多 Pod 无法共享这份本地配置与会话,部署形态是”有状态进程”,缩容、迁移、滚动更新都得保留本地数据 [0]

资源占用具体表现为:Gateway 进程空闲时占用 400-800MB [46]openclaw-message 子命令在 4GB 服务器上可能占用 500MB+ 后 OOM(v2026.3.7 起的回归)[38];典型配置合计约 630MB [44];多 Agent 加本地视觉模型时基线可达 4-8GB [47]。素材自测 node_modules 超过 800MB、构建需要 3 分钟 [0],官方也以”预集成 Node.js 运行时与全部依赖”的整包形式分发 [43]

隔离粒度以 Agent 为单位,而非用户。OpenClaw 的隔离(记忆、工作区、会话历史)围绕 Agent 设计 [66,8],但没有”account”这层抽象。若要让两个互不信任的用户共享部署,只能”一人一 Agent”单独开实例,成本随用户数线性上涨 [0]

安全默认值反映了信任模型。文档显示:Gateway 主机上 exec 默认安全级别为 full、审批提示默认 off [26];沙盒默认关闭,只有显式配置 agents.defaults.sandbox 才启用 [28,35];另有提升权限模式可在策略宽松时跳过审批 [27]。开箱即用的 OpenClaw 允许 Agent 在宿主机上执行任意命令,这在只有一人操作时是合理设计 [0,26],但若多人平台,exec 沙盒、密钥加密、租户级 RBAC、注入防护每一层都需要补齐 [0]

攻击面来自该信任模型:SOUL.md 每次会话自动加载,Agent 又有自我修改权限,攻击者可通过诱导 Agent 将恶意指令写入 SOUL.md,植入跨会话的持久后门 [3]。安全研究对公开网关的测试中,91% 的系统提示词与记忆文件可被成功提取 [3];让 Agent 自行修改动态 system prompt 的模式被社区普遍认为存在注入风险 [10];学界已开始对 OpenClaw 做系统化的黑盒攻防基准 [50]

FastClaw:无状态与隔离优先的重构

FastClaw 是 Go 编写的轻量 Agent 运行时,单二进制、cloud-ready、内置沙盒与多 Agent 支持 [2]。安装脚本只做一件事:按平台下载一个二进制放入 ~/.local/bin [1]。每个 Agent 有自己的 SOUL.md、记忆、技能与工具,FastClaw 负责 LLM 通信、工具执行、沙盒隔离与会话管理 [2];平台层管理 agents/models/skills/users/API keys,并支持按 Agent 裁剪模型、技能、渠道与调度器 [2]。仓库里还带一个 openclaw-plugin-bridge 目录,用于兼容 OpenClaw 的 TypeScript 插件生态 [2,0]

存算分离:让状态离开进程。Gateway 无状态,任意 Pod 可处理任意请求;状态统一进数据库(本地 SQLite、生产 Postgres,一个环境变量切换),Skills 与文件进 S3 由多 Pod 共享 [0]。这直接回应了”配置和会话锁死在本地文件系统”的问题 [0]

多租户从第一行代码开始。会话以 (user_id, agent_id, channel_type, chat_id) 四元组为 key,同一个 Agent 被 100 个用户使用时,各自看到自己的记忆与历史 [0]。配置按 Scope 四层继承、内层覆盖外层,管理员配置一个默认模型,用户可按需覆盖 [0]X-Fastclaw-End-User 头让 SaaS 层透传终端用户身份,FastClaw 自动为每个 (api_key, external_id) 组合创建内部隔离用户 [0]

插件与外部依赖的容错。插件改为以 JSON-RPC 子进程运行,崩溃不会拖垮 Gateway,可自动重启,默认没有文件系统访问权限 [0]。对外部依赖(LLM、Web Search、图片生成等)统一做 Provider + Fallback Chain:主 Provider 限流或宕机时自动切换备用 [0]。这种”失败自动转移”在 LLM 网关产品中已有标准做法:同一 API 调用内自动换 Provider 重试 [60]、按能力匹配 fallback 模型在主模型故障时接管 [61]、按置信度等信号决定是否升级模型 [63],商业平台的 LLM 智能路由同样内置 Failover 机制 [57]。素材作者自述”同样的硬件能扛 10 倍流量”[0],这是作者的经验性主张。

A2A:官方仍是 feature request

素材将 A2A(Agent-to-Agent)列为 OpenClaw 的既有能力 [0],但更准确的说法是:OpenClaw 官方仓库中”添加 A2A 协议支持”仍是一则未指派开发者的 feature request [14]。当前能用的实现全部来自社区:一个 A2A Gateway 插件实现了 A2A v0.3.0 协议(由 Google 于 2025 年 4 月提出,现由 Linux Foundation 托管)[22,19,16],支持 Agent Card 发布、任务创建/取消/结果流式、双向通信与自动发现 [22],可让不同机器上的 bot 点对点通信 [15];另一个 openclaw-a2a Skill 实现的是”受 Google A2A 项目启发”的自研轻量变体 openclaw-a2a-lite-v1 [20];还有社区直接在 OpenClaw 上按 Google A2A 的消息信封(Envelope)与签名校验接入 [21]。因此,OpenClaw 生态的 A2A 能力由插件拼出,实现口径不一 [14,20,22]。协议定位上,MCP 解决 Agent 与工具之间(纵向)的通信,A2A 解决 Agent 与 Agent 之间(横向)的协作,两者互补 [14,18]

作者沉淀的四条原则

素材作者将这次重构的教训总结为四条可迁移的原则 [0]

多租户必须在架构层面设计。OpenClaw 单租户起步、后期补多租户近乎重写;FastClaw 从第一行代码就设计了 (user_id, agent_id) 隔离模型 [0]

状态与内容分离存储。状态(Session、用户、权限)进数据库,文件系统只存”内容”(代码、文档、配置)[0]

外部依赖必须配置 Fallback。任何外部依赖挂掉就瘫痪的 Agent 无法用于生产 [0];这也是 LLM 网关产品的通用设计 [60,61]

控制 Token 成本。SOUL 要精简、记忆按需检索、长对话定期摘要 [0];素材引用的实践把 SOUL 压到 400-500 token 以内 [4]

原文更正:素材称 OpenClaw 支持 A2A 协议,实际官方仓库仅有一则未实现的 feature request(issue #6842),现有 A2A 能力全部来自社区插件,实现口径不一(Google A2A v0.3 完整实现与自研轻量变体并存)。[14]

参考来源

  1. 素材原文(见文首来源链接)
  2. raw.githubusercontent.com
  3. GitHub - fastclaw-ai/fastclaw: Multi-Agent Framework · GitHub
  4. OpenClaw 的灵魂设计:SOUL.md 如何让 AI Agent 拥有人格 | VerySmallWoods
  5. OpenClaw SOUL.md Guide: Write One That Works
  6. The Ultimate Guide to OpenClaw SOUL MD: Architecture, Products, and Future Trends
  7. OpenClaw SOUL.md Explained: Build the Perfect AI Personality in 2026
  8. OpenClaw 核心八大 MD 文件 - 哥本哈士奇(aspnetx) - 博客园
  9. OpenClaw深度测评解析_财富号_东方财富网
  10. SOUL.md template - OpenClaw Docs
  11. Openclaw Insights: SOUL.md, Dynamic Prompts, Memory Handling | Greg Nash posted on the topic | LinkedIn
  12. Mastering OpenClaw on AWS: Fine-Tuning Personality, Memory, and Soul - DEV Community
  13. 10 SOUL.md Practical Cases in A Guide for MoltBot (CLAWDBOT)
  14. OpenClaw Workspace Files: MEMORY, AGENTS, and SOUL Guide | Stack Junkie
  15. Feature Request: Add A2A (Agent-to-Agent) Protocol Support · Issue #6842 · openclaw/openclaw · GitHub
  16. 🚀OpenClaw高级玩法之跨机器跨Gateway交互:自研A2A协议插件打通多Agent互相通信,Token节省50%!OpenClaw A2A Gateway Plugin实测+部署保姆级教程
  17. 协议介绍 – A2A Protocol - Agent智能体通信开放标准
  18. Google A2A 智能体协议:解读+实战演示
  19. A2A 协议深度解析:让所有 AI Agent 说同一种语言 - warm3snow - 博客园
  20. 什么是 Agent2Agent (A2A) 协议?| IBM
  21. GitHub - marketclaw-tech/openclaw-a2a: OpenClaw A2A Skill - Agent-to-Agent communication protocol for OpenClaw agents · GitHub
  22. Implementing A2A Protocol for Multi-Agent Communication - DEV Community
  23. OpenClaw A2A Gateway Plugin - Agent-to-Agent Protocol for Multi-Agent Collaboration | a2a mcp
  24. Google A2A Protocol: Agent-to-Agent Communication Guide
  25. Google A2A protocol : Log Monitoring Agent - DEV Community
  26. What is Google Agent-to-Agent (A2A) Protocol and How to Use it?
  27. Exec 审批 - OpenClaw
  28. 提升权限模式 - OpenClaw
  29. 沙箱隔离 - OpenClaw
  30. [Bug]: Windows exec 审批问题 · Issue #59774 · openclaw/openclaw · GitHub
  31. OpenClaw 2026.3.2 配置教程:解锁命令执行权限(tools.profile 详解) - 岚天逸见 - 博客园
  32. OpenClaw避坑实战:部署、权限、安全、性能一次讲透_人工智能_人工智能AI技术-DAMO开发者矩阵
  33. Openclaw useless now after update · community · Discussion #188842
  34. Exec approvals - OpenClaw
  35. [Bug]: Update 2026.4.1 broke exec completely for existing setups — full day of work lost · Issue #59006 · openclaw/openclaw · GitHub
  36. Sandboxing
  37. Bypassing Exec Sandbox Restrictions in OpenClaw
  38. Permissions, Sandbox & Security Settings - OpenClaw Guide
  39. openclaw-message OOM on 4GB servers since v2026.3.7 · Issue #41778 · openclaw/openclaw · GitHub
  40. 安装程序内部机制 - OpenClaw
  41. Node.js - OpenClaw Docs
  42. OpenClaw Server Requirements (Node.js, ARM64, Docker) – HowOpenClaw
  43. 【2026最新】OpenClaw安装与运行教程,WINDOWS+MAC保姆级安装 …
  44. OpenClaw汉化版部署实战:环境配置与避坑指南
  45. openclaw-specs.md
  46. Node.js - OpenClaw Docs
  47. OpenClaw Hardware Requirements: Minimum, Recommended, and Production Specs | SFAI Labs
  48. Troubleshooting High Memory Usage in Multi-Agent OpenClaw
  49. 测试 - OpenClaw
  50. OpenClaw创始人分享32款大模型真实测试排名 - U深搜
  51. formalizing and benchmarking attacks on openclaw for Personalized Local …
  52. InternLM/WildClawBench: An in-the-wild benchmark for AI …
  53. OpenClaw Agent Evaluation Benchmark - UBOS
  54. Why OpenClaw Beats Every AI Framework Right Now
  55. What a PinchBench-Cyber Security Benchmark for OpenClaw Should …
  56. v2026.7.1 - OpenClaw
  57. ai-agent-interview-guide/docs/06-面试问答集/README.md at main · bcefghj/ai-agent-interview-guide · GitHub
  58. 使用LLM智能路由提升推理效率-人工智能平台 PAI(PAI)-阿里云帮助中心
  59. 智能体架构:构建 AI 驱动的开发框架
  60. 大模型面试100题:涵盖LLM应用开发全流程,助你轻松拿捏技术要点_人工智能_Python怎么学啊-AtomGit开源社区
  61. Routing | LLM Gateway Docs
  62. LLM Fallback - Cognigy Documentation
  63. Setting up a Model Router ~ AnythingLLM
  64. Real-Time Customer Support Agent with Fallback Routing | DigitalOcean
  65. How to Set Up an AI Model Router: An 8-Step Walkthrough | MindStudio
  66. Conversation Builder — Routing AI Agents - Route Consumers Conversationally | LivePerson Developer Center
  67. openclaw-tutorial/docs/day9-multi-agent.md at main · datawhalechina/openclaw-tutorial · GitHub
  68. 创建多代理协作 - Amazon Bedrock
  69. Google Cloud 中的多代理 AI 系统  |  Cloud Architecture Center  |  Google Cloud Documentation
  70. Claude Code 多 Agent 协同机制深度解析:专业 Agent 如何团队协作 - iTech - 博客园
  71. OpenClaw 2026 多代理(Multi-Agent)协同工作最全最新配置手册——彻底解决单代理模式下的上下文污染、人设混乱、Token消耗过高的核心痛点-腾讯云开发者社区-腾讯云

Share this post:

Previous Post
AI 写作去味:机理与操作方法
Next Post
斯坦福STORM研究法的机制与四提示词