要点
- Aiderは
pip install aider-chatでインストールし、LLM APIキー(OpenAI/Anthropic/Ollama)を設定します。 /add <file>または/add --allでファイルをコンテキストに追加し、リポジトリ全体の認識を可能にします。- 精密な編集には
/diff、ファイル全体の書き換えには/whole、複数ファイルのリファクタリングには/architectを使用します。 - Gitとの連携により、変更内容が自動的にコミットされ、説明的なメッセージが付与されます。
.aider.conf.ymlでモデル設定やデフォルトの動作を保存できます。
1. インストールとモデルのセットアップ
Aiderのインストール
# macOS/Linux(Python 3.9+が必要)
python -m pip install --upgrade aider-chat
# Windows(PowerShell)
python -m pip install --upgrade aider-chat
# インストールの確認
aider --version
# 期待される出力: aider 0.36.0
注意点:command not foundエラーが発生した場合は、~/.local/binがPATHに含まれているか確認してください。
export PATH=$PATH:~/.local/bin # ~/.bashrcまたは~/.zshrcに追加
LLMのセットアップ
AiderはOpenAI、Anthropic、Mistral、およびOllama経由のローカルモデルをサポートしています。いずれかを選択してください。
オプション1:OpenAI(GPT-4o)
- OpenAI APIキーを取得します。
- キーを環境変数として設定します。
export OPENAI_API_KEY="your-key-here" - Aiderを起動します。
aider
オプション2:Anthropic(Claude 3.5 Sonnet)
- Anthropic APIキーを取得します。
- キーとモデルを設定します。
export ANTHROPIC_API_KEY="your-key-here" aider --model claude-3-5-sonnet-20240620
オプション3:ローカルモデル(Ollama)
- Ollamaをインストールし、モデルをプルします。
ollama pull llama3 - ローカルモデルでAiderを起動します。
aider --model ollama/llama3
期待される出力:
Aider v0.36.0
Model: claude-3-5-sonnet-20240620 with diff edit format
Git repo: .git with 12 files
Repo-map: using 1.2MB of 2.0MB
Use /help to see in-chat commands.
2. コンテキストへのファイル追加
Aiderがコードを編集するためには、対象のファイルを「認識」させる必要があります。チャット内で以下のコマンドを使用します。
| コマンド | 説明 |
|---|---|
/add <file> | 単一のファイルをコンテキストに追加(例:/add src/main.py)。 |
/add --all | リポジトリ内の全ファイルを追加(使用は控えめに—LLMのコンテキスト制限に注意)。 |
/drop <file> | コンテキストからファイルを削除。 |
/ls | 現在コンテキストに含まれているファイルを一覧表示。 |
ワークフロー例:
# プロジェクトディレクトリでAiderを起動
cd ~/projects/my-app
aider
# コンテキストに主要なファイルを追加
/add src/utils.py
/add tests/test_utils.py
注意点:大規模なリポジトリ(10,000ファイル以上)ではAiderの動作が遅くなる可能性があります。タスクに関連するファイルのみを/addで選択的に追加してください。
3. 編集モード
Aiderは3つの編集モードを提供しています。精度のニーズに応じて選択してください。
1. /diff(デフォルト)
- 変更を適用する前に差分を表示します。
- 小規模で精密な編集に最適です。
例:
User: /diff
Aider: 変更内容を説明してください...
User: `validate_input`関数を早期リターンを使用するようにリファクタリングします。
期待される出力:
- def validate_input(data):
- if not data:
- return False
- if len(data) > 100:
- return False
- return True
+ def validate_input(data):
+ if not data:
+ return False
+ if len(data) > 100:
+ return False
+ return True
変更を適用するにはyを入力します。
2. /whole
- ファイル全体を書き換えます。
- 大規模なリファクタリングや
/diffが制限的すぎる場合に使用します。
例:
User: /whole src/utils.py
Aider: このファイルにどのような変更を加えますか?
User: ファイルを型ヒントを使用するように書き換え、ドキュメントストリングを追加します。
3. /architect
- 高レベルのガイダンスによる複数ファイルのリファクタリング。
- 複数ファイルにまたがる変更(例:「認証ロジックを新しいモジュールに移動」)に最適です。
例:
User: /architect
Aider: どのようなアーキテクチャの変更を行いますか?
User: モノリシックな`handlers.py`をルートごとに別ファイルに分割します。
4. Git連携と自動コミット
Aiderは変更内容を説明的なメッセージとともに自動的にコミットします。.aider.conf.ymlで設定が可能です。
# .aider.conf.yml
git:
auto_commits: true
commit_message: "aider: {message}" # コミットメッセージのフォーマットをカスタマイズ
コマンド:
| コマンド | 説明 |
|---|---|
/git | Gitのステータスを表示。 |
/commit | ステージングされた変更を手動でコミット。 |
/undo | 最後の変更を元に戻します(git resetを使用)。 |
注意点:自動コミットは履歴を煩雑にする可能性があります。手動で制御するには/commitを使用するか、後でコミットをまとめてください。
git rebase -i HEAD~5 # aiderのコミットをまとめる
5. Ollamaを使用したローカルモデルの利用
プライバシーやコスト削減のために、ローカルモデルを使用できます。
- Ollamaをインストールし、モデルをプルします。
ollama pull codellama:7b - ローカルモデルでAiderを起動します。
aider --model ollama/codellama:7b - (オプション)
.aider.conf.ymlでデフォルト設定を行います。model: ollama/codellama:7b
パフォーマンスのヒント:応答速度を重視する場合は小規模なモデル(例:codellama:7b)を使用しますが、GPT-4oと比較すると精度は劣ります。
6. 複数ファイル編集のワークフロー
Aiderは複数ファイルにまたがる変更に優れています。以下はその例です。
タスク:モジュールへのロギング追加
- 関連ファイルをコンテキストに追加します。
/add src/app.py /add src/utils/logger.py - 変更内容を説明します。
`app.py`内のすべての関数にデバッグロギングを追加します。`utils/logger.py`のロガーを使用してください。 - Aiderは以下の処理を行います。
app.pyにロガーをインポート。- 各関数に
logger.debug()呼び出しを追加。 - 必要に応じて
logger.pyを更新(例:デバッグメソッドの追加)。
注意点:複数ファイルの編集では、LLMがコンテキストを失う可能性があります。大規模なタスクは小さなステップに分割してください。
7. 設定と.aider.conf.yml
.aider.conf.ymlに設定を保存することで、繰り返し入力するフラグを省略できます。
# .aider.conf.yml
model: claude-3-5-sonnet-20240620
dark_mode: true
git:
auto_commits: true
commit_message: "aider: {message}"
cache:
enabled: true # 類似のプロンプトに対するLLMの応答をキャッシュ
主な設定項目:
| 設定項目 | 説明 | デフォルト値 |
|---|---|---|
model | デフォルトのLLM(例:gpt-4o、ollama/llama3)。 | gpt-4o |
dark_mode | ダークテーマのターミナルを有効化。 | false |
cache.enabled | LLMの応答をキャッシュしてコストを削減。 | false |
lint_cmd | 編集後に実行するコマンド(例:ruff check)。 | null |
プロのヒント:aider --dump-configを使用して、初期設定ファイルを生成できます。
代替ツールの比較
| ツール | 最適な用途 | 主な違い |
|---|---|---|
| Cursor | GUI駆動のワークフロー | 組み込みデバッガ、リアルタイムコラボレーション |
| GitHub Copilot | 迅速なコード提案 | IDEとの統合、単一ファイルに特化 |
| Aider | 複数ファイルの編集、Git連携 | CLIファースト、モデルに依存しない、オープンソース |
次のステップ
- 小規模なリファクタリングを試す:
/diffを使用して、コードベース内の単一関数を編集してみてください。 - 自動コミットを設定する:
.aider.conf.ymlを設定し、希望するメッセージフォーマットで自動コミットを行います。 - ローカルモデルを探索する:Ollamaをインストールし、
codellama:7bをテストしてコストのかからないコーディング支援を体験してください。
Aiderをチームに導入する際には、Hyperion ConsultingがCI/CDパイプラインやセキュリティワークフローへの統合を支援する**AIツールコンサルティングを提供しています。これはAIセキュリティ態勢フレームワーク™**のPROTECT(アクセス制御)およびCOMPLY(監査ログ)フェーズに準拠しています。
