Files
goclaw/_readmes/README.ru.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

227 lines
21 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) ·
[🇪🇸 Español](README.es.md) ·
[🇧🇷 Português](README.pt.md) ·
[🇫🇷 Français](README.fr.md) ·
[🇩🇪 Deutsch](README.de.md) ·
[🇷🇺 Русский](README.ru.md)
## В чём отличие
- **Команды агентов и оркестрация** — Команды с общими досками задач, межагентная делегация (синхронная/асинхронная) и гибридное обнаружение агентов
- **Мультиарендный PostgreSQL** — Отдельные рабочие пространства для каждого пользователя, контекстные файлы на пользователя, зашифрованные API-ключи (AES-256-GCM), изолированные сессии
- **Единый бинарник** — ~25 МБ статический Go-бинарник, без Node.js, запуск менее чем за 1 с, работает на VPS за $5
- **Безопасность производственного уровня** — 5-уровневая система прав (аутентификация шлюза → глобальная политика инструментов → на агента → на канал → только для владельца) плюс ограничение запросов, обнаружение prompt-инъекций, защита от SSRF, запрещённые shell-паттерны и шифрование 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-совместимый эндпоинт
- **7 каналов обмена сообщениями** — Telegram, Discord, Slack, Zalo OA, Zalo Personal, Feishu/Lark, WhatsApp
- **Extended Thinking** — Режим thinking на каждого провайдера (бюджет токенов Anthropic, усилия рассуждения OpenAI, бюджет мышления DashScope) с поддержкой стриминга
- **Heartbeat** — Периодические проверки агентов через чек-листы HEARTBEAT.md с подавлением при успехе, активными часами, логикой повторных попыток и доставкой в канал
- **Планировщик и 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, path traversal, injection) | ✅ (sandbox, rate limit, injection, pairing) | Базовая (ограничение workspace, запрет exec) | ✅ 5-уровневая защита |
| Наблюдаемость OTel | ✅ (опциональное расширение) | ✅ (Prometheus + OTLP) | — | ✅ OTLP (опциональный build tag) |
| Кэширование промптов | — | — | — | ✅ Anthropic + OpenAI-compat |
| Граф знаний | — | — | — | ✅ Извлечение LLM + обход |
| Система навыков | ✅ Embeddings/семантическая | ✅ 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) |
| Зашифрованные секреты | — (только env-переменные) | ✅ ChaCha20-Poly1305 | — (plaintext 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 | Выполнение shell-команд (с рабочим процессом подтверждения) |
| `web_search` | web | Поиск в интернете (Brave, DuckDuckGo) |
| `web_fetch` | web | Получение и парсинг веб-контента |
| `memory_search` | memory | Поиск в долгосрочной памяти (FTS + vector) |
| `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` | — | Синтез речи (Text-to-Speech) |
| `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, Sandbox, Хуки, 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