>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
TypeScript

ターミナルAIエージェントにコードを無限に最適化させる方法

result

テストの高速化やフロントエンドバンドルの削減を通常どのように行っていますか?設定ファイルを数行変更し、ビルドを実行し、コンソールの秒数を確認する。遅くなった場合はロールバック。5%速くなった場合はコミットして次の大胆なアイデアを試す。このプロセスは何時間も費やすルーティン作業ですが、本質的には仮説テストの機械的なサイクルです。

Andrei Karpathyは最近、autoresearchリポジトリで自律実験の概念をデモしました。開発者のdavebcn87はこのアイデアをさらに発展させ、pi-autoresearchをリリースしました — ターミナルAIエージェントpi向けの拡張機能です。この拡張機能は日常的な最適化をニューラルネットワークに委任します:エージェントはアイデアを立案し、ファイルを変更し、結果を測定し、成功した発見を保存し、回帰をロールバックします。

pi-autoresearch

自律サイクルの仕組み

全体のアイデアはシンプルなルールに基づいています:アイデアを試す、測定する、成功したら保存する、失敗したら破棄する。

エージェントは直接リポジトリ内で動作します。セッションを開始すると、拡張機能はプロジェクトルートに別フォルダ .auto/ を作成します。そこにはすべての作業ファイルを保存します:

  • .auto/prompt.md — 現在のタスク、測定ルール、エージェントがすでに試したリストの описаниеドキュメント。
  • .auto/measure.sh — 数値メトリック値を文字列で返すbashベンチマークスクリプト。
  • .auto/log.jsonl — 各試行のコミットハッシュとステータスを記録した構造化ログ。
  • .auto/checks.sh — テストと型の検証用 дополнительныйスクリプト。エージェントが美しい数値のためにロジックを壊さないようするためのもの。

モデルのコンテキストウィンドウがオーバーフローしたり、エージェントが再起動したりした場合は、単に .auto/prompt.md とログの末尾を再読み込みします。コンテキストが圧縮されても、実験履歴全体が失われることはありません。

インストール後は、単にスキルを実行するだけです:

エージェントは目標、ターゲットファイル、実行コマンドについていくつかの確認質問をするか、プロジェクトコンテキストから自動的に判断します。その後、ベースラインメトリクスを取得し、すぐに無限ループに飛び込みます。

測定におけるランダムノイズとの戦い

ベンチマークはすべて変動の影響を受けます。バックグラウンドのOSプロセス、CPUの発熱、ネットワーク遅延が、実際には存在しない速度向上の錯覚を作り出す可能性があります。

誤った成功をフィルタリングするために、pi-autoresearchは中央絶対偏差(MAD)に基づく信頼度スコアを計算します。3回の実行後、拡張機能は達成された改善をシリーズ全体のノイズレベルと比較し始めます:

  • 値が ≥ 2.0x の場合は緑でハイライト — 獲得した利益がバックグラウンドノイズを明確に上回っています。
  • 範囲 1.0–2.0x は黄色で表示 — 利益はありますが、エラーマージンの境界線上です。
  • 値が < 1.0x の場合は赤で光ります — 結果は完全に統計的エラーの範囲内です。

ツールはエージェントにロールバック決定を強制しません; 疑わしい実行を再確認することを提案するだけです。

バックプレッシャーを 통한壊れ防止

ニューラルネットワークは不正が大好きです。エージェントにテスト実行時間の短縮を依頼すると、テストファイルの半分を削除したり、スタブを挿入したりするだけで済ませてしまう強い誘惑があります。

このような小手先を防止するために、 .auto/checks.sh には必須の正しさチェックが含まれています:

検証スクリプトは各成功した測定後に実行されます。テストが失敗したり型チェックが壊れた場合、実験は即座に失敗としてマークされ(checks_failed)、作業ブランチ内のすべての変更がロールバックされます。チェック自体の実行時間は主要な速度メトリックには加算されません。

混沌を整理してクリーンなブランチにする

数時間にわたるサイクル中、エージェントは dozens のコミットを作成し、 constantly 異なるファイルを変更します。このようなログを直接メインブランチにマージすると、レビュー担当者にとって悪夢になります。

この問題を解決するために、コマンドがあります:

スキルは .auto/log.jsonl を分析し、成功した変更を独立した論理ブロックにグループ化し、あなたの承認用の構造を提案します。確認後、ツールは初期コミットから別々のクリーンなブランチを作成します。各ブランチには利益の説明をコミットメッセージに含めた、厳密に1つの論理的な変更セットのみが含まれるため、個別にレビューしてマージするのが簡単です。

モニタリングとフック

進捗はターミナルで直接、またはブラウザで確認できます:

  • エディタの上のウィジェットは常に結果テーブルを表示します。
  • キーの組み合わせ Ctrl+Shift+F で試行リストを含むフルスクリーンターミナルダッシュボードを開きます。
  • コマンド /autoresearch export でメトリックの動向チャートを含むインタラクティブなWebページを生成します。

基本的なサイクルが足りない場合は、 .auto/hooks/ ディレクトリに実行可能なファイル before.shafter.sh を配置できます。これらはイテレーションの境界でトリガーされます。これらを通じて、デスクトップへのシステム通知の送信、外部ドキュメントでのアイデア検索、トレーニングジャーナルの維持などを設定できます。スクリプトはJSON形式で標準入力からコンテキストを受け取り、そのstdout出力がエージェントへのシステムヒントとして渡されます。

注意点

自律サイクルは、一晩中放置するとAPI残高をすぐに使い果たす可能性があります。 .auto/config.json ファイルで最初からイテレーション制限を設定しておくことをお勧めします:

エージェントは30回の実験を完了した時点で停止します。

このツールは明確に測定可能な数値結果を持つタスクに適しています:webpackビルドサイズの最適化、ユニットテスト実行の高速化、小規模モデルのトレーニングのためのハイパーパラメータ調整、Lighthouseスコアの微調整など。すでにpiコンソールエージェントを使用しているなら、実際の最適化タスクで試す価値は十分あります。

関連プロジェクト