00:00:00[音楽]
00:00:02こんにちは、マリオです。
00:00:04アーノルド・シュワルツェネッガーの国から来ました。
00:00:06おそらく まだ気づいていないでしょうが
00:00:09私の英語が とても上手いので。
00:00:12まず初めに言っておきたいのですが
00:00:13今日は一日中 4歳の子供を連れて
00:00:16ロンドン中を 走り回っていました。
00:00:17恐竜を見たり ミイラを見たり ナンドスにも行きました
00:00:24他にも色々行きましたが すでに忘れてしまいました。
00:00:26私は とても疲れています。
00:00:28もし私の言うことが 理解できなくなったら
00:00:31手を挙げて「おじいちゃん 起きて」と言ってください。
00:00:36私がここにいる理由は 実はある人物にあります
00:00:39今日 このコクニービルに来ている人物です。
00:00:40仮にシュテッター・パインバーガーと呼びましょう。
00:00:442025年の4月頃だったと思いますが
00:00:53彼が私と アーミン・ロナッハに言ったんです
00:00:58FlaskやSentryで有名な彼に「おい、コーディングエージェントが」
00:01:02「ついに ちゃんと動くようになったぞ」と。
00:01:04私は「嘘つけよ」という感じでした。
00:01:06すみません、汚い言葉を使いました。
00:01:09全く信じていませんでした。
00:01:10一ヶ月後 私たちはアパートに集まり 24時間
00:01:13徹夜で没頭しました クランカー(機械)や
00:01:19粗悪なコード 粗悪な成果物にまみれて。
00:01:21それ以来 私たちの誰も
00:01:23基本的には もう眠れていません。
00:01:27私たちは色々なものを 構築していました
00:01:32そのほとんどは 実際には使われませんでしたが
00:01:36それが2025年、26年の新しい傾向です。
00:01:37大量のものを構築しますが 実際に使うものは
00:01:39それほど多くありません。
00:01:40私たちは 多くのものを書きました。
00:01:42そして最終的に 私はこう思いました
00:01:46「既存のコーディングエージェントや基盤は 全部嫌いだ」
00:01:50「自分で書くのは どれくらい難しいだろうか?」
00:01:53ピーターは「ただ 自分のやりたいことをやりたいんだ」と。
00:01:56「誰も それについては耳にしないだろうし」
00:01:58「それは パーソナルアシスタントになるだろう」
00:02:01「ずっと 欲しかったものだから」と言いました。
00:02:03彼の物語がどうなったかは 皆さんご存知でしょう。
00:02:05今日は 私のそれほど印象的ではない話をします。
00:02:08ですが いくつかの学びを伝えられればと思います
00:02:11この業界で 私が収集することができた
00:02:16ここ数ヶ月間の学びです。
00:02:17さて、Piについて。
00:02:19始まりは Cloud Codeでした。
00:02:21実際には ChatGPTからのコピペでした。
00:02:252023年の始めは みんなそうしていました。
00:02:27それから——最初のGitHub Copilotを覚えている人は?
00:02:32ええ、実際 エンジニアの方はどれくらいいますか?
00:02:35CursorやCloud Codeなどの
00:02:37コーディングエージェントを使っている人は?
00:02:39なるほど。
00:02:40人気調査です Cloud Codeは?
00:02:43Codex CLIは?
00:02:45Cursorは?
00:02:48Open——
00:02:48[聞き取り不能]
00:02:49はい。
00:02:50Open code?
00:02:50Anti-gravity.
00:02:51おや、それほど多くないですね。
00:02:52これを使っている人は?
00:02:55いいですね、気に入りました。
00:02:56後で一緒にビールを飲みましょう。
00:02:58とにかく これが2025年以前に
00:03:03起きていたことです。
00:03:04ChatGPTからのコピペから始まりました。
00:03:06ほとんどが壊れていました。
00:03:07主に単一の関数や 書きたくないコードでした。
00:03:10それからVS Codeの中に GitHub Copilotが登場し
00:03:13タブを連打するだけで 幸せになれるようになりました。
00:03:15たまに動きましたが 大抵はダメでした。
00:03:17時には GPLコードをそのまま引用したりもしました
00:03:22ジョン・カーマックの 逆平方根のコードのような
00:03:25そんな話が たくさんありました。
00:03:29それから Aiderがありました。
00:03:30Aiderを覚えている人は?
00:03:31はい。
00:03:32古参の方々ですね。
00:03:33こんにちは。
00:03:33ええ。
00:03:37白髪がありますね。
00:03:37明らかにAiderをご存知でしょう。
00:03:41AutoGPTもありました。
00:03:43おそらく あまりいないでしょうが。
00:03:44ええ、OK。
00:03:45彼は何でも知っていますね。
00:03:48そして最終的に Cloud Codeが登場しました。
00:03:51彼らがリリースしたのは11月だったと思います
00:03:522024年のベータ版として。
00:03:55しかし 実際に使われ始めたのは——何と言いました?
00:03:592月だけだ。
00:04:01ええ、2025年の2月か3月頃ですね。
00:04:03私は「これだ、最高だ」と思いました。
00:04:05素晴らしいです。
00:04:06Cloudチームも 素晴らしい。
00:04:07彼らはSNSにもいますし
00:04:08皆とても善良で 才能のある人たちです。
00:04:13彼らが このジャンルを創り出したと言えます。
00:04:15AiderやAutoGPTのような先駆者はありましたが
00:04:18これほどのものはありませんでした。
00:04:20これは基本的には エージェント型検索というものでした。
00:04:22Cursorのようにコードベースに入り込み
00:04:25インデックスを作成し ASTを構築して——
00:04:29それでもあまり うまくいかないようなものとは違い
00:04:31彼らは単にこう言ったんです。
00:04:33「自分たちのモデルを 強化学習させた」と
00:04:35ファイルツールや Bashツールを使って
00:04:37コードベースを臨機応変に探索し 必要な箇所を見つけ
00:04:41コードを理解し 修正できるようにしたのです。
00:04:44これが非常にうまく機能したので
00:04:46私たちは 眠るのをやめました
00:04:48手書きの時よりも 遥かに多くのコードを生成できたからです。
00:04:52当時はシンプルで 予測可能であり
00:04:54私のワークフローに 完璧にフィットしていました。
00:04:57良かったです。
00:04:58しかし その後 彼らは多くの人が陥る
00:05:05罠に嵌まってしまいました。
00:05:06AI(クランカー)は 大量のコードを書けます。
00:05:08なら 想像しうるすべての機能を
00:05:11書かせればいいじゃないか、となりますよね?
00:05:11素晴らしいことだと思いませんか?
00:05:12この機能も あの機能も追加しよう
00:05:14どんどん追加していこう、と。
00:05:15そして最終的に ホーマー・シンプソンの——
00:05:18何て呼ぶのか分かりませんが。
00:05:20私はそれを「宇宙船」と呼んでいます。
00:05:21Cloud Codeは今や 宇宙船になってしまいました。
00:05:23あまりに多機能で 実際に使っているのは
00:05:26提供されている機能の 5%程度でしょう。
00:05:28全体でも10%くらいしか 知られていません。
00:05:30残りの90%は
00:05:33AIやエージェントにおける「暗黒物質」のようなものです。
00:05:36それが実際 何をしているのか誰も知りません。
00:05:37私は個人的に これはあまり有用ではないと感じています
00:05:40なぜなら エージェントが何をしているかを
00:05:43把握しておく必要があると 考えているからです。
00:05:45この人は ある程度反対するかもしれませんが。
00:05:49私たちは今 TESOLにいますが 彼らもまた
00:05:51コンテキスト管理や コンテキストエンジニアリングを
00:05:54好んでいます。
00:05:55結局 Cloud Codeは良いツールではないと気づきました
00:05:58観測可能性や
00:06:01コンテキスト管理という点において。
00:06:04また こんなこともありました。
00:06:06Cloud Codeの 膨大な量のフリッカー(ちらつき)
00:06:09説明のつかない ちらつきが好きな人はいますか?
00:06:10まあ 私はなぜそれが起きるか説明できますが
00:06:13彼らは まだ修正していません。
00:06:15こちらはタリクです。
00:06:16彼は本当に素晴らしい。
00:06:16大好きです。
00:06:17主にTwitterで活動しているDevRel担当で 最高な奴です。
00:06:21でも たまに疑問に思うようなことも言います
00:06:24「私たちのTUIは 今やゲームエンジンだ」なんて。
00:06:27ご存知の通り 私はゲーム開発出身です。
00:06:30そこからキャリアを始めました。
00:06:31そんな私が こんなことを読むと
00:06:32少し心が痛みます
00:06:34だって それは単なるターミナルUIですよ。
00:06:37ゲームエンジンではありません。
00:06:38信じてください。
00:06:39ゲームエンジンだと思ってしまう唯一の理由は
00:06:41ターミナルUIにReactを使っていて
00:06:44UIグラフ全体の再レイアウトに
00:06:4512ミリ秒も かかっているからです。
00:06:49そんなことは しないでください。
00:06:51ゲームエンジンじゃありませんからね。
00:06:54Ghostyを書いている ミッチェルも
00:06:56「おい、それは心外だ」と言っていました。
00:06:59「Ghostyや他のターミナルのせいにしないでくれ」
00:07:02「君のコードがゴミなんだ」と。
00:07:04ターミナルは 秒間数百フレームで
00:07:051フレーム1ミリ秒以下で 描画できるんです。
00:07:09だから ターミナルのせいにしないで、と。
00:07:12その後 ついにちらつきは修正されました。
00:07:15しかし 別の問題が起きました。
00:07:16彼らは完全に「バイブコーディング(感覚的な開発)」に 屈したんです。
00:07:20Cloud Codeを使えば 毎日それを実感できます。
00:07:23繰り返しますが 彼らの努力や
00:07:27成果を否定するつもりはありません。
00:07:28Cloud Codeは今でも 正当な理由でカテゴリーリーダーです。
00:07:30彼らがこれを生み出し 素晴らしい仕事をしています。
00:07:32私は単に 予測可能でシンプルなツールを好む
00:07:34古い人間だというだけです。
00:07:37これは私のワークフローやニーズには 合わなくなりました。
00:07:41ええ。
00:07:42また 彼らはバックグラウンドで色々なことをし
00:07:44コンテキストを操作しています。
00:07:46私は2025年の夏に いくつかのツールを作りました
00:07:50Cloud Codeから バックエンドへ送られる
00:07:52リクエストを傍受して
00:07:55裏でどんな追加テキストが
00:07:58コンテキストに注入されているかを 調べるためのツールです。
00:08:00それらはすべて 非常に有害であり
00:08:01常に変化していました。
00:08:04毎日か1日おきに 新しいリリースがあり
00:08:062日おきに 新しいリリースがあり
00:08:08どの時点で何を挿入するかが変更され 既存のワークフローが
00:08:11めちゃくちゃにされてしまうのです
00:08:13およそ 安定したツールではありませんでした
00:08:14今では彼らの立場も理解できます
00:08:16実験が必要なのです
00:08:17彼らには膨大なユーザーベースがありますし
00:08:18それほどの規模で
00:08:19実験を行うのは非常に困難です
00:08:21しかし 彼らは気に留めませんでした
00:08:23その結果 私たちが苦労することになったのです
00:08:25新しいツールを使い
00:08:27予測可能なワークフローを作ろうとしても
00:08:31ベンダーが内部で ほんの些細な変更を加えるだけで
00:08:35既存のワークフローにおいて
00:08:36LLMが暴走してしまいます
00:08:38これでは持続不可能です
00:08:39私にはコントロールが必要なのです
00:08:40安定したものを提供してくれるとは 期待できません
00:08:46結果として UIデザインの都合上
00:08:52可視性を制限せざるを得ないのでしょう
00:08:54個人的には あまり好きではありませんが
00:08:56それは単なる好みの問題です
00:08:57ほとんどの人は
00:08:58Cloud Codeが提示する
00:09:00情報量で満足するのだと思います
00:09:03当然ながら モデルの選択肢はゼロです
00:09:06いわば Anthropic独自のツールですから
00:09:09欠点というわけではありません Claudeモデルは――
00:09:12私は気に入っています
00:09:13非常に優れていますから
00:09:15拡張性は ほぼ皆無と言っていいでしょう
00:09:17フックシステムなどがあるのに おかしいと思うかもしれませんが
00:09:19実際には
00:09:21Piで可能なことと比較すると
00:09:25それほど深く統合されていません
00:09:28フックイベントが開始されるたびに
00:09:32プロセスを実行する仕組みなのですが
00:09:36何度も再起動するのは 非常にコストがかかります
00:09:40結局 私はCloud Codeに愛想を尽かしました
00:09:42ひどいツールだったからではありません
00:09:44ただ 私には合わなくなっただけです
00:09:47その間に 多くの人には合うツールになりました
00:09:50彼らは正しいことをしていますが 私向けではないのです
00:09:54私が古い人間だからでしょう
00:09:56そこで他の選択肢を探し始めました
00:09:59Codex CLIもありましたが 全く好きになれませんでした
00:10:01当初はUIもモデルも気に入りませんでしたが
00:10:05少なくともモデルに関しては 状況が変わりました
00:10:08今のCodexは 本当に素晴らしいです
00:10:10次にAMPがあります
00:10:12開発チームは 以前Sourcegraphにいた人々です
00:10:15Sourcegraphからスピンオフしたチームで
00:10:20非常に優秀なエンジニアたちです
00:10:21彼らは 機能を増やすのではなく
00:10:25削ぎ落とすことで 商用コーディング基盤を構築しました
00:10:28彼らの選択の多くは 私にとって非常に合理的です
00:10:33商用ツールを探しているなら
00:10:36AMPをぜひお勧めします 本当に良いツールです
00:10:39Factory Droidも似たような感じで 非常に良いですが
00:10:44AMPほど実験的ではありません
00:10:47そして 多くの人が利用している
00:10:50オープンソースのOpenCodeがあります
00:10:53私はオープンソースに長く携わってきました
00:10:55かれこれ17年になります
00:11:00大小さまざまなプロジェクトを運営してきました
00:11:04それは私にとって かけがえのないものです
00:11:05親しみを感じたので
00:11:08OpenCodeを試してみようと思いました
00:11:12AMPと並んで この分野で最も地に足の着いた
00:11:15実利的なチームの一つです
00:11:16使わないような機能で
00:11:18過剰な期待を煽ることもありません
00:11:20非常に安定した
00:11:23メインルートの維持に努めています
00:11:26また コーディングエージェントが
00:11:27私たちの専門職にとって何を意味するかについても
00:11:29深い考察があり 共感できました
00:11:32ただOpenCodeの問題は コンテキスト管理が
00:11:37あまり得意ではない点です
00:11:38例えば ターンのたびに sessionCompaction.prune を呼び出し
00:11:44次のような処理を行います
00:11:46直近の4万トークン以前の結果を すべて削除するのです
00:11:52プロンプトキャッシングをご存知の方はいますか?
00:11:56これがプロンプトキャッシュに どう影響するでしょうか?
00:11:58OpenCodeとAnthropicの間には 興味深い経緯がありました
00:12:05最終的にAnthropicは ――私の意見では当然ですが――
00:12:11「それは認められない」と言ったのです
00:12:14公に発表されたわけではありませんが
00:12:17Tarekがここで説明しています
00:12:19ジムに来てマナーを守らず インフラを悪用すれば
00:12:22出入り禁止になるのは当然です
00:12:25私はそう考えています
00:12:27証拠があるわけではありませんが
00:12:28それこそが
00:12:30AnthropicとOpenCodeの間の確執の理由だと思います
00:12:33私は全面的に同意しますし
00:12:36Anthropicの方が明らかに正しいと思います
00:12:39インフラを混乱させてはいけません
00:12:42他にも OpenCodeには
00:12:44LSP(Language Server Protocol)のサポートが
00:12:46標準で備わっています
00:12:48コンテキストエンジニアリングの話に戻りましょう
00:12:51エージェントに
00:12:53複数のファイルを修正するよう指示したとします
00:12:55実際にはどうなるでしょうか?
00:12:57複数のファイルに対して 順次
00:13:02一連の編集が行われます
00:13:03例えば10箇所の編集があるとして 最初の編集直後に
00:13:09コードがコンパイル通る確率は どれくらいでしょうか?
00:13:12コードを一行ずつ修正する場合
00:13:15再び安定して
00:13:17正常にコンパイルできるようになるまで どのくらいかかりますか?
00:13:19すぐには無理です
00:13:20最初の編集後も おそらく2回目の後も
00:13:22コンパイルは通りません
00:13:24そこで「LSPサーバーさん
00:13:28このファイルの1行を編集したけど
00:13:30壊れてる?」と聞けば
00:13:31LSPサーバーは「完全に壊れてる」と答えるでしょう
00:13:34この機能は そのエラーを
00:13:36ツール実行直後に
00:13:39モデルへのフィードバックとして注入します
00:13:43「今やったことは間違いだ」と伝えるわけです
00:13:45モデルは「ふざけるな」と思うでしょう
00:13:47「まだ編集が終わっていないのに
00:13:49なぜそんなことを言うんだ?」と
00:13:50当然 間違っているわけではありません
00:13:51しかし これを繰り返すと モデルは投げ出してしまい
00:13:54非常に悪い結果を招きます
00:13:58だから私はLSPが好きではありません
00:13:59これを有効にするのは 最悪のアイデアだと思います
00:14:02自然な同期ポイント ――
00:14:03リンターや型チェックを
00:14:06実行すべきタイミングがあります
00:14:07それは エージェントが完了したと判断した時だけです
00:14:10これは最近変更されました
00:14:14OpenCodeの1回のセッションで
00:14:20すべてのメッセージが
00:14:22個別のJSONファイルとしてディスクに保存されます
00:14:26これは アーキテクチャ全体に
00:14:29十分な検討がなされていない証拠だと感じました
00:14:31そこに不信感を抱くと
00:14:33もうそのツールを使いたいとは思いません
00:14:35繰り返しますが チーム自体は非常に優秀です
00:14:37驚くべき速さで開発を繰り返し
00:14:39多くの人にとって非常に有用なものを
00:14:42作り上げました それは確かです
00:14:43ただ 私は同意できない決断があったため
00:14:46自分で作ることにしたのです
00:14:50また このようなこともありました
00:14:51OpenCodeはデフォルトでサーバーが付属しています
00:14:54コアアーキテクチャがサーバーベースで
00:14:56そこにクライアントが接続する形です
00:14:57TUI(ターミナルUI)はそのクライアントの一つです
00:15:00デスクトップインターフェースもありますが
00:15:01どうでしょうか
00:15:03結局 リモートコード実行が可能な
00:15:05セキュリティ脆弱性が デフォルトで組み込まれていました
00:15:09サーバーインフラやアーキテクチャを
00:15:12誇りに思っているのであれば
00:15:15成熟したエンジニアとして
00:15:18セキュリティについても考慮しているはずです
00:15:20しかし 明らかにそうではありませんでした
00:15:21しかも 長期間放置されていたのです
00:15:23誰かを責めているわけではありません
00:15:25かつてないほどの
00:15:27猛烈なスピードで動いている業界では
00:15:31起こり得ることです
00:15:33ただ そんなツールは使いたくないというだけです
00:15:36これが 既存のコーディングツールに対する
00:15:42私の観察結果でした
00:15:42AMPやDroidなら 使えたかもしれません
00:15:45ですが やはりコントロールが効きません
00:15:47AMPの場合 使用するモデルさえ彼らが決めます
00:15:50特定のタスクには特定のモデル一択です
00:15:53それは私のスタイルではありません
00:15:55Droidの方は 少し自由度が高いと思いますが
00:15:58私が試した時点では
00:16:00どうも――
00:16:02Cloud Codeに対する大きな優位性を感じませんでした
00:16:07その後 全く別の理由でベンチマークを調べ
00:16:10Terminal Benchを見つけました
00:16:12Terminal Benchを知っている人はいますか?
00:16:15これは基本的に コーディングやエージェントの
00:16:20評価用基盤で コンピューター操作やプログラミングに
00:16:24関連した――
00:16:24すみません 4歳児の相手で疲れていて
00:16:31コンピューター操作やコーディング関連のタスクが
00:16:35多数含まれており エージェント内のLLMが
00:16:39それらを完遂する必要があります
00:16:40全部で82個ほどあるでしょうか
00:16:43内容は多岐にわたります
00:16:44ウィンドウ設定の修正から モンテカルロ・シミュレーションの
00:16:48コーディングまであります
00:16:51リーダーボードも公開されており
00:16:52エージェント基盤とモデルの
00:16:54組み合わせを確認できます
00:16:57そこには Terminusという独自のエージェントがあります
00:17:03ベンチマークで最高レベルのパフォーマンスを誇る
00:17:06ベンチマークにおいて 最高のパフォーマンスを誇る
00:17:09ハーネスの一つです 後で詳しく見ていきましょう
00:17:11具体的に 何をするものなのでしょうか?
00:17:12モデルに与えられるのは TMUXセッションのみです
00:17:17モデルができるのは そこにキーストロークを送り
00:17:19出力されるVTコードシーケンスを 読み取ることだけです
00:17:23これは モデルがコンピュータに対して持つ
00:17:27最小限かつ最小の インターフェースと言えます
00:17:31そしてこれが リーダーボード全体でトップクラスの性能を出しています
00:17:36この事実は 既存のコーディングエージェントについて何を物語るでしょうか?
00:17:39モデルが実際に機能するために これほど多くの機能が必要なのでしょうか?
00:17:43個人的には これは単にモデルが
00:17:48優れているというだけの話ではありません
00:17:49ユーザーである人間が エージェントやモデルと
00:17:51対話する方法を持つことでもあります
00:17:54Terminusは 明らかに私が求めるユーザー体験や
00:17:58開発者体験ではありませんが
00:18:00既存のコーディングハーネスが持つ 多くの機能は
00:18:03エージェントから良い結果を得るために
00:18:08必ずしも必要ではないことを 示しています
00:18:10ファイルツールも サブエージェントも Web検索も不要です
00:18:13これらの知見に基づいた 2つの持論があります
00:18:16現在は「試行錯誤」の段階にあり
00:18:18完璧なコーディングエージェントや ハーネスが
00:18:21どうあるべきか 誰にも分かっていません
00:18:23ミニマリズムから エージェントの大群による艦隊
00:18:27制御なしの完全な自律性など あらゆる方向性が
00:18:30試されている最中です
00:18:31まだ結論は出ていないと思います
00:18:33理想的な形が何であり 何が業界標準になるのかという
00:18:35問いへの答えは まだ出ていません
00:18:382つ目は コーディングエージェントを
00:18:40より良く試行錯誤する方法が 必要だということです
00:18:42つまり エージェント自身が自己改造でき
00:18:47柔軟に変化できる 必要があります
00:18:48そうすることで アイデアを素早く実験し
00:18:50それが業界標準や 私たちが適応すべき
00:18:53新しいワークフローになり得るか 確認できます
00:18:58基本的な考え方は 至ってシンプルで
00:18:59決して難しいことではありません
00:19:01すべてを削ぎ落とし 最小限で拡張可能なコアを作ることです
00:19:05最低限の快適さは備えていますが
00:19:06何もない白紙の状態ではありません
00:19:09それが「Py」です
00:19:10モットーは「自分をエージェントに合わせるのではなく
00:19:13エージェントを自分のニーズに合わせる」です
00:19:164つのパッケージで構成されています まずAIパッケージは
00:19:21複数のプロバイダーを 抽象化したシンプルなもので
00:19:24それぞれ異なる通信プロトコルを 吸収しています
00:19:27そのため 全プロバイダーとの通信が容易で
00:19:29同一セッション内での 切り替えも簡単です
00:19:34次にエージェント・コアは ツール呼び出しや
00:19:36検証などを備えた 汎用的なエージェントループです
00:19:39ストリーミング機能や 約600行のコードで書かれた
00:19:42非常に快適に動作する ターミナルUIも含まれます
00:19:47クランカー(AI)が書いたものではないので 驚くほどよく動きます
00:19:51そしてコーディングエージェント本体は ヘッドモードで使える
00:19:54SDKとしても フル機能のTUIエージェントとしても
00:19:57利用可能です
00:20:02これがシステムプロンプトの 全体像です
00:20:05他のエージェントのプロンプトと比べても
00:20:08これ以上のものはありません
00:20:10これはトークン数です
00:20:13最新モデルは RL(強化学習)によって
00:20:16エージェントとは何かを すでに熟知しています
00:20:18それなのに なぜ彼らにエージェントであることや
00:20:21コーディングの手順を 説明し続ける必要があるのでしょうか?
00:20:27デフォルトで「YOLOモード」なのは なぜか?
00:20:30現在の多くのハーネスには 2つのモードがあります
00:20:33エージェントが自由に振る舞うか
00:20:36「本当にこのファイルを 削除しますか?」
00:20:40「ディレクトリ内のファイルを 表示しますか?」などと
00:20:41いちいち確認を求めてくるかです
00:20:44その中間的なものも 色々とありますが
00:20:47結局のところ ユーザーがエージェントのアクションを
00:20:49承認することで 安全を確保しようとしています
00:20:53しかしこれは間違いで 確認疲れを招くだけです
00:20:55結局は 機能を完全にオフにする(YOLO)か
00:20:58内容を読まずに エンターキーを連打するようになります
00:21:01これでは解決になりません
00:21:02データの流出や プロンプトインジェクションを
00:21:04懸念する場合 コンテナ化も
00:21:06完全な解決策ではありませんが
00:21:07承認ダイアログのような ガードレールよりも
00:21:10はるかに優れた 基盤になると考えています
00:21:17ツールは 読み取り、書き込み、編集、Bashの
00:21:19わずか4つです Bashがあれば十分です
00:21:22何が含まれていないのか?
00:21:23MCPも サブエージェントも 計画機能も 背景も
00:21:25組み込みのToDoリストも ありません
00:21:26代わりにできることを 提案します
00:21:28MCPの代わりに CLIツールとスキルを使うか
00:21:30後ほど紹介する 拡張機能を作ってください
00:21:34サブエージェントがない理由は
00:21:35観測が困難だからです
00:21:36代わりに tmuxを使って エージェントを再起動してください
00:21:41そうすれば 入出力を完全にコントロールでき
00:21:44サブエージェントで起きている 全てを把握できます
00:21:48興味深いことに code spawnの
00:21:50チームモードも 現在はこれとほぼ同じことをしています
00:21:55計画モードも不要です plan.mdを書きましょう
00:21:57ターミナルの視野に収まらない
00:21:59使いにくいUIの代わりに 永続的な成果物が得られ
00:22:04複数のセッションで 再利用することも可能です
00:22:07バックグラウンドBashも不要です tmuxで代用できます
00:22:09同じことです
00:22:11組み込みToDoも todo.mdを書けばいいだけです
00:22:14あるいは これら全てを自分の好きなように自作してください
00:22:17Pyは 高い拡張性によってそれを可能にします
00:22:21カスタムツールの 拡張も可能です
00:22:22定義したツールを LLMに与えることができます
00:22:26今のところ 他のコーディングハーネスで
00:22:28これができるものはありません(コードをフォークしない限り)
00:22:31Pyなら その必要はありません
00:22:32シンプルなTypeScriptファイルを 書くだけで
00:22:34自動的に読み込まれます
00:22:37カスタムUIも作成できます
00:22:39スキル、プロンプトテンプレート、テーマも同様です
00:22:43これらをまとめて npmやGitにアップすれば
00:22:46コマンド一つでインストールでき 非常に便利です
00:22:49すべてホットリロードに対応しています
00:22:51私は プロジェクトやタスクに特化した
00:22:53独自の拡張機能を Pyの中で開発しています
00:22:59エージェントが拡張機能を修正したら リロードするだけで
00:23:05実行中のコードに 即座に反映されます
00:23:10これは本当に素晴らしい体験です
00:23:11実用的には カスタムコンパクションが可能です
00:23:14既存のコンパクションの実装は 良くないので
00:23:16もっと実験されるべき 分野だと思います
00:23:21パーミッション・ゲートも 50行ほどのコードで実装でき
00:23:23他のハーネスができることは
00:23:24ほぼ網羅できます
00:23:27セルフホストモデルのプロキシも 自由に登録してください
00:23:32私がやる必要はありません
00:23:33あなたや クランカー(AI)が自分でできるはずです
00:23:37組み込みツールの 上書きも可能です
00:23:38読み取り、書き込み、Bashの挙動を 自由に変更できます
00:23:42私は リモートマシン上のSSH経由で動作する
00:23:43ツール一式を 自作しました
00:23:47実装には 5分ほどしかかかりませんでしたが 完璧に動きます
00:23:51TUIにフルアクセスできるので
00:23:54完全にカスタムされたUIを 構築することも可能です
00:23:58Cloud Codeが発表された際も 誰かがPyを使って
00:24:02より多機能なものを わずか5分で再現しました
00:24:05PyMessengerは 詳細までは把握していませんが
00:24:07複数のPyエージェントが 会話するチャットルームのようなもので
00:24:10カスタムUIも備えています
00:24:13非常にうまく機能しています
00:24:18PyMessという 拡張機能もあります
00:24:23エージェントの実行中に ゲームで遊ぶこともできます
00:24:25また PyAnnotateを使えば
00:24:28作業中のサイトをフロントエンドで開き 直接アノテーションして
00:24:31エージェントにフィードバックを 送ることができます
00:24:35コンテキストに戻して 内容を修正させることも可能です
00:24:39私が愛用しているのは File Switch Itです
00:24:42IDEやエディタに 切り替えることなく
00:24:43修正されたファイルを 素早く確認したいときに便利です
00:24:46これらはすべて 拡張機能によるものです
00:24:48組み込み機能ではなく 多くの人が数分から
00:24:50数時間で 自分の思い通りのものを
00:24:52作り上げています
00:24:56PyWavicについても 同様に多機能です
00:25:00Pyには ツリー構造も備わっています
00:25:01詳細は py.devを 参照してください
00:25:03セッションは 直列なチャットリストではなく ツリー構造です
00:25:04これを利用して サブエージェントのような振る舞いも可能です
00:25:07ディレクトリ内のファイルを 読み取って要約させ
00:25:11会話のルートに戻り その要約を携えて
00:25:14実際の作業に取り掛かるといった 具合です
00:25:19裏で勝手に注入されるものは 何もありません
00:25:22エージェント、スキル、完全なコスト追跡機能も備えています
00:25:24多くのハーネスには この機能がありません
00:25:26Open Codeも 実装が不十分です
00:25:29HTMLエクスポート、JSON形式、ヘッドレスストリームなどなど
00:25:33実際に機能するのか? それは terminal benchを見れば分かります
00:25:35ズームしてみます
00:25:36できませんね
00:25:37素晴らしい
00:25:38Claude Opus 4.5を使用したTerminus 2の すぐ後ろにPyがいます
00:25:45これは 昨年10月の Pyにコンパクションもなかった頃の記録です
00:25:49デモは省略して クランカー(AI)との戦いについて話しましょう
00:25:51彼らは オープンソースを破壊しています
00:25:54もし特定の有名プロジェクトに 関わっているなら
00:25:56OpenClaw経由で 何百人もの人々が
00:26:02リポジトリに押し寄せ クランカーのゴミを散らかしていくでしょう
00:26:06そこで 私はいくつかの対策を講じました
00:26:09「OSS休暇」というものを 考案しました
00:26:11数週間の間 IssueやPRをすべて閉じ
00:26:14自分一人で 作業に没頭する期間です
00:26:16重要なことは 後から報告されるか
00:26:20Discordで共有されるので 問題ありません
00:26:21また 独自のアクセススキームも 導入しました
00:26:26リポジトリ内に Markdownファイルを置いています
00:26:28そこにアカウント名が 記載されていない人からの
00:26:32PRは 自動的にクローズされます
00:26:34気にしません
00:26:35まずは Issueを通じて 人間の声で自己紹介をしてください
00:26:39あまり長すぎない Issueを書いてください
00:26:42それ以上長いものは おそらくクランカー(AI)によるものです
00:26:45人間だと確認できれば 喜んで承認します
00:26:47リストに名前が載れば PRを送れるようになります
00:26:51私が求めているのは 人間による確認だけです
00:26:53GhostyのMitchellは これに着目して
00:26:57自分のリポジトリに 簡単に適用できる
00:27:00「Vouch」というプロジェクトを 立ち上げました
00:27:02以上が「Py」です
00:27:03ぜひ試してみてください
00:27:05ご清聴ありがとうございました
00:27:06(拍手)
00:27:07(音楽)