Files
goclaw/_readmes/README.uk.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
22 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. 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">Документація</a> •
<a href="https://docs.goclaw.sh/#quick-start">Швидкий старт</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** — це мультиагентний AI-шлюз, що з'єднує LLM з вашими інструментами, каналами та даними — розгортається як єдиний Go-бінарник без зовнішніх залежностей часу виконання. Він оркеструє команди агентів і міжагентну делегацію через 20+ постачальників LLM з повною ізоляцією мультиорендарності.
Go-порт [OpenClaw](https://github.com/openclaw/openclaw) з посиленою безпекою, мультиорендарним PostgreSQL та спостережуваністю виробничого рівня.
🌐 **Мови:**
[🇺🇸 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)
## Чим це відрізняється
- **Команди агентів та оркестрація** — Команди зі спільними дошками завдань, міжагентна делегація (синхронна/асинхронна) та гібридне виявлення агентів
- **Мультиорендарний PostgreSQL** — Окремі робочі простори для кожного користувача, файли контексту для кожного користувача, зашифровані API-ключі (AES-256-GCM), ізольовані сесії
- **Єдиний бінарник** — ~25 МБ статичний Go-бінарник, без Node.js-середовища виконання, запуск менш ніж за 1 секунду, працює на VPS за $5
- **Безпека виробничого рівня** — 5-рівнева система дозволів (автентифікація шлюзу → глобальна політика інструментів → на рівні агента → на рівні каналу → лише для власника), а також обмеження частоти запитів, виявлення ін'єкцій у промпт, захист від SSRF, шаблони заборони команд оболонки та шифрування AES-256-GCM
- **20+ постачальників LLM** — Anthropic (нативний HTTP+SSE з кешуванням промптів), OpenAI, OpenRouter, Groq, DeepSeek, Gemini, Mistral, xAI, MiniMax, Cohere, Perplexity, DashScope, Bailian, Zai, Ollama, Ollama Cloud, Claude CLI, Codex, ACP та будь-який OpenAI-сумісний endpoint
- **7 каналів обміну повідомленнями** — Telegram, Discord, Slack, Zalo OA, Zalo Personal, Feishu/Lark, WhatsApp
- **Extended Thinking** — Режим мислення для кожного постачальника (бюджет токенів Anthropic, зусилля міркування OpenAI, бюджет мислення DashScope) з підтримкою потокової передачі
- **Heartbeat** — Periodичні перевірки агентів через контрольні списки HEARTBEAT.md з придушенням при OK, активними годинами, логікою повторних спроб та доставкою через канали
- **Планування та Cron** — `at`, `every` та cron-вирази для автоматизованих завдань агентів з паралелізмом на основі черг
- **Спостережуваність** — Вбудоване трасування LLM-викликів зі спанами та метриками кешу промптів, необов'язковий експорт OpenTelemetry OTLP
## Екосистема Claw
| | OpenClaw | ZeroClaw | PicoClaw | **GoClaw** |
| --------------- | --------------- | -------- | -------- | --------------------------------------- |
| Мова | TypeScript | Rust | Go | **Go** |
| Розмір бінарника | 28 МБ + Node.js | 3,4 МБ | ~8 МБ | **~25 МБ** (базовий) / **~36 МБ** (+ OTel) |
| Docker-образ | — | — | — | **~50 МБ** (Alpine) |
| ОЗП (у спокої) | > 1 ГБ | < 5 МБ | < 10 МБ | **~35 МБ** |
| Запуск | > 5 с | < 10 мс | < 1 с | **< 1 с** |
| Цільове залізо | Mac Mini від $599+ | Edge за $10 | Edge за $10 | **VPS від $5+** |
| Функція | OpenClaw | ZeroClaw | PicoClaw | **GoClaw** |
| -------------------------- | ------------------------------------ | -------------------------------------------- | ------------------------------------- | ------------------------------ |
| Мультиорендарність (PostgreSQL) | — | — | — | ✅ |
| Інтеграція MCP | — (використовує ACP) | — | — | ✅ (stdio/SSE/streamable-http) |
| Команди агентів | — | — | — | ✅ Дошка завдань + поштова скринька |
| Посилення безпеки | ✅ (SSRF, обхід шляху, ін'єкції) | ✅ (пісочниця, обмеження частоти, ін'єкції, спарювання) | Базова (обмеження робочого простору, заборона exec) | ✅ 5-рівневий захист |
| Спостережуваність OTel | ✅ (необов'язкове розширення) | ✅ (Prometheus + OTLP) | — | ✅ OTLP (необов'язковий тег збірки) |
| Кешування промптів | — | — | — | ✅ Anthropic + OpenAI-compat |
| Граф знань | — | — | — | ✅ Витягування LLM + обхід |
| Система навичок | ✅ Вбудовування/семантика | ✅ SKILL.md + TOML | ✅ Базова | ✅ BM25 + гібрид pgvector |
| Планувальник на основі черг | ✅ | Обмежений паралелізм | — | ✅ (main/subagent/team/cron) |
| Канали обміну повідомленнями | 37+ | 15+ | 10+ | 7+ |
| Супутні застосунки | macOS, iOS, Android | Python SDK | — | Веб-панель |
| Live Canvas / Голос | ✅ (A2UI + TTS/STT) | — | Транскрипція голосу | TTS (4 постачальники) |
| Постачальники LLM | 10+ | 8 нативних + 29 сумісних | 13+ | **20+** |
| Робочі простори для кожного користувача | ✅ (на основі файлів) | — | — | ✅ (PostgreSQL) |
| Зашифровані секрети | — (лише змінні середовища) | ✅ ChaCha20-Poly1305 | — (відкритий JSON) | ✅ AES-256-GCM у БД |
## Архітектура
<p align="center">
<img src="../_statics/architecture.jpg" alt="GoClaw Architecture" width="800" />
</p>
## Швидкий старт
**Передумови:** Go 1.26+, PostgreSQL 18 з pgvector, Docker (необов'язково)
### З вихідного коду
```bash
git clone https://github.com/nextlevelbuilder/goclaw.git && cd goclaw
make build
./goclaw onboard # Інтерактивний майстер налаштування
source .env.local && ./goclaw
```
### З Docker
```bash
# Генерація .env з автоматично згенерованими секретами
chmod +x prepare-env.sh && ./prepare-env.sh
# Додайте хоча б один GOCLAW_*_API_KEY до .env, потім:
make up
# Веб-панель за адресою http://localhost:18790
# Перевірка стану: curl http://localhost:18790/health
```
Якщо встановлені змінні середовища `GOCLAW_*_API_KEY`, шлюз виконує автоматичне налаштування без інтерактивних підказок — визначає постачальника, запускає міграції та заповнює початкові дані.
> Щодо варіантів збірки (OTel, Tailscale, Redis), тегів Docker-образів та compose-оверлеїв, дивіться [Посібник із розгортання](https://docs.goclaw.sh/#deploy-docker-compose).
## Мультиагентна оркестрація
GoClaw підтримує команди агентів та міжагентну делегацію — кожен агент працює зі своєю власною ідентичністю, інструментами, постачальником LLM та файлами контексту.
### Делегація агентів
<p align="center">
<img src="../_statics/agent-delegation.jpg" alt="Agent Delegation" width="700" />
</p>
| Режим | Як працює | Найкраще для |
|-------|-----------|--------------|
| **Синхронний** | Агент A запитує агента B і **чекає** на відповідь | Швидкі пошукові запити, перевірка фактів |
| **Асинхронний** | Агент A запитує агента B і **продовжує роботу**. B сповіщає пізніше | Тривалі завдання, звіти, глибокий аналіз |
Агенти спілкуються через явні **посилання дозволів** з керуванням напрямком (`outbound`, `inbound`, `bidirectional`) та обмеженнями паралелізму на рівні окремих посилань і агентів.
### Команди агентів
<p align="center">
<img src="../_statics/agent-teams.jpg" alt="Agent Teams Workflow" width="800" />
</p>
- **Спільна дошка завдань** — Створення, захоплення, завершення та пошук завдань із залежностями `blocked_by`
- **Командна поштова скринька** — Пряме повідомлення між учасниками та широкомовні розсилки
- **Інструменти**: `team_tasks` для керування завданнями, `team_message` для поштової скриньки
> Щодо деталей делегації, посилань дозволів та керування паралелізмом, дивіться [документацію Команд агентів](https://docs.goclaw.sh/#teams-what-are-teams).
## Вбудовані інструменти
| Інструмент | Група | Опис |
| ------------------ | ------------- | ------------------------------------------------------------ |
| `read_file` | fs | Читання вмісту файлів (з маршрутизацією віртуальної ФС) |
| `write_file` | fs | Запис/створення файлів |
| `edit_file` | fs | Застосування цільових правок до існуючих файлів |
| `list_files` | fs | Перегляд вмісту директорії |
| `search` | fs | Пошук вмісту файлів за шаблоном |
| `glob` | fs | Пошук файлів за glob-шаблоном |
| `exec` | runtime | Виконання команд оболонки (з робочим процесом підтвердження) |
| `web_search` | web | Пошук в інтернеті (Brave, DuckDuckGo) |
| `web_fetch` | web | Отримання та розбір веб-вмісту |
| `memory_search` | memory | Пошук у довготривалій пам'яті (FTS + вектор) |
| `memory_get` | memory | Отримання записів пам'яті |
| `skill_search` | — | Пошук навичок (гібрид BM25 + вбудовування) |
| `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` | — | Запуск субагента |
| `subagents` | sessions | Керування запущеними субагентами |
| `team_tasks` | teams | Спільна дошка завдань (перегляд, створення, захоплення, завершення, пошук) |
| `team_message` | 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) | Встановлення, Швидкий старт, Конфігурація, Огляд веб-панелі |
| [Основні концепції](https://docs.goclaw.sh/#how-goclaw-works) | Цикл агента, Сесії, Інструменти, Пам'ять, Мультиорендарність |
| [Агенти](https://docs.goclaw.sh/#creating-agents) | Створення агентів, Файли контексту, Особистість, Спільний доступ |
| [Постачальники](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 |
| [Команди агентів](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, Змінні середовища |
## Тестування
```bash
go test ./... # Модульні тести
go test -v ./tests/integration/ -timeout 120s # Інтеграційні тести (потребує запущеного шлюзу)
```
## Статус проекту
Дивіться [CHANGELOG.md](CHANGELOG.md) щодо детального стану функцій, включаючи те, що вже протестовано у продакшні та що ще в процесі.
## Подяки
GoClaw побудований на основі оригінального проекту [OpenClaw](https://github.com/openclaw/openclaw). Ми вдячні за архітектуру та бачення, що надихнули цей Go-порт.
## Ліцензія
MIT