Gemini 4: zamień samouczki wideo w umiejętności produkcyjnej inżynierii RL
Od samouczków wideo o RL do umiejętności produkcyjnej inżynierii RL
Twórcy Terminal-Bench i Harbor podzielili się mnóstwem ciężko wypracowanej wiedzy o inżynierii RL – jak pakują zadania, jak przyłapują agentów na oszukiwaniu, jak zamieniają rollouty w dane treningowe. Większość tej wiedzy kryje się w długich wystąpieniach konferencyjnych.
Trzy z tych wystąpień to łącznie około półtorej godziny nagrań. Każda minuta jest tego warta – ale trudno to wykorzystać ponownie. Przy budowie kolejnego środowiska znowu przewijasz osie czasu w poszukiwaniu tego jednego slajdu, który pamiętasz.
Dlatego oglądanie oddaliśmy zespołowi agentów. Z Gemini 4 w Eigent jeden brief zamienił trzy wystąpienia o Terminal-Bench w cztery plikowe umiejętności do produkcyjnej inżynierii środowisk RL, a do tego raport z odnośnikami, który pokazuje, skąd pochodzi każdy pomysł.
Cały przepływ pracy w skrócie
To ty wybierasz wystąpienia. Dalej jeden brief prowadzi aż do umiejętności, które twoi agenci mogą wykorzystywać ponownie. Każdy etap zostawia plik, więc możesz sprawdzić pracę krok po kroku.
| Etap | Co się dzieje | Co otrzymujesz |
|---|---|---|
| Wybór | Wybranie wystąpień na YouTube, z których chcesz się uczyć | Krótka lista linków do filmów w briefie |
| Oglądanie | Pobranie napisów i klatek oraz obejrzenie każdego wystąpienia w całości | Konspekt każdego wystąpienia ze znacznikami czasu |
| Analiza | Wyłuskanie metod, wniosków, raportowanych wyników i ostrzeżeń | Punkty nauki oznaczone jako OBSERVED, INFERRED lub UPDATED |
| Porównanie | Zestawienie wystąpień ze sobą | Gdzie się zgadzają, gdzie się różnią i jak każde uzupełnia luki pozostałych |
| Destylacja | Pogrupowanie metod i wniosków według praktycznych możliwości | Jeden SKILL.md i jeden evidence.md na umiejętność |
| Weryfikacja | Sprawdzenie struktury, uruchomienie skryptów, test umiejętności na nowym zadaniu | Każda umiejętność oznaczona jako STRUCTURALLY CHECKED, EXECUTED lub UNTESTED |
| Raport | Zbudowanie i udostępnienie raportu HTML pod 127.0.0.1 | Osadzone wystąpienia, klikalne znaczniki czasu i macierz pokrycia pokazująca luki |
| Ponowne użycie | Wskazanie współpracownikowi pliku SKILL.md | Produkcyjna inżynieria środowisk RL we własnym projekcie |
Oto jak zrobić to samodzielnie, krok po kroku – łącznie z lekcją, której nauczyliśmy się przy pisaniu briefu.
Co otrzymasz
- Umiejętności wielokrotnego użytku – każda to
SKILL.mdzevidence.md, napisane tak, by inny agent mógł je zastosować bez oglądania wystąpień. - Raport HTML z odnośnikami do źródeł – serwowany lokalnie, z każdym wystąpieniem osadzonym, konspektem ze znacznikami czasu i punktami nauki, które po kliknięciu przenoszą prosto do właściwego momentu.
- Macierz pokrycia – która umiejętność obejmuje którą część przepływu pracy RL i których obszarów nie porusza żadne wystąpienie.
- Rzetelny ślad dowodowy – każde twierdzenie oznaczone jako OBSERVED, INFERRED lub UPDATED, a każda umiejętność jako uruchomiona, sprawdzona strukturalnie lub nieprzetestowana.
Zanim zaczniesz
- Eigent zainstalowany na twoim komputerze.
- Klucz API Gemini.
- Linki do YouTube, z których mają się uczyć twoi agenci. My użyliśmy tych trzech:
| Wystąpienie | Kanał | Długość |
|---|---|---|
| Introducing Terminal-Bench: Evaluating LLM Agents in Realistic Terminal Settings | Anyscale (Ray Summit 2025) | 31:23 |
| Everything Is a Rollout - Alex Shaw + Ryan Marten | AI Engineer | 21:11 |
| Terminal-Bench 2.0: Launch + Q&A with the founders | Latent Space | 35:00 |
Dodaj klucz API Gemini
- Otwórz Settings → Models.
- Znajdź Gemini i otwórz jego ustawienia.
- Wklej swój API key.
- Ustaw model type na
gemini-4. - Kliknij Save.
Wybierz Gemini 4
- Na ekranie głównym otwórz selektor modelu pod polem wprowadzania.
- Wybierz Gemini → gemini-4.
- Jeśli chcesz, ustaw poziom rozumowania – wartość domyślna wystarczy.
Wklej brief
Skopiuj poniższy brief do pola Cowork with. Podmień linki na własne filmy i ustaw linię Docker na allowed lub not allowed.
Watch the YouTube videos listed below and turn their methods and insights into reusable,
file-based agent skills. Then publish the results as a well-designed HTML report served from a
local web server.
Videos:
- https://www.youtube.com/watch?v=zt-U4lDdenY&t=1559s
- https://www.youtube.com/watch?v=jRCpXUjz4CI
- https://www.youtube.com/watch?v=5wo0mLlG0fk&t=1815s
Use only these videos as primary sources. Do not search for, substitute, or add other videos.
You may consult official documentation and the code repositories the videos link to or name,
but only to check or update details shown in the videos.
## Focus
Extract practical, repeatable methods. Where the videos cover them, include:
- Defining tasks, observations, actions, and termination conditions.
- Creating reproducible environments and reset behaviour.
- Building verifiers and reward functions.
- Detecting reward hacking and invalid successes.
- Collecting, scoring, and reviewing agent trajectories.
- Preparing data for agent training and evaluation.
Do not invent coverage for areas the videos don't address. List those areas as gaps instead.
Capture insights, not only procedures. For every method, record why the speakers use it, what
went wrong before they did, any results or numbers they reported, and the warnings they gave.
Treat named tools and frameworks (for example Harbor or Terminal-Bench) as one implementation
of a method. Record the underlying principle first and the tool-specific steps second.
## Permissions and limits
- Allowed: reading the video pages; downloading subtitles, transcripts, and the video files
for analysis; extracting frames; reading official docs and repositories named in the
videos; creating a local virtual environment and installing open-source packages into it;
running a local static web server bound to 127.0.0.1.
- Docker: [allowed / not allowed].
- Not allowed: model training, GPU jobs, paid hosted services, calls to paid LLM APIs, or
publishing anything to a public host. For trajectory collection tests, use a scripted,
rule-based, or random policy.
- Keep all files inside ./rl-env-skills/ in the current working directory. Delete downloaded
video files when finished.
- Do not ask for confirmation for the actions allowed above. Stop and report only if a required
action falls outside them.
- If a video is private, removed, region-locked, or has no usable audio or transcript, say so in
the report. Continue with the remaining videos, and do not replace it.
## Capability honesty
Before starting, record which relevant capabilities you have: video viewing, frame
extraction, transcript access, code execution, browser preview. If you cannot inspect video
visuals, work from transcripts and mark every visual claim as "not observed".
Never describe on-screen content you did not actually see.
## Analysis
For each video:
- Record title, channel, published date, duration, and view count with the date checked.
- Watch it in full. Inspect visual demonstrations, code, diagrams, and narration where your
capabilities allow.
- Build a timestamped outline of the main sections.
- Preserve timestamps for every important procedure, decision, and warning.
- List the key insights and takeaways: design decisions and the reasons behind them, lessons
learned, failure stories, reported results, and warnings. Give each one a timestamp.
- Label each claim OBSERVED (seen or heard in the video), INFERRED (your interpretation), or
UPDATED (adapted to current official docs; cite the doc URL and the date checked).
- Re-inspect unclear moments. Record unresolved details instead of guessing.
- Paraphrase. Quotes must be under 15 words and carry a timestamp. Do not reproduce transcripts.
Then note where the videos agree, where they differ, and where one fills a gap in another.
## Skills
Create 2–4 skills grouped by practical capability. A skill may draw from several videos.
Layout:
rl-env-skills/
<skill-name>/
SKILL.md # required
evidence.md # timestamps, OBSERVED/INFERRED/UPDATED labels, source per point
scripts/ templates/ # only if they materially help; scripts must be tested
report/
index.html # the HTML report (see below)
assets/ # extracted frames or screenshots used in the report, if any
REPORT.md
manifest.json
SKILL.md must begin with YAML frontmatter:
---
name: <kebab-case, matches folder name>
description: <1–2 sentences: what it does and when to use it, including trigger phrases>
---
The body must cover: prerequisites, required inputs, key insights (the principles and lessons
behind the procedure, each with its source and timestamp), procedure (numbered steps), expected
outputs, decision rules, failure recovery, observable success checks, and a tool-agnostic path
for projects that don't use the tools shown in the videos. Another agent should be able to
apply it to a new project without watching the videos.
A skill must not be only a wrapper around one tool's features. If you removed every
tool-specific command, the insights and decision rules should still stand on their own.
Keep these four things distinct throughout: task datasets, recorded trajectories, supervised
training examples, and RL policy optimisation. Never imply that exporting trajectories is RL
training.
## Validation
- Structural: frontmatter is present and valid, the name matches the folder, every referenced
file exists, every evidence timestamp falls within the source video's duration, and every
skill has a key insights section with at least three sourced insights.
- Execution: run every script you created. Where feasible, apply at least one skill end to end on
a small example the videos don't use (e.g. a text grid-world, or a "make this failing unit
test pass" task).
- Report each item as STRUCTURALLY CHECKED, EXECUTED (with command and result), or UNTESTED
(with reason).
## HTML report (report/index.html)
### Content, in this order
1. Header: report title, date checked, the agent's capability summary (had / lacked).
2. Summary: 3–5 sentences on what was produced and the main limitations. No marketing language.
3. Sources: one row per video (title, channel, published date, duration, views with date
checked, linked code or repository, access status).
4. One section per video:
- The original video embedded with a privacy-enhanced YouTube embed
(https://www.youtube-nocookie.com/embed/<VIDEO_ID>), with a 16:9 responsive frame.
- Link to the original.
- Timestamped outline of the video.
- Key insights and takeaways, each with a clickable timestamp and a label.
- Learning points: numbered, each with a clickable timestamp that seeks the embedded player
(YouTube IFrame Player API) and an OBSERVED / INFERRED / UPDATED label.
- Unresolved details.
- If embedding is blocked, show the video thumbnail linked to youtube.com/watch?v=<ID>
and state that embedding was unavailable.
5. How the videos compare: agreements, differences, and how each fills the others' gaps.
6. One section per skill:
- Name, absolute path to SKILL.md, one-sentence purpose, and when to use it.
- Key insights the skill carries, with their sources.
- Procedure summary (the key steps, not the whole file).
- Evidence: every supporting source point as a row — video, timestamp (clickable), label,
and what the skill took from it. Include doc URLs for UPDATED items.
- Validation status with the command and result if executed.
7. Coverage matrix: skills × the videos, showing which video supports which skill, plus
the focus areas no video covered.
8. Data distinctions: a short table defining task dataset, trajectory, supervised example, and
RL policy optimisation, and which of them the skills actually produce.
9. Limitations and untested items.
10. Three copy-paste reuse requests, each in a code block with a copy button.
### Visual design: light mode, in Google's design language
- Style only: do not use Google logos or wordmarks, or suggest the report is a Google product.
- Colours: page #FFFFFF; secondary surfaces #F8F9FA; borders #DADCE0; primary text #202124;
secondary text #5F6368; links and primary actions #1A73E8. Use the Google accent set
(blue #4285F4, red #EA4335, yellow #FBBC04, green #34A853) only for status and labels,
e.g. OBSERVED blue, INFERRED yellow tint with dark text, UPDATED green, UNTESTED red.
Text must meet WCAG AA contrast.
- Type: Google Sans / Google Sans Text if available from Google Fonts, otherwise Roboto; Roboto
Mono or Google Sans Code for code and timestamps. Clear scale: one H1, H2 per section, 16px
body, 1.5 line height, comfortable line length (about 70–80 characters).
- Layout: 8px spacing grid, max content width about 1100px, sticky left table of contents on
desktop that collapses on mobile, flat cards with 1px borders or a subtle Material elevation
shadow, 8–12px corner radius, plain tables with hairline row dividers.
- Avoid the generic "AI-generated" look: no gradients, purple/indigo themes, glassmorphism,
glowing effects, emoji used as icons, sparkle icons, oversized hero banners, decorative
blobs, or hype copy ("unlock", "supercharge", "seamless"). Prefer real content, tables, and
data over decoration.
- Technical: one self-contained HTML file with inline CSS and JS. Only external requests allowed:
Google Fonts and YouTube embed/API. Responsive down to 360px width with no horizontal
page scroll. Semantic HTML, keyboard-accessible controls, alt text on images.
### Serve and verify
1. Start a static server from rl-env-skills/report/ bound to 127.0.0.1, e.g.
`python3 -m http.server 8000 --bind 127.0.0.1`. If port 8000 is busy, use the next free port.
Keep the server running when you finish.
2. Do not rely on opening the file from disk: YouTube embeds often fail without an http origin.
3. Verify: the page returns HTTP 200; every embed loads or shows the fallback; timestamp links
seek the player; all anchors and file links resolve; no console errors. If you have a browser
tool, take a desktop and a 375px-wide screenshot and save them to report/assets/.
4. Report how you verified each item, and which checks you could not run.
## Deliverables
- REPORT.md: a plain-text version of the report's findings.
- manifest.json:
{ "date_checked": "...",
"videos": [{"url","title","channel","published","duration","views","access_status"}],
"skills": [{"name","path","sources":["<video id>", "..."],
"insights": <number of sourced insights>,
"validation":"executed|structural|untested"}],
"capabilities": {"video": bool, "frames": bool, "transcripts": bool, "code_exec": bool,
"browser_preview": bool},
"report": {"path": "<absolute path to index.html>", "preview_url": "http://127.0.0.1:<port>/",
"server_command": "...", "verified": [...], "not_verified": [...]} }
- Final reply: the preview link on its own line first
(http://127.0.0.1:<port>/), then the command to restart the server if it stops, then a short
summary of the videos, skills with absolute paths, validation results, and limitations.
Kilka części tego briefu wykonuje najważniejszą pracę:
- Use only these videos trzyma agentów przy wybranych przez ciebie źródłach – bez zamian i bez dodatków.
- Capture insights, not only procedures sprawia, że dlaczego idzie w parze z jak. Więcej o tym poniżej.
- Capability honesty nie pozwala nikomu opisywać klatki filmu, której nikt naprawdę nie widział.
- Etykiety OBSERVED / INFERRED / UPDATED oddzielają fakty, interpretację i aktualizacje sprawdzone w dokumentacji.
- Rozróżnienia danych oddzielają zbiory zadań, trajektorie, przykłady nadzorowane i optymalizację polityki RL – dzięki temu eksport trajektorii nigdy nie zostanie pomylony z treningiem.
Co zmieniliśmy w briefie – i dlaczego
Przebieg z naszego nagrania korzystał z wcześniejszej wersji tego briefu. Wiele rzeczy wyszło dobrze. Gemini 4 obejrzał wszystkie trzy wystąpienia, porównał szczegóły z dokumentacją i repozytorium Harbor i zbudował cztery umiejętności. Skrypt każdej umiejętności przeszedł od początku do końca na zadaniu, którego nie używa żadne z wystąpień – naprawie parsera konfiguracji w Pythonie o nazwie fix-ini-interpolator.
Czytając umiejętności, zauważyliśmy jednak pewną rzecz. Mocno opierały się na funkcjach Harbor – strukturze folderów zadań, formatach trajektorii i poleceniach CLI. Wnioski, które za nimi stoją, w większości zostały w raporcie.
A wystąpienia są pełne wniosków. Sam raport wychwycił między innymi te:
- Scaffold liczy się tak samo jak model. Wczesne anulowanie zawieszonych poleceń dało około 5–10%, a mieszanie modeli w jednym przebiegu około 5–6% (wystąpienie na Ray Summit, 18:05–19:23).
- Planuj skalę od początku. Laptop obsłuży najwyżej około sześciu kontenerów jednocześnie – dlatego zespoły przeszły na sandboksy w chmurze (wszystkie trzy wystąpienia).
- Reward hacking to przeuczenie w RL. Traktuj podejrzanie wysoki wynik tak, jak potraktowałbyś podejrzanie niską stratę walidacyjną (wystąpienie na AI Engineer, 06:35).
Umiejętność, która wie tylko, jak uruchomić narzędzie, nie powie ci, kiedy podejście zawodzi ani co zrobić na stosie bez tego narzędzia. Dlatego wprowadziliśmy cztery zmiany:
- Wnioski są pełnoprawnym rezultatem. Każda sekcja filmu i każda umiejętność zapisuje teraz rozumowanie prelegentów, wyciągnięte lekcje, wyniki i ostrzeżenia – każde ze znacznikiem czasu.
- Najpierw zasada, potem narzędzie. Harbor i Terminal-Bench to jeden ze sposobów zastosowania metody, a nie sama metoda.
- Żadnych nakładek na narzędzia. Każda umiejętność potrzebuje sekcji kluczowych wniosków i ścieżki niezależnej od narzędzi. Po usunięciu wszystkich poleceń umiejętność wciąż powinna czegoś uczyć.
- Weryfikacja to sprawdza. Każda umiejętność musi zawierać co najmniej trzy wnioski ze wskazanym źródłem, inaczej nie przejdzie kontroli strukturalnej.
Poprawiliśmy też drobną niespójność. Wcześniejszy brief mówił o „dwóch filmach”, ale wymieniał trzy linki. Gemini 4 to zauważył, odnotował w raporcie i przeanalizował wszystkie trzy – nowe sformułowanie działa jednak dla dowolnej liczby filmów.
Pozwól agentom pracować
Wyślij brief. Gemini 4 planuje pracę i uruchamia agentów. Od tej chwili przebieg podąża za briefem:
- Obejrzenie każdego wystąpienia – napisów, klatek, slajdów i demonstracji na żywo – z zachowaniem znaczników czasu.
- Destylacja metod i wniosków w umiejętności, każdą z własnym plikiem dowodów.
- Weryfikacja umiejętności i zapisanie, co sprawdzono, co uruchomiono, a co pozostało nieprzetestowane.
- Wygenerowanie raportu i udostępnienie go pod
127.0.0.1.
W naszym przebiegu agenci pobrali wszystkie trzy wystąpienia, wyodrębnili ponad 25 klatek kluczowych, pobrali pełne transkrypcje ze znacznikami czasu i porównali szczegóły Harbor z oficjalną dokumentacją – a potem usunęli pobrane pliki wideo, tak jak wymaga brief.
Otwórz raport
Raport otwiera się na lokalnym serwerze – w naszym przebiegu pod adresem http://127.0.0.1:8000. Oto co w nim znajdziesz:
- Możliwości – czym dysponowali agenci, a czego im brakowało, od oglądania filmów po podgląd w przeglądarce.
- Podsumowanie i źródła – każde wystąpienie z kanałem, datą publikacji, długością, liczbą wyświetleń i powiązanymi repozytoriami.
- Jedna sekcja na wystąpienie – film osadzony w odtwarzaczu o zwiększonej prywatności, konspekt ze znacznikami czasu i oznaczone punkty nauki.
- Porównanie wystąpień – gdzie się zgadzają, gdzie się różnią i jak każde uzupełnia luki pozostałych.
- Jedna sekcja na umiejętność – cel, kluczowe kroki, dowody i dokładne polecenie weryfikacji.
- Ograniczenia – co pozostało nieprzetestowane i dlaczego, na przykład sandboksy w chmurze i płatne API modeli.
Odczytaj macierz pokrycia
Macierz pokazuje, która umiejętność obejmuje którą część przepływu pracy RL – i gdzie wystąpienia zostawiają luki.
| Obszar | Task Scaffolder | Verifier & Anti-Cheat | Rollout Collector | SFT Dataset Preparer |
|---|---|---|---|---|
| Definiowanie zadań, obserwacji, akcji i warunków zakończenia | Główna | Pomocnicza | Główna | - |
| Odtwarzalne środowiska i reset | Główna | Pomocnicza | Pomocnicza | - |
| Budowa weryfikatorów i funkcji nagrody | Pomocnicza | Główna | - | - |
| Wykrywanie reward hackingu i nieprawidłowych sukcesów | - | Główna | Pomocnicza | - |
| Zbieranie, ocenianie i przegląd trajektorii | - | - | Główna | Pomocnicza |
| Przygotowanie danych do treningu SFT i ewaluacji | - | - | - | Główna |
| Luka: matematyka gradientu polityki w RL i wnętrze trenera | Nieobjęte | Nieobjęte | Nieobjęte | Trzymane osobno |
| Luka: gęste kształtowanie nagrody procesowej na poziomie kroków | Nieobjęte | Tylko nagroda za wynik | Nieobjęte | Nieobjęte |
Te dwa wiersze luk są ważne. Wystąpienia wymieniają trenery takie jak SkyRL i Tinker, ale nigdy nie pokazują pętli treningowej – więc umiejętności nie udają, że ją obejmują.
Zaprzęgnij umiejętności do pracy
Każda umiejętność ma własny folder w rl-env-skills/:
sandboxed-task-environment-scaffolder– tworzy i weryfikuje odtwarzalne, skonteneryzowane zadania.verifier-and-anti-cheat-auditor– buduje weryfikatory wyników i sprawdza je pod kątem reward hackingu.rollout-trajectory-collector-and-debugger– uruchamia rollouty w sandboksie, zapisuje trajektorie i klasyfikuje błędy.trajectory-to-sft-dataset-preparer– filtruje zweryfikowane trajektorie w czyste dane SFT, ściśle oddzielone od treningu RL.
Wskaż jedną z nich współpracownikowi i daj mu prawdziwe zadanie, na przykład:
Use rl-env-skills/verifier-and-anti-cheat-auditor/SKILL.md to design a verifier
for my "make this failing unit test pass" task. Flag any way an agent could
pass without fixing the bug.
Umiejętność zawiera procedurę, reguły decyzyjne i kryteria sukcesu. Plik dowodów zawiera potwierdzenia – a dzięki nowemu briefowi trafiają tam też wnioski.
Dostosuj do siebie
Brief sprawdza się dla dowolnego zestawu wystąpień technicznych. Zmień linki do filmów i listę priorytetów, a resztę zostaw bez zmian:
- Zachowaj zasady dotyczące wniosków. To one zamieniają instrukcję obsługi narzędzia w ciężko wypracowany osąd.
- Zachowaj zasady rzetelności. To sprawdzanie możliwości i etykiety twierdzeń sprawiają, że wynik jest wiarygodny.
- Zachowaj krok weryfikacji. Umiejętność, której nigdy nie uruchomiono, jest notatką, a nie umiejętnością.
Półtorej godziny wystąpień nie musi pozostać półtorej godziną wystąpień. Przekaż je swoim agentom – i zachowaj to, czego się nauczą.
Podziękowania: nagranie powstało z użyciem Gemini 4 i Eigent. Wystąpienia: Mike Merrill (Ray Summit 2025), Alex Shaw i Ryan Marten (AI Engineer) oraz założyciele Terminal-Bench w Latent Space – oryginały obejrzysz na YouTube. Muzyka: "Wallpaper" Kevin MacLeod (incompetech.com), na licencji Creative Commons: By Attribution 4.0.



