Dotyczy OpenClaw v2026.2 | Artykuł dla zespołów lub użytkowników potrzebujących izolacji kontekstu.
TL;DR: Konfiguracja wielu agentów: "agents": {"instances": {"personal": {...}, "work": {...}}}. Reguły routingu: "routing": {"rules": [{"match": {"channel": "telegram"}, "agent": "personal"}]}. Izolacja sesji: "sessions": {"isolation": "user"}. Tryb sandbox: "sandbox": {"mode": "non-main"}. Idealne do scenariuszy wieloużytkownikowych, wieloprojektowych, wielozadaniowych.
Dlaczego potrzeba wielu agentów?
Ograniczenia pojedynczego agenta
| Scenariusz | Problem jednego agenta | Rozwiązanie z wieloma agentami |
|---|---|---|
| Wielu użytkowników | Mieszanie kontekstów, problemy z prywatnością | Niezależny agent dla każdego użytkownika |
| Wiele projektów | Informacje projektowe się mieszają | Niezależny agent dla każdego projektu |
| Wiele zastosowań | Jeden agent w wielu rolach | Wyspecjalizowani agenci |
| Wiele zespołów | Trudna kontrola uprawnień | Izolacja agentów wg zespołów |
| Kontrola kosztów | Brak rozróżnienia zużycia | Niezależne rozliczanie wg modelu |
Scenariusze użycia wielu agentów
flowchart TB
subgraph Users["Użytkownicy"]
U1[Użytkownik A]
U2[Użytkownik B]
U3[Zespół X]
U4[Zespół Y]
end
subgraph Router["Router wiadomości"]
R[Reguły routingu]
end
subgraph Agents["Instancje agentów"]
A1[Osobisty Agent A]
A2[Osobisty Agent B]
A3[Agent zespołu X]
A4[Agent zespołu Y]
end
subgraph Models["Modele"]
M1[Claude Opus]
M2[Claude Sonnet]
M3[GPT-4o]
M4[Haiku]
end
U1 --> R
U2 --> R
U3 --> R
U4 --> R
R --> A1
R --> A2
R --> A3
R --> A4
A1 --> M1
A2 --> M2
A3 --> M3
A4 --> M4
Konfiguracja wielu agentów
Podstawowa struktura
{
"agents": {
"defaults": {
"model": "anthropic/claude-sonnet-4",
"workspace": "~/.openclaw/workspace"
},
"instances": {
"personal": {
"model": "anthropic/claude-opus-4-6",
"workspace": "~/.openclaw/workspaces/personal",
"thinkingLevel": "high"
},
"work": {
"model": "anthropic/claude-sonnet-4",
"workspace": "~/.openclaw/workspaces/work",
"skills": ["github", "jira", "confluence"]
},
"assistant": {
"model": "anthropic/claude-haiku-3.5",
"workspace": "~/.openclaw/workspaces/assistant"
}
}
}
}
Ustawienia agenta
| Ustawienie | Opis | Przykład |
|---|---|---|
model |
Używany model | anthropic/claude-opus-4-6 |
workspace |
Katalog roboczy | ~/.openclaw/workspaces/personal |
thinkingLevel |
Poziom myślenia | high, medium, low |
skills |
Włączone umiejętności | ["gmail", "calendar"] |
sandbox |
Konfiguracja sandbox | { "mode": "non-main" } |
contextWindow |
Okno kontekstu | 200000 |
Struktura Workspace
~/.openclaw/
├── workspace/ # Domyślny workspace
│ ├── AGENTS.md
│ ├── SOUL.md
│ └── skills/
├── workspaces/
│ ├── personal/ # Osobisty agent
│ │ ├── AGENTS.md
│ │ ├── SOUL.md
│ │ └── USER.md
│ ├── work/ # Agent roboczy
│ │ ├── AGENTS.md
│ │ └── skills/
│ └── assistant/ # Agent asystent
│ └── AGENTS.md
└── openclaw.json # Główna konfiguracja
Reguły routingu wiadomości
Konfiguracja routingu
{
"routing": {
"rules": [
{
"match": {
"channel": "telegram",
"sender": "123456789"
},
"agent": "personal"
},
{
"match": {
"channel": "discord",
"guild": "987654321"
},
"agent": "work"
},
{
"match": {
"session": "main"
},
"agent": "personal"
}
],
"default": "personal"
}
}
Szczegóły reguł routingu
| Pole dopasowania | Opis | Przykład |
|---|---|---|
channel |
Typ kanału | telegram, discord, slack |
sender |
ID nadawcy | 123456789 |
guild |
ID serwera Discord | 987654321 |
group |
ID grupy | -100123456789 |
session |
ID sesji | main, telegram:user:123 |
pattern |
Dopasowanie regex | ^work- |
Zaawansowany przykład routingu
{
"routing": {
"rules": [
{
"name": "Osobisty Telegram",
"match": {
"channel": "telegram",
"sender": ["123456789", "987654321"]
},
"agent": "personal"
},
{
"name": "Służbowy Discord",
"match": {
"channel": "discord",
"guild": "111222333"
},
"agent": "work"
},
{
"name": "Grupa robocza",
"match": {
"channel": "telegram",
"group": "-100111222333"
},
"agent": "work"
},
{
"name": "Środowisko testowe",
"match": {
"pattern": "^test-"
},
"agent": "assistant",
"config": {
"sandbox": { "mode": "always" }
}
}
],
"default": "personal"
}
}
Priorytet routingu
flowchart TB
MSG[Nadeszła wiadomość] --> R1{Pasuje do reguły 1?}
R1 -->|Tak| A1[Agent 1]
R1 -->|Nie| R2{Pasuje do reguły 2?}
R2 -->|Tak| A2[Agent 2]
R2 -->|Nie| R3{Pasuje do reguły 3?}
R3 -->|Tak| A3[Agent 3]
R3 -->|Nie| D[Domyślny agent]
Routing dopasowuje sekwencyjnie — pierwsza pasująca reguła wygrywa.
Izolacja sesji
Poziomy izolacji
| Poziom | Opis | Scenariusz |
|---|---|---|
| Brak izolacji | Współdzielony kontekst | Jeden użytkownik, jedno zastosowanie |
| Izolacja kanałów | Niezależny kontekst wg kanału | Wiele kanałów |
| Izolacja użytkowników | Niezależny kontekst wg użytkownika | Wielu użytkowników |
| Izolacja sesji | Każda sesja niezależna | Pełna izolacja |
| Izolacja agentów | Każdy agent niezależny | Wiele agentów |
Konfiguracja izolacji sesji
{
"sessions": {
"isolation": "user",
"persistence": true,
"retention": {
"maxAge": 604800000,
"maxSessions": 100
}
}
}
Szczegóły konfiguracji izolacji
{
"sessions": {
"isolation": "user",
"storage": {
"type": "file",
"path": "~/.openclaw/sessions"
},
"encryption": {
"enabled": true,
"algorithm": "aes-256-gcm"
},
"retention": {
"maxAge": 604800000,
"maxSessions": 100,
"cleanupInterval": 86400000
}
}
}
| Ustawienie | Opis | Domyślnie |
|---|---|---|
isolation |
Poziom izolacji | user |
storage.type |
Typ przechowywania | file |
encryption.enabled |
Włączenie szyfrowania | true |
retention.maxAge |
Maksymalny czas przechowywania | 7 dni |
retention.maxSessions |
Maksymalna liczba sesji | 100 |
Scenariusze współpracy zespołowej
Scenariusz 1: Mały zespół
{
"agents": {
"instances": {
"team": {
"model": "anthropic/claude-sonnet-4",
"workspace": "~/.openclaw/workspaces/team",
"skills": ["github", "jira", "slack"]
}
}
},
"routing": {
"rules": [
{
"match": { "channel": "slack" },
"agent": "team"
},
{
"match": { "channel": "discord" },
"agent": "team"
}
],
"default": "team"
}
}
Scenariusz 2: Izolacja działów
{
"agents": {
"instances": {
"engineering": {
"model": "anthropic/claude-opus-4-6",
"workspace": "~/.openclaw/workspaces/engineering",
"skills": ["github", "jira", "pagerduty"],
"sandbox": { "mode": "off" }
},
"marketing": {
"model": "anthropic/claude-sonnet-4",
"workspace": "~/.openclaw/workspaces/marketing",
"skills": ["mailchimp", "analytics"],
"sandbox": { "mode": "non-main" }
},
"support": {
"model": "anthropic/claude-haiku-3.5",
"workspace": "~/.openclaw/workspaces/support",
"skills": ["zendesk", "intercom"],
"sandbox": { "mode": "always" }
}
}
},
"routing": {
"rules": [
{
"name": "Discord inżynierii",
"match": { "channel": "discord", "guild": "111111111" },
"agent": "engineering"
},
{
"name": "Slack marketingu",
"match": { "channel": "slack", "team": "T22222222" },
"agent": "marketing"
},
{
"name": "Telegram wsparcia",
"match": { "channel": "telegram", "group": "-100333333333" },
"agent": "support"
}
],
"default": "support"
}
}
Scenariusz 3: SaaS wielodostępowy
{
"agents": {
"dynamic": true,
"template": {
"model": "anthropic/claude-sonnet-4",
"workspace": "~/.openclaw/workspaces/tenants/{{tenantId}}",
"skills": ["base"],
"sandbox": { "mode": "always" }
},
"limits": {
"maxAgents": 100,
"maxSessionsPerAgent": 50,
"maxTokensPerMonth": 1000000
}
},
"routing": {
"rules": [
{
"name": "Routing tenantów",
"match": { "header": "X-Tenant-Id" },
"agent": "tenant_{{tenantId}}",
"createIfNotExists": true
}
]
}
}
Uprawnienia i bezpieczeństwo
Kontrola uprawnień agenta
{
"agents": {
"instances": {
"trusted": {
"model": "anthropic/claude-opus-4-6",
"sandbox": { "mode": "off" },
"permissions": {
"filesystem": { "read": true, "write": true },
"network": { "outbound": true },
"process": { "execute": true }
}
},
"restricted": {
"model": "anthropic/claude-haiku-3.5",
"sandbox": { "mode": "always" },
"permissions": {
"filesystem": {
"read": ["~/allowed/"],
"write": ["~/allowed/"]
},
"network": {
"outbound": ["api.example.com"]
},
"process": { "execute": false }
}
}
}
}
}
Tryb sandbox
| Tryb | Opis | Scenariusz |
|---|---|---|
off |
Brak sandbox | Zaufany agent |
non-main |
Sandbox dla sesji innych niż main | Współdzielenie zespołowe |
always |
Zawsze sandbox | Niezaufane środowisko |
Konfiguracja sandbox
{
"sandbox": {
"mode": "non-main",
"container": {
"image": "openclaw/sandbox:latest",
"timeout": 30000,
"memory": "512m",
"cpu": "0.5"
},
"allowlist": ["read", "write", "edit", "bash"],
"denylist": ["browser", "canvas", "nodes"],
"networkPolicy": {
"allow": ["api.example.com"],
"deny": ["*"]
}
}
}
Monitoring i zarządzanie
Monitoring statusu agentów
# Lista wszystkich instancji agentów
openclaw agents list
# Przykładowy wynik:
# Name Model Sessions Status Last Active
# personal claude-opus-4-6 3 active 2 min temu
# work claude-sonnet-4 5 active 5 min temu
# assistant claude-haiku-3.5 2 idle 1 godz. temu
# Szczegóły agenta
openclaw agents show personal
# Podgląd reguł routingu
openclaw routing list
Zarządzanie sesjami
# Lista wszystkich sesji
openclaw sessions list --agent personal
# Przykładowy wynik:
# Session ID Channel Sender Created Messages
# telegram:user:123 telegram 123456789 2026-02-26 42
# main cli - 2026-02-25 128
# Szczegóły sesji
openclaw sessions show telegram:user:123
# Eksport sesji
openclaw sessions export telegram:user:123 --format json
# Usunięcie sesji
openclaw sessions delete telegram:user:123
Statystyki zużycia
# Zużycie wg agenta
openclaw usage --by-agent
# Przykładowy wynik:
# Agent Tokens In Tokens Out Cost Requests
# personal 125,000 45,000 $2.10 128
# work 89,000 32,000 $1.25 95
# assistant 15,000 8,000 $0.15 42
# Statystyki wg zakresu czasu
openclaw usage --by-agent --from 2026-02-01 --to 2026-02-28
Najlepsze praktyki
1. Rozsądny podział agentów
| Wymiar podziału | Opis | Przykład |
|---|---|---|
| Zastosowanie | Podział wg funkcji | coding, research, assistant |
| Projekt | Podział wg projektu | project-alpha, project-beta |
| Zespół | Podział wg zespołu | engineering, marketing |
| Model | Podział wg modelu | opus, sonnet, haiku |
2. Dziedziczenie konfiguracji
{
"agents": {
"defaults": {
"model": "anthropic/claude-sonnet-4",
"workspace": "~/.openclaw/workspace",
"thinkingLevel": "medium",
"sandbox": { "mode": "non-main" }
},
"instances": {
"opus": {
"model": "anthropic/claude-opus-4-6",
"thinkingLevel": "high"
// Dziedziczy workspace i sandbox z defaults
},
"haiku": {
"model": "anthropic/claude-haiku-3.5",
"thinkingLevel": "minimal"
// Dziedziczy pozostałe ustawienia z defaults
}
}
}
}
3. Minimalizacja uprawnień
{
"agents": {
"instances": {
"restricted": {
"model": "anthropic/claude-haiku-3.5",
"sandbox": { "mode": "always" },
"permissions": {
"filesystem": {
"read": ["~/allowed/read"],
"write": ["~/allowed/write"]
},
"network": {
"outbound": []
},
"process": {
"execute": false
}
}
}
}
}
}
4. Monitoring i alerty
{
"monitoring": {
"alerts": [
{
"condition": "usage > 1000000",
"action": "notify"
},
{
"condition": "error_rate > 0.1",
"action": "notify"
},
{
"condition": "response_time > 10000",
"action": "notify"
}
],
"webhook": "https://your-monitoring.com/webhook"
}
}
Rozwiązywanie problemów
Routing nie działa
# Podgląd bieżących reguł routingu
openclaw routing list
# Test routingu
openclaw routing test --channel telegram --sender 123456789
# Przykładowy wynik:
# Matched Rule: Osobisty Telegram
# Target Agent: personal
# Route Path: default -> rule 1 -> personal
Problem z izolacją sesji
# Sprawdzenie konfiguracji izolacji sesji
openclaw config get sessions.isolation
# Sprawdzenie listy sesji
openclaw sessions list --all
# Reset izolacji sesji
openclaw sessions reset --agent personal
Problem z uprawnieniami
# Sprawdzenie konfiguracji uprawnień
openclaw agents permissions show personal
# Test uprawnień
openclaw agents test-permission personal --action filesystem.read --path ~/test
# Przykładowy wynik:
# Permission: filesystem.read
# Path: ~/test
# Result: ALLOWED
Podsumowanie
Architektura wielu agentów to zaawansowana funkcja OpenClaw, zapewniająca potężne wsparcie dla scenariuszy zespołowych i enterprise:
- Elastyczny routing: przypisywanie różnych agentów wg kanału, użytkownika, projektu
- Izolacja sesji: ochrona prywatności, zapobieganie mieszaniu kontekstów
- Kontrola uprawnień: szczegółowe zarządzanie uprawnieniami
- Optymalizacja kosztów: różne modele do różnych zastosowań
- Skalowalność: obsługa dynamicznego tworzenia i zarządzania agentami
Podsumowanie artykułu:
- Zrozumiałeś wartość i scenariusze architektury wielu agentów
- Opanowałeś konfigurację agentów i reguły routingu wiadomości
- Nauczyłeś się konfigurować izolację sesji
- Poznałeś najlepsze praktyki współpracy zespołowej
- Opanowałeś kontrolę uprawnień i monitoring
Historia zmian:
- 2026-02-26: Pierwsza wersja, na podstawie OpenClaw v2026.2
Nawigacja po serii:
- ← Poprzedni artykuł: Web Control UI i Canvas
- → Następny artykuł: Najlepsze praktyki konfiguracji bezpieczeństwa