こんにちは、ACS事業部の折田です。 先月入社し、今回が初めての技術ブログ投稿となります。
最近、AI駆動開発が話題ですね。先日のGlobal AzureでもGitHub Copilotのハンズオンが実施され、これからますますAI駆動がエンジニアの日常となっていくでしょう。
しかし、企業によってはGitHub Copilot自体が使用不可なケースもあります。その際に安全にAI駆動開発を行うにはどうすればいいでしょうか。今回はAzure上で安全にAI駆動開発を行う方法を考察してみました。
まだ机上での考察なので、保証は致しかねますが、参考になれば幸いです。
安全なAI駆動開発の構成
Dev Boxを開発端末として、構成を考えてみました。
- AI駆動開発の活用例
- AIエージェント「RooCode」を活用した、AIによる開発コードのレビュー
- AIエージェントを利用した最新情報のWeb検索
Azure AI Agent サービスを活用した公式 MCP サーバは公開されており、Bing Search のグラウンディング機能を用いたリアルタイム Web データの取得が可能です。しかし、今回の構成では APIM が内部アクセスのみに制限されており、AI Hub もプライベートエンドポイントを使用しているため、カスタム MCP を作成する方針としています。 devblogs.microsoft.com
設計のポイント
項目 | 内容 | 参考 |
---|---|---|
APIM | ・必要なAPIを集約 ・MCPクライアントのOuth認証サーバ ・内部アクセスのみに制限 |
|
カスタムMCP(Functions) | ・APIM経由で安全にスケーラブルに接続 ・APIM内部で生成されたトークンがhttpリクエストになければ、401アクセス拒否 ・プライベートエンドポイントにより内部アクセスのみに制限 |
Azure API Management Your Auth Gateway For MCP Servers | Microsoft Community Hub Build AI agent tools using remote MCP with Azure Functions | Microsoft Community Hub |
AI hub及び各関連サービス(AOAI、Bing Searchなど) | ・各関連サービスを集約 ・プライベートエンドポイントにより内部アクセスのみに制限 |
Azure AI Agent - AI Foundryのハブとは(+コンピュートインスタンス) - Azure AI Agent学習記録 |
補足:AIアプリ開発の違い
混同しやすい?AI駆動開発とAIアプリ開発との違いについて、整理しておきます。
AI駆動開発
AI駆動開発は、AI技術を利用して製品やサービスの開発プロセスを改善することを指します。具体的には、以下のような点が特徴です。
- データ分析: 大量のデータを分析して、開発プロセスの効率化や最適化を図る
- 予測モデル: AIを使って市場の動向やユーザーのニーズを予測し、開発戦略を立てる
- 自動化: 開発の一部を自動化することで、時間とコストを削減する
AIアプリ開発
AIアプリ開発は、AI技術を組み込んだアプリケーションを開発することを指します。以下のような点が特徴です。
- 機械学習: アプリに機械学習モデルを組み込んで、ユーザーの行動を学習し、パーソナライズされた体験を提供する
- 自然言語処理: チャットボットや音声認識など、自然言語処理技術を利用してユーザーと対話する
- 画像認識: 画像や動画の解析を行い、視覚的な情報を処理する
どちらもAI技術を活用していますが、AI駆動開発は開発プロセスそのものを改善することに焦点を当てているのに対し、AIアプリ開発はAI技術を組み込んだ具体的なアプリケーションの開発に焦点を当てています。
ちなみに、私はAPC入社前に「安全なAIアプリ開発のためのプラットフォーム」について考察した個人ブログ記事も書いています。ご興味のある方は、ぜひそちらもご覧いただければ幸いです。 qiita.com