CopilotScope · AgentForge

Od telemetrii do agenta

Jak dane z sesji AI-asystenta (Copilot, Claude Code, Cursor) stają się — za jawną zgodą — sprowidencjonowanym agentem stylizowanym na konkretną osobę. Z analogią do znanego problemu z innej dziedziny i dziesięcioma tematami badawczymi do dalszej pracy.

Ta strona jest po polsku, zgodnie z konwencją docs/ANALYSIS.md — projektowe uzasadnienia zostają w języku, w którym powstały. English summary: this page diagrams the telemetry→persona-agent pipeline (CopilotScope.AgentForge) and draws an analogy to collecting warehouse-worker operational data to train a robot, plus ten follow-up research proposals. Source: docs/AGENT_PROVISIONING_WORKFLOW.md, research/RESEARCH_PROPOSALS.md.
docs/AGENT_PROVISIONING_WORKFLOW.md docs/AGENTFORGE.md research/RESEARCH_PROPOSALS.md

Diagram workflowu

Trzy strefy odpowiedzialności: telemetria bez tożsamości, jawna bramka zgody poza systemem, i provisioning agenta, który nigdy nie modyfikuje wag modelu.

VS Code Copilot Copilot CLI Claude Code / Cowork Cursor OTLP/HTTP :4318 Collector OTLP ingest → quality engine → sessions w Postgresie klucz: conversation.id — bez identyfikatora osoby PersonaCohort — bramka zgody PersonaId · ConsentGrantedBy · ConsentDate · ręczna lista SessionIds brak ścieżki inferencji z telemetrii do tożsamości PersonaProfileBuilder czyta wyłącznie sesje z cohortu → avg score, narzędzia, ograniczone exemplary System prompt — grounding kontekst w prompt, bez fine-tuningu wag modelu Agent sprowidencjonowany (Azure AI Foundry + MS Agent Framework) Serwowanie POST /personas/{id}/chat "simulated": true — zawsze Wycofanie zgody DELETE → 409 natychmiast usuń cohort + restart → trwale
Kolor koduje strefę odpowiedzialności: niebieski = infrastruktura Collectora i sam agent (bez tożsamości), czerwony = bramka zgody, bursztynowy = provisioning (grounding, nie trening), zielony = serwowanie i wycofanie.

Opis procesu

  1. Telemetria bez tożsamości.Cztery agnostyczne emitery wysyłają OTLP na jeden endpoint. Collector agreguje to w sesje kluczowane przez conversation.id, nie przez osobę — ten krok działa identycznie, niezależnie od tego, czy ktokolwiek kiedykolwiek uruchomi provisioning agenta.
  2. Bramka zgody, poza telemetrią.Jedyne wejście do modelu jednej osoby to PersonaCohort — ręcznie wypisany rekord konfiguracyjny z listą SessionIds, kto wyraził zgodę i kiedy. Bez wpisu nie ma danych dla danej persony; to nie „domyślnie wyłączone", to brak ścieżki kodu.
  3. Budowa profilu.PersonaProfileBuilder czyta wyłącznie sesje z cohortu przez istniejące API i składa profil: średni quality score, najczęstsze narzędzia, ograniczony zestaw exemplarów transkryptu.
  4. Grounding, nie fine-tuning.Profil trafia do system promptu. Styl agenta pochodzi z kontekstu, nie z gradientu — kluczowa decyzja, która sprawia, że wycofanie zgody jest odwracalne w praktyce.
  5. Provisioning.System prompt + model w Azure AI Foundry łączą się przez Microsoft Agent Framework; wynik jest cache'owany w pamięci procesu.
  6. Serwowanie z etykietą.Każda odpowiedź niesie "simulated": true zapisane na sztywno w DTO — agent nigdy nie ma prawa przedstawiać się jako dana osoba.
  7. Wycofanie, dwupoziomowe.DELETE czyści agenta z pamięci natychmiast (poziom operacyjny). Usunięcie PersonaCohort z konfiguracji i restart to poziom trwały — profilu nie da się odtworzyć w ogóle.

Analogia: dane pracownika magazynu → robot

Zbieranie telemetrii dewelopera, żeby sprowidencjonować agenta, i zbieranie danych operacyjnych pracownika magazynu, żeby wytrenować robota, to nie luźne podobieństwo — to ta sama struktura decyzji, tylko inna domena.

WymiarTelemetria dewelopera → AgentForgeDane pracownika magazynu → robot/cobot
Co się zbieraTury czatu, wywołania narzędzi, akceptacje edycji, TTFT, błędyŚcieżki ruchu, czasy cykli pick/pack, punkty korekt
TożsamośćBrak user.id — sesja to nie osobaOdznaka/terminal WMS zwykle jest identyfikowalny — większe ryzyko wyjściowe
Bramka do modelu 1 osobyPersonaCohort — ręczna, jawna, z polami zgodyProgram pilotażowy z podpisaną zgodą i wskazanym stanowiskiem
Co robi model z danymiGrounding w kontekście — nic nie wchodzi w wagiZwykle imitation learning — trajektorie wchodzą w wagi polityki ruchu
Odwracalność wycofaniaWysoka — usunięcie cohortu = zero śladuNiska, jeśli dane już weszły do treningu — wymaga retrainu
Ryzyko GoodhartaOptymalizacja pod metrykę akceptacji zamiast pod jakośćEfekt Hawthorne'a — pracownik zmienia ruch pod obserwacją
Wniosek do zapamiętania Jeśli zgoda ma być odwracalna, architektura modelu musi to umożliwiać od pierwszego dnia. AgentForge wybrał grounding zamiast fine-tuningu właśnie dlatego. Projekt treningu robota na danych pracowników nie ma tej opcji za darmo — jeśli trajektorie trafią w wagi polityki, cofnięcie zgody wymaga retrainu bez tych danych albo technik machine unlearning, a nie prostego DELETE.

10 propozycji prac badawczych

Jedna praca na algorytm pomiaru jakości sesji z docs/ANALYSIS.md §8. Sześć ma już implementację — tam praca to kalibracja i walidacja. Cztery nie mają — tam to projekt i prototyp. Pełna wersja z metodologią i kryteriami sukcesu: research/RESEARCH_PROPOSALS.md.

01Brak implementacji

LLM-as-a-Judge (G-Eval)

Model-sędzia ocenia transkrypt wg rubryki — bogaty sygnał, ale kosztowny i podatny na bias.

PytanieCzy wynik da się uczynić porównywalnym ze składanym score 0–100, zamiast tworzyć drugą, niepowiązaną liczbę?
02Brak implementacji

SPUR — uczone rubryki satysfakcji

Model uczy się rubryk SAT/DSAT z etykietowanych sesji zamiast statycznej rubryki.

PytanieIle etykietowanych sesji potrzeba, zanim SPUR generalizuje lepiej niż G-Eval na tym samym zbiorze?
03Brak implementacji

Metryki RAG (RAGAS)

Faithfulness / relevance / context precision — sensowne tylko dla sesji z retrievalem.

PytanieJaki odsetek realnych sesji w ogóle kwalifikuje się do oceny RAGAS, zanim ktokolwiek napisze analizator?
04Zaimplementowany

Edit Survival Analysis

Four-gram overlap + no-revert, wagi 0.4/0.6 — działa, ale niewalidowane niezależnie.

PytanieCzy podział wag 0.4/0.6 jest optymalny względem realnego stanu repo tydzień po sesji?
05Zaimplementowany

Acceptance-weighted throughput

Zaakceptowane linie na interakcję, ważone odrzuceniami — celowo prosty proxy produktywności.

PytanieCzy throughput koreluje dodatnio z edit survival, czy to dwie niezależne, czasem sprzeczne osie?
06Zaimplementowany

Turn-level Friction & Repair (TFRA)

Segmentacja sesji na tury, kary za błędy LLM/narzędzi i pętle naprawcze.

PytanieCzy ręcznie dobrane wagi kar (−0.35 / −0.15 / −0.10) odtwarzają intuicję inżyniera czytającego transkrypt?
07Zaimplementowany

Latency-utility model

TTFT mapowane na użyteczność krzywą log-linear, progi z ogólnych badań HCI.

PytanieCzy progi 2 s / 8 s trzymają się dla sesji agentowych, gdzie „myślenie" narzędzia jest oczekiwane?
08Zaimplementowany

Ekonomia tokenów i cache

Koszt per model z konfigurowalnego cennika, oszczędności prompt-cache.

PytanieJak duży błąd w oszczędnościach generuje cennik nieaktualizowany od 3 miesięcy?
09Uproszczony lokalnie

Klasyfikacja frustracji

Leksykon EN/PL + Jaccard przeformułowań — świadomie zaszumiona, dlatego report-only.

PytanieJaki jest rzeczywisty precision/recall heurystyki na realnym zbiorze rozmów PL i EN osobno?
10Częściowe hooki

Task-completion detection

Najbliższe „czy praca została wykonana" — wymaga sygnałów spoza telemetrii Copilota.

PytanieCzy krok CI, który POST-uje wynik builda/testów na istniejący endpoint, wystarczy jako pierwszy prototyp?