Files
goclaw/_readmes/README.nl.md
T
Viet Tran 52c67d6d92 feat(build): embed web UI in backend binary + simplify Docker variants (#620)
- Add internal/webui/ package with //go:build embedui tag for optional
  SPA embedding (handler.go serves static files with SPA fallback)
- Add internal/version/ shared semver comparison (DRY: extracted from
  gateway/update_check.go and updater/updater.go)
- Enhance UpdateChecker: release notes, ETag caching, filter lite-v* tags
- Add web UI build stage to Dockerfile with ENABLE_EMBEDUI build arg
- Simplify CI: 7 Docker variants → 4 (base, latest, full, otel)
- Add SHA256 checksums job to release workflow
- Add Makefile build-full target (embeds web UI in Go binary)
- Default make up now embeds web UI (no separate nginx needed)
- Add WITH_WEB_NGINX=1 flag for optional nginx reverse proxy
- Update README + 30 translated READMEs: make up, port 18790
- Update docker-compose comments and prepare-env.sh
- About dialog: show release notes with markdown rendering
- Health card: amber badge for available updates

BREAKING: Default Docker setup no longer requires selfservice overlay.
Web dashboard served at :18790 (same port as API).
2026-04-01 15:25:59 +07:00

249 lines
17 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<p align="center">
<img src="../_statics/goclaw.png" alt="GoClaw" />
</p>
<h1 align="center">GoClaw</h1>
<p align="center"><strong>Enterprise AI Agent Platform</strong></p>
<p align="center">
Multi-agent AI gateway built in Go. 20+ LLM providers. 7 channels. Multi-tenant PostgreSQL.<br/>
Single binary. Production-tested. Agents that orchestrate for you.
</p>
<p align="center">
<a href="https://docs.goclaw.sh">Documentatie</a> •
<a href="https://docs.goclaw.sh/#quick-start">Snel starten</a> •
<a href="https://x.com/nlb_io">Twitter / X</a>
</p>
<p align="center">
<a href="https://go.dev/"><img src="https://img.shields.io/badge/Go_1.26-00ADD8?style=flat-square&logo=go&logoColor=white" alt="Go" /></a>
<a href="https://www.postgresql.org/"><img src="https://img.shields.io/badge/PostgreSQL_18-316192?style=flat-square&logo=postgresql&logoColor=white" alt="PostgreSQL" /></a>
<a href="https://www.docker.com/"><img src="https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=docker&logoColor=white" alt="Docker" /></a>
<a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSocket"><img src="https://img.shields.io/badge/WebSocket-010101?style=flat-square&logo=socket.io&logoColor=white" alt="WebSocket" /></a>
<a href="https://opentelemetry.io/"><img src="https://img.shields.io/badge/OpenTelemetry-000000?style=flat-square&logo=opentelemetry&logoColor=white" alt="OpenTelemetry" /></a>
<a href="https://www.anthropic.com/"><img src="https://img.shields.io/badge/Anthropic-191919?style=flat-square&logo=anthropic&logoColor=white" alt="Anthropic" /></a>
<a href="https://openai.com/"><img src="https://img.shields.io/badge/OpenAI_Compatible-412991?style=flat-square&logo=openai&logoColor=white" alt="OpenAI" /></a>
<img src="https://img.shields.io/badge/License-MIT-yellow?style=flat-square" alt="License: MIT" />
</p>
**GoClaw** is een multi-agent AI gateway die LLM's verbindt met uw tools, kanalen en gegevens — uitgerold als één enkel Go-binary zonder runtime-afhankelijkheden. Het orkestreert agentteams en inter-agent-delegatie via 20+ LLM-providers met volledige multi-tenant isolatie.
Een Go-port van [OpenClaw](https://github.com/openclaw/openclaw) met verbeterde beveiliging, multi-tenant PostgreSQL en productieklare observeerbaarheid.
🌐 **Talen:**
[🇺🇸 English](../README.md) ·
[🇨🇳 简体中文](README.zh-CN.md) ·
[🇯🇵 日本語](README.ja.md) ·
[🇰🇷 한국어](README.ko.md) ·
[🇻🇳 Tiếng Việt](README.vi.md) ·
[🇵🇭 Tagalog](README.tl.md) ·
[🇪🇸 Español](README.es.md) ·
[🇧🇷 Português](README.pt.md) ·
[🇮🇹 Italiano](README.it.md) ·
[🇩🇪 Deutsch](README.de.md) ·
[🇫🇷 Français](README.fr.md) ·
[🇸🇦 العربية](README.ar.md) ·
[🇮🇳 हिन्दी](README.hi.md) ·
[🇷🇺 Русский](README.ru.md) ·
[🇧🇩 বাংলা](README.bn.md) ·
[🇮🇱 עברית](README.he.md) ·
[🇵🇱 Polski](README.pl.md) ·
[🇨🇿 Čeština](README.cs.md) ·
[🇳🇱 Nederlands](README.nl.md) ·
[🇹🇷 Türkçe](README.tr.md) ·
[🇺🇦 Українська](README.uk.md) ·
[🇮🇩 Bahasa Indonesia](README.id.md) ·
[🇹🇭 ไทย](README.th.md) ·
[🇵🇰 اردو](README.ur.md) ·
[🇷🇴 Română](README.ro.md) ·
[🇸🇪 Svenska](README.sv.md) ·
[🇬🇷 Ελληνικά](README.el.md) ·
[🇭🇺 Magyar](README.hu.md) ·
[🇫🇮 Suomi](README.fi.md) ·
[🇩🇰 Dansk](README.da.md) ·
[🇳🇴 Norsk](README.nb.md)
## Wat maakt het anders
- **Agentteams & Orkestratie** — Teams met gedeelde taakborden, inter-agent-delegatie (synchroon/asynchroon) en hybride agentdetectie
- **Multi-Tenant PostgreSQL** — Werkruimtes per gebruiker, contextbestanden per gebruiker, versleutelde API-sleutels (AES-256-GCM), geïsoleerde sessies
- **Enkel Binary** — ~25 MB statisch Go-binary, geen Node.js-runtime, <1 s opstartijd, draait op een VPS van $5
- **Productiebeveiliging** — 5-laags rechtensysteem (gateway-authenticatie → globaal toolbeleid → per agent → per kanaal → alleen eigenaar) plus snelheidsbeperking, detectie van prompt-injectie, SSRF-bescherming, shell-weigerings­patronen en AES-256-GCM-versleuteling
- **20+ LLM-providers** — Anthropic (native HTTP+SSE met prompt-caching), OpenAI, OpenRouter, Groq, DeepSeek, Gemini, Mistral, xAI, MiniMax, Cohere, Perplexity, DashScope, Bailian, Zai, Ollama, Ollama Cloud, Claude CLI, Codex, ACP en elk OpenAI-compatibel eindpunt
- **7 Berichtenkanalen** — Telegram, Discord, Slack, Zalo OA, Zalo Personal, Feishu/Lark, WhatsApp
- **Extended Thinking** — Denkmodus per provider (Anthropic-budgettokens, OpenAI-redeneerinspanning, DashScope-denkbudget) met streamingondersteuning
- **Heartbeat** — Periodieke agent-check-ins via HEARTBEAT.md-checklists met onderdrukken-bij-OK, actieve uren, herproberinglogica en kanaallevering
- **Plannen & Cron** — `at`-, `every`- en cron-expressies voor geautomatiseerde agenttaken met op rijstroken gebaseerde gelijktijdigheid
- **Observeerbaarheid** — Ingebouwde LLM-aanroeptracering met spans en prompt-cachemetrics, optionele OpenTelemetry OTLP-export
## Claw-ecosysteem
| | OpenClaw | ZeroClaw | PicoClaw | **GoClaw** |
| --------------- | --------------- | -------- | -------- | --------------------------------------- |
| Taal | TypeScript | Rust | Go | **Go** |
| Binary-grootte | 28 MB + Node.js | 3,4 MB | ~8 MB | **~25 MB** (basis) / **~36 MB** (+ OTel) |
| Docker-image | — | — | — | **~50 MB** (Alpine) |
| RAM (inactief) | > 1 GB | < 5 MB | < 10 MB | **~35 MB** |
| Opstartijd | > 5 s | < 10 ms | < 1 s | **< 1 s** |
| Doelhardware | $599+ Mac Mini | $10 edge | $10 edge | **$5 VPS+** |
| Functie | OpenClaw | ZeroClaw | PicoClaw | **GoClaw** |
| ------------------------------- | ------------------------------------ | -------------------------------------------- | ------------------------------------- | ------------------------------ |
| Multi-tenant (PostgreSQL) | — | — | — | ✅ |
| MCP-integratie | — (gebruikt ACP) | — | — | ✅ (stdio/SSE/streamable-http) |
| Agentteams | — | — | — | ✅ Taakbord + postvak |
| Beveiligingsverharding | ✅ (SSRF, padtraversal, injectie) | ✅ (sandbox, snelheidsbeperking, injectie, koppeling) | Basis (werkruimtebeperking, exec-weigering) | ✅ 5-laagse verdediging |
| OTel-observeerbaarheid | ✅ (opt-in extensie) | ✅ (Prometheus + OTLP) | — | ✅ OTLP (opt-in build-tag) |
| Prompt-caching | — | — | — | ✅ Anthropic + OpenAI-compat |
| Kennisgraaf | — | — | — | ✅ LLM-extractie + doorloop |
| Vaardigheidssysteem | ✅ Embeddings/semantisch | ✅ SKILL.md + TOML | ✅ Basis | ✅ BM25 + pgvector hybride |
| Op rijstroken gebaseerde planner | ✅ | Begrensde gelijktijdigheid | — | ✅ (main/subagent/team/cron) |
| Berichtenkanalen | 37+ | 15+ | 10+ | 7+ |
| Companion-apps | macOS, iOS, Android | Python SDK | — | Webdashboard |
| Live Canvas / Spraak | ✅ (A2UI + TTS/STT) | — | Spraaktranscriptie | TTS (4 providers) |
| LLM-providers | 10+ | 8 native + 29 compat | 13+ | **20+** |
| Werkruimtes per gebruiker | ✅ (bestandsgebaseerd) | — | — | ✅ (PostgreSQL) |
| Versleutelde geheimen | — (alleen omgevingsvariabelen) | ✅ ChaCha20-Poly1305 | — (gewone tekst JSON) | ✅ AES-256-GCM in DB |
## Architectuur
<p align="center">
<img src="../_statics/architecture.jpg" alt="GoClaw Architecture" width="800" />
</p>
## Snel starten
**Vereisten:** Go 1.26+, PostgreSQL 18 met pgvector, Docker (optioneel)
### Vanuit broncode
```bash
git clone https://github.com/nextlevelbuilder/goclaw.git && cd goclaw
make build
./goclaw onboard # Interactieve installatiewizard
source .env.local && ./goclaw
```
### Met Docker
```bash
# Genereer .env met automatisch gegenereerde geheimen
chmod +x prepare-env.sh && ./prepare-env.sh
# Voeg minimaal één GOCLAW_*_API_KEY toe aan .env, dan:
make up
# Webdashboard op http://localhost:18790
# Statuscontrole: curl http://localhost:18790/health
```
Wanneer `GOCLAW_*_API_KEY`-omgevingsvariabelen zijn ingesteld, voert de gateway automatisch de installatie uit zonder interactieve aanwijzingen — detecteert de provider, voert migraties uit en seeded standaardgegevens.
> Voor buildvarianten (OTel, Tailscale, Redis), Docker-imagetags en compose-overlays, zie de [Implementatiegids](https://docs.goclaw.sh/#deploy-docker-compose).
## Multi-agent orkestratie
GoClaw ondersteunt agentteams en inter-agent-delegatie — elke agent draait met een eigen identiteit, tools, LLM-provider en contextbestanden.
### Agent-delegatie
<p align="center">
<img src="../_statics/agent-delegation.jpg" alt="Agent Delegation" width="700" />
</p>
| Modus | Hoe het werkt | Het beste voor |
|-------|---------------|----------------|
| **Synchroon** | Agent A vraagt Agent B en **wacht** op het antwoord | Snelle opzoekingen, feitencontroles |
| **Asynchroon** | Agent A vraagt Agent B en **gaat door**. B meldt later | Lange taken, rapporten, diepgaande analyses |
Agents communiceren via expliciete **rechtenkoppelingen** met richtingscontrole (`outbound`, `inbound`, `bidirectional`) en gelijktijdigheidsbeperkingen op zowel koppeling- als agentniveau.
### Agentteams
<p align="center">
<img src="../_statics/agent-teams.jpg" alt="Agent Teams Workflow" width="800" />
</p>
- **Gedeeld taakbord** — Taken aanmaken, claimen, voltooien en zoeken met `blocked_by`-afhankelijkheden
- **Team-postvak** — Directe peer-to-peer berichten en uitzendboodschappen
- **Tools**: `team_tasks` voor taakbeheer, `team_message` voor het postvak
> Voor delegatiedetails, rechtenkoppelingen en gelijktijdigheidscontrole, zie de [Agentteams-documentatie](https://docs.goclaw.sh/#teams-what-are-teams).
## Ingebouwde tools
| Tool | Groep | Beschrijving |
| ------------------ | ------------- | ------------------------------------------------------------- |
| `read_file` | fs | Bestandsinhoud lezen (met virtuele FS-routing) |
| `write_file` | fs | Bestanden schrijven/aanmaken |
| `edit_file` | fs | Gerichte bewerkingen op bestaande bestanden toepassen |
| `list_files` | fs | Mapinhoud weergeven |
| `search` | fs | Bestandsinhoud doorzoeken op patroon |
| `glob` | fs | Bestanden zoeken op glob-patroon |
| `exec` | runtime | Shell-opdrachten uitvoeren (met goedkeuringsworkflow) |
| `web_search` | web | Op het web zoeken (Brave, DuckDuckGo) |
| `web_fetch` | web | Webinhoud ophalen en verwerken |
| `memory_search` | memory | Langetermijngeheugen doorzoeken (FTS + vector) |
| `memory_get` | memory | Geheugenitems ophalen |
| `skill_search` | — | Vaardigheden zoeken (BM25 + embedding hybride) |
| `knowledge_graph_search` | memory | Entiteiten zoeken en kennisgraafrelaties doorlopen |
| `create_image` | media | Afbeeldingen genereren (DashScope, MiniMax) |
| `create_audio` | media | Audio genereren (OpenAI, ElevenLabs, MiniMax, Suno) |
| `create_video` | media | Video genereren (MiniMax, Veo) |
| `read_document` | media | Documenten lezen (Gemini File API, providerketen) |
| `read_image` | media | Afbeeldingsanalyse |
| `read_audio` | media | Audiotranscriptie en -analyse |
| `read_video` | media | Videoanalyse |
| `message` | messaging | Berichten naar kanalen sturen |
| `tts` | — | Tekst-naar-spraak-synthese |
| `spawn` | — | Een subagent spawnen |
| `subagents` | sessions | Actieve subagents beheren |
| `team_tasks` | teams | Gedeeld taakbord (weergeven, aanmaken, claimen, voltooien, zoeken) |
| `team_message` | teams | Team-postvak (verzenden, uitzenden, lezen) |
| `sessions_list` | sessions | Actieve sessies weergeven |
| `sessions_history` | sessions | Sessiegeschiedenis bekijken |
| `sessions_send` | sessions | Bericht naar een sessie sturen |
| `sessions_spawn` | sessions | Een nieuwe sessie spawnen |
| `session_status` | sessions | Sessiestatus controleren |
| `cron` | automation | Cron-taken plannen en beheren |
| `gateway` | automation | Gateway-beheer |
| `browser` | ui | Browserautomatisering (navigeren, klikken, typen, schermafbeelding) |
| `announce_queue` | automation | Asynchroon resultaat aankondigen (voor asynchrone delegaties) |
## Documentatie
Volledige documentatie op **[docs.goclaw.sh](https://docs.goclaw.sh)** — of blader door de broncode in [`goclaw-docs/`](https://github.com/nextlevelbuilder/goclaw-docs)
| Sectie | Onderwerpen |
|--------|-------------|
| [Aan de slag](https://docs.goclaw.sh/#what-is-goclaw) | Installatie, Snel starten, Configuratie, Rondleiding webdashboard |
| [Kernconcepten](https://docs.goclaw.sh/#how-goclaw-works) | Agent-loop, Sessies, Tools, Geheugen, Multi-tenancy |
| [Agents](https://docs.goclaw.sh/#creating-agents) | Agents aanmaken, Contextbestanden, Persoonlijkheid, Delen & Toegang |
| [Providers](https://docs.goclaw.sh/#providers-overview) | Anthropic, OpenAI, OpenRouter, Gemini, DeepSeek, +15 meer |
| [Kanalen](https://docs.goclaw.sh/#channels-overview) | Telegram, Discord, Slack, Feishu, Zalo, WhatsApp, WebSocket |
| [Agentteams](https://docs.goclaw.sh/#teams-what-are-teams) | Teams, Taakbord, Berichten, Delegatie & Overdracht |
| [Geavanceerd](https://docs.goclaw.sh/#custom-tools) | Aangepaste tools, MCP, Vaardigheden, Cron, Sandbox, Hooks, RBAC |
| [Implementatie](https://docs.goclaw.sh/#deploy-docker-compose) | Docker Compose, Database, Beveiliging, Observeerbaarheid, Tailscale |
| [Referentie](https://docs.goclaw.sh/#cli-commands) | CLI-opdrachten, REST API, WebSocket Protocol, Omgevingsvariabelen |
## Testen
```bash
go test ./... # Unittests
go test -v ./tests/integration/ -timeout 120s # Integratietests (vereist actieve gateway)
```
## Projectstatus
Zie [CHANGELOG.md](CHANGELOG.md) voor gedetailleerde functiestatus, inclusief wat in productie is getest en wat nog in ontwikkeling is.
## Dankbetuigingen
GoClaw is gebouwd op het originele [OpenClaw](https://github.com/openclaw/openclaw)-project. We zijn dankbaar voor de architectuur en visie die deze Go-port hebben geïnspireerd.
## Licentie
MIT