📝

現時点のAIエージェントを活用した開発方法と考え方とTIPS

2025/03/18に公開
13

これは何?

私が現在活用しているAIエージェント設定、運用のTIPSをアウトプットします。

目的

  • AIエージェントを活用した開発の今の姿を整理する
  • 開発に適したツールと設定の一例を共有する
  • エディタ以外の開発フローの工夫を共有する

AIエージェントについて

現時点ではRooCodeを軸に開発環境を構築しています。
RooCodeClineを拡張したものでありより高度なAIアシストを提供するツールです。

  • Clineと比べてUIはやや複雑だが`機能は豊富
  • チームで設定をシェアしたり知見を溜めるため利用者の母数が多いRooCodeClineを選択

CursorDevContainerがうまく動作せず、他にも一部の拡張機能が使えない事例を見たため、互換性に課題が残ると判断しています。その他のAIエディタは十分に利用、検証できていません。
RooCodeが使いにくいと感じた場合はClineでも問題ないと思います。

DevContainerを活用する背景

以下の理由からVSCode+DevContainerを採用しています。

  • AIエージェントの実行環境をコンテナ内に限定できる
    • コマンド実行などリポジトリ外へ影響を与えるリスクを回避
    • 機密データが意図せず学習データに利用されるリスクを軽減
  • プラグインの設定やインストールをリポジトリで管理できる
  • GitHub Copilotなどの他ツールと組み合わせやすい

RooCodeの設定

実際に利用している設定について解説します。
インストールはVSCodeの拡張機能ストアからインストール可能です。

1. Prompts の設定

  1. メニューアイコンから設定画面に移動
  2. 「Mode-specific Custom Instructions (optional)」で任意のコンテキストを設定

ここにmemory-bankのプロンプトを入力します。

2. API の設定

  1. メニューアイコンから設定画面に移動
  2. 「API Provider」 を選択
  3. 「Language Model」 を選択

「VS Code LM API」を利用する事でCopilot経由でのモデルが参照可能です。
そのためCopilotを利用している場合は追加のAPI利用のコストがかかりません。
ただし最新モデルの反映には時間がかかる様です。

3. 自動承認の設定

  • ReadAPI Retryのみ自動承認
  • 書き込みやコマンド実行は不可逆な操作を防ぐため手動承認

周辺の開発フローTIPS

さらにAIエージェントを活用するために行なっている開発フローの工夫です。

1. ADRDesignDocの活用

  • ADRDesignDocをソースコードと同じリポジトリにコミットして管理する
    • コンテキストとして扱えるのでAIにも人にも優しいです
  • AIに正しいコンテキストを提供するために技術的な意思決定を記録する
  • 情報を蓄積し、より良いコード提案を得られる環境を作る

2. memory-bank.cline-rulesの活用

  • memory-bankにはプロジェクトの背景情報や重要な仕様を蓄積
  • clinerulesを用いてコードの記述スタイルの統一などをAIに伝える
    • .clineignoreenvファイルの取得情報を除外
  • これにより同じやり取りを繰り返すことなく一貫性のある開発サポートを受けられる
  • 定期的にルールを見直し、プロジェクトの進行に合わせて最適化

3. PRDからのコード生成

  • Markdownで表現可能な一定のフォーマットを持つPRDから一定の品質のコードを生成可能
  • memory-bankactiveContextprogressにコンテキストとして与える

Vercelv0でもPRDからフロントエンドのソースコードを高い品質で生成可能なことを確認してしています。

なぜMarkdownをベースにするのか?

表現方法がルール化されているため以下の恩恵を受けられます。

  • 一貫性を持たせられる
  • 情報を単純化して整理する力学を働かせられる
  • ツール間の連携がしやすい
    • 例えば、memory-bankactiveContextprogressにコンテキストとしてベタ書きできる
  • 機械的に解析・管理しやすい

FigmaMiroなどのツールは、視覚的に美しくなり読み手の理解をサポートしますが、表現の自由度が高すぎて属人化しやすいためドキュメントとしての再利用性が下がるリスクがあると判断しています。また、記述した人にとっては理解しやすくても、読み手にとってはハイコンテキストでミスリードを起こしたり、むしろ理解が困難になるリスクがあります。

複雑な内容を図式化してわかりやすく記述するケースにおいては、ER図やフローチャートなどもMermaidを活用して表現することで一貫性のあるドキュメントを維持できると考えております。AIエージェントの連携方法としてもMarkdown形式であればmemory-bankactiveContextprogressにコンテキストとしてベタ書き可能です。

これらの背景から、内容全てをMarkdownだけで完結する事は難しくても可能な限り再利用可能な情報として残すことが重要だと考えています。

まとめ

現時点では、以下のような形で AI エージェントを開発に組み込んでいます。

  • RooCodeを活用しAIエージェントと連携
  • DevContainerを利用して安全な環境を構築
  • ADRDesignDocを活用しコンテキストをAIに提供
  • memory-bankを活用し情報を蓄積
  • clinerulesを利用しルールベースの開発を実現
  • PRDフォーマットを活用し一定品質のコード生成を実現
  • Markdownベースの設計でツール間連携を強化

この記事が一例として参考になれば幸いです。

13

Discussion