Возможности

TaigaClaw объединяет мощный агентный движок, 14+ инструментов, фактографическую память с RAG и мультиканальность в одном бинарнике.

Агентный движок

Полноценный агентный цикл LLM → tool_calls → выполнить → повторить с архитектурой Actor-per-Session:

  • AgentLoop — оркестратор: читает MessageBus, маршрутизирует по сессиям, управляет конкурентностью
  • AgentRunner — движок итераций с streaming, checkpoint’ами и microcompact
  • ContextBuilder — сборка системного промпта из души агента, профиля пользователя, памяти, навыков и runtime-контекста
  • SubagentManager — фоновые подагенты с mid-turn injection результата в текущий ход
  • Глобальный семафор — ограничение параллельных LLM-запросов через буферизованный канал
  • Graceful shutdown — корректное завершение всех акторов с ожиданием

Слеш-команды

Четырёхуровневая маршрутизация: Priority → Exact → Prefix → Interceptors.

Priority-команды (/stop, /restart, /status) обрабатываются до блокировки сессии — срабатывают даже когда агент занят.

Встроенные команды: /new, /stop, /status, /history, /dream, /dream-log, /dream-restore, /help.

Инструменты

14+ встроенных инструментов + динамические MCP-инструменты. Параллельное выполнение безопасных (readonly) через errgroup, эксклюзивные — последовательно.

КатегорияИнструменты
Файлыread_file, write_file, edit_file (fuzzy match), list_dir, glob, grep
Shellexec — выполнение произвольных команд с sandbox и deny-паттернами
Вебweb_search, web_fetch — поиск и загрузка страниц
Коммуникацияmessage — отправка через подключённые каналы
Планированиеcron — управление задачами (add, list, remove)
Подагентыspawn — запуск фоновых задач
Взаимодействиеask_user — вопросы пользователю
Метаmy — инспекция runtime-состояния
MCPдинамические инструменты из подключённых серверов

Per-session FileStates

Трекинг прочитанных файлов через context.Context: предупреждения «read before edit», дедупликация чтения.

Память и RAG

Фактографическая память с векторным поиском — вместо одного файла MEMORY.md каждый факт хранится отдельно с эмбеддингом.

Трёхуровневая система

  1. Сессионная — история текущего разговора в БД (таблица sessions, messages)
  2. Факты — отдельные записи в memory_facts с векторами, извлекаются через semantic search
  3. Документы — RAG по загруженным файлам (PDF, DOCX, XLSX, PPTX) → чанки в memory_chunks

Векторный поиск

  • SQLite — BLOB + cosine similarity в pure Go (без CGO)
  • PostgreSQL — pgvector (нативный, обязательное условие выбора PG)

Векторизация автоматическая при записи — EmbeddingProvider.Embed() вызывается прозрачным образом.

Reranker

Двухстадийный поиск: retriever (bi-encoder, top-20 кандидатов) → reranker (cross-encoder / LLM-as-reranker, top-5 лучших).

Реализации: Ollama (bge-reranker), LLM-as-reranker (fallback, батчинг по 5 документов), Noop (отключено).

Обработка памяти

  • Consolidator — лёгкая суммаризация: извлечение фактов из старых сообщений → векторизация → дедупликация
  • Dream — тяжёлая двухфазная обработка памяти в фоне: анализ → редактирование
  • AutoCompact — архивация простаивающих сессий по TTL

Безопасность

SSRF-защита

Блокировка private/internal IP (RFC 1918, loopback, link-local, cloud metadata 169.254.0.0/16). DNS resolve перед запросом. Проверка URL после HTTP-редиректов. Настраиваемый whitelist с приоритетом над блэклистом.

Sandbox

bubblewrap (Linux) — namespace isolation без CGO. Автоматическая активация restrict_to_workspace для файловых инструментов.

Deny/Allow паттерны

Встроенные deny-паттерны (rm -rf /, mkfs, dd, fork bomb) + пользовательские regex-паттерны. Allow-список для whitelist-режима.

Шифрование секретов

AES-256-GCM шифрование API-ключей и паролей в БД. Мастер-ключ через переменную окружения TAIGACLAW_MASTER_KEY.

Мультипользовательность и авторизация

Встроенный OAuth 2.0

Authorization Code Flow + PKCE (RFC 7636) — без внешних зависимостей (Keycloak, Auth0 не нужны).

RBAC с тремя ролями

РольОбластьВозможности
AdminГлобальнаяУправление пользователями, все агенты, системные настройки
Agent AdminPer-agentНастройка агента, провайдеры, инструменты, члены
Agent UserPer-agentЧат с агентом, просмотр истории

Per-agent членство: пользователь может быть Agent Admin в одном агенте и Agent User в другом.

JWT + Refresh Rotation

Access-токен 15 мин, refresh — 7 дней с ротацией и family tracking (обнаружение кражи). BCrypt для паролей (cost=12).

Setup-режим

При первом запуске — localhost-only экран создания Admin-аккаунта и первого агента.

LLM-провайдеры

Два backend’а

BackendSDKПровайдеры
openai_compatopenai-goOpenAI, DeepSeek, Gemini, Qwen, Mistral, Ollama, vLLM, LiteLLM, OpenRouter, YandexGPT, GigaChat и др.
anthropicanthropic-sdk-goClaude (нативный SDK, thinking blocks, prompt caching)

Retry-политика

Standard (3 попытки, exponential backoff) + persistent (бесконечно с max delay 60s). Автоматическое определение транзиторных ошибок (429, 5xx, timeout).

Каналы связи

WebUI (WebSocket)

Встроенный SPA на Svelte 5 + Tailwind. Streaming ответов, tool events, управление настройками. WebSocket авторизация через JWT при handshake.

Email (IMAP/SMTP)

Двойная роль: канал связи (polling входящих → агент → автоответ) и инструмент (отправка/чтение писем). Несколько ящиков на агента. Threading через Message-ID. Вложения с MIME-фильтрацией. Whitelist для ответов.

CLI (stdin/stdout)

Терминальное взаимодействие для администрирования и отладки.

Навыки

Markdown-файлы SKILL.md с YAML frontmatter — расширяют поведение агента без написания кода.

Навыки загружаются из директории workspace/skills/ и автоматически подставляются в системный промпт.

Планирование

Cron-задачи

Три типа расписания: at (одноразовое), every (интервал), cron (cron-выражение). Хранение в БД. Системные задачи (Dream) защищены от удаления. Инструмент для LLM: add, list, remove.

Heartbeat

Периодическая проверка файла HEARTBEAT.md в workspace агента. Двухфазная обработка:

  1. Decision — LLM решает: skip или run
  2. Execute — полный агентный цикл (инструменты доступны)
  3. Evaluate — LLM оценивает: уведомлять ли пользователя

MCP (Model Context Protocol)

Подключение внешних инструментальных серверов: stdio, SSE, streamable HTTP. Инструменты MCP автоматически регистрируются в ToolRegistry как обычные инструменты. Per-agent настройка доступа к конкретным MCP-серверам и их инструментам.

WebUI

SPA на Svelte 5 + SvelteKit (adapter-static) с Tailwind CSS. Встраивается в Go-бинарник через go:embed.

  • Тёмная/светлая тема
  • Streaming ответов в реальном времени
  • Tool events с прогрессом выполнения
  • Управление агентами, провайдерами, разрешениями
  • Профиль пользователя и душа агента (редактирование через UI)
  • Раздел «Система» для глобального админа (обновление, рестарт)

Наблюдаемость

  • Structured logginglog/slog (stdlib), text/json формат, контекстные поля
  • Health checkGET /api/v1/health (БД, сессии, LLM, аптайм)
  • Metrics — in-memory счётчики, GET /api/v1/metrics
  • LLM Usage — таблица llm_usage_log с аналитикой по моделям, API для WebUI

Конфигурация

  • БД вместо файлов — SQLite по умолчанию (pure Go, без CGO), PostgreSQL опционально (pgvector)
  • Шифрование секретов — AES-256-GCM для API-ключей и паролей
  • Душа агента — настраиваемые параметры личности через WebUI (имя, стиль, уровень подробности, темы для избегания)
  • Профиль пользователя — информация о пользователе доступна всем агентам без дублирования
  • Горячая перезагрузка провайдеров без рестарта

Кроссплатформенность

ПлатформаАрхитектуры
macOSamd64, arm64 (Apple Silicon)
Linuxamd64, arm64
Windowsamd64, arm64

Один бинарник — никаких зависимостей. WebUI встроен. SQLite из коробки.