現時点のAIエージェントを活用した開発方法と考え方とTIPS
これは何?
私が現在活用しているAIエージェント設定、運用のTIPSをアウトプットします。
目的
- AIエージェントを活用した開発の今の姿を整理する
- 開発に適したツールと設定の一例を共有する
- エディタ以外の開発フローの工夫を共有する
AIエージェントについて
現時点ではRooCode
を軸に開発環境を構築しています。
RooCode
はCline
を拡張したものでありより高度なAIアシストを提供するツールです。
-
Cline
と比べてUI
はやや複雑だが`機能は豊富 - チームで設定をシェアしたり知見を溜めるため利用者の母数が多い
RooCode
、Cline
を選択
Cursor
はDevContainer
がうまく動作せず、他にも一部の拡張機能が使えない事例を見たため、互換性に課題が残ると判断しています。その他のAIエディタは十分に利用、検証できていません。
RooCode
が使いにくいと感じた場合はCline
でも問題ないと思います。
DevContainer
を活用する背景
以下の理由からVSCode
+DevContainer
を採用しています。
- AIエージェントの実行環境をコンテナ内に限定できる
- コマンド実行などリポジトリ外へ影響を与えるリスクを回避
- 機密データが意図せず学習データに利用されるリスクを軽減
- プラグインの設定やインストールをリポジトリで管理できる
-
GitHub Copilot
などの他ツールと組み合わせやすい
RooCode
の設定
実際に利用している設定について解説します。
インストールはVSCode
の拡張機能ストアからインストール可能です。
1. Prompts の設定
- メニューアイコンから設定画面に移動
- 「Mode-specific Custom Instructions (optional)」で任意のコンテキストを設定
ここにmemory-bank
のプロンプトを入力します。
2. API の設定
- メニューアイコンから設定画面に移動
- 「API Provider」 を選択
- 「Language Model」 を選択
「VS Code LM API」を利用する事でCopilot
経由でのモデルが参照可能です。
そのためCopilot
を利用している場合は追加のAPI利用のコストがかかりません。
ただし最新モデルの反映には時間がかかる様です。
3. 自動承認の設定
-
Read
とAPI Retry
のみ自動承認 - 書き込みやコマンド実行は不可逆な操作を防ぐため手動承認
周辺の開発フローTIPS
さらにAIエージェントを活用するために行なっている開発フローの工夫です。
ADR
、DesignDoc
の活用
1. -
ADR
、DesignDoc
をソースコードと同じリポジトリにコミットして管理する- コンテキストとして扱えるのでAIにも人にも優しいです
- AIに正しいコンテキストを提供するために技術的な意思決定を記録する
- 情報を蓄積し、より良いコード提案を得られる環境を作る
memory-bank
、.cline-rules
の活用
2. -
memory-bank
にはプロジェクトの背景情報や重要な仕様を蓄積 -
clinerules
を用いてコードの記述スタイルの統一などをAIに伝える-
.clineignore
でenv
ファイルの取得情報を除外
-
- これにより同じやり取りを繰り返すことなく一貫性のある開発サポートを受けられる
- 定期的にルールを見直し、プロジェクトの進行に合わせて最適化
PRD
からのコード生成
3. -
Markdown
で表現可能な一定のフォーマットを持つPRD
から一定の品質のコードを生成可能 -
memory-bank
のactiveContext
やprogress
にコンテキストとして与える
Vercel
のv0
でもPRD
からフロントエンドのソースコードを高い品質で生成可能なことを確認してしています。
Markdown
をベースにするのか?
なぜ表現方法がルール化されているため以下の恩恵を受けられます。
- 一貫性を持たせられる
- 情報を単純化して整理する力学を働かせられる
- ツール間の連携がしやすい
- 例えば、
memory-bank
のactiveContext
やprogress
にコンテキストとしてベタ書きできる
- 例えば、
- 機械的に解析・管理しやすい
Figma
やMiro
などのツールは、視覚的に美しくなり読み手の理解をサポートしますが、表現の自由度が高すぎて属人化しやすいためドキュメントとしての再利用性が下がるリスクがあると判断しています。また、記述した人にとっては理解しやすくても、読み手にとってはハイコンテキストでミスリードを起こしたり、むしろ理解が困難になるリスクがあります。
複雑な内容を図式化してわかりやすく記述するケースにおいては、ER図やフローチャートなどもMermaid
を活用して表現することで一貫性のあるドキュメントを維持できると考えております。AIエージェントの連携方法としてもMarkdown
形式であればmemory-bank
のactiveContext
やprogress
にコンテキストとしてベタ書き可能です。
これらの背景から、内容全てをMarkdown
だけで完結する事は難しくても可能な限り再利用可能な情報として残すことが重要だと考えています。
まとめ
現時点では、以下のような形で AI エージェントを開発に組み込んでいます。
-
RooCode
を活用しAIエージェントと連携 -
DevContainer
を利用して安全な環境を構築 -
ADR
、DesignDoc
を活用しコンテキストをAIに提供 -
memory-bank
を活用し情報を蓄積 -
clinerules
を利用しルールベースの開発を実現 -
PRD
フォーマットを活用し一定品質のコード生成を実現 -
Markdown
ベースの設計でツール間連携を強化
この記事が一例として参考になれば幸いです。
Discussion