Inteligentni asystenci w biznesie - siedem ról
SoftwareStudio rozwija rodzinę asystentów AI, z których każdy ma jedno zadanie i własny zestaw danych. Jeden odpowiada na pytania o system, inny czyta umowy, a jeszcze inny buduje zapytania do bazy. Podział na role jest celowy: asystenta ograniczonego do jednego zadania łatwiej kontrolować i mierzyć, a w razie awarii po prostu wyłączyć.
Poniższy tekst nie opisuje kolejnych funkcji produktów, tylko pomaga zdecydować, od którego zacząć i jak sprawdzić, czy działa. Funkcje poszczególnych asystentów pochodzą z opisu producenta, a mechanizmy techniczne to wiedza ogólna o takich rozwiązaniach. Przegląd całej rodziny znajduje się w artykule o SoftwareStudio AI Family.
Tabela ról asystentów
Tabela zestawia siedem ról z ich danymi wejściowymi i wynikiem, a także wskazuje osobę, która ocenia odpowiedź.
| Asystent | Dane wejściowe | Wynik | Kto zatwierdza |
|---|---|---|---|
| Asystent CRM (ClientMind AI) | Historia kontaktów i zakupów | Podpowiedź kolejnego kroku | Handlowiec |
| Asystent do raportów SQL (DataFlow AI) | Baza SQL i pytanie użytkownika | Zapytanie oraz raport | Autor pytania |
| Asystent użytkownika programu (GuidePro AI) | Opis procesów w systemie | Odpowiedź na pytanie | Użytkownik |
| Asystent biura (OfficeWise AI) | Dokumenty i formularze | Uporządkowany dokument oraz przypomnienie o terminie | Pracownik biura |
| Asystent tłumacza (LinguaSmart AI) | Wiadomości i dokumenty | Tłumaczenie z zachowaniem terminologii | Nadawca |
| Asystent umów (LegalTrack AI) | Kontrakty i aneksy | Wskazane nieścisłości i propozycje poprawek | Prawnik lub handlowiec |
| Asystent wdrożeniowców (DeployMate AI) | Plany projektów | Monitoring postępów i ostrzeżenia | Kierownik projektu |
W każdym wierszu ostatnia kolumna zawiera człowieka. Żaden z asystentów nie kończy procesu sam: podpowiedź handlowa trafia do handlowca, tłumaczenie do nadawcy, a wskazana nieścisłość w umowie do prawnika.
Reguła: asystent proponuje, a człowiek zatwierdza. Im droższa pomyłka, tym twardszy musi być punkt zatwierdzenia.
Asystent a chatbot ogólny
Publiczny chatbot odpowiada na dowolne pytanie na podstawie tego, czego nauczył się z ogólnodostępnych tekstów. Nie zna procedur firmy, jej klientów ani bazy zamówień, a jego odpowiedzi trudno sprawdzić. Asystent działa odwrotnie: zawęża temat, dostaje dane z systemów firmy i zwraca wynik razem ze wskazaniem, skąd go wziął.
Różnica ma skutek praktyczny. Pracownik, który wkleja do publicznego chatbota fragment umowy, przekazuje jego treść poza firmę. Ten sam pracownik pytający asystenta działającego w prywatnej instancji nie opuszcza środowiska, które firma kontroluje. Ryzyko przenosi się z zachowania ludzi na architekturę.
Kryteria wyboru pierwszego zastosowania
Pierwszy asystent wyznacza sposób pracy z następnymi. Jeśli pilotaż zakończy się porażką z powodu złych danych, firma wyciągnie wniosek, że AI nie działa, choć zawiodła ewidencja. Dlatego pierwsze zastosowanie wybiera się według czterech kryteriów, a nie według tego, które jest najbardziej efektowne.
| Kryterium | Pytanie kontrolne | Sygnał, że zastosowanie nadaje się na pilotaż |
|---|---|---|
| Powtarzalność | Jak często pracownicy wykonują tę samą czynność | Wiele powtórzeń o podobnej strukturze w tygodniu |
| Dostępność danych | Gdzie leży wiedza potrzebna do odpowiedzi | Dane w bazie SQL Server albo w dokumentach z tekstem |
| Koszt pomyłki | Co się stanie po błędnej odpowiedzi | Błąd wychwytuje człowiek, zanim wywoła skutek |
| Mierzalność | Czy da się policzyć czas lub liczbę błędów | Znany jest obecny czas czynności |
Ryzyko poszczególnych zastosowań
Zastosowania różnią się skutkami błędu. Cztery poziomy porządkują je od najbezpieczniejszych do wymagających najostrzejszej kontroli.
- Niskie ryzyko - odpowiedzi na pytania o obsługę programu i wyszukiwanie w dokumentacji.
- Umiarkowane - raporty z bazy tylko do odczytu oraz tłumaczenia wewnętrznej korespondencji.
- Podwyższone - podpowiedzi dla handlowca i szkice wiadomości do klienta, wymagające akceptacji.
- Wysokie - analiza umów i dokumentów, których treść ma skutki prawne.
Pilotaż zaczyna się od dołu tej listy. Asystent użytkownika programu albo asystent raportowy dają szybki wynik i niewielkie ryzyko, a doświadczenie z nimi pozwala potem podejść do zastosowań z wyższym progiem kontroli.
Wspólna architektura asystentów
Pod względem technicznym asystenci są do siebie podobni bardziej, niż sugeruje tabela ról. Każdy składa się z aplikacji, która zbiera kontekst z danych firmy, oraz z wywołania modelu językowego. Do tego dochodzą kontrola uprawnień i zapis przebiegu. Różni je zawartość kontekstu i sposób prezentacji wyniku.
Wspólny interfejs asystenta
Wspólny kontrakt ułatwia dodawanie kolejnych asystentów bez przebudowy reszty aplikacji. Przykład w C# pokazuje minimalny zestaw: odpowiedź niesie treść i wskazanie źródeł, a dodatkowo znacznik, czy wymaga zatwierdzenia.
public record Pytanie(string Tresc, string KontekstId);
public record Odpowiedz(
string Tresc,
IReadOnlyList<string> Zrodla,
bool WymagaZatwierdzenia);
public interface IAsystent
{
string Nazwa { get; }
Task<Odpowiedz> OdpowiedzAsync(Pytanie pytanie, Uzytkownik uzytkownik);
}
Pole źródeł pozwala pokazać użytkownikowi, skąd wzięła się odpowiedź. Znacznik zatwierdzenia zapisuje w kodzie regułę z poprzedniej sekcji: dla asystenta umów ma zawsze wartość prawdziwą, dla asystenta użytkownika programu zwykle fałszywą.
Wywołanie z przeglądarki
Po stronie przeglądarki wystarczy jedno wywołanie asynchroniczne. Nazwa asystenta jest częścią adresu, więc jedna funkcja obsługuje wszystkie role.
async function zapytaj(asystent, tresc) {
const odp = await fetch('/api/asystent/' + asystent, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ tresc })
});
if (!odp.ok) throw new Error('Błąd ' + odp.status);
return odp.json();
}

Składanie kontekstu z dokumentów
Asystent odpowiadający na pytania o dokumentację nie przekazuje modelowi całego zbioru. Aplikacja wyszukuje kilka fragmentów pasujących do pytania i dołącza tylko je. W bazie SQL Server takie wyszukiwanie może korzystać z indeksu pełnotekstowego i predykatu CONTAINS.
SELECT TOP (5) f.FragmentId, f.Tytul, f.Tresc
FROM dbo.FragmentDokumentacji AS f
WHERE CONTAINS(f.Tresc, @Fraza)
ORDER BY f.DataAktualizacji DESC;
Jakość odpowiedzi zależy od jakości wyszukiwania. Jeśli właściwy fragment nie trafi do kontekstu, model odpowie na podstawie ogólnej wiedzy, a nie dokumentacji firmy. Polecenie dla modelu powinno więc zakazywać odpowiedzi bez wskazanego źródła.
Uprawnienia asystenta
Asystent nie może widzieć więcej niż użytkownik, który zadaje pytanie. Jeśli działa na koncie z szerokim dostępem, każdy pracownik uzyskuje pośrednio dostęp do danych, których nie powinien znać. Kontekst buduje się więc z uprawnieniami zalogowanej osoby, a nie usługi.
W praktyce oznacza to przekazywanie tożsamości użytkownika do warstwy danych. W bazie SQL Server pomaga w tym mechanizm zabezpieczeń na poziomie wiersza, opisany w dokumentacji Row-Level Security. Dla dokumentów podobną rolę pełni filtrowanie wyników wyszukiwania według grup, do których należy użytkownik.
Pilotaż asystenta w jednym dziale
Pilotaż ma odpowiedzieć na jedno pytanie: czy asystent skraca czynność bez pogorszenia jej jakości. Odpowiedź wymaga pomiaru sprzed uruchomienia, bo bez niego nie ma z czym porównać wyniku. Cztery fazy porządkują pracę.
| Faza | Zakres | Kryterium przejścia dalej |
|---|---|---|
| Pomiar wyjściowy | Czas i liczba błędów obecnej czynności | Liczby zapisane przed uruchomieniem |
| Zestaw kontrolny | Pytania, na które firma zna poprawną odpowiedź | Zgodność odpowiedzi asystenta z wzorcem |
| Praca w małej grupie | Kilku użytkowników z jednego działu | Udział odpowiedzi zaakceptowanych bez poprawek |
| Decyzja | Porównanie z pomiarem wyjściowym | Skrócenie czynności bez wzrostu błędów |
Miary pilotażu
Liczby zbiera sama aplikacja, jeśli każda odpowiedź zostawia wpis z oceną użytkownika. Przykładowa tabela wystarcza do wyliczenia miar dla każdego asystenta.
CREATE TABLE dbo.PilotAsystenta (
WpisId int IDENTITY(1,1) PRIMARY KEY,
Asystent varchar(40) NOT NULL,
Uzytkownik nvarchar(100) NOT NULL,
Utworzono datetime2(0) NOT NULL DEFAULT SYSDATETIME(),
Zaakceptowana bit NULL,
ZPoprawka bit NOT NULL DEFAULT 0,
CzasOdpowiedziMs int NULL,
TokenyWejscie int NULL,
TokenyWyjscie int NULL
);
SELECT Asystent,
COUNT(*) AS Odpowiedzi,
AVG(CASE WHEN Zaakceptowana = 1 THEN 1.0 ELSE 0.0 END) AS UdzialAkceptacji,
AVG(CzasOdpowiedziMs) AS SredniCzasMs
FROM dbo.PilotAsystenta
WHERE Utworzono >= DATEADD(day, -14, SYSDATETIME())
GROUP BY Asystent;
Udział akceptacji mówi, jak często użytkownik przyjmuje odpowiedź bez zmian. Czas odpowiedzi pokazuje, czy wygoda pracy nie rozbija się o opóźnienie. Obie miary czyta się razem z pomiarem wyjściowym, a nie samodzielnie.

Zestaw kontrolny pytań
Zestaw kontrolny działa jak test regresji. Składa się z pytań, na które znana jest poprawna odpowiedź, na przykład z istniejącego raportu albo zapisu w umowie. Wykonuje się go przed pilotażem i po każdej zmianie modelu lub polecenia, a także danych źródłowych. Różnica w wynikach jest sygnałem, że zmiana wpłynęła na jakość, nawet gdy nikt jeszcze nie zauważył błędu.
Dane firmy i prywatność w środowisku Azure
Asystent przetwarza dane, więc miejsce działania modelu jest częścią decyzji o wdrożeniu. Według opisu producenta SoftwareStudio łączy platformę AI z rozwiązaniami chmurowymi Microsoft Azure, gdzie firma może korzystać z prywatnej instancji modelu. Zasady, na jakich Azure OpenAI traktuje dane klientów, opisuje dokumentacja o prywatności danych i bezpieczeństwie usługi. Mechanizmy ochrony omawia artykuł o ochronie danych w Chat GPT na platformie Azure.
Klasy danych a asystent
Nie każda informacja powinna trafiać do każdego asystenta. Klasyfikacja danych rozstrzyga to z góry, więc pojedyncza decyzja programisty nie musi opierać się na intuicji.
| Klasa danych | Przykład | Zasada dla asystenta |
|---|---|---|
| Publiczne | Opis oferty i dokumentacja produktu | Dozwolone w każdym asystencie |
| Wewnętrzne | Procedury i instrukcje pracy | Dozwolone w prywatnej instancji modelu |
| Osobowe | Dane osób kontaktowych klientów | Ograniczenie zakresu i podstawa prawna, potwierdzona z inspektorem ochrony danych |
| Szczególnie chronione | Dokumenty kadrowo-płacowe i umowy | Tylko w izolowanym środowisku, z pełnym dziennikiem dostępu |
Ogólny obraz oferty producenta w tym zakresie przedstawia serwis SoftwareStudio o sztucznej inteligencji, a zastosowania i ograniczenia AI w firmie zebrano na stronie o sztucznej inteligencji.
Wdrożenie i utrzymanie asystentów
Po pilotażu zaczyna się praca, która trwa tak długo, jak asystent. Model i dane zmieniają się, więc odpowiedzi z czasem odbiegają od tych, które zatwierdzono na początku. Utrzymanie dzieli się na kilka odpowiedzialności, które warto przypisać z nazwiska.
Właściciel merytoryczny
Każdy asystent ma osobę odpowiedzialną za jego treść. Dla asystenta użytkownika programu jest to kierownik wdrożenia systemu, dla asystenta umów prawnik firmy. Właściciel zatwierdza polecenie dla modelu i decyduje o zmianach zakresu danych. Bez takiej osoby błędy nikomu nie przypisane wracają do informatyków, którzy nie znają dziedziny.
Wprowadzenie użytkowników do pracy z asystentem
Nowy asystent działa dobrze tylko wtedy, gdy użytkownicy wiedzą, czego od niego oczekiwać. Krótka instrukcja opisuje, w czym asystent pomaga, czego nie robi i jak zgłosić błędną odpowiedź. Przy każdej odpowiedzi powinien być widoczny przycisk oceny, bo ocena zasila miarę akceptacji z pilotażu.
Szkolenie dla nowych osób może prowadzić asystent użytkownika programu, który według opisu producenta odpowiada na pytania i wspiera onboarding. Sensowna jest kolejność odwrotna niż w wielu firmach: najpierw asystent obsługi programu, dopiero później asystenci wymagający zaufania do wyniku.
Koszt eksploatacji
Koszt asystenta zależy od liczby wywołań modelu oraz od długości tekstu w każdym z nich: kontekstu na wejściu i odpowiedzi na wyjściu. Model większej klasy kosztuje więcej za ten sam tekst. Zamiast szacować koszt z pamięci, wystarczy dopisać do dziennika liczbę tokenów i sumować ją miesięcznie.
SELECT Asystent,
EOMONTH(Utworzono) AS Miesiac,
COUNT(*) AS Wywolania,
SUM(TokenyWejscie) AS TokenyWejscie,
SUM(TokenyWyjscie) AS TokenyWyjscie
FROM dbo.PilotAsystenta
GROUP BY Asystent, EOMONTH(Utworzono)
ORDER BY Miesiac, Asystent;
Zestawienie pokazuje, który asystent generuje największą część kosztu. Często okazuje się, że jest nim nie najczęściej używany, lecz ten, któremu skład kontekstu dołącza zbyt wiele tekstu. Skrócenie kontekstu obniża koszt i zwykle poprawia trafność.
Wersje polecenia dla modelu
Polecenie, które ustala rolę i format odpowiedzi, jest kodem, choć zapisano je zwykłym tekstem. Zmiana jednego zdania potrafi zmienić zachowanie asystenta, dlatego polecenia wersjonuje się i zatwierdza tak jak wersje programu.
CREATE TABLE dbo.WersjaPolecenia (
Asystent varchar(40) NOT NULL,
Wersja int NOT NULL,
Tresc nvarchar(max) NOT NULL,
Zatwierdzil nvarchar(100) NOT NULL,
ObowiazujeOd date NOT NULL,
PRIMARY KEY (Asystent, Wersja)
);
Zmiana modelu jako zmiana wersji
Dostawca modelu wycofuje starsze wersje i udostępnia nowsze. Nowy model może odpowiadać dłużej, inaczej formatować wynik albo inaczej rozumieć to samo zdanie. Przed przełączeniem uruchamia się zestaw kontrolny i porównuje udział zaakceptowanych odpowiedzi z poprzednim okresem. Jeśli wynik się pogorszył, wraca się do poprzedniej wersji, zanim użytkownicy odczują różnicę. Podobne zasady kontroli opisano w artykule o pracy z wynikami asystenta raportowego.




