{"id":90,"date":"2026-07-29T16:46:16","date_gmt":"2026-07-29T15:46:16","guid":{"rendered":"https:\/\/ai.quailoop.com\/index.php\/2026\/07\/29\/pl-openforgerl-wreszcie-mozna-trenowac-agenty-ai-z-rl-w-dowolnym-srodowisku\/"},"modified":"2026-07-30T09:46:51","modified_gmt":"2026-07-30T08:46:51","slug":"pl-openforgerl-wreszcie-mozna-trenowac-agenty-ai-z-rl-w-dowolnym-srodowisku","status":"publish","type":"post","link":"https:\/\/ai.quailoop.com\/index.php\/2026\/07\/29\/pl-openforgerl-wreszcie-mozna-trenowac-agenty-ai-z-rl-w-dowolnym-srodowisku\/","title":{"rendered":"[PL] OpenForgeRL \u2014 wreszcie mo\u017cna trenowa\u0107 agenty AI z RL w dowolnym \u015brodowisku"},"content":{"rendered":"<p><strong>OpenForgeRL pozwala trenowa\u0107 agenty AI z RL w dowolnym \u015brodowisku \u2014 bez prompt-engineering, bez r\u0119cznego nadawania trajektorii. To jedna z najwa\u017cniejszych prac naukowych tygodnia z chi\u0144skiej sceny AI dla ka\u017cdego, kto buduje agent\u00f3w.<\/strong><\/p>\n<hr \/>\n<h2>Problem: trenowanie agent\u00f3w wymaga zbyt du\u017co ingerencji w proces<\/h2>\n<p>Nowoczesne agenty AI \u2014 Claude Code, Codex, OpenClaw, a nawet Hermes Agent \u2014 u\u017cywaj\u0105 z\u0142o\u017conych <em>\u015brodowisk wspieraj\u0105cych<\/em>: wieloetapowych p\u0119tli my\u015blenie \u2192 wywo\u0142anie narz\u0119dzia \u2192 obserwacja \u2192 my\u015blenie. Problem w tym, \u017ce \u017caden otwarty stack RL\/SFT nie wspiera tego natywnie.<\/p>\n<p>Standardowe narz\u0119dzia (TRL, OpenRLHF, veRL) zak\u0142adaj\u0105 prost\u0105 sekwencj\u0119: prompt \u2192 odpowied\u017a \u2192 nagroda. Tymczasem agent robi 5-20 krok\u00f3w, wo\u0142a API, czyta pliki, wykonuje kod. Ka\u017cdy krok zmienia stan \u015brodowiska. Pr\u00f3ba trenowania tego przez istniej\u0105ce frameworki ko\u0144czy si\u0119:<\/p>\n<ul>\n<li>r\u0119cznym nastawianiem trajektorii w JSONL<\/li>\n<li>\u017cmudnym prompt engineeringiem zamiast faktycznego uczenia<\/li>\n<li>rezygnacj\u0105 z RL na rzecz SFT na statycznych zbiorach danych<\/li>\n<\/ul>\n<p>Autorzy OpenForgeRL \u2014 Xiao Yu, Baolin Peng, Ruize Xu, Hao Zou \u2014 m\u00f3wi\u0105 wprost: &#8220;elaborate inference harnesses make agents hard to train end-to-end with open infrastructure&#8221;. I proponuj\u0105 rozwi\u0105zanie.<\/p>\n<h2>Jak dzia\u0142a OpenForgeRL<\/h2>\n<p>Architektura opiera si\u0119 na trzech warstwach:<\/p>\n<ol>\n<li><strong>Environment Abstraction Layer (EAL)<\/strong> \u2014 jednolity interfejs do dowolnego \u015brodowiska (terminal, API, przegl\u0105darka, gra). Ka\u017cde \u015brodowisko wystawia te same interfejsy: <code>reset()<\/code>, <code>step(action) \u2192 observation, reward, done<\/code>. Agent nie widzi r\u00f3\u017cnicy mi\u0119dzy prac\u0105 w bashu a graniem w Minecrafta.<\/li>\n<li><strong>Harness-Native Policy<\/strong> \u2014 polityka RL zaprojektowana jako cz\u0119\u015b\u0107 \u015brodowiska wspieraj\u0105cego, a nie osobny komponent. Model generuje nie tylko odpowied\u017a, ale ca\u0142\u0105 sekwencj\u0119: <code>[think] \u2192 [tool_call] \u2192 [observe] \u2192 [think] \u2192 ... \u2192 [final_answer]<\/code>. Ka\u017cdy krok to osobna sekwencja token\u00f3w w odpowiedzi, z w\u0142asnym gradientem.<\/li>\n<li><strong>Multi-Turn PPO \/ GRPO<\/strong> \u2014 adaptacja PPO i GRPO do wieloetapowych inferencji. Kluczowa modyfikacja: funkcja wzmocnienia nie jest liczona po ca\u0142ej trajektorii, ale per-krok, z poprawk\u0105 gamma. To pozwala modelowi nauczy\u0107 si\u0119, kt\u00f3re <em>poszczeg\u00f3lne<\/em> akcje (np. &#8220;sprawd\u017a plik zanim odpowiesz&#8221;) s\u0105 warto\u015bciowe, nawet je\u015bli ko\u0144cowa odpowied\u017a jest b\u0142\u0119dna.<\/li>\n<\/ol>\n<pre><code># Pseudokod: trening agenta z OpenForgeRL\nenv = TerminalEnvironment(cwd=\"\/project\")\nagent = HarnessPolicy(model=\"Qwen3.6-8B\", harness=\"codex-style\")\ntrainer = MultiTurnPPO(gamma=0.95, lam=0.95)\n\nfor episode in range(1000):\n    obs = env.reset()\n    trajectory = []\n    while not done:\n        action = agent.act(obs)          # [think] [tool_call] ...\n        obs, reward, done = env.step(action)\n        trajectory.append((obs, action, reward))\n    trainer.update(trajectory)\n    # agent uczy si\u0119: wcze\u015bnie sprawdza\u0107 b\u0142\u0119dy,\n    # nie nadu\u017cywa\u0107 tooli, planowa\u0107 kroki naprz\u00f3d\n<\/code><\/pre>\n<h2>Wyniki<\/h2>\n<p>Autorzy testowali OpenForgeRL w trzech benchmarkach agentowych:<\/p>\n<ul>\n<li><strong>SWE-bench Verified<\/strong> (naprawa bug\u00f3w w repozytoriach Pythona): +12.3 p.p. ponad SFT baseline, +5.1 p.p. ponad vanilla PPO<\/li>\n<li><strong>WebArena<\/strong> (nawigacja po stronach): +8.7 p.p. ponad SFT<\/li>\n<li><strong>ToolBench<\/strong> (tool calling, 4 \u015brodowiska): +14.2 p.p. ponad SFT, szczeg\u00f3lnie w kategorii &#8220;multiple tools in sequence&#8221;<\/li>\n<\/ul>\n<p>Co wa\u017cne \u2014 model 8B trenowany OpenForgeRL dor\u00f3wnuje na SWE-bench modelowi 32B trenowanemu vanilla SFT. To czterokrotna redukcja kosztu inferencji za t\u0119 sam\u0105 jako\u015b\u0107(!)<\/p>\n<h2>Co to znaczy dla in\u017cyniera<\/h2>\n<p>Je\u015bli budujesz agenta (IDE assistant, CLI agent, web scraper, devops pipeline), OpenForgeRL zmienia regu\u0142y gry:<\/p>\n<ul>\n<li><strong>Nie musisz przegina\u0107 ze zbiorami danych.<\/strong> Agent sam generuje trajektorie w \u015brodowisku, dostaje nagrod\u0119 (czy zadanie wykonane) i uczy si\u0119 na w\u0142asnych b\u0142\u0119dach.<\/li>\n<li><strong>Mo\u017cesz trenowa\u0107 w dowolnym \u015brodowisku.<\/strong> Terminal, API, przegl\u0105darka \u2014 EAL jest elastyczny i agnostyczny.<\/li>\n<li><strong>RL &gt; prompt engineering.<\/strong> Zamiast sp\u0119dza\u0107 tygodnie na szukaniu magicznego prompta, puszczasz 1000 sekwencji inferencji i model sam znajduje optymaln\u0105 strategi\u0119.<\/li>\n<li><strong>Skalowanie w d\u00f3\u0142 dzia\u0142a.<\/strong> Mniejszy model z RL wygrywa z wi\u0119kszym bez RL \u2014 to bezpo\u015brednie prze\u0142o\u017cenie na koszt produkcji.<\/li>\n<\/ul>\n<h2>Ograniczenia<\/h2>\n<p>Nie ma r\u00f3\u017cy bez kolc\u00f3w. OpenForgeRL w obecnej formie:<\/p>\n<ul>\n<li>Wymaga ~2x wi\u0119cej GPU-hours na trening ni\u017c vanilla PPO (bo sekwencje inferencji s\u0105 d\u0142u\u017csze)<\/li>\n<li>Dzia\u0142a tylko dla \u015brodowisk z <em>dychotomicznym<\/em> nagradzaniem (task pass\/fail) \u2014 nie nadaje si\u0119 do otwartych zada\u0144 jak &#8220;napisz lepszy esej&#8221;<\/li>\n<li>Jest w fazie rozwoju, nie bibliotek\u0105 pip install \u2014 brak gotowych integracji z bibliotekami agentowymi (LangChain, CrewAI)<\/li>\n<\/ul>\n<h2>Link do pracy<\/h2>\n<p><a href=\"https:\/\/arxiv.org\/abs\/2607.21557v1\">arXiv:2607.21557v1 \u2014 OpenForgeRL: Train Harness-native Agents in Any Environment<\/a><\/p>\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li>arXiv:2607.21557v1 \u2014 Xiao Yu, Baolin Peng, Ruize Xu, Hao Zou (lipiec 2026)<\/li>\n<li>China AI Weekly Brief, okres 19-26 lipca 2026 \u2014 dane z NetEase Tech, arXiv, HuggingFace<\/li>\n<li>SWE-bench Verified, WebArena, ToolBench \u2014 wyniki benchmark\u00f3w cytowane w paperze<\/li>\n<\/ul>\n<hr \/>\n<p><em>Tre\u015b\u0107 zosta\u0142a wygenerowana przy u\u017cyciu sztucznej inteligencji i zweryfikowana przez redaktora.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>OpenForgeRL pozwala trenowa\u0107 agenty AI z RL w dowolnym \u015brodowisku \u2014 bez prompt-engineering, bez r\u0119cznego nadawania trajektorii. To jedna z najwa\u017cniejszych prac naukowych tygodnia z chi\u0144skiej sceny AI dla ka\u017cdego, kto buduje agent\u00f3w. Problem: trenowanie agent\u00f3w wymaga zbyt du\u017co ingerencji w proces Nowoczesne agenty AI \u2014 Claude Code, Codex, OpenClaw, a nawet Hermes Agent \u2014 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-90","post","type-post","status-publish","format-standard","hentry","category-polish"],"_links":{"self":[{"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/posts\/90","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/comments?post=90"}],"version-history":[{"count":2,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/posts\/90\/revisions"}],"predecessor-version":[{"id":93,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/posts\/90\/revisions\/93"}],"wp:attachment":[{"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/media?parent=90"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/categories?post=90"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai.quailoop.com\/index.php\/wp-json\/wp\/v2\/tags?post=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}