Czym jest agent w OpenClaw
Agent to podstawowa jednostka wykonawcza w OpenClaw. Każdy agent to niezależna instancja, która posiada własny:
- Workspace — izolowany katalog na dysku z plikami konfiguracyjnymi, danymi i stanem agenta
- State directory — katalog przechowujący bieżący stan: aktywne sesje, pamięć trwałą, cache
- Session store — backend przechowujący historię rozmów (plik, Redis lub SQLite)
- System prompt — unikalna osobowość i zasady działania
- Model AI — każdy agent może korzystać z innego providera i modelu
W najprostszym scenariuszu OpenClaw uruchamia jednego agenta, który obsługuje wszystkie kanały. Jednak architektura multi-agent pozwala na znacznie bardziej złożone konfiguracje.
Zasady izolacji
Agenty w konfiguracji multi-agent są od siebie izolowane. Oznacza to, że:
- Agent A nie ma dostępu do sesji agenta B
- Pamięć trwała jednego agenta nie jest widoczna dla innego (chyba że explicite włączono współdzielenie)
- Każdy agent może mieć inne narzędzia, inny sandbox i inne uprawnienia
- Awaria jednego agenta nie wpływa na działanie pozostałych
Ta izolacja jest kluczowa z punktu widzenia bezpieczeństwa — możesz mieć agenta publicznego (obsługującego klientów) z ograniczonymi uprawnieniami i prywatnego (wewnętrznego) z pełnym dostępem do narzędzi.
Architektura routingu
Gdy wiadomość przychodzi do Gateway, system routingu decyduje, który agent powinien ją obsłużyć. Proces ten opiera się na bindingach — regułach przypisujących kanały i konteksty do agentów.
Bindingi
Binding to reguła, która łączy kanał (lub jego fragment) z konkretnym agentem:
{
agents: {
support_bot: {
model: "openai/gpt-4o",
system_prompt: "Jesteś botem wsparcia technicznego...",
bindings: [
{ channel: "telegram", type: "dm" },
{ channel: "discord", server: "123456", channels: ["#support"] },
]
},
internal_bot: {
model: "anthropic/claude-sonnet-4-20250514",
system_prompt: "Jesteś wewnętrznym asystentem zespołu...",
bindings: [
{ channel: "slack", workspace: "my-team" },
{ channel: "discord", server: "123456", channels: ["#internal"] },
]
}
}
}
Priorytet routingu
Gdy wiadomość pasuje do wielu bindingów, OpenClaw stosuje system priorytetów:
- Dokładne dopasowanie kanału i kontekstu — np. konkretny kanał Discord na konkretnym serwerze
- Dopasowanie kanału i typu — np. wszystkie DM na Telegramie
- Dopasowanie ogólne — np. cały kanał Slack
- Agent domyślny — jeśli żaden binding nie pasuje, wiadomość trafia do agenta oznaczonego jako
default: true
Implementacja wielokanałowa
Typowy scenariusz multi-agent to organizacja z różnymi agentami dla różnych celów:
Przykład: firma z trzema agentami
- Agent „Kasia" (support) — obsługuje klientów na Telegramie i WebChat. Przyjazny ton, dostęp do FAQ i bazy wiedzy. Model: GPT-4o.
- Agent „DevBot" (development) — asystent zespołu programistów na Slacku. Dostęp do narzędzi: browser, shell, GitHub API. Model: Claude Sonnet.
- Agent „Nocny" (monitoring) — uruchamia się przez crony, sprawdza statusy serwisów, wysyła raporty na Discorda. Bez interakcji z użytkownikami.
Struktura konfiguracji multi-agent
Pełna konfiguracja multi-agent w pliku openclaw.json:
{
gateway: {
mode: "multi-agent",
default_agent: "support",
},
agents: {
support: {
workspace: "./workspaces/support",
model: "openai/gpt-4o",
system_prompt: "...",
tools: ["browser", "web_search"],
bindings: [/* ... */],
},
devbot: {
workspace: "./workspaces/devbot",
model: "anthropic/claude-sonnet-4-20250514",
system_prompt: "...",
tools: ["browser", "shell", "file_access"],
sandbox: { runtime: "docker" },
bindings: [/* ... */],
}
}
}
Umiejętności (skills)
Skills to rozszerzalne umiejętności, które możesz przypisać do konkretnych agentów. Skill to skrypt (JavaScript, Python lub shell), który agent może wywołać jako narzędzie:
{
agents: {
support: {
skills: [
{
name: "check_order",
description: "Sprawdza status zamówienia w systemie",
script: "./skills/check_order.js",
parameters: {
order_id: { type: "string", required: true }
}
}
]
}
}
}
Skills pozwalają agentom na interakcję z zewnętrznymi systemami (bazy danych, API, CRM) w kontrolowany i bezpieczny sposób.
Funkcje międzyagentowe
Choć agenty są domyślnie izolowane, OpenClaw oferuje mechanizmy kontrolowanej współpracy:
Współdzielona pamięć (shared memory)
{
memory: {
shared_namespace: "company_knowledge",
agents: ["support", "devbot"],
permissions: {
support: "read",
devbot: "read_write",
}
}
}
Wspólna przestrzeń pamięci pozwala agentom dzielić wiedzę — np. DevBot zapisuje informacje o nowych funkcjach, a Support Bot je odczytuje podczas rozmów z klientami.
Wyszukiwanie semantyczne pamięci
Pamięć trwała agenta jest indeksowana semantycznie (embedding vectory), co pozwala na wyszukiwanie po znaczeniu, nie tylko po słowach kluczowych. Agent może zapytać: „Co wiem o problemach z płatnościami?" i otrzymać wszystkie powiązane wspomnienia.
Sandbox międzyagentowy
Agenty mogą współdzielić sandbox (np. wspólny kontener Docker), co pozwala na scenariusze takie jak: jeden agent pisze kod, drugi go testuje — oba w tym samym środowisku.