wieloagentowy system transakcyjny AI co to
Wieloagentowy system transakcyjny AI dzieli decyzję między instancje LLM. Opisano architekturę, koszty rynkowe sygnału oraz pułapki testów historycznych.
Wieloagentowy system transakcyjny oparty na sztucznej inteligencji dzieli jedną decyzję transakcyjną pomiędzy kilka instancji dużego modelu językowego, przypisuje każdej instancji rolę, a następnie scala ich wyniki w jedno zlecenie. Typowy skład to czytnik wiadomości, analityk fundamentalny, analityk wykresów, kontroler ryzyka oraz agent zarządzający, który pełni rolę arbitra. Według stanu na lipiec 2026 roku, kilka frameworków open source o takiej strukturze znajduje się w temacie handlu algorytmicznego na GitHubie, każdy z kilkaset gwiazdkami. Niniejsza strona opisuje architekturę, oddziela opublikowane dowody od obietnic z plików README oraz przedstawia dane rynkowe dotyczące kosztów, które każda wersja takiego systemu musi pokryć.
Czym właściwie jest wieloagentowy system transakcyjny AI
Architektura to komitet z przewodniczącym. Każdy agent to szablon promptu, strumień danych i schemat wyjścia. Agent wiadomości otrzymuje nagłówki i zwraca etykietę. Agent fundamentalny otrzymuje wyciągi z raportów i zwraca ocenę. Agent przewodniczący otrzymuje te etykiety i oceny, a zwraca zlecenie.
Z tego projektu wynikają trzy właściwości, które warto nazwać przed jakimikolwiek twierdzeniami o skuteczności.
Każdy agent zazwyczaj współdzieli jeden bazowy model. Pięć promptów skierowanych do tych samych wag generuje skorelowane opinie, więc głos pięciu agentów nie jest pięcioma niezależnymi estymacjami. Ramy komitetu sugerują dywersyfikację, której implementacja nie zapewnia.
System jest potokiem tekstowym owiniętym wokół decyzji numerycznej. Model czyta słowa i emituje token. Określanie wielkości pozycji, typ zlecenia, umiejscowienie stopu i logika wyjścia to zwykły kod działający pod spodem, a większość tego, co decyduje o wyniku, znajduje się w tym kodzie, a nie w promptach.
Pełny cykl komitetu trwa sekundy. Jest to wykonalne dla comiesięcznego rebalansowania i nieistotne w przypadku szybkości intraday, gdzie animatorzy rynku kwotują i zmieniają kwotowania w mikrosekundach.
Co potwierdzają badania, a czego nie
Opublikowane prace na temat modeli językowych w finansach dzielą się na trzy twierdzenia o bardzo różnej sile.
Ekstrakcja i klasyfikacja to mocne twierdzenie. Modele etykietują sentyment, wyciągają liczby z raportów i kompresują długie dokumenty z dokładnością, która jeszcze kilka lat temu wymagała dedykowanego modelu. Jest to mierzalne na wstrzymanym tekście i sprawdza się w praktyce.
Opis stanu rynku to mieszane twierdzenie. Modele piszą płynne opisy reżimu rynkowego, a opisy te są zazwyczaj zgodne z danymi, które modelowi pokazano. To, czy opis niesie informację, której cena już nie niesie, to osobne pytanie, a artykuły, które testują to dokładnie, raportują małe efekty z szerokimi przedziałami ufności.
Rentowność to słabe twierdzenie. Większość plików README w repozytoriach raportuje backtest, a nie udokumentowany, rzeczywisty wynik, a dystans między krzywą kapitału in-sample a rzeczywistym rachunkiem to najstarszy dystans w handlu ilościowym. Umieszczenie modelu językowego w pętli decyzyjnej go nie skraca.
Próg kosztowy, który sygnał musi pokonać
Każda transakcja pokonuje spread, a to pokonanie jest progiem, który strategia musi pokonać, zanim cokolwiek innego. Mediana kwotowanego spreadu w regularnych godzinach handlu, od 22 do 26 czerwca 2026 roku, dla sześciu spółek notowanych w USA:
Dokładny kod SQL dla każdej liczby
SELECT ticker,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS spread_bps,
round(2 * quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS round_trip_bps,
round(count() / 1e6, 1) AS quote_updates_m
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'KO', 'F', 'RIOT')
AND sip_timestamp >= toDateTime('2026-06-22 00:00:00')
AND sip_timestamp < toDateTime('2026-06-27 00:00:00')
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > bid_price) > 0
ORDER BY spread_bpsPunkt bazowy to jedna setna punktu procentowego. Najwęższa spółka w panelu, SPY, miała medianę spreadu wynoszącą 0.27 punktu bazowego w tym tygodniu. Najszersza, RIOT, miała 7.09. Pełny cykl (round trip) płaci spread dwukrotnie, więc wejście i wyjście w pierwszej spółce zaczyna się od 0.55 punktów bazowych straty, a ta sama para w ostatniej spółce zaczyna się od 14.19 punktów bazowych straty. Agent, który odwraca swoją książkę dwa razy w tygodniu, płaci to opłaty około sto razy w roku, a opłata ta jest pobierana niezależnie od tego, czy decyzja była słuszna, czy nie. Ile kosztuje handel akcjami wyszczególnia resztę rachunku.
Szum, który decyzja kierunkowa musi pokonać
Decyzje kierunkowe są oceniane względem rozkładu, który składa się głównie z małych liczb. Każda sesja SPY w roku kalendarzowym 2025, posortowana według wielkości zmiany close-to-close:
Dokładny kod SQL dla każdej liczby
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-01-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2025-12-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
paired AS (
SELECT d, close_px,
any(close_px) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
FROM daily
),
rets AS (
SELECT d, round(100 * (toFloat64(close_px) / toFloat64(prev_px) - 1), 3) AS ret_pct
FROM paired
WHERE prev_px > 0
)
SELECT multiIf(abs(ret_pct) < 0.25, 'under 0.25%',
abs(ret_pct) < 0.5, '0.25 to 0.5%',
abs(ret_pct) < 1.0, '0.5 to 1%',
abs(ret_pct) < 2.0, '1 to 2%',
'2% and up') AS move_bucket,
count() AS sessions,
round(100 * count() / sum(count()) OVER (), 1) AS pct_of_sessions
FROM rets
GROUP BY move_bucket
ORDER BY min(abs(ret_pct))Połowa roku mieściła się w granicach pół procenta. Pasmo under 0.25% zawierało 24.9% sesji, a pasmo 0.25 to 0.5% kolejne 24.1%. Na drugim końcu, 13 sesji przesunęło się o 2% and up, co stanowi 5.2% roku.
Porównaj to z panelem spreadów. Jeden punkt bazowy to 0,01%. Typowy ruch sesyjny wynoszący 0,3% jest trzydzieści razy większy od wąskiego spreadu i mniej więcej cztery razy większy od szerokiego. Arytmetyka pozostawia miejsce dla cierpliwej, trafnej decyzji i bardzo mało dla szybkiej, marginalnej.
Gdzie faktycznie znajduje się zbywalny wszechświat
Frameworki agentowe reklamują pokrycie, często setki tickerów skanowanych każdego ranka. Wolumen dolarowy pokazuje, jaka część tej listy jest w stanie wchłonąć większe zlecenia. Każda spółka notowana w USA, która handlowała podczas regularnych godzin 30 czerwca 2026 roku, pogrupowana według rangi w wolumenie dolarowym tej sesji:
Dokładny kod SQL dla każdej liczby
WITH tv AS (
SELECT ticker,
sum(toFloat64(close) * toFloat64(volume)) AS dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
HAVING sum(toFloat64(close) * toFloat64(volume)) > 0
),
ranked AS (
SELECT ticker, dollar_volume,
row_number() OVER (ORDER BY dollar_volume DESC) AS rk
FROM tv
)
SELECT multiIf(rk <= 10, 'top 10 names',
rk <= 50, 'ranks 11 to 50',
rk <= 200, 'ranks 51 to 200',
rk <= 1000, 'ranks 201 to 1000',
'ranks beyond 1000') AS liquidity_tier,
count() AS tickers,
round(sum(dollar_volume) / 1e9, 2) AS dollar_volume_bn,
round(100 * sum(dollar_volume) / (SELECT sum(dollar_volume) FROM tv), 1) AS pct_of_dollar_volume
FROM ranked
GROUP BY liquidity_tier
ORDER BY min(rk)Dziesięć spółek odpowiadało za 22.5% wolumenu dolarowego sesji, około 205.04 miliardów dolarów. Kolejne 40 odpowiadało za 20.5%. Na drugim końcu, 10966 spółek sklasyfikowanych poza 1000. miejscem dzieliło między sobą 12.9%, czyli około 117.83 miliardów dolarów rozłożonych na cały ogon.
Szerokość jest tania w reklamowaniu, ale droga w handlu. Komitet, który rankuje trzy tysiące spółek, większość swojego wysiłku rankingowego poświęca w tym ogonie, gdzie powyższy panel spreadów jest realnym kosztem, a nie błędem zaokrągleń.
Dlaczego te backtesty faworyzują system
Największym pojedynczym źródłem faworyzującego backtestu jest wybór okna. SPY według lat kalendarzowych, od 2016 do 2025, wraz z różnicą między najwyższą i najniższą ceną zamknięcia w danym roku:
Dokładny kod SQL dla każdej liczby
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-01-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2025-12-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
yr AS (
SELECT toYear(d) AS year,
argMin(close_px, d) AS first_close,
argMax(close_px, d) AS last_close,
max(close_px) AS high_close,
min(close_px) AS low_close,
count() AS sessions
FROM daily
GROUP BY year
)
SELECT year,
sessions,
round(100 * (toFloat64(last_close) / toFloat64(first_close) - 1), 1) AS price_return_pct,
round(100 * (toFloat64(high_close) / toFloat64(low_close) - 1), 1) AS high_low_range_pct
FROM yr
ORDER BY yearSystem testowany tylko na 2021, roku, który zamknął się 28.7% wyżej, dziedziczy rosnący trend. Ten sam system testowany tylko na 2022, który zamknął się -20%, dziedziczy trend spadkowy. Różnica wewnątrz roku między najwyższym a najniższym zamknięciem osiągnęła 68% w 2020 i utrzymała się powyżej 25.3% nawet w spokojniejszych latach.
Na problemie okna opierają się cztery pułapki, z których jedna należy wyłącznie do modeli językowych.
- Zaglądanie w przyszłość przez dane treningowe. Model trenowany na tekście do 2025 roku już przeczytał, jak zakończyła się transakcja z 2023 roku. Backtest na danych z 2023 roku zadaje pytanie, na które model zna odpowiedź, a żadne tasowanie szeregu cenowego nie usuwa tej wiedzy.
- Błąd przeżywalności na liście tickerów. Wszechświat złożony z dzisiejszych notowań pomija spółki, które po drodze zostały wycofane z obrotu.
- Założenia dotyczące realizacji zleceń. Backtest, który realizuje każde zlecenie po cenie średniej (midpoint), usuwa cały powyższy panel kosztów.
- Selekcja wariantów promptów. Dwadzieścia wariantów promptów wypróbowanych i zgłoszenie najlepszego to to samo przeuczenie, które nękało przeszukiwanie parametrów na długo przed pojawieniem się modeli językowych.
Gdzie modele językowe jako agenci mają wiarygodne zastosowanie
Uczciwa wersja propozycji wartości jest węższa niż wersja z README i wciąż użyteczna.
Czytanie wolumenu to najwyraźniejsza zaleta. Agent, który w nocy przetwarza wszystkie raporty i nagłówki z listy obserwacyjnej i zwraca ustrukturyzowane podsumowanie, oszczędza godziny ludzkiej uwagi, a wynik można zweryfikować ze źródłem.
Opisywanie reżimu rynkowego prostym językiem to druga zaleta. Codzienny akapit na temat dyspersji, szerokości i zmienności, wygenerowany z tych samych liczb, które czytałby człowiek, jest użytecznym dokumentem informacyjnym, nawet jeśli nie zawiera prognozy.
Higiena procesu to trzecia zaleta. Agent, który odrzuca zlecenie naruszające zadeklarowany limit pozycji lub który oznacza strategię mającą wkrótce handlować w dniu publikacji wyników, egzekwuje zasady, które rozproszony człowiek pomija.
Żadna z tych trzech rzeczy nie jest przewagą na rynku. Wszystkie trzy to prace badawcze i operacyjne, i to właśnie tam leżą dziś wymierne korzyści. Udokumentowany efekt, taki jak anomalia niskiej zmienności, wymagał dużych próbek i wielokrotnych replikacji poza próbą, zanim uznano go za rzeczywisty, a nowy framework agentowy albo spełnia to samo kryterium, albo go nie spełnia. Brak najlepszych dni pokazuje, ile kosztuje częste zmienianie strategii dla inwestora długoterminowego.
Dyscyplina, którą opisują praktycy
Zespoły prowadzące te systemy publicznie zwykle opisują tę samą sekwencję. Testowanie forward na symulowanych wypełnieniach przez miesiące, a nie dni, ponieważ papierowy zapis gromadzi się tylko z prędkością rzeczywistego czasu. Zachowanie okresu poza próbą, którego prompty nigdy nie widziały. Logowanie każdego promptu, każdej odpowiedzi i każdego zlecenia, ponieważ komitetu, którego nie można odtworzyć, nie można debugować. Ustalanie wielkości pozycji za pomocą stałych reguł znajdujących się poza modelem. Policzenie każdego kosztu z powyższych paneli, zanim jakikolwiek okres zostanie uznany za rentowny.
FAQ
Czy wieloagentowe systemy transakcyjne AI faktycznie zarabiają pieniądze?
Publiczne dowody są skąpe. Większość projektów open source publikuje backtest, a nie audytowany, rzeczywisty wynik, a backtesty strategii opartych na modelach językowych niosą ze sobą specyficzną wadę: model był trenowany na tekście opisującym okres testowy. Niesaudytowana krzywa kapitału demonstruje oprogramowanie, a nie przewagę.
Czy komitet agentów LLM jest lepszy niż pojedynczy model?
Komitet redukuje niektóre błędy formatowania i parsowania oraz dodaje strukturę do wyniku. Nie dodaje niezależnej informacji, gdy każdy agent odpytuje ten sam bazowy model na tych samych danych źródłowych. Pięć skorelowanych opinii głosuje mniej więcej jak jedna opinia, z dodatkowym opóźnieniem i dodatkowym kosztem tokenów.
Czy agent AI może handlować szybciej niż animator rynku?
Nie. Pełny cykl modelu językowego trwa sekundy, podczas gdy profesjonalne systemy kwotujące działają w mikrosekundach na sprzęcie kolokowanym. Każda strategia, której zysk zależy od szybkości, leży poza możliwościami tych systemów, co pozostawia horyzonty dni i tygodni jako wiarygodne pole działania.
Jaka jest największa pułapka backtestowa specyficzna dla agentów transakcyjnych LLM?
Zaglądanie w przyszłość przez dane treningowe. Konwencjonalne backtesty chronią przed wyciekiem przyszłych cen do decyzji, ale wagi modelu już kodują opublikowane komentarze na temat okna testowego. Okna kroczące (walk-forward) i podziały na próbę i poza próbą nie usuwają wiedzy wbudowanej w wagi, a jedynym czystym testem jest okres po dacie granicznej treningu.
Jak długo powinien trwać okres handlu papierowego?
Użyteczną miarą jest wielkość próbki, a nie długość kalendarzowa. Strategia handlująca co tydzień generuje około pięćdziesiąt obserwacji rocznie, co jest małą próbką dla jakiegokolwiek twierdzenia o przewadze. Praktycy zazwyczaj chcą wystarczającej liczby transakcji, aby doświadczyć bessy (drawdown), a nie tylko dobrego okresu.
Każdy panel na tej stronie to zapisane, wersjonowane zapytanie na rzeczywistych danych rynkowych USA. Otwórz dowolny panel, aby przeczytać stojące za nim zapytanie SQL, lub uruchom własne na tych samych tabelach na terminalu Strasmore.