13 ポイント 投稿者 GN⁺ 2024-04-11 | 1件のコメント | WhatsAppで共有
  • GPT-3.5/GPT-4とペアプログラミングしながら、ローカルgitリポジトリに保存されたコードを編集できるコマンドラインツール
  • aiderはローカルのソースファイルのコードを直接編集し、適切なコミットメッセージとともに変更をgitにコミットする
  • 新しいプロジェクトを始めることも、既存のgitリポジトリで作業することも可能
  • aiderのユニークな点は、既存の大規模なコードベースに対する変更を依頼できること

主な機能

  • 編集するソースファイル群を指定してコマンドラインでaiderを起動し、コードについてGPTとチャットできる。aiderを通じてGPTはそのファイル内容を確認して編集する
  • GPTはpython、javascript、typescript、php、html、cssなど、ほとんどの一般的な言語でコードを書いたり編集したりできる
  • コードへの新機能追加、変更、改善、またはバグ修正を依頼できる。新しいテストケース、更新されたドキュメント、あるいはコードのリファクタリングも依頼可能
  • aiderはGPTが提案した修正をソースファイルに直接適用する
  • aiderは説明付きのコミットメッセージとともに、各変更セットをローカルgitリポジトリに自動コミットする。こうした頻繁な自動コミットは安全網として機能する。変更を簡単に取り消したり、標準的なgitワークフローでより長い変更の流れを管理したりできる
  • 複数のソースファイルを同時にaiderで扱えるため、GPTは単一の変更セット/コミット内で複数ファイルにまたがるコード変更を調整できる
  • aiderはGPT-4にリポジトリ全体のマップを提供でき、大規模コードベースの理解と修正に役立つ
  • aiderとチャットしている間も、エディタを使ってファイルを手動編集できる。aiderはこうした帯域外編集を検出し、GPTが常にファイルの最新バージョンを把握できるようにする。これにより、aiderのチャットとエディタを行き来しながらGPTと協調してコーディングできる
  • openai経由でgpt-4を直接使う場合は、画像ファイルをコンテキストに追加でき、その場合は自動的にgpt-4-vision-previewモデルへ切り替わる

チャット内コマンド

  • aiderはチャット内で/から始まるコマンドをサポートする。特に便利なチャット内コマンドの一部:
    • /add : 一致するファイルをチャットセッションに追加
    • /drop : 一致するファイルをチャットセッションから削除
    • /undo: aiderが行った最後のgitコミットを取り消す
    • /diff: 直前のaiderコミットのdiffを表示
    • /run : シェルコマンドを実行し、必要に応じてその出力をチャットに追加
    • /voice: 音声でコード変更を依頼するためにaiderへ話しかける
    • /help: すべてのコマンドのヘルプを表示

ヒント

  • 変更したい内容に対して、どのファイルを編集すべきかを考え、チャットに追加すること。aiderにもGPTが編集対象ファイルをある程度見極める力はあるが、最も効果的なのは必要なファイルを明示的に自分でチャットへ追加すること
  • 大規模な変更は、アプローチと全体設計を計画する慎重なステップの連続として進めるのが望ましい。GPTをジュニア開発者と一緒に作業する感覚で変更を導くこと。まず準備のためのリファクタリングを依頼し、その後に本来の変更を依頼する。コード品質や構造の改善を求めるための時間を取るべき
  • GPTが有用な応答を返さない場合は、Control-Cで安全に中断できる。部分的な応答は会話に残るため、追加情報や方向性を与えてGPTに返信するときの参考にできる
  • /runコマンドでテストやリンターなどを実行し、その出力をGPTに見せて問題解決に役立てられる
  • Meta-ENTER(環境によってはEsc+ENTER)を使うと複数行のチャットメッセージを入力できる。あるいは、1行目に{だけを入力して複数行メッセージを開始し、最後の行に}だけを入力してメッセージを終了する
  • コードでエラーが発生したら、/runを使うかチャットに貼り付けてエラー出力をGPTと共有すること。GPTにバグを見つけて修正させる
  • GPTは多くの標準ツールやライブラリを理解しているが、APIや関数引数の詳細について一部誤解することがある。ドキュメントの抜粋をチャットに貼り付けることでこうした問題に対処できる
  • GPTは、特別に「チャットに追加」したファイルの内容しか見られない。aiderはさらに、gitリポジトリ全体のマップをGPT-4へ送る。そのため、GPTは必要だと判断した場合、追加ファイルの閲覧を求めることがある。

GN⁺の意見

  • 大規模プロジェクトでaiderを活用すれば、コードベース全体にわたる一貫した変更を容易に適用できそう。特にGPT-4の能力と組み合わせると、さらに強力になりそう
  • ただし、GPTが提案した変更を無条件に受け入れるのではなく、開発者自身がレビューしてテストする工程は必要だと思われる。現時点ではGPTモデルはまだ完璧ではなく、バグが入り込む可能性もある
  • コードだけでなく、ドキュメント作成やテストケース作成にもaiderを活用するとよさそう。GPTの自然言語理解能力を生かせば、より高品質な文書やテストコードを素早く生成できることが期待される
  • CLIベースで扱いやすい一方、エディタプラグインなどにより開発環境とさらに密接に統合されれば、開発者の生産性向上に大きく役立ちそう
  • GitHub Copilotなど類似のAIペアプログラミングツールとの差別化ポイントは、GPT-4の活用とgitベースのワークフローにあると考えられる。既存ツールとの長所短所の比較も興味深い

1件のコメント

 
GN⁺ 2024-04-11
Hacker Newsの意見

以下はHacker Newsのコメントを要約した内容です:

  • AIツールを使う際、プロンプト作成と結果のレビューに多くの時間がかかり、直接作業するより非効率になることがある。新しいソリューションを探索する際には、精度の面でも限界があるように見える。
  • Aiderと似た機能を持つ、Plandexというターミナルベースのプロジェクトがある。GitスタイルのCLIを使い、複数ファイルにまたがる複雑な作業に重点を置いている。
  • Claudeを使ってレスポンシブWebサイトのデザイン作業を行った経験の共有。長いコンテキストの維持が得意で、HTML/CSS/JSが混在したコードベースをうまく扱えた。
  • GoアプリケーションでAIツールを使った際、変数スコープのルールなどを正しく理解できずエラーが発生した事例の共有。信頼性への疑問が提起された。
  • JetBrainsなど既存IDEとの統合が不足している点を惜しむ声。GitHub Copilotなど既存ツールと連携して使った経験も共有された。
  • AiderのLLM性能ベンチマーク結果への関心。GPT-4 Turbo with Visionモデルの性能が以前のモデルより低いことが示された。
  • AIツールの成果物の品質はまだ完璧ではなく、実運用には限界がある。微妙なエラーが依然として存在する。