Przedstawiamy Showboata i Rodneya, aby agenci mogli zaprezentować to, co zbudowali

Przedstawiamy Showboata i Rodneya, aby agenci mogli zaprezentować to, co zbudowali


Przedstawiamy Showboata i Rodneya, aby agenci mogli zaprezentować to, co zbudowali

10 lutego 2026 r

Kluczowym wyzwaniem w pracy z agentami zajmującymi się kodowaniem jest to, aby obaj przetestowali to, co zbudowali, i zademonstrowali to oprogramowanie Tobie, swojemu nadzorcy. Wykracza to poza testy automatyczne — potrzebujemy artefaktów, które pokazują ich postęp i pomagają nam dokładnie zobaczyć, co potrafi oprogramowanie stworzone przez agenta. Właśnie wypuściłem dwa nowe narzędzia mające na celu rozwiązanie tego problemu: Showboat i Rodney.

Sprawdzanie, czy kod faktycznie działa

Niedawno pisałem o tym, że zadaniem inżyniera oprogramowania nie jest pisanie kodu, lecz jego działanie dostarczyć kod, który działa. W dużej mierze polega to na udowadnianiu sobie i innym, że kod, za który jesteśmy odpowiedzialni, działa zgodnie z oczekiwaniami.

Staje się to jeszcze ważniejsze i trudniejsze, gdy traktujemy agentów kodujących jako kluczową część naszego procesu tworzenia oprogramowania.

Im więcej kodu tworzymy za pomocą agentów, tym cenniejsze są narzędzia, które zmniejszają ilość czasu potrzebnego na ręczną kontrolę jakości.

Jedną z najciekawszych rzeczy w modelu fabryki oprogramowania StrongDM jest to, w jaki sposób zapewniają, że ich oprogramowanie jest dobrze przetestowane i zapewnia wartość pomimo swojej polityki mówiącej, że „kod nie może być przeglądany przez ludzi”. Część ich rozwiązania obejmuje kosztowne roje agentów kontroli jakości realizujących „scenariusze” w celu wykorzystania swojego oprogramowania. To fascynujące, ale nie chcę wydawać tysięcy dolarów na roboty kontroli jakości, jeśli mogę tego uniknąć!

Potrzebuję narzędzi, które pozwolą agentom jasno zademonstrować mi swoją pracę, minimalizując jednocześnie możliwość oszukiwania w związku z tym, co zrobili.

Showboat: agenci tworzą dokumenty, aby zaprezentować swoją pracę

Łódź pokazowa to narzędzie, które zbudowałem, aby pomóc agentom zademonstrować mi swoją pracę.

Jest to narzędzie CLI (plik binarny Go, opcjonalnie opakowany w Python, aby ułatwić instalację), które pomaga agentowi utworzyć dokument Markdown demonstrujący dokładnie, co potrafi jego nowo opracowany kod.

Nie jest przeznaczony do uruchamiania przez ludzi, ale tak czy inaczej można go uruchomić:

showboat init demo.md 'How to use curl and jq'
showboat note demo.md "Here's how to use curl and jq together."
showboat exec demo.md bash 'curl -s https://api.github.com/repos/simonw/rodney | jq .description'
showboat note demo.md 'And the curl logo, to demonstrate the image command:'
showboat image demo.md 'curl -o curl-logo.png https://curl.se/logo/curl-logo.png && echo curl-logo.png'

Oto jak wygląda wynik, jeśli otworzysz go w VS Code i wyświetlisz podgląd Markdown:

Zrzut ekranu przedstawiający plik Markdown "demo.md" obok siebie z wyrenderowanym podglądem. Źródło Markdown (po lewej) pokazuje: "# Jak używać curl i jq"kursywa, znacznik czasu "2026-02-10T01:12:30Z"proza "Oto jak używać razem curl i jq."blok kodu bash z "curl -s https://api.github.com/repos/simonw/rodney | jq.opis"blok wyjściowy pokazujący „"Narzędzie CLI do interakcji z siecią"', tekst "I logo curl, aby zademonstrować polecenie obrazu:"blok kodu bash {image} z "curl -o curl-logo.png https://curl.se/logo/curl-logo.png && echo curl-logo.png"i odniesienie do obrazu Markdown "2056e48f-2026-02-10". Wyrenderowany podgląd (po prawej) wyświetla sformatowany nagłówek, sygnaturę czasową, prozę, stylizowane bloki kodu i obraz logo zawiniętego w kolorze ciemnoturkusowym "kędzior://" z elementami w stylu obwodów.

Oto plik demo.md w skrócie.

Zatem sekwencja showboat init, showboat note, showboat exec I showboat image Commands tworzy dokument Markdown po jednej sekcji na raz, z wynikami tychże exec polecenia automatycznie dodawane do dokumentu bezpośrednio po uruchomionych poleceniach.

The image polecenie jest trochę specjalne — szuka ścieżki pliku do obrazu w wynikach polecenia, kopiuje ten obraz do bieżącego folderu i odwołuje się do niego w pliku.

To w zasadzie całość! Jest pop polecenie usunięcia ostatnio dodanej sekcji, jeśli coś pójdzie nie tak, a verify polecenie ponownego uruchomienia dokumentu i sprawdzenia, czy nic się nie zmieniło (nie jestem do końca przekonany co do projektu tego dokumentu) i extract polecenie, które odtwarza polecenia CLI użyte do utworzenia dokumentu.

To całkiem proste — tylko 172 linijki Go.

Spakowałem go za pomocą mojego narzędzia „przejdź do koła”, co oznacza, że ​​możesz go uruchomić nawet bez wcześniejszej instalacji, w ten sposób:

To --help polecenie jest naprawdę ważne: ma na celu zapewnienie agentowi kodującemu wszystko, co musi wiedzieć aby móc korzystać z narzędzia. Oto cały tekst pomocy.

Oznacza to, że możesz otworzyć Claude Code i powiedzieć mu:

Run "uvx showboat --help" and then use showboat to create a demo.md document describing the feature you just built

I tyle! The --help tekst działa trochę jak Umiejętność. Twój agent może przeczytać tekst pomocy i wykorzystać każdą funkcję Showboat, aby utworzyć dokument demonstrujący wszystko, czego potrzebujesz.

Oto zabawna sztuczka: jeśli ustawisz Claude’a na tworzenie dokumentu Showboat, możesz go otworzyć w VS Code i oglądać aktualizację okienka podglądu w czasie rzeczywistym, gdy agent przegląda wersję demonstracyjną. To trochę tak, jakby Twój współpracownik opowiadał Ci o swojej najnowszej pracy podczas sesji udostępniania ekranu.

I na koniec kilka przykładów. Oto dokumenty, które Claude stworzył za pomocą Showboat, aby pomóc zademonstrować funkcje, nad którymi pracowałem w innych projektach:

Używam Showboat na tyle często, że przekonałem się o jego użyteczności.

(Widziałem też, jak agenci oszukują! Ponieważ plik demonstracyjny to Markdown, agent czasami edytuje ten plik bezpośrednio, zamiast używać Showboat, co może skutkować wynikami poleceń, które nie odzwierciedlają tego, co faktycznie się wydarzyło. Oto problem z tym związany.)

Rodney: Automatyzacja przeglądarki CLI zaprojektowana do współpracy z Showboat

Wiele projektów, nad którymi pracuję, obejmuje interfejsy internetowe. Agenci często tworzą dla nich zupełnie nowe strony i chcę zobaczyć te reprezentowane w demonstracjach.

Funkcja obrazu Showboat została zaprojektowana, aby umożliwić agentom przechwytywanie zrzutów ekranu w ramach ich demonstracji, pierwotnie przy użyciu mojego narzędzia do skrobania ujęć lub Playwright.

Format Showboat korzysta z narzędzi CLI. Szukałem dobrych opcji zarządzania wieloobrotową sesją przeglądarki z poziomu CLI i nie udało mi się, więc zdecydowałem się spróbować zbudować coś nowego.

Claude Opus 4.6 wskazał mi bibliotekę Rod Go do interakcji z protokołem Chrome DevTools. To fantastyczne — zapewnia kompleksowe omówienie praktycznie wszystkiego, co można zrobić w zautomatyzowanej przeglądarce Chrome, a wszystko to w samodzielnej bibliotece, która kompiluje się do kilku MB.

Jedyne, czego Rodowi brakowało, to CLI.

Pierwszą wersję zbudowałem jako prototyp raportu asynchronicznego, co utwierdziło mnie w przekonaniu, że warto rozkręcić go pod własny projekt.

Nazwałem go Rodney jako ukłon w stronę biblioteki Rod, na której się opiera, oraz jako nawiązanie do Only Fools and Horses – a także dlatego, że nazwa pakietu była dostępna w PyPI.

Możesz uruchomić Rodneya za pomocą uvx rodney lub zainstaluj w ten sposób:

(Lub pobierz plik binarny Go ze strony wydań.)

Oto prosta przykładowa sesja:

rodney start # starts Chrome in the background
rodney open https://datasette.io/
rodney js 'Array.from(document.links).map(el => el.href).slice(0, 5)'
rodney click 'a(href="https://simonwillison.net/for")'
rodney js location.href
rodney js document.title
rodney screenshot datasette-for-page.png
rodney stop

Oto jak to wygląda w terminalu:

;~ % rodney start Chrome uruchomiono (PID 91462) Adres URL debugowania: ws://127.0.0.1:64623/devtools/browser/cac6988e-8153-483b-80b9-1b75c611868d ~ % rodney open https://datasette.io/ Datasette: narzędzie wielofunkcyjne typu open source do eksplorowania i publikowania danych ~ % rodney js 'Array.from(document.links).map(el => el.href).slice(0, 5)’ ( "https://datasette.io/for", "https://docs.datasette.io/en/stable/", "https://datasette.io/tutorials", "https://datasette.io/examples", "https://datasette.io/plugins" ) ~ % rodney kliknij „a(href="/Do")’ Kliknięto ~ % rodney jslocation.href https://datasette.io/for ~ % rodney js document.title Przypadki użycia Datasette ~ % rodney zrzut ekranu datasette-for-page.png datasette-for-page.png ~ % rodney stop Chrome zatrzymany” src=”https://static.simonwillison.net/static/2026/rodney-demo.jpg” style=”max-width: 100%;”/></p>
<p>Podobnie jak w przypadku Showboat, to narzędzie nie jest przeznaczone do użytku przez ludzi! Celem jest umożliwienie działania agentów kodujących <code>rodney --help</code> i zobacz wszystko, co muszą wiedzieć, aby rozpocząć korzystanie z narzędzia. Możesz zobaczyć wyniki pomocy w repozytorium GitHub.</p>
<p>Oto trzy demonstracje Rodneya, które stworzyłem za pomocą Showboat:</p>
<h4 id=Rozwój oparty na testach pomaga, ale nadal potrzebujemy testów ręcznych

Po tym, jak przez całą karierę byłem sceptyczny wobec szkoły tworzenia oprogramowania skupiającej się na pierwszym teście i maksymalnym pokryciu testami (lubię zamiast tego testy obejmujące tworzenie oprogramowania), ostatnio zacząłem skupiać się na procesach opartych na pierwszym testowaniu, aby zmusić agentów do napisania tylko kodu niezbędnego do rozwiązania danego problemu.

Wiele moich sesji agenta kodującego w Pythonie zaczyna się w ten sam sposób:

Run the existing tests with "uv run pytest". Build using red/green TDD.

Poinformowanie agentów, jak przeprowadzać testy, może również służyć jako wskaźnik, że testy w tym projekcie istnieją i mają znaczenie. Agenci będą czytać istniejące testy przed napisaniem własnych, zatem posiadanie czystego zestawu testów z dobrymi wzorcami zwiększa prawdopodobieństwo, że sami napiszą dobre testy.

Wszystkie modele pionierskie rozumieją, że „czerwony/zielony TDD” oznacza, że ​​powinni najpierw napisać test, uruchomić go i obserwować, jak się nie powiedzie, a następnie napisać kod, aby go zaliczyć — jest to wygodny skrót.

Uważam, że znacznie zwiększa to jakość kodu i prawdopodobieństwo, że agent wygeneruje właściwą rzecz przy najmniejszej liczbie podpowiedzi.

Ale każdy, kto pracował z testami, będzie wiedział, że to, że pomyślnie przeszły testy automatyczne, nie oznacza, że ​​oprogramowanie faktycznie działa! Taka jest motywacja stojąca za Showboat i Rodney – nigdy nie ufam żadnej funkcji, dopóki nie zobaczę jej na własne oczy.

Przed zbudowaniem Showboat często dodawałem „ręczny” etap testowania do sesji agenta, na przykład:

Once the tests pass, start a development server and exercise the new feature using curl

Obydwa narzędzia zbudowałem na swoim telefonie

Zarówno Showboat, jak i Rodney zaczynali jako Claude Code w projektach internetowych tworzonych za pośrednictwem aplikacji Claude na iPhone’a. Większość trwających dla nich prac fabularnych przebiegała w ten sam sposób.

Nadal jestem trochę zaskoczony, ile pracy związanej z kodowaniem wykonuję teraz na telefonie, ale szacuję, że większość kodu, który obecnie wysyłam do GitHuba, została napisana dla mnie przez agentów kodujących korzystających z tej aplikacji na iPhone’a.

Początkowo zaprojektowałem te dwa narzędzia do użytku w środowiskach asynchronicznych agentów kodowania, takich jak Claude Code dla Internetu. Jak na razie sprawdza się to naprawdę dobrze.



Source link

Postagens Similares

  • ਮੇਰੀ ਜੇਕੀਲ ਸਾਈਟ ‘ਤੇ ਟਿੱਪਣੀਆਂ ਸ਼ਾਮਲ ਕਰਨਾ

    📅 21 ਨਵੰਬਰ 2025 | ⏱️ ~3 ਮਿੰਟ ਪੜ੍ਹੋ ਮੈਂ ਪਿਛਲੇ ਕੁਝ ਮਹੀਨਿਆਂ ਤੋਂ ਟਿੱਪਣੀਆਂ ਲਈ ਸਮਰਥਨ ਜੋੜਨ ‘ਤੇ ਕੰਮ ਕਰ ਰਿਹਾ ਹਾਂ। ਇੱਕ ਸਥਿਰ ਸਾਈਟ ‘ਤੇ, ਇਹ ਔਖਾ ਹੈ, ਪਰ ਅੰਤ ਵਿੱਚ ਇਹ ਹੋ ਗਿਆ ਹੈ। ਕੁਝ ਮਹੀਨੇ ਪਹਿਲਾਂ ਮੌਰੀਸ ਰੇਂਕ ਅਤੇ ਮੈਂ ਫੈਡੀ (ਮੇਰੇ ਖਿਆਲ ਵਿੱਚ) ‘ਤੇ ਗੱਲਬਾਤ ਕਰ ਰਹੇ ਸੀ ਅਤੇ ਉਸਨੇ…

  • imapautofiler 1.14.0 – वर्ष-दर-वर्ष क्रमबद्ध कार्रवाई

    1.14.0 में नया क्या है? मैट्रिक्स का परीक्षण करने के लिए पायथन 3.12 जोड़ें, वर्ष-दर-वर्ष क्रिया जोड़ें Source link

  • 苦い錠剤のエンジニアリング |ダニエル・ミースラー

    私の AI エンジニアリングの随所で使用している、Bitter-Pilled Engineering (BPE) と呼ばれる新しい概念があります。 このアイデアは、リチャード・サットンのエッセイ「The Bitter Lesson」から来ています。 とりあえず、私のまとめです。 このエッセイでは、AI を制御、修正、強化しようとする人間の試みはすべて、ある種の価値がないと主張しています。なぜなら、より多くのハードウェアやより優れたアルゴリズムなどを通じて AI の知能を高めると、それ 人間のアプローチでできることよりもはるかに知性を向上させます。 私たち人間が AI には決して持たない魔法を持っていると考えるのはとても魅惑的ですが、その魔法は多くの場合単なる傲慢です。 実際にはそれよりも強いです。それだけでなく、 もっと良くならない 私たちが助けようとしても、おそらくそうなるでしょう はるかに悪い。 本質的に、実際には優れているわけではないため、優れていると思われるガイダンスによって AI のネイティブ機能を汚染することは避けるべきです。 エッセイからのいくつかの引用: 「70 年にわたる AI 研究から読み取れる最大の教訓は、コンピューティングを利用する一般的な手法が最終的には最も効果的であり、それを大幅に上回るということです。」 「私たちが望んでいるのは、私たちが発見したものを含む AI エージェントではなく、私たちと同じように発見できる AI エージェントです。」 「この恣意的な複雑さを見つけて捕捉できるメタメソッドのみを組み込む必要があります。」 「発見を組み込むと、発見プロセスがどのように行われるかを理解することが難しくなるだけです。」 私の要点: 論理、知性、効率についての私たちの考え方はおそらく原始的です したがって、AI に物事を「教える」方法にこれらのルールやアイデアをハードコーディングすべきではありません。 AI が賢くなるにつれて、第一原理に基づいて同じことを行うためのより良い方法が考え出されます。 残念ながら、私はその逆をする傾向が非常に強いので、この BPE の概念で自分自身をたたきつけなければなりません。 したがって、AI システムを構築するときの私自身の BPE ルールは次のとおりです。 自分の得意なアイデアや「賢い」アイデアをシステムに組み込んで、足場を過度に設計しないでください。代わりに、構築する足場が、より賢くなる基礎となる AI に対して堅牢で脆弱でないことを確認してください。 Source link

  • Favori Beş: Queer İrlanda Romanı, Bölüm II

    Bölüm I için buraya tıklayın. Gráinne O’Hare’den Susuzluk Tuzağı Juno, Karl Geary Sunburn’den Bacakları Seviyor ve Chloe Michelle Howarth’tan Heap Earth Upon It’e, Lucy Caldwell’den Bugünlerde Caroline O’Donoghue’den Rachel Olayı Bonus: Bunların hepsi yetişkinlere yönelik kurgu, ancak YA’da Adiba Jaigirdar’dan The Dos and Donuts of Love’a göz atın Source link

  • الجانب السلبي من كونها فعالة

    كانت أودري هيبورن أيقونة. صعدت إلى الشهرة في الخمسينيات، وكانت واحدة من أعظم الممثلات في عصرها. في عام 1953، أصبحت هيبورن أول ممثلة تفوز بجائزة الأوسكار، وجائزة جولدن جلوب، وجائزة البافتا عن أداء واحد: دورها الرائد في الكوميديا ​​الرومانسية. العطلة الرومانية. وحتى اليوم، بعد مرور أكثر من نصف قرن، لا تزال واحدة من 15 شخصًا…

  • Post-middelgrote publicatie

    September 2009 Alle soorten uitgevers, van nieuws tot muziek, zijn er niet blij mee dat consumenten niet meer voor inhoud willen betalen. Tenminste, zo zien zij het. In feite betaalden consumenten nooit echt voor inhoud, en uitgevers verkochten deze ook niet echt. Als de inhoud was wat ze verkochten, waarom was de prijs van boeken,…

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *