Redukcja zgłoszeń "Gdzie moja paczka?" o 35 do 50 procent w 14 dni. Cut "Where Is My Order?" tickets by 35 to 50 percent in 14 days.
Polski • English • Architecture • Quick Start • ADRs • Contributing • Security
Podgląd wizualnej prezentacji projektu. Pełna wersja: artifact.
Important
WISMO Agent to produkcyjny asystent AI dla działów obsługi klienta e-commerce. Automatyzuje 35 do 50 procent zapytań o status przesyłki, integruje się ze sklepem (Shopify, BaseLinker, WooCommerce) oraz przewoźnikami (InPost, DPD, DHL, Poczta Polska), a w sytuacjach brzegowych bezpiecznie przekazuje wątek człowiekowi ze pełnym kontekstem.
|
📉 Deflekcja zgłoszeń
|
⚡ Czas odpowiedzi
|
💰 Koszt na ticket
|
| Segment sklepu | Miesięczne zamówienia | Oczekiwana oszczędność miesięczna |
|---|---|---|
| Mikro | 300 do 1 000 | 1 500 do 4 000 PLN |
| Mały | 1 000 do 5 000 | 4 000 do 12 000 PLN |
| Średni | 5 000 do 25 000 | 12 000 do 45 000 PLN |
| Duży | Powyżej 25 000 | Powyżej 45 000 PLN |
- Repozytorium gotowe do uruchomienia jednym poleceniem
docker compose up -d. - Cztery workflowy n8n w formacie JSON, w pełni skonfigurowane.
- Kolekcję Bruno do testowania API sklepu i przewoźnika.
- Produkcyjny system prompt z guardrailami (weryfikacja tożsamości, PII, blacklist zwrotów, walidacja halucynacji).
- Warstwę Human in the Loop z briefem JSON do Slacka lub Freshdesk.
- Dashboard Grafana z 7 kluczowymi metrykami produkcyjnymi.
- Dokumentację produkcyjną w PL i EN.
📖 Pełna lista funkcji (kliknij żeby rozwinąć)
- Trzy kanały wejściowe: widget WWW, WhatsApp Business API, e-mail (IMAP).
- Weryfikacja tożsamości dwuetapowa (numer zamówienia plus e-mail lub telefon).
- 10 zdefiniowanych scenariuszy brzegowych z decyzjami agenta.
- Rozpoznawanie języka klienta (PL i EN out of the box).
- Pamięć sesji w Redis, TTL 24 godziny.
- Fallback modelu LLM (Claude Sonnet plus GPT-4o mini jako backup).
- Rate limiting na poziomie kanału i sesji.
- Audit log wszystkich rozmów w Postgres z pełnym trace narzędzi.
- Redakcja PII (numery kart, PESEL) przed wysłaniem do LLM.
- Proaktywne powiadomienia o opóźnieniach (workflow cronowy).
- Wielotenancy (jedno wdrożenie może obsługiwać wielu klientów).
- Multi-currency i multi-language ready.
Tip
Ten moduł jest częścią większej matrycy usług "Automatyzacja e-commerce". Zobacz też: AI Odzyskiwanie Koszyków, AI Generator Opisów, Real-time Omnichannel Stock Sync oraz Samoobsługowy Portal Zwrotów.
Important
WISMO Agent is a production ready AI customer service assistant for e-commerce. It automates 35 to 50 percent of "Where Is My Order?" inquiries, integrates with your store (Shopify, BaseLinker, WooCommerce) and carriers (InPost, DPD, DHL, Poczta Polska), and safely hands over edge cases to human agents with full conversational context.
|
📉 Ticket deflection
|
⚡ First response time
|
💰 Cost per ticket
|
| Store segment | Monthly orders | Expected monthly savings |
|---|---|---|
| Micro | 300 to 1,000 | 300 to 900 EUR |
| Small | 1,000 to 5,000 | 900 to 2,700 EUR |
| Medium | 5,000 to 25,000 | 2,700 to 10,000 EUR |
| Large | Above 25,000 | Above 10,000 EUR |
- A repository ready to launch with a single
docker compose up -d. - Four fully configured n8n workflows in JSON.
- A Bruno collection for testing store and carrier APIs.
- Production system prompt with guardrails (identity verification, PII redaction, blacklist enforcement, hallucination checks).
- Human in the Loop layer with structured JSON brief to Slack or Freshdesk.
- Grafana dashboard with 7 key production metrics.
- Production documentation in Polish and English.
📖 Full feature list (click to expand)
- Three inbound channels: web widget, WhatsApp Business API, email (IMAP).
- Two step identity verification (order number plus email or phone).
- 10 defined edge case scenarios with predefined agent decisions.
- Customer language detection (Polish and English out of the box).
- Session memory in Redis with 24 hour TTL.
- LLM model fallback (Claude Sonnet primary, GPT-4o mini backup).
- Channel and session level rate limiting.
- Full audit log of every conversation in Postgres with tool trace.
- PII redaction (card numbers, national IDs) before LLM call.
- Proactive delay notifications (cron workflow).
- Multi tenant ready (single deployment can serve multiple stores).
- Multi currency and multi language ready.
flowchart LR
subgraph Client [Klient / Customer]
W[Widget chat]
WA[WhatsApp]
EM[E-mail]
end
subgraph Entry [Warstwa wejscia / Entry layer]
WH[n8n Webhooks]
NORM[Normalizer]
end
subgraph Core [Rdzen agentowy / Agent core]
AGT[Agent Node LLM]
MEM[(Redis session)]
GUARD[Guardrails]
end
subgraph Tools [Narzedzia / Tools]
T1[get_order]
T2[get_tracking]
T3[verify_identity]
T4[create_escalation]
T5[send_notification]
end
subgraph Integrations [Integracje / Integrations]
SHOP[(Shopify BaseLinker)]
COUR[(InPost DPD DHL)]
NOTIF[(Twilio SMTP)]
SLACK[(Slack Freshdesk)]
end
W --> WH
WA --> WH
EM --> WH
WH --> NORM --> AGT
AGT <--> MEM
AGT --> GUARD --> AGT
AGT --> T1 --> SHOP
AGT --> T2 --> COUR
AGT --> T3 --> SHOP
AGT --> T4 --> SLACK
AGT --> T5 --> NOTIF
🔍 Rozbudowany diagram komponentów (kliknij żeby rozwinąć)
flowchart TB
subgraph "Docker Compose Stack"
subgraph "Frontend"
nginx[Nginx TLS proxy]
end
subgraph "Orchestration"
n8n[n8n workflows]
end
subgraph "Data"
pg[(PostgreSQL)]
redis[(Redis)]
end
subgraph "Optional Microservice"
api[FastAPI wismo-api]
end
subgraph "Observability"
loki[Grafana Loki]
graf[Grafana dashboards]
end
end
nginx --> n8n
n8n --> pg
n8n --> redis
n8n --> api
api --> pg
pg --> loki
loki --> graf
Note
Kompletne uruchomienie lokalne wymaga: Docker Desktop, kluczy API do Shopify/BaseLinker, klucza Anthropic lub OpenAI, opcjonalnie klucza Twilio dla WhatsApp. Full local run requires: Docker Desktop, Shopify/BaseLinker API keys, Anthropic or OpenAI key, optionally Twilio key for WhatsApp.
git clone https://github.com/grzybowski-it/wismo-agent.git
cd wismo-agent
cp docker/.env.example docker/.env# Otwórz plik .env w edytorze i uzupełnij minimum:
# ANTHROPIC_API_KEY, SHOPIFY_STORE, SHOPIFY_ADMIN_TOKEN, N8N_ENCRYPTION_KEY
${EDITOR:-nano} docker/.envcd docker
docker compose up -dPo 30 sekundach panel n8n będzie dostępny pod http://localhost:5678. Zaloguj się (dane w .env), zaimportuj workflowy z n8n-workflows/*.json i podłącz credentials.
After 30 seconds the n8n panel is available at http://localhost:5678. Log in (credentials in .env), import workflows from n8n-workflows/*.json and attach credentials.
# Zainstaluj Bruno CLI / Install Bruno CLI
npm install -g @usebruno/cli
# Uruchom całą kolekcję / Run the full collection
cd bruno-collection
bru run --env local📜 Kluczowe zasady system promptu (kliknij żeby rozwinąć)
- Weryfikacja tożsamości obowiązkowa przed wywołaniem
get_order. - Nie ujawniaj co jest w bazie. Nie mów "e-mail w naszym systemie to X".
- Nie obiecuj zwrotów, rabatów, rekompensat. Kieruj do eskalacji.
- Nie zgaduj godziny doręczenia. Podawaj przedziały z SLA przewoźnika.
- Nie zmieniaj adresu dostawy sam. Kieruj do eskalacji.
- Empatia i deeskalacja przed konkretem, jeśli klient sfrustrowany.
- Maksymalnie 6 wywołań narzędzi w jednej turze.
Pełny prompt: src/prompts/system_prompt.md.
🛡 Guardrails na wyjściu (kliknij żeby rozwinąć)
- Długość odpowiedzi (max 800 znaków widget, 1000 WhatsApp, 2000 e mail).
- Blacklist zwrotów: "gwarantuję", "na pewno", "obiecuję", "zwrot pieniędzy".
- Wykrywanie halucynowanych numerów zamówień (walidacja z narzędzi).
- Redakcja PII (numery kart, PESEL).
- Wykrywanie tonu agresywnego lub kryzysowego, automatyczna eskalacja.
Implementacja: src/api/services/guardrails.py.
Tip
Kiedy agent nie może rozwiązać sprawy, generuje ustrukturyzowany brief JSON i pushuje go do Slacka lub Freshdesk. Konsultant przejmujący widzi pełną transkrypcję i sugerowaną następną akcję.
Przykładowy brief w Slacku:
🚨 Eskalacja High
Klient: Anna Kowalska (a.kowalska@example.com)
Zamówienie: 12345, wartość 349 PLN
Powód: E05_delivered_not_received
Ostatni skan: 2026-09-08 12:04, InPost, "Delivered_to_locker"
Kontekst: Klient odebrał kod SMS, po otwarciu skrytki znalazł ją pustą (3 zdjęcia).
Sugerowana akcja: Zgłoszenie do InPost, tymczasowy kod 20 procent.
[Przejmuję] [Zamknij bez akcji] [Odsyłam do agenta]
| Metryka / Metric | Cel / Target | Alarm |
|---|---|---|
| Deflection rate | 35 do 50 procent | poniżej 25 procent przez 3 dni |
| First response time | poniżej 5s | powyżej 15s |
| Cost per session | poniżej 0,05 USD | powyżej 0,15 USD |
| CSAT | powyżej 4,2 / 5 | poniżej 3,8 / 5 |
| Halucynacje | poniżej 1 procent | powyżej 3 procent |
| P95 latency | poniżej 8s | powyżej 15s |
wismo-agent/
├── docker/ # docker compose plus konfiguracja Nginx
├── n8n-workflows/ # 4 workflowy JSON gotowe do importu
├── bruno-collection/ # Testy API (Shopify, InPost, n8n webhooks)
├── src/
│ ├── api/ # Opcjonalny mikroserwis FastAPI (guardrails)
│ └── prompts/ # System prompt i pomocnicze
├── docs/ # Architecture, deployment, prompts
├── skills/ # Skille Claude Code (np. wismo-agent skill)
└── .github/workflows/ # CI, docker publish
# Testy Python (FastAPI, guardrails)
cd src
pip install -r requirements-dev.txt
pytest tests/ -v --cov=api --cov-report=term-missing
# Testy Bruno (endpointy API i webhooki)
cd bruno-collection
bru run --env local
# Testy end to end (Playwright)
cd tests/e2e
npm ci
npx playwright testWarning
Nie używaj domyślnych haseł w .env.example na produkcji. Wygeneruj N8N_ENCRYPTION_KEY przez openssl rand -hex 32. Nigdy nie commituj .env do repo.
- Coolify (self hosted PaaS na własnym VPS)
- Railway (managed, dobry na start)
- Hetzner Cloud + Docker (najlepszy stosunek cena/wydajność w EU)
- AWS ECS + RDS (dla korporacji)
Pełna instrukcja: docs/DEPLOYMENT.md.
Important
Warstwa security jest wpisana w architekturę, nie doklejona po fakcie.
W repo od dnia zero:
- Guardrails po stronie serwera (blacklist zwrotów, PII redaction, walidacja halucynacji, limity długości). Testowane 27 testami pytest.
- Weryfikacja tożsamości dwuetapowa przed dostępem do zamówienia.
- Rate limiting per IP w Nginx (widget 30 rpm, api 120 rpm).
- Security headers (X Frame Options, Referrer Policy, Permissions Policy).
- Non root user w kontenerze wismo-api.
- Postgres z scram-sha-256.
- Gitleaks w CI (nie przepuszcza commitów z sekretami).
- N8N_ENCRYPTION_KEY generowany losowo w
make init.
Do dopisania przed pierwszym realnym klientem:
- Prompt injection defense (Rebuff, LLM Guard albo własny klasyfikator).
- Webhook signature verification (Shopify HMAC, Twilio signature).
- Secrets management (Doppler, HashiCorp Vault, AWS Secrets Manager).
- LLM cost limits per klient plus alerty.
- Immutable audit log (S3 Object Lock).
- RODO endpointy (prawo do bycia zapomnianym, retention 90 dni).
- Dependency scanning (Dependabot, Trivy dla obrazów).
- Fork, branch feature/nazwa, PR do main.
- Konwencja commitów: Conventional Commits.
- Wszystkie PR wymagają zielonego CI i review co najmniej jednej osoby.
- Dodawaj testy do zmian w
src/.
Pełny scenariusz nagrania filmu (format 15 minut speedrun plus format 5 odcinkowego devlogu) znajduje się w docs/RECORDING.md. Zawiera dokładny timeline, listę rekwizytów, checklistę dnia nagrania i propozycje miniatury.
- MVP: widget plus n8n plus Shopify plus InPost
- WhatsApp Business API
- E-mail (IMAP)
- Guardrails i PII redaction
- HITL Slack integration
- Freshdesk i Zendesk connectors
- Multi tenant panel admin
- BaseLinker native integration (obecnie przez webhook)
- Voice channel (Twilio Voice plus TTS/STT)
- Analytics w produkcie (Metabase embedded)
MIT. Zobacz LICENSE.
Hubert Grzybowski grzybowski.it@gmail.com • GitHub
Rozwiązania AI dla e-commerce. Automatyzacja obsługi klienta, odzyskiwanie koszyków, generowanie opisów, orkiestracja OMS. AI solutions for e-commerce. Customer service automation, cart recovery, product content generation, OMS orchestration.
Zbudowane z myślą o produkcji, nie o demo. Built for production, not for demos.
⭐ Jeśli ten projekt Ci się przyda, zostaw gwiazdkę. / If this project helps you, drop a star.