YOLO モードとは、コーディングエージェントのコマンドがすべてデフォルトで承認され、エージェントが各コマンドの前に立ち止まって確認を求めることのない動作モードである。この名前は、これらのツールがそれぞれ独自のバージョンとして提供している設定に対して、Simon Willison が好んで使うと述べている呼び名である。情報源においてこのモードが重要なのは、1 つのトレードオフの両側に同時に位置している点にある。非常に危険であると説明されると同時に、最も生産的な結果を得るための鍵であるとも説明されている。エージェントは反復によって問題を解決するが、コマンドごとの承認こそがその反復を止めてしまうからである。

用法

このモードは、エージェント的ループの設計 を可能にする条件として論じられている。エージェントは本質的に危険なものとして特徴付けられており、まずい判断を下したり プロンプトインジェクション の被害に遭ったりしうる。そして、コーディングエージェントが持つ最も強力なツールはシェルでコマンドを実行することであるため、道を踏み外したエージェントは、その操作者が自分でコマンドを実行してできることなら何でもできてしまう。承認プロンプトはこれに対するデフォルトの対応だが、それに対する情報源の不満は、面倒だということではなく、エージェントを有用にしている力任せの反復を鈍らせてしまうということである。

このモードで無人で動かすことについて、3 つのリスクが挙げられている。重要なものを削除したり壊したりするシェルコマンド。エージェントから見えるファイルやデータを盗み出す持ち出し攻撃(特に狙われやすいものとして、ソースコードと環境変数内のシークレットが挙げられている)。そして、サービス拒否のためであれ、他の攻撃の発信元を偽装するためであれ、マシンを第三者を攻撃するためのプロキシとして使われることである。

これらに対して、3 つの選択肢が示されている。1 つ目は、エージェントが到達できるファイル、シークレット、ネットワークを制限する安全なサンドボックスである(サンドボックス化 を参照)。情報源は、Docker や Apple のコンテナツールをほとんどの人にとって妥当なリスクだと判断しているが、コンテナエスケープが存在することにも触れている。2 つ目は他人のコンピュータを使うことで、これにより暴走したエージェントの影響範囲が限定される。これは著者自身が好む方法であり、彼はその実例として GitHub Codespaces を挙げ、最悪の場合でも、チェックアウトされたコードの持ち出しか、接続されたリポジトリへの不正なコードのプッシュにとどまるとしている。3 つ目は単にリスクを受け入れることで、情報源はほとんどの人がこれを選んでいると述べている。

関連用語

サンドボックス化, エージェント的ループの設計, パーミッションモード, プロンプトインジェクション, 承認疲れ(Approval Fatigue), ヒューマン・イン・ザ・ループ