Skip to main content

GoClaw 调研笔记

本文为 GoClaw 开源项目的调研笔记。GoClaw 是用 Go 语言编写的多租户 AI Agent 网关,是 OpenClaw 的 Go 重写版,在安全性、性能和可运维性上做了深度改进。

开源地址:https://github.com/nextlevelbuilder/goclaw

官方网站:https://goclaw.sh / 文档:https://docs.goclaw.sh

当前版本:v0.5.0(2026 年 3 月)+ v3 架构重构(2026 年 4 月)

这篇文章说了什么

GoClaw 是 OpenClaw 的 Go 重写版——把原来基于 Node.js 的 AI Agent 网关用 Go 重写为 ~25MB 的单一静态二进制,启动 <1s,能在 $5 VPS 上运行。它连接 LLM 和真实世界:用户可以通过 Telegram、Discord、Slack、WhatsApp、飞书、Zalo 等 7 个即时通讯渠道跟 AI Agent 对话,Agent 背后能调用 30+ 内置工具。

GoClaw 最核心的差异化卖点是企业级安全:5 层安全防护(限流 → 注入检测 → SSRF 防护 → Shell 模式拦截 → AES-256-GCM 加密),PostgreSQL Row-Level Security 实现数据库层的多租户隔离,这是其他 Agent 框架很少做到的。

2026 年 4 月推出的 v3 架构重构引入了 8 阶段 Agent 流水线(context → history → prompt → think → act → observe → memory → summarize)、3 级记忆系统(工作记忆 → 情景记忆 → 语义记忆)、知识库(Wiki 链接 + 混合搜索)和自进化系统,把 GoClaw 从小型 Agent 网关升级为完整的企业 AI Agent 平台。

有意思的是,GoClaw 还提供 Desktop Lite 版——用 SQLite 替代 PostgreSQL,打包成原生桌面应用(Wails + React),不开 Docker 不开数据库就能在本地跑 Agent。

观后感

  • Go 语言做 Agent 网关是一个被低估的选择:单二进制、零依赖、启动 <1s、goroutine 原生并发——运维体验比 Python/Node.js 好太多
  • 多租户是 AI Agent 平台化的前提:如果每个用户/组织的 agent 数据不能隔离,就永远只能做单用户玩具
  • v3 的 8 阶段流水线是成熟 Agent 架构的范本,每个阶段可插拔,值得学习
  • 自进化(Self-Evolution)这个想法很大胆——Agent 收集自己的指标 → 分析改进建议 → 自动调整,虽然加了 guardrail 只允许改风格和能力描述,不改身份和核心目的
  • CC BY-NC 4.0 许可证意味着商用需要单独授权,这是一个需要注意的点
  • 1500+ commits 但项目才 3 个月——迭代速度极快

一、项目背景与定位

1.1 从 OpenClaw 到 GoClaw

GoClaw 是 OpenClaw 的 Go 重写版。OpenClaw 基于 Node.js 生态,在 Agent 网关领域有一定知名度(支持 23+ 渠道、35+ 模型),但存在几个痛点:

  • Node.js 运行时依赖重,冷启动慢(>5s)
  • 安全性不够精细(CVE-2026-25253 漏洞暴露了 40K+ 实例)
  • 缺少原生的多租户支持
  • 并发模型受限(单线程事件循环)

GoClaw 的解决方案:用 Go 重写并在安全性和多租户上做深度改进

维度OpenClawGoClaw
语言TypeScript/Node.jsGo 1.26
二进制大小28MB + Node 运行时~25MB 单一静态二进制
启动时间>5s<1s
多租户PostgreSQL RLS 原生隔离
安全基础5 层防护 + CVE 修复
并发单线程事件循环Goroutine 原生并发
许可证开源CC BY-NC 4.0(非商用)

1.2 定位

GoClaw 的定位是一个企业级 AI Agent 网关,它不是 Agent SDK(不像 DeepAgents),也不是 Agent 产品(不像 DeerFlow),而是一个连接 LLM 与通讯渠道的中间层——用户在 Telegram/Discord 里说话,GoClaw 路由给对应的 Agent,Agent 调 LLM 处理后再通过渠道返回。

它解决的核心问题是:"我有一个 AI Agent,怎么让团队/客户通过日常用的通讯工具跟它交互,同时保证数据安全?"


二、8 阶段 Agent 流水线(v3)

v3 架构的核心创新:把 Agent 的执行过程标准化为 8 个可插拔的阶段:

context → history → prompt → think → act → observe → memory → summarize

2.1 各阶段职责

阶段职责关键技术
context组装上下文:加载 System prompt、Bootstrap 文件(SOUL.md、IDENTITY.md、USER.md)、当前会话信息多文件拼接,字符限制截断
history加载对话历史,区分不同 session,处理多轮对话Session key 路由
prompt构建最终发给 LLM 的完整 prompt,支持 4 种模式Section gating + Cache boundary 优化
thinkLLM 推理调用,支持 extended thinking / reasoningAnthropic 原生 SSE + Prompt Caching
act执行 LLM 返回的 tool calls30+ 工具 + MCP + 自定义工具
observe观察工具执行结果,决定是否继续 think-act 循环结果注入 context
memory从对话中提取记忆,3 级记忆更新内存刷新 + Consolidation worker
summarize对话过长时自动压缩历史Mid-loop compaction(>75% 触发)

2.2 四种 Prompt 模式

Full Mode(完整模式)     → 加载所有 bootstrap 文件 + 完整历史
Task Mode(任务模式) → 精简 prompt,聚焦当前任务
Minimal Mode(最小模式) → 仅必要的上下文
None Mode(无 prompt 模式) → 不注入 system prompt

支持 per-agent 和 per-session 粒度切换,自动根据上下文窗口使用率动态降级。

2.3 Prompt Caching

利用 Anthropic 的 prompt caching 机制,在重复调用时缓存 system prompt 和 bootstrap 文件,最高可节省 90% 的 API 成本

v3 新增了 cache-boundary markers,精确控制哪些内容进缓存、哪些不进——system prompt 天然可缓存,对话历史不可缓存。


三、3 级记忆系统

3.1 记忆层级

L0 — 工作记忆(Working Memory)
│ 当前会话的对话历史,实时读写

L1 — 情景记忆(Episodic Memory)
│ 会话摘要,由 consolidation worker 异步生成

L2 — 语义记忆(Semantic Memory)
│ 知识图谱,实体-关系抽取 + pgvector 向量搜索

持久化存储(PostgreSQL)

3.2 Consolidation Workers

后台异步运行的 Worker 负责把对话"消化"成结构化记忆:

  • Episodic Worker:生成会话摘要
  • Semantic Worker:从对话中提取实体和关系,构建知识图谱
  • Dreaming Worker:从记忆中提炼更抽象的洞察(类似"回顾和反思")
  • Dedup Worker:去重,避免记忆冗余

3.3 记忆刷新(Memory Flush)

当会话 token 使用率超过阈值(默认 75%)时,自动触发:

  1. 把近期对话冲洗到记忆系统
  2. 调用 LLM 生成压缩摘要
  3. 用摘要替换原始对话历史(保留最后几条消息)

四、知识库(Knowledge Vault)

4.1 核心概念

GoClaw 的 Knowledge Vault 是一个文档注册中心 + 双向链接 + 混合搜索系统:

文档(Document)
├── [[wikilink]] 双向链接,形成文档网络
├── LLM 自动摘要(每个文档入库时自动生成)
├── 语义自动链接(vault enrich worker 自动发现相关文档)
└── FTS(全文搜索)+ pgvector(语义搜索)混合检索

4.2 文件系统同步

Vault 与磁盘文件保持同步,修改磁盘上的 Markdown 文件后 Agent 自动感知。这让 Agent 可以:

  • 把研究成果持久化到 Vault
  • 通过 [[wikilinks]] 在文档间建立关联
  • 后续对话中检索之前积累的知识

五、Agent 团队与编排

5.1 Agent 类型

类型说明适用场景
Open Agent每个用户有独立的对话历史和 USER.md个人助手
Predefined Agent所有用户共享核心 personality,仅 USER_PREDEFINED.md 按用户区分固定角色的 Bot(FAQ、客服)

5.2 委托(Delegation)机制

三种委托模式:

模式行为适用场景
Sync父 Agent 等待子 Agent 完成后继续需要结果的任务
Async父 Agent 派发任务后不等待通知、日志类任务
Bidirectional父子之间可以双向通信复杂协作

委托通过 Agent Link(显式的权限链接)建立,配合 BatchQueue[T] 实现并行任务等待。

5.3 编排模式

Auto(自动)    → Agent 自己决定何时 delegation(默认)
Explicit(显式) → 用户显式指定 delegation 策略
Manual(手动) → 用户在 Dashboard 手动管理任务

5.4 Summoning(召唤)

一个有趣的创新:用 LLM 根据一段自然语言描述自动生成一个新 Agent 的 personality 文件(SOUL.md、IDENTITY.md、USER.md)。

流程:

  1. 用户输入 Agent 描述(比如"一个擅长 Python 代码审查的 Agent")
  2. 后台触发 Summoning → Agent 状态变为 summoning
  3. LLM 生成 personality 文件
  4. Agent 状态变为 active

六、安全体系

GoClaw 的核心卖点,5 层防护:

Layer 1: Rate Limiting(限流)
│ IP 级别 + API key 级别 + 全局限流

Layer 2: Injection Detection(注入检测)
│ Prompt injection + SQL injection 检测

Layer 3: SSRF Protection(SSRF 防护)
│ 防止 Agent 通过 web_fetch 访问内网资源

Layer 4: Shell Deny Patterns(Shell 拦截)
│ 禁止 Agent 执行危险的 Shell 命令

Layer 5: AES-256-GCM Encryption(加密)
│ API key、敏感配置加密存储

PostgreSQL Row-Level Security(数据库级隔离)

6.1 多租户隔离

PostgreSQL RLS 策略确保每个 tenant 的数据(会话、记忆、Agent 配置、API key)在数据库层面隔离,不是应用层判断,而是数据库强制执行

6.2 API Key 管理

两种认证方式:

  • Gateway Token:配置在 config.json 中,拥有完整管理员权限
  • API Key:格式 goclaw_ + 32 个十六进制字符,存储在数据库中(SHA-256 哈希 + AES-256-GCM 加密),支持权限范围控制

6.3 凭据擦除

Agent 的工具输出中包含服务器 IP、API key 等敏感信息时,自动擦除(credential scrubbing)。这是一个很多 Agent 框架忽略的细节——工具返回的错误信息可能泄露基础设施信息。


七、渠道系统

7.1 支持的渠道

渠道特点
TelegramForum topics 支持、STT 语音转文字、Bot 命令、群聊
Discord多服务器、频道管理
Slack企业 IM 集成
飞书/Lark流式消息、媒体附件(图片/文件)、@mention 解析
Zalo OA越南主流 IM 的公众号模式
Zalo PersonalZalo 个人号模式
WhatsApp原生(非 Business API)
WebSocket自定义客户端,支持 v3 RPC 协议

7.2 配对(Pairing)系统

多用户、多群组场景下的 Agent 绑定管理:

  • 一个 Agent 可以绑定到多个 Telegram 群组
  • 不同群组可以有不同的话题(topic)设置
  • Per-channel workspace isolation(每个渠道独立的工作空间)

八、工具系统

8.1 内置工具(30+)

类别工具说明
文件系统read_file, write_file, edit_file, ls, glob, grep虚拟 FS 路由
运行时exec, browserShell 执行 + 浏览器自动化
网页web_search, web_fetchBrave/DuckDuckGo 搜索 + 内容提取
记忆memory_search, memory_get, knowledge_graph_search3 级记忆 + 知识图谱遍历
媒体create_image, create_audio, tts多提供商图片/音频生成
Skillsskill_search, use_skillBM25 + 语义混合搜索
团队spawn, delegate, team_tasks子 Agent + 任务板
自动化cron, heartbeat定时任务 + 心跳监控

8.2 MCP 集成

支持 Model Context Protocol,可以把外部 MCP Server 暴露的工具桥接为 Agent 的工具。支持 stdio、SSE、HTTP 三种传输方式。

8.3 自定义工具

运行时加载自定义工具——不需要改源代码或重新编译。工具定义通过命令行模板渲染,支持加密的环境变量。


九、自进化系统(Self-Evolution)

GoClaw v3 的一个创新特性——Agent 能自我优化:

指标收集(Metrics Collection)
│ 收集 Agent 的对话质量、用户反馈、任务完成率

建议分析(Suggestion Analysis)
│ 分析指标,生成改进建议("沟通风格太正式了"、"技术解释可以更深入")

自动调整(Auto-Adaptation)
│ 在 guardrails 限制下自动修改 SOUL.md / CAPABILITIES.md

不能改的:Agent 的身份、名称、核心目的
可以改的:沟通风格、专业知识描述

这个设计让预定义 Agent 在长期运行中越用越好(前提是 guardrails 足够严格)。


十、Desktop Lite 版

GoClaw 还提供了一个桌面版本,面向单用户场景:

维度Lite(Desktop)Standard(Server)
数据库SQLitePostgreSQL
Agent 数量最多 5无限制
Teams最多 1 个(5 人)无限制
记忆搜索FTS5 文本pgvector 语义
通讯渠道7 个
知识图谱完整
多租户完整
安装方式curl 一键脚本Docker / 源码

桌面版使用 Wails v2 + React 构建为原生 .app/.exe,~30MB,SQLite 数据库零配置。


十一、Hooks 系统

7 个生命周期事件,支持同步和异步 HTTP 回调:

Hook 事件触发时机
SessionStart新会话开始
UserPromptSubmit用户提交消息
PreToolUse工具执行前
PostToolUse工具执行后
StopAgent 停止
SubagentStart子 Agent 启动
SubagentStop子 Agent 完成

每个 Hook 都有独立的超时、重试和 SSRF 防护,支持审计日志。Hooks 可以用来做 Quality Gates——比如 PreToolUse 检查工具参数是否合法,不合法就拦截。


十二、部署与运维

12.1 部署方式

# 方式 1:Docker Compose(推荐生产)
git clone https://github.com/nextlevelbuilder/goclaw.git
./prepare-env.sh
make up # 启动所有服务

# 方式 2:单二进制
go install github.com/nextlevelbuilder/goclaw@latest
goclaw onboard # 交互式配置向导
./goclaw

# 方式 3:Desktop Lite(Mac)
curl -fsSL https://raw.githubusercontent.com/nextlevelbuilder/goclaw/main/scripts/install-lite.sh | bash

12.2 可选服务

服务Flag用途
Headless ChromeWITH_BROWSER=1浏览器自动化、截图
OpenTelemetryWITH_OTEL=1LLM 调用追踪
Docker SandboxWITH_SANDBOX=1隔离的代码执行环境
RedisWITH_REDIS=1缓存
TailscaleWITH_TAILSCALE=1私有网络暴露

12.3 可观测性

  • 内置 LLM 调用追踪(spans + prompt cache 指标)
  • OpenTelemetry OTLP 导出
  • Web Dashboard 可视化 Agent、渠道、Vault、追踪

十三、与其他 Agent 网关的对比

维度GoClawDeepAgentsDeerFlow
定位AI Agent 网关(连接 LLM + 渠道)Agent Harness SDKAgent 产品平台
语言GoPythonPython + Node.js
二进制单二进制 ~25MBpip installDocker / 本地
通讯渠道7 个(IM 集成)
多租户✅ PostgreSQL RLS
安全5 层 + CVE 修复基础权限控制沙箱隔离
部署难度低(单二进制)中(LangSmith 部署)中(Docker)
许可证CC BY-NC 4.0MITMIT

十四、核心经验总结

  1. Go 语言是做 Agent 网关的理想选择:单二进制部署、零运行时依赖、goroutine 原生并发——运维复杂度降了一个数量级
  2. 多租户要从数据库层做起:应用层的 if user_id == x 判断不靠谱,PostgreSQL RLS 才是真正隔离
  3. 8 阶段流水线是 Agent 架构的成熟范本:把 context→think→act→observe→memory→summarize 标准化为可插拔阶段,每个阶段独立优化
  4. Agent 的记忆不应该是简单的聊天记录:3 级记忆(工作→情景→语义)更接近人类的记忆模型,能让 Agent 真正"学到东西"
  5. 安全性不能是事后补丁:5 层安全防护 + 凭据自动擦除 + 数据库隔离——这些应该在设计阶段就考虑
  6. CC BY-NC 许可证是双刃剑:阻止了商用滥用,但也限制了企业采用。如果需要商用,需要联系官方获取授权
  7. Desktop Lite 版降低了体验门槛:不开 Docker、不配数据库就能跑 Agent,对个人用户和评估者非常友好