nextlevelbuilder/goclaw

GitHub: nextlevelbuilder/goclaw

GoClaw 是一个用 Go 构建的多租户 AI Agent 网关平台,专注于安全、并发性能和企业级多 Agent 编排。

Stars: 1524 | Forks: 448

GoClaw

多租户 AI Agent 平台

使用 Go 构建的多 Agent AI 网关。支持 20+ LLM 提供商。7 个消息通道。多租户 PostgreSQL。
单一二进制文件。经过生产环境测试。为你编排的 Agent。

文档快速开始Twitter / X

Go PostgreSQL Docker WebSocket OpenTelemetry Anthropic OpenAI License: CC BY-NC 4.0

[OpenClaw](https://github.com/openclaw/openclaw) 的 Go 移植版本,具有增强的安全性、多租户 PostgreSQL 和生产级的可观测性。 🌐 **语言:** [🇨🇳 简体中文](_readmes/README.zh-CN.md) · [🇯🇵 日本語](_readmes/README.ja.md) · [🇰🇷 한국어](_readmes/README.ko.md) · [🇻🇳 Tiếng Việt](_readmes/README.vi.md) · [🇵🇭 Tagalog](_readmes/README.tl.md) · [🇪🇸 Español](_readmes/README.es.md) · [🇧🇷 Português](_readmes/README.pt.md) · [🇮🇹 Italiano](_readmes/README.it.md) · [🇩🇪 Deutsch](_readmes/README.de.md) · [🇫🇷 Français](_readmes/README.fr.md) · [🇸🇦 العربية](_readmes/README.ar.md) · [🇮🇳 हिन्दी](_readmes/README.hi.md) · [🇷🇺 Русский](_readmes/README.ru.md) · [🇧🇩 বাংলা](_readmes/README.bn.md) · [🇮🇱 עברית](_readmes/README.he.md) · [🇵🇱 Polski](_readmes/README.pl.md) · [🇨🇿 Čeština](_readmes/README.cs.md) · [🇳🇱 Nederlands](_readmes/README.nl.md) · [🇹🇷 Türkçe](_readmes/README.tr.md) · [🇺🇦 Українська](_readmes/README.uk.md) · [🇮🇩 Bahasa Indonesia](_readmes/README.id.md) · [🇹🇭 ไทย](_readmes/README.th.md) · [🇵🇰 اردو](_readmes/README.ur.md) · [🇷🇴 Română](_readmes/README.ro.md) · [🇸🇪 Svenska](_readmes/README.sv.md) · [🇬🇷 Ελληνικά](_readmes/README.el.md) · [🇭🇺 Magyar](_readmes/README.hu.md) · [🇫🇮 Suomi](_readmes/README.fi.md) · [🇩🇰 Dansk](_readmes/README.da.md) · [🇳🇴 Norsk](_readmes/README.nb.md) ## 独特之处 - **Agent 团队与编排** — 具有共享任务板、Agent 间委托(同步/异步)和混合 Agent 发现能力的团队 - **多租户 PostgreSQL** — 每用户工作区、每用户上下文文件、加密 API 密钥 (AES-256-GCM)、隔离会话 - **单一二进制** — 约 25 MB 的静态 Go 二进制文件,无需 Node.js 运行时,<1s 启动,可在 $5 VPS 上运行 - **生产级安全** — 5 层权限系统(网关认证 → 全局工具策略 → 每 Agent → 每通道 → 仅限所有者)以及速率限制、Prompt 注入检测、SSRF 防护、Shell 拒绝模式和 AES-256-GCM 加密 - **20+ LLM 提供商** — Anthropic(原生 HTTP+SSE,支持 Prompt 缓存)、OpenAI、OpenRouter、Groq、DeepSeek、Gemini、Mistral、xAI、MiniMax、Cohere、Perplexity、DashScope、Bailian、Zai、Ollama、Ollama Cloud、Claude CLI、Codex、ACP 以及任何 OpenAI 兼容端点 - **7 个消息通道** — Telegram、Discord、Slack、Zalo OA、Zalo Personal、Feishu/Lark、WhatsApp - **扩展思考** — 每提供商思考模式(Anthropic 预算 Token、OpenAI 推理力度、DashScope 思考预算),支持流式传输 - **心跳系统** — Agent 通过 HEARTBEAT.md 检查清单定期签到,支持正常时抑制、活跃时段、重试逻辑和通道投递 - **调度与 Cron** — `at`、`every` 和 Cron 表达式,用于自动化 Agent 任务,支持基于通道的并发 - **可观测性** — 内置 LLM 调用链追踪(含 Spans 和 Prompt 缓存指标),可选 OpenTelemetry OTLP 导出 ## Claw 生态系统 | | OpenClaw | ZeroClaw | PicoClaw | **GoClaw** | | --------------- | --------------- | -------- | -------- | --------------------------------------- | | 语言 | TypeScript | Rust | Go | **Go** | | 二进制大小 | 28 MB + Node.js | 3.4 MB | ~8 MB | **~25 MB** (基础) / **~36 MB** (+ OTel) | | Docker 镜像 | — | — | — | **~50 MB** (Alpine) | | 内存 (空闲) | > 1 GB | < 5 MB | < 10 MB | **~35 MB** | | 启动 | > 5 s | < 10 ms | < 1 s | **< 1 s** | | 目标硬件 | $599+ Mac Mini | $10 edge | $10 edge | **$5 VPS+** | | 功能 | OpenClaw | ZeroClaw | PicoClaw | **GoClaw** | | -------------------------- | ------------------------------------ | -------------------------------------------- | ------------------------------------- | ------------------------------ | | 多租户 | — | — | — | ✅ | | MCP 集成 | — (使用 ACP) | — | — | ✅ (stdio/SSE/streamable-http) | | Agent 团队 | — | — | — | ✅ 任务板 + 邮箱 | | 安全加固 | ✅ (SSRF, 路径遍历, 注入) | ✅ (沙箱, 速率限制, 注入, 配对) | 基础 (工作区限制, 执行拒绝) | ✅ 5 层防御 | | OTel 可观测性 | ✅ (可选扩展) | ✅ (Prometheus + OTLP) | — | ✅ OTLP (可选构建标签) | | Prompt 缓存 | — | — | — | ✅ Anthropic + OpenAI 兼容 | | 知识图谱 | — | — | — | ✅ LLM 提取 + 遍历 | | 技能系统 | ✅ Embeddings/语义 | ✅ SKILL.md + TOML | ✅ 基础 | ✅ BM25 + pgvector 混合 | | 基于通道的调度器 | ✅ | 有界并发 | — | ✅ (main/subagent/team/cron) | | 消息通道 | 37+ | 15+ | 10+ | 7+ | | 配套应用 | macOS, iOS, Android | Python SDK | — | Web 控制台 + **桌面应用** | | 实时画布 / 语音 | ✅ (A2UI + TTS/STT) | — | 语音转录 | TTS (4 个提供商) | | LLM 提供商 | 10+ | 8 原生 + 29 兼容 | 13+ | **20+** | | 每用户工作区 | ✅ (基于文件) | — | — | ✅ | | 加密密钥 | — (仅环境变量) | ✅ ChaCha20-Poly1305 | — (明文 JSON) | ✅ 数据库中 AES-256-GCM | ## 桌面版 用于本地 AI Agent 的原生桌面应用 —— 无需 Docker、PostgreSQL 或基础设施。 **macOS:** ``` curl -fsSL https://raw.githubusercontent.com/nextlevelbuilder/goclaw/main/scripts/install-lite.sh | bash ``` **Windows (PowerShell):** ``` irm https://raw.githubusercontent.com/nextlevelbuilder/goclaw/main/scripts/install-lite.ps1 | iex ``` ### 包含内容 - 单一原生应用 (Wails v2 + React),约 30 MB - SQLite 数据库(零配置) - 与 Agent 聊天(流式传输、工具、媒体、文件附件) - Agent 管理(最多 5 个)、提供商配置、MCP 服务器、技能、Cron - 团队任务(看板和实时更新) - 从 GitHub Releases 自动更新 ### Lite vs 标准版 | 功能 | Lite (桌面版) | 标准版 (服务器) | |---------|---------------|-------------------| | Agent | 最多 5 个 | 无限制 | | 团队 | 最多 1 个 (5 成员) | 无限制 | | 数据库 | SQLite (本地) | PostgreSQL | | 记忆 | FTS5 文本搜索 | pgvector 语义 | | 通道 | — | Telegram, Discord, Slack, Zalo, Feishu, WhatsApp | | 知识图谱 | — | 完整 | | RBAC / 多租户 | — | 完整 | | 自动更新 | GitHub Releases | Docker / 二进制 | ### 从源码构建 ``` # 前提条件:Go 1.26+、pnpm、Wails CLI (go install github.com/wailsapp/wails/v2/cmd/wails@latest) make desktop-build # Build .app (macOS) or .exe (Windows) make desktop-dmg VERSION=0.1.0 # Create .dmg installer (macOS only) make desktop-dev # Dev mode with hot reload ``` ### 桌面版发布 桌面版使用带有 `lite-v*` 标签的独立版本控制: ``` git tag lite-v0.1.0 && git push origin lite-v0.1.0 # → GitHub Actions 构建 macOS (.dmg + .tar.gz) + Windows (.zip) # → 创建包含所有 assets 的 GitHub Release ``` ## 架构

GoClaw Architecture

GoClaw Multi-Tenant

## 快速开始 **前置条件:** Go 1.26+,带 pgvector 的 PostgreSQL 18,Docker(可选) ### 从源码运行 ``` git clone -b main https://github.com/nextlevelbuilder/goclaw.git && cd goclaw make build ./goclaw onboard # Interactive setup wizard source .env.local && ./goclaw ``` ### 使用 Docker ``` # 生成包含自动生成 secrets 的 .env chmod +x prepare-env.sh && ./prepare-env.sh # 在 .env 中添加至少一个 GOCLAW_*_API_KEY,然后: make up # Web Dashboard 位于 http://localhost:18790 (内置) # 健康检查:curl http://localhost:18790/health # 可选:单独的 nginx 用于自定义 SSL/reverse proxy # make up WITH_WEB_NGINX=1 → Dashboard 位于 http://localhost:3000 ``` `make up` 会创建一个 Docker 网络,从 git 标签嵌入正确版本,构建并启动所有服务,并自动运行数据库迁移。 **常用命令:** ``` make up # Start all services (build + migrate) make down # Stop all services make logs # Tail logs (goclaw service) make reset # Wipe volumes and rebuild from scratch ``` **可选服务** — 使用 `WITH_*` 标志启用: | 标志 | 服务 | 作用 | |------|---------|-------------| | `WITH_BROWSER=1` | Headless Chrome | 启用 `browser` 工具用于网页抓取、截图、自动化 | | `WITH_OTEL=1` | Jaeger | OpenTelemetry 追踪 UI,用于调试 LLM 调用和延迟 | | `WITH_SANDBOX=1` | Docker 沙箱 | 隔离容器,用于运行来自 Agent 的不受信任代码 | | `WITH_TAILSCALE=1` | Tailscale | 通过 Tailscale 私有网络暴露网关 | | `WITH_REDIS=1` | Redis | Redis 支持的缓存层 | 标志可以组合使用,并适用于所有命令: ``` # 启动,包含 browser automation 和 tracing make up WITH_BROWSER=1 WITH_OTEL=1 # 停止所有内容,包括 optional services make down WITH_BROWSER=1 WITH_OTEL=1 ``` 当设置了 `GOCLAW_*_API_KEY` 环境变量时,网关会自动引导,无需交互式提示 —— 检测提供商、运行迁移并填充默认数据。 ## 更新 ### Docker ``` docker compose pull && docker compose up -d ``` ### 二进制 (含嵌入式 Web UI) ``` goclaw update --apply # Downloads, verifies SHA256, swaps binary, restarts ``` ### Web 控制台 打开 **关于** 对话框 → 点击 **立即更新** (仅限管理员)。使用默认 `latest` 镜像时,更新包含后端和 Web 控制台。 ## 多 Agent 编排 GoClaw 支持 Agent 团队和 Agent 间委托 —— 每个 Agent 以其自己的身份、工具、LLM 提供商和上下文文件运行。 ### Agent 委托

Agent Delegation

| 模式 | 工作原理 | 最适合 | |------|-------------|----------| | **同步** | Agent A 询问 Agent B 并**等待**答案 | 快速查询、事实核查 | | **异步** | Agent A 询问 Agent B 然后**继续**。B 稍后通知 | 长时间任务、报告、深度分析 | Agent 通过显式的**权限链接**进行通信,具有方向控制(`outbound`、`inbound`、`bidirectional`)以及在每链接和每 Agent 级别的并发限制。 ### Agent 团队

Agent Teams Workflow

- **共享任务板** — 创建、认领、完成、搜索具有 `blocked_by` 依赖关系的任务 - **工具**:`team_tasks` 用于任务管理,`spawn` 用于子 Agent 编排 ## 内置工具 | 工具 | 分组 | 描述 | | ------------------ | ------------- | ------------------------------------------------------------ | | `read_file` | fs | 读取文件内容(含虚拟路由) | | `write_file` | fs | 写入/创建文件 | | `edit_file` | fs | 对现有文件应用针对性编辑 | | `list_files` fs | 列出目录内容 | | `search` | fs | 按模式搜索文件内容 | | `glob` | fs | 按 Glob 模式查找文件 | | `exec` | runtime | 执行 Shell 命令(含审批工作流) | | `web_search` | web | 搜索网页 (Brave, DuckDuckGo) | | `web_fetch` | web | 获取并解析网页内容 | | `memory_search` | memory | 搜索长期记忆 (FTS + 向量) | | `memory_get` | memory | 检索记忆条目 | | `skill_search` | — | 搜索技能 (BM25 + embedding 混合) | | `knowledge_graph_search` | memory | 搜索实体并遍历知识图谱关系 | | `create_image` | media | 图像生成 (DashScope, MiniMax) | | `create_audio` | media | 音频生成 (OpenAI, ElevenLabs, MiniMax, Suno) | | `create_video` | media | 视频生成 (MiniMax, Veo) | | `read_document` | media | 文档阅读 (Gemini File API, 提供商链) | | `read_image` | media | 图像分析 | | `read_audio` | media | 音频转录和分析 | | `read_video` | media | 视频分析 | | `message` | messaging | 向通道发送消息 | | `tts` | — | 语音合成 | | `spawn` | — | 生成子 Agent | | `subagents` | sessions | 控制运行中的子 Agent | | `team_tasks` | teams | 共享任务板 (列表、创建、认领、完成、搜索) | | `sessions_list` | sessions | 列出活跃会话 | | `sessions_history` | sessions | 查看会话历史 | | `sessions_send` | sessions | 向会话发送消息 | | `sessions_spawn` | sessions | 生成新会话 | | `session_status` | sessions | 检查会话状态 | | `cron` | automation | 调度和管理 Cron 任务 | | `gateway` | automation | 网关管理 | | `browser` | ui | 浏览器自动化 (导航、点击、输入、截图) | | `announce_queue` | automation | 异步结果通知 (用于异步委托) | ## 文档 完整文档位于 **[docs.goclaw.sh](https://docs.goclaw.sh)** — 或在 [`goclaw-docs/`](https://github.com/nextlevelbuilder/goclaw-docs) 中浏览源码 | 章节 | 主题 | |---------|--------| | [入门](https://docs.goclaw.sh/#what-is-goclaw) | 安装、快速开始、配置、Web 控制台导览 | | [核心概念](https://docs.goclaw.sh/#how-goclaw-works) | Agent 循环、会话、工具、记忆、多租户 | | [Agent](https://docs.goclaw.sh/#creating-agents) | 创建 Agent、上下文文件、个性、共享与访问 | | [提供商](https://docs.goclaw.sh/#providers-overview) | Anthropic, OpenAI, OpenRouter, Gemini, DeepSeek, +15 更多 | | [通道](https://docs.goclaw.sh/#channels-overview) | Telegram, Discord, Slack, Feishu, Zalo, WhatsApp, WebSocket | | [Agent 团队](https://docs.goclaw.sh/#teams-what-are-teams) | 团队、任务板、消息传递、委托与交接 | | [进阶](https://docs.goclaw.sh/#custom-tools) | 自定义工具、MCP、技能、Cron、沙箱、钩子、RBAC | | [部署](https://docs.goclaw.sh/#deploy-docker-compose) | Docker Compose、数据库、安全、可观测性、Tailscale | | [参考](https://docs.goclaw.sh/#cli-commands) | CLI 命令、REST API、WebSocket 协议、环境变量 | ## 测试 ``` go test ./... # Unit tests go test -v ./tests/integration/ -timeout 120s # Integration tests (requires running gateway) ``` ## 项目状态 请参阅 [CHANGELOG.md](CHANGELOG.md) 了解详细功能状态,包括已在生产环境中测试的内容和正在进行中的工作。 ## 致谢 GoClaw 基于原始 [OpenClaw](https://github.com/openclaw/openclaw) 项目构建。我们感谢启发此次 Go 移植的架构和愿景。 ## 许可证 [CC BY-NC 4.0](LICENSE) — 知识共享署名-非商业性使用 4.0 国际
标签:Agent编排, AI Agent网关, AI安全, Anthropic, API网关, Chat Copilot, CISA项目, CIS基准, Docker, EVTX分析, GET参数, Golang开发, LLM网关, OpenAI兼容, OpenClaw替代, OpenTelemetry, PE 加载器, PostgreSQL, PyRIT, WebSocket, 企业级AI部署, 依赖分析, 单二进制部署, 原生并发, 多智能体系统, 多租户AI平台, 大模型编排, 安全防御评估, 安全隔离, 日志审计, 测试用例, 生产就绪, 用户代理, 请求拦截