Jak zbudować menażerię narzędzi AI Agent w jednym stosie
Każdy, kto próbował wdrożyć autonomiczne agenty lub złożone pipeline'y LLM do produkcji, szybko napotyka ten sam ból. Najpierw doklejasz Langfuse lub Phoenix do trace'owania. Potem uświadamiasz sobie, że logi bez automatycznej ewaluacji są bezużyteczne, więc wciągasz osobną bibliotekę do evals. Następnie odkrywasz, że agent radośnie łapie jailbreaki i wycieka tokeny, więc nakładasz Guardrails lub Lakerę. A wciąż potrzebujesz szybkiej bramki do routingu między dostawcami i symulatora do przechodzenia przez dialogi przed wdrożeniem.
W rezultacie zamiast pracować nad produktem, zespoły spędzają tygodnie na sklejaniu pięciu różnych serwisów. Projekt future-agi próbuje rozwiązać ten chaos jednym pudełkiem. Zespół zbudował otwartoźródłową platformę na licencji Apache 2.0, która łączy trace'owanie, ewaluacje, symulacje, bramkę i optymalizację promptów.
Co jest w środku pudełka
Główna idea platformy jest prosta: połącz zbieranie danych produkcyjnych i ulepszanie agenta w jedną zamkniętą pętlę. Jeśli agent popełnił błąd na prawdziwym użytkowniku, ten trace powinien natychmiast stać się przypadkiem testowym dla następnej iteracji promptu.
Cała funkcjonalność jest podzielona na sześć głównych obszarów.
Symulacja scenariuszy i testy syntetyczne
Ręczne testowanie agentów jest wolne i nieefektywne. Wbudowany moduł symulacji może generować tysiące wielokrokowych dialogów z różnymi rolami, podstępnymi pytaniami i próbami hakowania.
Co ciekawe, moduł obsługuje nie tylko tekst, ale także agentów głosowych poprzez integracje z LiveKit, Retell, VAPI i Pipecat. Możesz sprawdzić opóźnienia i wydajność detekcji aktywności głosowej (VAD), zanim prawdziwy klient usłyszy bezsensowne mamrotanie bota.
Ocena jakości i bezpieczeństwo w czasie rzeczywistym
Biblioteka zawiera ponad 50 wbudowanych metryk. Są standardowe sprawdzenia halucynacji i adherence do kontekstu, ewaluacja poprawności użycia narzędzi, analiza tonu i wykrywanie wycieków danych osobowych. Ewaluacja działa poprzez kombinację heurystyk, lekkich modeli ML i podejścia LLM-as-a-judge.
Do ochrony w czasie rzeczywistym jest 18 wbudowanych skanerów przeciwko injection i jailbreakom, plus adaptery do zewnętrznych rozwiązań jak Presidio czy Llama Guard. Skanery mogą być wywoływane bezpośrednio w ramach bramki proxy lub wywoływane przez osobny SDK w kodzie aplikacji.
Bramka Command Center i trace'owanie
Routing żądań jest obsługiwany przez bramkę napisaną w Go. Autorzy deklarują opóźnienia ważonego routingu na poziomie około 9,9 nanosekundy i przepustowość około 29 000 żądań na sekundę na instancji t3.xlarge. Przy włączonych sprawdzeniach bezpieczeństwa opóźnienie P99 wynosi około 21 milisekund.
Bramka jest kompatybilna z API OpenAI, obsługuje ponad stu dostawców (od OpenAI i Anthropic po lokalne Ollama i vLLM), może robić semantyczne cache'owanie i zarządzać wirtualnymi kluczami.
Do trace'owania używany jest standard OpenTelemetry. Platforma zbiera wykresy spanów, opóźnienia i koszty tokenów z 50 frameworków jak LangChain, CrewAI, DSPy czy LlamaIndex bez skomplikowanej ręcznej konfiguracji.
Optymalizacja promptów na realnych danych
Najciekawsza część to algorytmiczne dostrajanie promptów. Zamiast ręcznie majstrować przy słowach w kodzie, dostępnych jest sześć algorytmów optymalizacji, w tym GEPA, PromptWizard, ProTeGi i wyszukiwanie bayesowskie. Rzeczywiste trace'y błędów produkcyjnych są przekazywane do optymalizatora, który automatycznie generuje i testuje nowe warianty system promptu.
Szybki start
Projekt można wdrożyć lokalnie przez Docker Compose lub uruchomić w chmurze. Do lokalnego wdrożenia wystarczy sklonować repozytorium i uruchomić skrypt instalacyjny:
git clone https://github.com/future-agi/future-agi.git
cd future-agi
./bin/install
Po zakończeniu interfejs webowy jest dostępny pod adresem http://localhost:3000.
Integracja z istniejącym kodem Python zajmuje dosłownie trzy linie:
from fi_instrumentation import register
from traceai_openai import OpenAIInstrumentor
import openai
register(project_name="support-agent")
OpenAIInstrumentor().instrument()
client = openai.OpenAI()
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Как оформить возврат товара?"}],
)
W bazie kodu TypeScript lub Node.js wygląda to podobnie:
import { register } from "@traceai/fi-core";
import { OpenAIInstrumentation } from "@traceai/openai";
import OpenAI from "openai";
register({ projectName: "support-agent" });
new OpenAIInstrumentation().instrument();
const openai = new OpenAI();
const response = await openai.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Как оформить возврат товара?" }],
});
Po wywołaniu dane automatycznie trafiają do trace'era, gdzie możesz zobaczyć drzewo wywołań, przekazane parametry i zmierzyć czas generowania.
Architektura i stos technologii
Pod maską platforma używa dość praktycznego stosu bez egzotycznych wyborów:
- Backend napisany w Pythonie 3.11 z użyciem Django 5.1 i Django Channels do WebSocketów.
- Bramka pod dużym obciążeniem napisana w Go 1.23.
- Frontend zbudowany z React 18 i bundlera Vite.
- PostgreSQL jest używany do przechowywania metadanych i konfiguracji, ClickHouse do analityki spanów i szeregów czasowych, Redis do stanu i cache. Zadania w tle działają przez RabbitMQ i Temporal.
Wszystkie komponenty ekosystemu są podzielone na osobne pakiety. Jeśli nie potrzebujesz całego interfejsu, możesz zainstalować tylko moduł metryk pip install ai-evaluation lub optymalizator promptów pip install agent-opt.
Dla kogo ten projekt jest teraz
Jeśli budujesz prostego chatbota FAQ, który odpowiada na pytania jednym przyciskiem, Future AGI będzie wyglądać jak przesadzony kombajn. Kilka podstawowych logów do konsoli tam w zupełności wystarczy.
Ale jeśli budujesz:
- Złożone pipeline'y RAG, gdzie musisz walidować cytaty i weryfikować fakty w odpowiedziach.
- Asystentów głosowych opartych na LiveKit lub Retell, gdzie każda milisekunda opóźnienia jest krytyczna.
- Agenty wywołujące dziesiątki zewnętrznych API i narzędzi MCP, gdzie wychwytywanie błędów w łańcuchach rozumowania jest kluczowe.
- Systemy, które nie mogą być przekazane zewnętrznym usługom SaaS ze względu na wymagania izolacji danych.
W tych scenariuszach możliwość uruchomienia całego stosu monitoringu, symulacji i bramki jednym poleceniem docker compose up oszczędza mnóstwo godzin inżynieryjnych.
Projekt jest obecnie w aktywnym rozwoju, jak uczciwie ostrzega baner w README. Możesz napotkać pewne niedociągnięcia w interfejsie, ale otwartoźródłowy kod i architektura oparta na OTel i ClickHouse czynią z niego świetnego kandydata do przetestowania we własnej infrastrukturze.
Powiązane projekty