AICB dla agentów programistycznych.
Serwer MCP, który odpowiada Państwa agentowi na pytania, na jakie wyszukiwanie tekstowe odpowiedzieć nie potrafi. Ta sama analiza dostępna jest też jako pojedyncze polecenie konsoli.
Przetestowany z Claude Code, Codex i OpenCode
Wyślij zapytaniePowrót do przegląduGitHub Releases ↗O co może zapytać agent
Na każde z tych pytań AICB odpowiada na podstawie grafu symboli, który Roslyn buduje przy wczytywaniu rozwiązania – nie na podstawie wyszukiwania tekstowego.
Wywołania i skutki zmian
Kto używa danego symbolu, bezpośrednio i przez kilka poziomów. Najważniejsze pytanie przed zmianą.
Dziedziczenie i implementacje
Gdzie interfejs jest zaimplementowany, co co przesłania i jak wygląda hierarchia typów.
Testy
Które testy pokrywają dany symbol – i gdzie pokrycia brakuje zupełnie.
Wstrzykiwanie zależności
Co jest dostarczane dla danego interfejsu i w których miejscach powstaje instancja typu.
Struktura i dług techniczny
Martwy kod, cykle przestrzeni nazw, efekty uboczne jak dostęp do plików lub sieci, wywołania bibliotek zewnętrznych.
Powiązania interfejsu graficznego
Które powiązanie XAML sięga do której właściwości – i którego nie da się w ogóle rozwiązać. Dla WPF, WinUI i Avalonia.
Przegląd zmian
Przegląd w jednym wywołaniu: co się zmieniło, jak daleko sięga zmiana, jakie nowe problemy wprowadza – z oceną. Do tego zmiany publicznego API.
Architektura i ścieżki
Która warstwa może czego używać, gdzie są cykle zależności i przez jaki łańcuch wywołań jedna metoda dociera do drugiej.
Kontekst dla zadania
Do zadania opisanego słowami: typy, których dotyczy, ich wywołujący i pokrywające je testy – jako pakiet w ramach budżetu tokenów.
Do tego dochodzą przegląd architektury całego rozwiązania oraz objaśnienie pojedynczego symbolu wraz z jego otoczeniem.
AI Tagi z kodu są dostępne także dla agenta: może wyszukiwać według oznaczonych ról i warstw i widzi, która wartość pochodzi od programisty, a która jest tylko oszacowaniem.
Polecenie, nie usługa
Polecenie aicb mcp uruchamia serwer komunikujący się przez standardowe wejście i wyjście. Agent posługujący się MCP otrzymuje narzędzia analityczne we własnej liście narzędzi.
- 54 narzędzia w zestawie domyślnym – 24 widoczne zawsze, 30 poprzez aktywny profil
- Dziewięć profili zadaniowych – eksploracja, refaktoryzacja, diagnostyka, przegląd, testy, dokumentacja, architektura, wydajność, ogólny
- Gotowe profile – standardowy, refaktoryzacja i debugowanie, każdy z dopasowanym zestawem narzędzi, do tego pełny zakres
- To Państwo decydują o widoczności – które narzędzie agent w ogóle dostanie, określa profil
- Przetestowany z Claude Code, Codex i OpenCode – trzej klienci z trzema różnymi wersjami protokołu, obsługiwani przez jeden program
- Bez procesu w tle – serwer jest poleceniem wiersza poleceń i kończy się wraz z klientem
Dlaczego dobór narzędzi w ogóle ma znaczenie: każde oferowane narzędzie zajmuje miejsce w oknie kontekstowym agenta i zwiększa szansę, że sięgnie po niewłaściwe. Profil do diagnostyki pokazuje inne narzędzia niż profil do refaktoryzacji.
Co serwer przekazuje agentowi
Obok narzędzi serwer przekazuje tekst z wytycznymi: kiedy które narzędzie jest właściwe, kiedy zwykłe wyszukiwanie tekstowe nadal wystarcza i jakie pytanie należy zadać przed zmianą. Tekst ten można edytować i należy on do profilu.
Jedno polecenie w katalogu projektu
Potem agent sam znajduje AICB. Istniejące pliki pozostają nietknięte, więc ponowne uruchomienie nie szkodzi.
aicb init
- .mcp.json – wpis, przez który klient uruchamia serwer
- Umiejętność dla agenta – uczy go, kiedy sięgnąć po które narzędzie
- Reguła dla środowiska agenta – odrzuca wyszukiwanie tekstowe symbolu C# i wskazuje właściwe narzędzie
- Raport – polecenie podaje dla każdego pliku, co zrobiło i co pominęło
- Na życzenie para do przeglądu – dwa dodatkowe skille sprawdzają zmianę pod kątem błędów i zbędnej złożoności, w oparciu o fakty z AICB, a nie tylko o diff (
aicb init --skills=all)
Trzeci punkt zmienia zachowanie Państwa agenta – dlatego stoi tutaj, a nie w drobnym druku. Reguła nie jest podpowiedzią, ona blokuje. Właśnie to sprawia, że narzędzia są używane, a nie omijane. Z aicb init --hooks none zostaje pominięta.
Ręcznie też się da
Kto nie chce, aby cokolwiek było instalowane, tworzy wpis samodzielnie:
{
"mcpServers": {
"aicb": { "command": "aicb", "args": ["mcp"] }
}
}
Pytanie przed zmianą
Najcenniejsze jest pierwsze wywołanie. Zanim agent dotknie symbolu, który inny kod wywołuje po nazwie, pyta, jak daleko ten symbol sięga.
- Zasięg zamiast listy trafień – nie tylko bezpośrednie wywołania, ale i ich wywołania
- Czego nie widzi kompilator – asercja na liczbie, niewyczerpujący
switch, lista rejestracji - Pokrywające testy obok – pytanie „czy cokolwiek to w ogóle zabezpiecza?" należy postawić od razu
- Po zmianie – diagnostyka Roslyn bez pełnej kompilacji, jako szybka kontrola wstępna
- Bez nieaktualnego stanu – jeśli pliki źródłowe zmienią się po analizie, mówi o tym każda odpowiedź; jedno wywołanie odświeża analizę
Zastrzeżenie, aby odpowiedzi nie przeceniać: duży zasięg mierzy, ile miejsc zna dany typ – a nie, jak ryzykowna jest Państwa konkretna zmiana. Dodana wartość domyślna sięga wielu miejsc i nie psuje żadnego.
Umiejętność dla agenta z aicb init zapisuje dokładnie tę kolejność. Używa wyłącznie standardowych pól, więc działa w każdym środowisku wczytującym umiejętności – automatycznie jest umieszczana tylko dla Claude Code, w pozostałych przypadkach katalog kopiują Państwo sami.
Co serwer zapisuje
Każde wywołanie narzędzia jest zapisywane lokalnie. Widok MCP Usage w aplikacji na pulpit to pokazuje – i odpowiada na pytanie, z czego agent rzeczywiście korzystał.
- Dla każdego narzędzia – liczba wywołań, percentyle czasu, rozmiar odpowiedzi, udział we wszystkich wywołaniach
- Dla każdego wywołania – czas, narzędzie, klient, wynik, komunikat błędu oraz własne notatki
- Błędy liczone osobno – świadomie odrzucone wywołanie nie jest podejrzeniem defektu i nie trafia do tej samej kolumny
- Dla każdego klienta – który agent się połączył i z którą wersją protokołu
Rozdzielenie w zakładce Errors jest tym, co odróżnia zapis od zwykłej statystyki: wygasła sesja albo pusta baza danych to prawidłowa odmowa, a nie błąd. Osobno stoją wyjątki wskazujące na rzeczywisty defekt – wraz z wersją, w której wystąpiły ostatnio.
Zapis ten znajduje się w lokalnej bazie danych i nie opuszcza komputera. Można go w każdej chwili całkowicie usunąć.
Jedno pytanie, jedna odpowiedź
Ta sama analiza bez agenta i bez działającego serwera. Przydatne przy szybkim pytaniu i w skryptach.
aicb call find_usages --sln C:/repo/App.sln --arg symbol=OrderService
Siedem poleceń
- init – wpięcie AICB w projekt
- analyze – analiza rozwiązania i utworzenie kontekstu w Markdown
- export – ponowne wygenerowanie Markdown z istniejącej sesji
- import – przejęcie zapisanej konfiguracji
- list – lista szablonów i profili
- mcp – uruchomienie serwera MCP
- call – wywołanie jednego narzędzia i wypisanie odpowiedzi
Czym wyróżnia się call
- Bez serwera i klienta – polecenie startuje, odpowiada i kończy się
- Dostęp do każdego narzędzia – także tych, których nie oferuje żaden profil
- Wieloplatformowość – wiersz poleceń nie jest związany z Windows
- Czytelne maszynowo – wynik da się dalej przetwarzać
Również przez wiersz poleceń: konfiguracja dla danego rozwiązania jako plik obok .sln – wykluczenia przestrzeni nazw, rozpoznawanie testów, przypisanie warstw. Leży w repozytorium, więc obowiązuje wszystkich, którzy nad nim pracują.
Czego serwer MCP nie robi
Pięć punktów, które warto znać przed pierwszą próbą. Dwa to wymagania, trzy to świadome ograniczenia.
- Potrzebny jest MSBuild – musi być zainstalowany .NET SDK lub Visual Studio
- Tylko zaufane projekty – przy wczytywaniu wykonywana jest logika budowania rozwiązania, dokładnie jak w Visual Studio
- Brak dostępu przez HTTP – serwer komunikuje się wyłącznie przez stdio, nie ma dostępu zdalnego
- To nie zamiennik środowiska programistycznego – AICB czyta stan z dysku, a nie niezapisany bufor edytora
- Nie zmienia Państwa kodu – każde narzędzie analityczne tylko czyta; jeśli narzędzie coś zapisuje, mówi o tym we własnym opisie
Ostatni punkt to świadoma decyzja, a nie brakująca funkcja: serwer, który zmienia analizowane drzewo, czyni własne odpowiedzi niewiarygodnymi. Zmiany pozostają po Państwa stronie, w Państwa edytorze.
Pracują Państwo z agentem programistycznym?
Pytania dotyczące konfiguracji lub pracy w zespole? Proszę krótko napisać, z jakim agentem Państwo pracują.
Wyślij zapytanieDo aplikacji na pulpit








