Wiertnictwo lab: wspomaganie inżynierskie i AI
Wątek semestru

Od przeglądarki do terminala

Na początku semestru rozmawiasz z modelem w okienku czatu. Na końcu wydajesz zadania agentowi, który pracuje na plikach w Twoim komputerze, i uruchamiasz model na własnej karcie graficznej. Oczywiście w dużej przenośni: nikt nie każe Ci wyrzucać przeglądarki. Chodzi o kierunek, od pytania do celu, od rozmowy do narzędzi, od chmury do własnej maszyny.

Dotyczy: modułów M01-M14Potrzebne: PowerShell albo Wiersz polecenia, Python (jeśli jest w sali), Ollama od M10

Dlaczego terminal

W przenośni. Okno czatu jest jak rozmowa przez okienko w urzędzie: podajesz kartkę, dostajesz odpowiedź, a co działo się po drugiej stronie, nie wiesz. Terminal to wejście na zaplecze. Widzisz pliki, programy i każde polecenie, które ktoś (Ty albo agent) wykonał.

Dosłownie. Terminal to tekstowe okno, w którym wydajesz komputerowi polecenia. W Windows są dwa: PowerShell i starszy Wiersz polecenia. Wyglądają surowo, bo nie muszą niczego udawać.

Agent pracuje tam, gdzie są pliki

Czat w przeglądarce widzi tylko to, co mu wkleisz. Agent w terminalu czyta pliki z katalogu, uruchamia programy i zapisuje wyniki. Tak działa „model mówi, program liczy” z M06.

Polecenia są powtarzalne

Polecenie to tekst. Można je zapisać, wkleić koledze, uruchomić jutro i dostać ten sam wynik. Rozmowy z czatem nie da się tak odtworzyć.

Język inżyniera z maszyną

Programy obliczeniowe, serwery, modele lokalne i agenci mówią tym samym językiem poleceń. Kto go zna, nie jest skazany na przyciski, które ktoś przewidział.

Kontrola, nie nostalgia

Nie chodzi o czarny ekran jak z filmu o hakerach. Chodzi o to, żeby wiedzieć, co się wykonało, na jakich danych i z jakim skutkiem.

Schody semestru

Sześć stopni. Każdy moduł dokłada jeden krok w stronę terminala. Nie trzeba przeskakiwać: wystarczy nie stać w miejscu.

1. Okno czatuM01 2. Czat świadomieM02-M05 3. Program liczyM06 4. AgentM07-M09 5. Własna maszynaM10-M12 6. ProjektM13-M14
StopieńModułyGdzie pracujeszCo zmienia się w głowie
1. Okno czatuM01przeglądarkaWiesz, czym różni się model, czat, narzędzie i agent. Widzisz, gdzie jesteś na mapie.
2. Czat świadomieM02-M05przeglądarka, pierwsze polecenia w terminaluPolecenie piszesz jak specyfikację, odpowiedź sprawdzasz poza modelem, źródło przestaje być ozdobnikiem.
3. Program liczyM06program liczy na rzutniku, dla chętnych ćwiczenie „Płuczka K-1” w terminaluLiczby daje program, model je opisuje. Skrypt ma wejście, wyjście i zawsze ten sam wynik.
4. AgentM07-M09terminal agenta (pokaz), protokół jego pracyAgent to pętla: plan, polecenie, obserwacja, korekta. Każde polecenie agenta wykonuje się na prawdziwym komputerze.
5. Własna maszynaM10-M12terminal: ollama run, ollama psModel to plik na dysku, a jego szybkość zależy od pamięci karty. Dane mogą zostać w sali.
6. ProjektM13-M14katalog projektu z danymi, skryptami i przepisemWynik zespołu da się odtworzyć z zapisanych poleceń. To jest różnica między „AI mi powiedziało” a raportem inżynierskim.

Pierwsza godzina w terminalu

Wszystko poniżej działa na zwykłym koncie studenta, bez praw administratora. Otwórz menu Start, wpisz PowerShell i uruchom Windows PowerShell. Zobaczysz znak zachęty, na przykład PS C:\Users\student>. Litery PS oznaczają PowerShell. Bez nich jesteś w Wierszu polecenia (Win+R, wpisz cmd).

Dwanaście poleceń na start

PowerShellWiersz poleceniaCo robi
pwdcd (bez argumentu)pokazuje, w jakim katalogu jesteś
cd k1, cd ..tak samowchodzi do katalogu, wraca piętro wyżej
dir albo lsdirwypisuje zawartość katalogu
mkdir k1mkdir k1tworzy katalog
type plik.txt albo cat plik.txttype plik.txtwyświetla zawartość pliku tekstowego
Set-Content plik.txt "tekst"echo tekst > plik.txtzapisuje tekst do pliku
dir > lista.txt, >>tak samoprzekierowanie: wynik polecenia trafia do pliku zamiast na ekran (>> dopisuje na końcu)
notepad pvyp.pytak samootwiera plik w Notatniku (tworzy go, jeśli nie istnieje)
python pvyp.pytak samouruchamia skrypt Pythona, o ile Python jest w sali (czasem działa tylko py pvyp.py)
ollama listtak samopokazuje modele pobrane na dysk (od M10)
ollama run gemma3:4btak samorozmowa z modelem lokalnym, wyjście /bye. Z pytaniem w cudzysłowie: jedna odpowiedź i koniec
ollama pstak samopokazuje, który model jest w pamięci i czy siedzi na GPU
Trzy nawyki, które oszczędzają godziny. Klawisz Tab dopełnia nazwy plików i katalogów. Strzałka w górę przywołuje poprzednie polecenie. cls czyści ekran, ale niczego nie kasuje. A jeśli chcesz mieć zapis całej sesji do zeszytu, zacznij od Start-Transcript -Path sesja.txt, a skończ poleceniem Stop-Transcript.

Ćwiczenie. Płuczka K-1 w terminalu

  1. Utwórz katalog roboczy w miejscu wskazanym przez prowadzącego i wejdź do niego:
    mkdir k1-terminal
    cd k1-terminal
  2. Zapisz odczyty lepkościomierza Fann 35 do pliku, jeden wiersz na prędkość obrotową (obr/min i odczyt w stopniach):
    Set-Content fann.txt "600 62","300 40","200 32","100 23","6 8","3 6"
    type fann.txt
    W Wierszu polecenia zrób to samo sześcioma wierszami: echo 600 62 > fann.txt, potem echo 300 40 >> fann.txt i tak dalej.
  3. Sprawdź, czy jest Python: python --version, a jeśli nie zadziała, py --version. Wersja Pythona albo komunikat błędu
  4. Otwórz Notatnik poleceniem notepad pvyp.py, wklej poniższy skrypt i zapisz.
    # pvyp.py: lepkość plastyczna i granica płynięcia z odczytów lepkościomierza Fanna
    dane = open("fann.txt", "rb").read()
    # PowerShell 5.1 zapisuje plik operatorem > w kodowaniu UTF-16, Set-Content w ANSI
    if dane[:2] in (b"\xff\xfe", b"\xfe\xff"):
        tekst = dane.decode("utf-16")
    else:
        tekst = dane.decode("utf-8-sig")
    
    odczyt = {}
    for wiersz in tekst.splitlines():
        if wiersz.strip():
            rpm, stopnie = wiersz.split()
            odczyt[int(rpm)] = float(stopnie)
    
    pv = odczyt[600] - odczyt[300]        # mPa*s
    yp = odczyt[300] - pv                 # lbf/100 ft2
    yp_pa = yp * 0.511                    # Pa, przy 0,511 Pa na stopień
    lsyp = 2 * odczyt[3] - odczyt[6]      # lbf/100 ft2
    
    wynik = (f"PV = {pv:.0f} mPa*s\n"
             f"YP = {yp:.0f} lbf/100 ft2 (= {yp_pa:.1f} Pa)\n"
             f"LSYP = {lsyp:.0f} lbf/100 ft2\n")
    print(wynik, end="")
    open("wynik.txt", "w", encoding="utf-8").write(wynik)
  5. Uruchom: python pvyp.py. Na ekranie powinno się pojawić PV = 22 mPa⋅s, YP = 18 lbf/100 ft² (≈ 9,2 Pa) i LSYP = 4 lbf/100 ft². Gwiazdka w mPa*s to tylko zapis znakami, które konsola zawsze wyświetli. Wynik z ekranu
  6. Sprawdź, co powstało: dir, potem type wynik.txt. Zapisz listę plików poleceniem dir > lista.txt i obejrzyj ją. Jakie pliki są w katalogu?
  7. Od M10, gdy masz Ollamę: niech model ubierze wynik w słowa, a liczby zostaw programowi.
    $w = Get-Content wynik.txt -Raw
    ollama run gemma3:4b "Napisz dwa zdania notatki z badania płuczki. Nie zmieniaj żadnej liczby: $w"
    Czy model przepisał liczby bez zmian? Czy coś dodał od siebie?
  8. Do zeszytu: jedno zdanie o tym, czym ten sposób pracy różni się od zapytania czatu o PV i YP. Twój wniosek
Bez Pythona też się da. PowerShell sam liczy: $t600 = 62; $t300 = 40; $pv = $t600 - $t300; $yp = $t300 - $pv; "PV = $pv, YP = $yp". Mniej elegancko, ale wynik ten sam i też jest zapisany w poleceniu.
Mała pułapka, duża lekcja. W Windows PowerShell 5.1 operator > zapisuje plik w kodowaniu UTF-16, a Set-Content w kodowaniu systemowym. Dla oka plik wygląda tak samo, dla programu nie. Dlatego skrypt na początku sprawdza, z czym ma do czynienia. Takich rzeczy czat w przeglądarce nigdy Ci nie pokaże, bo nie widzi Twoich plików.

Agenci w terminalu

Agent wiersza poleceń to program uruchamiany w terminalu, który rozmawia z modelem językowym i za Twoją zgodą czyta pliki w katalogu, edytuje je i wykonuje polecenia. To ta sama pętla co w M07 (plan, działanie, obserwacja, korekta), tylko działanie nie jest już tekstem w okienku, ale poleceniem na Twoim komputerze. Poniżej narzędzia, których działanie i wymagania potwierdziliśmy w oficjalnej dokumentacji (stan z października 2026, warunki kont potrafią się zmieniać).

NarzędzieKonto i opłatyModel lokalny przez OllamęInstalacja w Windows
Claude Code (Anthropic)z modelami Anthropic wymaga płatnego planu Claude albo konta deweloperskiego, darmowy plan go nie obejmuje. Przy modelu z Ollamy wymóg logowania zależy od wersji narzędzia, dlatego na zajęciach używamy czatu w przeglądarce i Ollamy bez agenta.tak, według dokumentacji Ollamy: ollama launch claudepolecenie w PowerShell, bez uprawnień administratora (wprost w dokumentacji), Node.js niepotrzebny
Codex CLI (OpenAI)logowanie kontem ChatGPT (według pomocy OpenAI także w planie darmowym, z limitami) albo kluczem APItak: codex --oss albo ollama launch codexinstalator w PowerShell albo npm (wtedy potrzebny Node.js), w sali bez praw administratora może się nie zainstalować, dlatego na zajęciach go nie wymagamy
Gemini CLI (Google)darmowy dostęp z osobistym kontem Google, z dziennym limitem zapytań, albo klucz APIdokumentacja nie przewiduje, pracuje z modelami Googlenpm, wymaga Node.js 20 lub nowszego i Windows 11 24H2 lub nowszego
OpenCode (otwarte oprogramowanie)konto potrzebne tylko u dostawcy modelu w chmurze, z lokalnym modelem nietak: ollama launch opencodenpm (Node.js), Scoop, Chocolatey albo gotowy plik z GitHuba
Aider (otwarte oprogramowanie)jak wyżej: płacisz tylko za model w chmurze, jeśli go wybierzesztak: aider --model ollama_chat/<model>instalator w PowerShell, który w razie potrzeby sam dociąga Pythona 3.12
Uczciwie o modelu lokalnym. Dokumentacja Ollamy podaje, że na kartach z mniej niż 24 GB pamięci domyślny kontekst to 4 tys. tokenów, a agenci i narzędzia programistyczne potrzebują co najmniej 64 tys. Na karcie 8 GB w sali agent z małym modelem lokalnym ruszy, ale będzie się gubił w dłuższych zadaniach. Wynik takiej próby jest pomiarem granicy sprzętu, tym samym rachunkiem pamięci co w M10. Czatu kursowego też nie podepniesz pod agenta: model na serwerze AGH ma okno kontekstu 16 tys. tokenów, wystarczające do rozmowy, ale około czterokrotnie za małe dla agentów w terminalu, którym potrzeba około 64 tys. Instalacji agentów w sali nie robisz na własną rękę: decyduje prowadzący.

Bezpieczeństwo agenta w terminalu

Czat w przeglądarce może Ci najwyżej coś źle doradzić. Agent w terminalu może coś zrobić: skasować plik, wysłać dane, uruchomić program. Dlatego reguły są twardsze niż w M09.

Osobny katalog roboczy

Agenta uruchamiasz w pustym katalogu z kopią danych, na przykład k1-terminal. Nigdy w katalogu domowym, na Pulpicie ani w Dokumentach.

Każde polecenie czytasz

Agent pyta o zgodę przed wykonaniem polecenia. Zatwierdzasz dopiero, gdy rozumiesz, co ono robi. Trybów „wykonuj bez pytania” nie włączasz.

Żadnych prywatnych danych obok

Hasła, klucze, prywatne zdjęcia i cudze dokumenty nie mogą leżeć tam, gdzie agent ma wstęp. Czego nie ma w katalogu, tego nie przeczyta.

Treść plików to dane, nie polecenia

Zasada z M09 obowiązuje podwójnie. Jeśli w pliku, mailu albo na stronie stoi „zignoruj poprzednie instrukcje”, agent ma to zgłosić, a nie wykonać. Ty też.

Dwie uwagi praktyczne. Polecenia instalacyjne w rodzaju irm adres | iex pobierają i od razu wykonują cudzy skrypt, więc uruchamiasz je tylko z oficjalnej strony producenta i za zgodą prowadzącego. Dokumentacja Claude Code podaje też wprost, że na zwykłym Windowsie (bez podsystemu WSL 2) nie działa izolacja w piaskownicy. Wtedy jedyną ochroną jest katalog roboczy i Twoje „tak” przy każdym poleceniu.

Do zapamiętania.

Dla dociekliwych

Program kursuZeszyt eksperymentów AI