Roo Code(旧Roo Cline)を使ってみた

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/2db21969-d46b-349c-ce61-a60e294ac552.png)
作成日：2025年1月6日(月)
更新日：2025年1月18日(土) GitHub Copilot Proでclaude-3.5-sonnetを月額$10で使いたい放題
更新日：2025年1月19日(日) VS Code LM APIにo1-mini、o1-gaを追加
更新日：2025年1月25日(土) Roo-Cline をRoo Codeに修正
更新日：2025年3月1日(土) GitHub Copilot FreeでVS Code LM APIが利用できる点を追加

## １．はじめに

本記事では、Visual Studio Code拡張機能「Cline」をベースにした自律型AIコーディングアシスタント「Roo Code (prev. Roo Cline)」を紹介します。Roo Codeは、高速かつ柔軟な機能と革新的な自律機能を備え、開発者コミュニティから注目を集めています。このパワフルなツールにより、開発作業の生産性を大きく向上させることができます。

以下では、Roo Codeの概要と特徴を説明し、続いて主要機能や対応APIプロバイダーについて詳しく解説します。さらに、実際の開発現場での活用事例や、従来のコーディングアシスタントとの比較も紹介します。

## ２．Roo Code(ルー・コード)とは

Roo Code（ルー・コード）は、「Cline」を RooVetGit 氏が 2024年12月16日にフォーク（*1）したオープンソースソフトウェアです。元となる「Cline」は 2024年1月28日に Cline Bot Inc. によって開発されました。「Cline」という名称は「**CLI** a**N**d **E**ditor」(*2)に由来しており、したがって Roo Code は「RooVetGit 氏がフォークした **CLI** a**N**d **E**ditor」という意味合いを持っていると思われます。

Roo Codeは、ユーザーからの簡潔な自然言語指示に基づいて開発を進める自律型AIエージェントです。プロジェクトフォルダーの作成、定義ファイルの自動生成、コードの実行とテスト、そしてGitでの保存まで、一連の作業を自動的に実施します。

Roo Code（Clineを含む）では、自律型AIエージェントが生成する初期コードには不具合が多く存在します。AIエージェントは自動テストでこれらの不具合を発見し、自動修復しながら開発を進めていくため、多くのトークンを消費します。そのため、APIプロバイダーの選択が非常に重要です。コード生成に優れた推論モデルを使用することで、このトライアンドエラーの回数を削減できます。

(*1)[Comparing RooVetGit:main...cline:main · RooVetGit/Roo Code](https://github.com/RooVetGit/Roo-Code/compare/main...cline%3Acline%3Amain)

(*2)[cline/cline](https://github.com/cline/cline)のReadme.mdより

```bash
Meet Cline, an AI assistant that can use your CLI aNd Editor.
Thanks to Claude 3.5 Sonnet's agentic coding capabilities, Cline can handle complex software development tasks
step-by-step. With tools that let him create & edit files, explore large projects, use the browser, and execute terminal
commands (after you grant permission), he can assist you in ways that go beyond code completion or tech support. 
Cline can even use the Model Context Protocol (MCP) to create new tools and extend his own capabilities. While
autonomous AI scripts traditionally run in sandboxed environments, this extension provides a human-in-the-loop GUI
 to approve every file change and terminal command, providing a safe and accessible way to explore the potential of
 agentic AI.
```

## ３．特徴

| No | 特徴 | 説明 |
| --- | --- | --- |
| 1 | オープンソース | ソースコードが公開されており、コミュニティによる改善や拡張が可能 |
| 2 | Visual Studio Code統合 | VSCode拡張機能として動作し、開発環境に自然に統合される |
| 3 | 自律的な動作 | 複雑なソフトウェア開発タスクを段階的に実行可能 |
| 4 | プロジェクト探索 | 大規模プロジェクトのコードベースを理解・分析可能<br>プロジェクト内の複数ファイルの作成・編集が可能（ユーザーの承認必要） |
| 5 | ターミナル連携 | vscodeのターミナルを利用して作成したコードの自動実行を行い、応答されたエラーメッセージを自動判定しコードの修正を提案します<br>ユーザーは提案を承認することで、ターミナルコマンドを実行可能 |
| 6 | ブラウザ連携 | Webアプリケーション開発ではチャットツール上でWebブラウザを起動して、自動的にウェブリソースにアクセスして自動テストを行います |
| 7 | MCP対応 | Model Context Protocolを使用して新機能を追加・拡張可能 |
| 8 | 安全性重視 | すべてのファイル変更とコマンド実行にユーザー承認が必要 |
| 9 | ビジョン対応 | チャット画面に画像を張付け、画像に基づくコード修正を指示することが可能 |
| 10 | Git統合 | Custom Instructuonを定義することでファイルの変更を自動的にコミットする提案をします。 |

## ４．機能

| No | カテゴリ | 機能カテゴリ | 詳細 | Cline継承 |
| --- | --- | --- | --- | --- |
| 1 | コード開発 | コード分析・理解 | プロジェクトのコードベースを解析し、構造や依存関係を理解 | ○ |
| 2 | ↓ | コード生成 | 要件に基づいて新しいコードを生成し、既存コードの修正を提案 | ○ |
| 3 | ↓ | デバッグ支援 | エラーの特定、原因分析、修正案の提示を行う | ○ |
| 4 | ↓ | リファクタリング | コードの品質向上のための改善案を提示し実装を支援 | ○ |
| 5 | ドキュメント管理 | ドキュメント生成 | コードのドキュメント化、コメント追加、README作成を支援 | ○ |
| 6 | 品質管理 | テスト支援 | ユニットテストの生成、テストケースの提案と実装 | ○ |
| 7 | プロジェクト管理 | プロジェクト管理 | タスクの分割、進捗管理、優先順位付けをサポート | ○ |
| 8 | ↓ | プロジェクト固有設定 | [.clinerules](https://github.com/RooVetGit/Roo-Code/blob/main/.clinerules)でプロジェクト毎にテストカバレージ、Gitコミット、ドキュメンテーション、構文チェック、プロジェクト固有の追加テストなどの要件を設定可能<br>本家のClineではv3.0.0で2024/12/19にサポートされた機能です | ○ |
| 9 | 開発環境 | 環境設定 | 開発環境のセットアップ、設定ファイルの管理を支援 | ○ |
| 10 | バージョン管理 | バージョン管理 | Gitコマンドの実行、コミットメッセージの生成を支援 | ○ |
| 11 | ユーザーインターフェース | **チャット機能強化** | **画像のドラッグ&ドロップ、メッセージの削除、プロンプト強化機能を提供** |  |
| 12 | ↓ | **UI/UX改善** | **フィードバック用サウンド効果、ブラウザサイズの調整、スクリーンショット品質の設定が可能** |  |
| 13 | ↓ | **プロンプト管理** | **履歴からのクイックプロンプトコピー、OpenRouterの圧縮サポート** |  |
| 14 | 互換性 | 多言語対応 | 英語、日本語、スペイン語、フランス語、ドイツ語などでのコミュニケーションをサポート | ○ |
| 15 | ↓ | **モデル互換性** | **DeepSeek V3、Amazon Nova、Meta 3/3.1/3.2、その他OpenAI互換プロバイダーに対応** |  |
| 16 | システム設定 | MCP設定 | ツールごとの自動承認、個別サーバーの有効/無効化、機能全体の制御が可能 | ○ |
| 17 | ↓ | 診断・制御機能 | **自動書き込み後の診断遅延設定、ターミナル出力行数の制御、元のClineとの並行実行が可能** |  |

## ５．APIプロバイダー

Roo Codeでを使用した開発では自律型AIエージェントが提案したコードが一発で動作することが少なく、トライアンドエラーで開発を進めていくのが特徴です。賢いAPIプロバイダー(正確な推論モデル)を使用することでこのトライアンドエラーを少なくすることが可能なため、APIプロバイダーの選択は重要です。

Roo Codeは、OpenRouter、Anthropic、Google Gemini、DeepSeek、OpenAI、OpenAI Compatible、GCP Vertex AI、AWS Bedrock、LM Studio、Ollamaに対応しています。特にOpenRouter、OpenAI Compatible、GCP Vertex AI、AWS BedrockなどのAPIプロバイダーは、複数のLLM（Large Language Model：大規模言語モデル）をサポートしているため、幅広いLLMを活用できます。

Roo Codeと一番相性がよさそうなLLMはclaude-3.5-sonnetですが、コスト面で課題があります。以下の表で主要なモデルのコストを比較してみましょう。

| No | モデル | Input (1M tokens) | Output (1M tokens) | 特徴 |
| --- | --- | --- | --- | --- |
| 1 | **OpenAI gpt-4.5-preview** | **$75.00** | **$150.00** | **汎用モデルで最も高精度かつ高価なモデル** |
| 2 | **OpenAI o3-mini-high(※1)** | **$1.1** | **$4.4** | **Reasoningモデルで最も高精度かつ高価なモデル** |
| 3 | **OpenAI o1(※1)** | **$15.00** | **$60.00** | **Reasoningモデルで最も高精度かつ高価なモデル** |
| 4 | **Claude 3.7 Sonnet** | **$3.00** | **$15.00** | **汎用モデルとReasoningモデルの両方の特性を持つ高精度かつRoo Codeと相性が良い高価なモデル** |
| 5 | **Claude 3.5 Sonnet** | **$3.00** | **$15.00** | **汎用モデルで高精度かつRoo Codeと相性が良い高価なモデル** |
| 6 | **Google Gemini Flash 1.5(※2)** | **$0.075** | **$0.30** | **最も経済的** |

コスト比較を見ると、OpenAI o1-previewが最も高価で、1Mトークンあたりの入力コストが15.00USD、出力コストが60.00USDとなっています。次いでClaude 3.5 Sonnetが入力3.00USD、出力15.00USDと続きます。一方、Google Gemini Flash 1.5は入力コストが0.075USD、出力コストが0.30USDと圧倒的に経済的で、他のモデルと比べて約1/200～1/40のコストで利用することができます。

**ネットではDeepSeek V3/R1がコスパが良いという話があるようですが、ここでは企業で利用することを前提に私が閉域化できることを知っているAzure OpenAI、GCP Vertex AI、AWS Bedrockで使用できそうなAPIプロバイダーを例に検討していきます。**

それぞれのAIプロバーダー毎のモデルの単価を見てみましょう。

(※1)Claude 3.7 Sonnetは推論能力が高く、最もRoo Codeとの相性が良いと筆者が考えているモデル。（Gemini Flash 1.5やo3-mini-highで問題が解決できないときに使用)
(※2)Google Gemini Flash 1.5には8bというサフィックスがある無料のモデルがありますが、こちらは軽量モデルなのでチャットや文字起こし、翻訳などには適していますが、複雑な推論には適していないようです。
　

[有料のGoogle Gemini flash 1.5と無料のGoogle Gemini flash-1.5-8bの違いを教えてください。](https://www.perplexity.ai/search/you-liao-nogoogle-gemini-flash-SrN9nT6LTayq698C4uvI9w)

### 5.1. OpenRouter

トークンの従量課金と手数料は発生しますが、Roo Codeとの相性が最も良いclaude-3.5-sonnetと、回数制限付きながら無料で使えるgemini-flash-1.5を1つのAPIキーで利用できるため、最もお勧めのプロバイダーです。

今回は個人での評価となるため、OpenRouterを使用しますが、機密情報漏洩や輸出管理の外為法を気にする企業ではAWS Bedrockで利用した方が良いかもしれません。
OpenRouterはアカウントを作成するとクレジットカードの登録が必須化され、無料の**gemini-2.0-flash-exp:free**でも手数料がかかるような気がします。（よく読んでなくてすみません）

私は10USD課金しました。
私のOpenRouterの設定は以下の通りです。

```powershell
APIプロバイダー：OpenRouter
OpenRouter API Key：APIキー
Model：anthropic/claude-3.5-sonnet
```

選択するとコストまで表示してくれます。
```
New Claude 3.5 Sonnet delivers better-than-Opus capabilities, faster-than-Sonnet speeds, at the same Sonnet prices. Sonnet is particularly good at:

Coding: Scores ~49% on SWE-Bench Verified, higher than the last best score, and without any fancy prompt scaffolding
Data science: Augments human data science expertise; navigates unstructured data while using multiple tools for insights
Visual processing: excelling at interpreting charts, graphs, and images, accurately transcribing text to derive insights beyond just the text alone
Agentic tasks: exceptional tool use, making it great at agentic tasks (i.e. complex, multi-step problem solving tasks that require engaging with other systems)
#multimodal

See more

Supports images
Supports computer use
Supports prompt caching
Max output: 8,192 tokens
Input price: $3.00/million tokens
Cache writes price: $3.75/million tokens
Cache reads price: $0.30/million tokens
Output price: $15.00/million tokens
```
(2025年3月1日更新)
| No | 言語モデル | リリース日 | Context | Max Output | Input | Output | 手数料 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | **anthropic/claude-3.7-sonnet** | 2025-02-24 | 200K | 128K | **$3** | **$15** | 5% |
| 2 | **anthropic/claude-3.7-sonnet:beta** | 2025-02-24 | 200K | 128K | **$3** | **$15** | 5% |
| 3 | **anthropic/claude-3.7-sonnet:thinking** | 2025-02-24 | 200K | 128K | **$3** | **$15** | 5% |
| 4 | anthropic/claude-3.5-sonnet | 2024-01-05 | 200K | 8K | $3 | $15 | 5% |
| 5 | anthropic/claude-3.5-sonnet-20240620 | 2024-06-20 | 200K | 8K | $3 | $15 | 5% |
| 6 | anthropic/claude-3.5-haiku | 2024-03-07 | 200K | 8K | $0.8 | $4 | 5% |
| 7 | anthropic/claude-3.5-haiku-20241022 | 2024-10-22 | 200K | 8K | $0.8 | $4 | 5% |
| 8 | **google/gemini-2.0-flash-001** | **2025-02-05** | **1M** | **8K** | **$0.1** | **$0.4** | **5%** |
| 9 | **google/gemini-2.0-flash-lite-001** | **2025-02-25** | **1.05M** | **8K** | **$0.075** | **$0.3** | **5%** |
| 10| **google/gemini-2.0-pro-exp-02^05** | **2025-02-05** | **2M** | **8K** | **$0** | **$0** | **5%** |
| 11 | google/gemini-pro | 2023-12-06 | 33K | 8K | $0.5 | $1.5 | 5% |
| 12 | google/gemini-pro-1.5 | 2024-08-27 | 2M | 8K | $1.25 | $5 | 5% |
| 13 | google/gemini-pro-1.5-exp | 2024-08-27 | 1M | 8K | $0 | $0 | 5% |
| 14 | google/gemini-pro-vision | 2023-12-13 | 16K | 2K | $0.5 | $1.5 | 5% |
| 15 | openai/gpt-4.5-preview | 2025-02-27 | 128K | 16K | $75 | $150 | 5% |
| 16 | **openai/o3-mini-high** | **2025-02-12** | **200K** | **100K** | **$1.1** | **$4.4** | **5%** |
| 17 | **openai/o3-mini** | **2025-01-31** | **200K** | **100K** | **$1.1** | **$4.4** | **5%** |
| 18 | openai/o1 | 2024-12-17 | 200K | 100K | $15 | $60 | 5% |
| 19 | openai/o1-mini-2024-09-12 | 2024-09-12 | 128K | 66K | $1.1 | $4.4 | 5% |
| 20 | openai/o1-mini | 2024-09-12 | 128K | 66K | $1.1 | $4.4 | 5% |
| 21 | openai/gpt-4o | 2024-12-20 | 128K | 16K | $2.5 | $10 | 5% |
| 22 | openai/gpt-4o-mini | 2025-01-18 | 128K | 16K | $0.15 | $0.6 | 5% |
| 23 | openai/gpt-4o-mini-2024-07-18 | 2024-07-18 | 128K | 16K | $0.15 | $0.6 | 5% |

※上記は2025年1月5日時点(一部3月1日更新)のものです、最新はOpenRouterの[Models](https://openrouter.ai/models)ページを参照してください

[Models | OpenRouter](https://openrouter.ai/models)

### 5.2. OpenAI

OpenAIは2024年12月5日から12月17日までの「[12 days of OpenAI](https://openai.com/12-days/)」イベントにおいて、12月6日の「Day 2」で「OpenAI o1」を正式リリースしました。2025年1月6日時点で、Codeforcesのベンチマークでgpt-4oを大きく上回る性能を示しています。

現時点でRoo Codeに「OpenAI o1」を使用するのが最も効果的と考えられますが、2025年1月6日時点ではpreviewバージョンにしか対応していません。o1-previewも高い性能を期待できますが、100万トークンあたりInput 15USD、Output 60USDという料金設定は、トークンを大量消費するRoo Codeにとって開発効率の向上がコストに見合うか懸念があります。

Roo CodeでGemini Flash 1.5を使用すると解決できないエラーの無限ループに陥ることがありますが、そのような場合にのみo1モデルを使用するという方法が、コストパフォーマンスを保つ現実的な選択かもしれません。

Roo CodeのAPIプロバイダーにはOpenAIとOpenAI Compatibleがあります。Azure OpenAIなどを利用する場合は、APIエンドポイント、デプロイ名、APIバージョンなどの付加情報を指定するためにOpenAI Compatibleを選択し、以下のパラメータを設定する必要があります。（以下は実際に動作確認済みの設定例です。）

ポイントはBase URLにエンドポイント、モデルデプロイ名、APIバージョンを含めて以下のように記載することです。

Base URL: https://(エンドポイント)/openai/deployments/(モデルデプロイ名)/chat/completions?api-version=(APIバージョン)

```
APIプロバイダー：OpenAI Compatible
Base URL：https://ptf-eus.openai.azure.com//openai/deployments/gpt-4o-mini/chat/completions?api-version=2024-06-01（エンドポイントとデプロイ名、モデルバージョンを含む）
APIキー：APIキー
Search and select a modle：gpt-4o-mini（デフォルトモデル名）
Set Azure API Version：2024-08-01-preview
```

![benchmark_o1_codeforces.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/280776f5-daf1-915f-165a-5d164dc53106.png)

![benchmark_o1_improvement.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/131ccf07-731e-6f0f-9f71-333a86550206.png)

※OpenAI社の「[Learning to Reason with LLMs](https://openai.com/index/learning-to-reason-with-llms/)」から引用

(2025年3月1日更新)
| No | 言語モデル | リリース日 | Context | Max Output | Input | Output |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | gpt-4.5-preview | 2025-02-27 | 128K | 16K | $75 | $150 |
| 2 | **o3-mini-high** | **2025-02-12** | **200K** | **100K** | **$1.1** | **$4.4** |
| 3 | **o3-mini** | **2025-01-31** | **200K** | **100K** | **$1.1** | **$4.4** |
| 4 | o1 | 2024-12-17 | 200K | 100K | $15 | $60 |
| 5 | o1-mini-2024-09-12 | 2024-09-12 | 128K | 66K | $1.1 | $4.4 |
| 6 | o1-mini | 2024-09-12 | 128K | 66K | $1.1 | $4.4 |
| 7 | gpt-4o | 2024-12-20 | 128K | 16K | $2.5 | $10 |
| 8 | gpt-4o-mini | 2025-01-18 | 128K | 16K | $0.15 | $0.6 |
| 9 | gpt-4o-mini-2024-07-18 | 2024-07-18 | 128K | 16K | $0.15 | $0.6 |

※上記は2025年3月1日時点のものです、最新はOpenAIの[料金](https://openai.com/ja-JP/api/pricing/)ページを参照してください

### 5.3. Anthropic

Roo Code（Cline）は、もともとClaude-devという名前のVisual Studio Code拡張機能として開発されたこともあり、Anthropicのclaude-3.5-sonnetとの相性が抜群です。
[RooVetGit/Roo-Code](https://github.com/RooVetGit/Roo-Code)の[README.md](https://github.com/RooVetGit/Roo-Code/blob/main/README.md)にも、Claude 3.5 Sonnetのエージェントコーディング機能への敬意が示されています。

従って、相性的には本命はclaude-3.5-sonnetだと思われます。
OpenRouterからも利用できるため、Anthropic個別契約はしなくても良いかと思われます。

```bash
Thanks to Claude 3.5 Sonnet's agentic coding capabilities, Cline can handle complex software development tasks step-by-step. With tools that let him create & edit files, explore large projects, use the browser, and execute terminal commands (after you grant permission), he can assist you in ways that go beyond code completion or tech support. Cline can even use the Model Context Protocol (MCP) to create new tools and extend his own capabilities. While autonomous AI scripts traditionally run in sandboxed environments, this extension provides a human-in-the-loop GUI to approve every file change and terminal command, providing a safe and accessible way to explore the potential of agentic AI.

Enter your task and add images to convert mockups into functional apps or fix bugs with screenshots.
Cline starts by analyzing your file structure & source code ASTs, running regex searches, and reading relevant files to get up to speed in existing projects. By carefully managing what information is added to context, Cline can provide valuable assistance even for large, complex projects without overwhelming the context window.
Once Cline has the information he needs, he can:
Create and edit files + monitor linter/compiler errors along the way, letting him proactively fix issues like missing imports and syntax errors on his own.
Execute commands directly in your terminal and monitor their output as he works, letting him e.g., react to dev server issues after editing a file.
For web development tasks, Cline can launch the site in a headless browser, click, type, scroll, and capture screenshots + console logs, allowing him to fix runtime errors and visual bugs.
When a task is completed, Cline will present the result to you with a terminal command like , which you run with a click of a button.open -a "Google Chrome" index.html
```
(2025年3月1日更新)
| No | 言語モデル | リリース日 | Context | Max Output | Input | Output |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | claude-3-7-sonnet-20250219-thinking | 2025-02-19 | 200K | 64K | $3 | $15 |
| 2 | claude-3-7-sonnet-20250219 | 2025-02-19 | 200K | 64K | $3 | $15 |
| 3 | claude-3-5-sonnet-20241022 | 2024-10-22 | 200K | 100K | $3 | $15 |
| 4 | claude-3-5-haiku-20241022 | 2024-10-22 | 200K | 66K | $1 | $4 |
| 5 | claude-3-opus-20240229 | 2024-02-29 | 200K | 4K | $15 | $75 |
| 6 | claude-3-haiku-20240307 | 2024-03-07 | 128K | 66K | $0.25 | $1.25 |

※上記は2025年3月1日時点のものです、最新はAnthropicの[Pricing](https://www.anthropic.com/pricing#anthropic-api)ページを参照してください

### 5.5. Google
Google gemini-flash-1.5はなんといってもコスパ最高です。
いちおう、Google GeminiのAPI契約もしましたが、OpenRouterに課金しているので、GeminiはOpenRouter経由で使います。
私のGeminiの設定は以下の通りです。
```
APIプロバイダー：OpenRouter
OpenRouter API Key：APIキー
Compress prompts and message chains to the context size (OpenRouter Transforms)にチェック
Model：google/gemini-flash-1.5
```
or
```
APIプロバイダー：Google Gemini
Gemini API Key：APIキー
Model：gemini-1.5-flash-002
```


| No | 言語モデル | リリース日 | Context | Max Output | Input | Output |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | gemini-2.0-flash-exp:free | 2024-12-19 | 1.05M | 8K | $0 | **$0** |
| 2 | gemini-2.0-flash-thinking-exp:free | 2024-12-19 | 40K | 8K | $0 | $0 |
| 3 | gemini-exp-1114:free | 2023-11-14 | 32K | 4K | $0 | $0 |
| 4 | gemini-exp-1121:free | 2023-11-21 | 32K | 4K | $0 | $0 |
| 5 | gemini-exp-1206:free | 2023-12-06 | 32K | 4K | $0 | $0 |
| 6 | gemini-flash-1.5 | 2024-08-27 | 128K | 16K | $0.5 | $1.5 |
| 7 | gemini-flash-1.5-8b | 2024-08-27 | 128K | 16K | $0.25 | $0.75 |
| 8 | gemini-flash-1.5-8b-exp | 2024-08-27 | 128K | 16K | $0.25 | $0.75 |
| 9 | gemini-flash-1.5-exp | 2024-08-27 | 128K | 16K | $0.5 | $1.5 |
| 10 | gemini-pro | 2023-12-06 | 32K | 4K | $0.25 | $0.75 |
| 11 | gemini-pro-1.5 | 2024-08-27 | 128K | 8K | $0.25 | $0.75 |
| 12 | gemini-pro-1.5-exp | 2024-08-27 | 128K | 8K | $0.25 | $0.75 |
| 13 | gemini-pro-vision | 2023-12-13 | 32K | 4K | $0.25 | $0.75 |

### 5.6. VS Code LM API(GitHub Copilot ProのAPI)(2025年3月1日更新)

2025年1月16日（木）にリリースされたRoo Code(旧Roo-Cline)の3.1.3（2025年1月18日時点では3.1.6）より、GitHub Copilot ProのVS Code LM APIがサポートされるようになりました。
こちらはGitHub Copilot Proのサブスクリプションを月額$10（個人ユーザー）で契約し、VS CodeにGitHub Copilotを導入すると利用できるようになるAPIプロバイダーです。

VS Code LM APIとは、GitHub Copilot Proで使用されているLanguage Model APIのことです。Visual Studio Codeに統合されたGitHub Copilot Proの機能を直接利用できるため、追加のAPIキーやサブスクリプションなしで高度なコード補完や生成が可能になります。GitHub Copilotのサブスクリプションがあれば、このAPIを通じてRoo Codeの機能を最大限に活用することができます。

GitHub CopilotにはFree、Pro、Business、Enterpriseプランが存在するため、まずはそちらを整理します。

| 項番 | 比較項目 | Free | Pro | Business | Enterprise |
| --- | --- | --- | --- | --- | --- |
| 1 | **料金** | $0 | $10/月 | $19/月/ユーザー | カスタム見積もり |
| 2 | **対象ユーザー** | 個人開発者向け | 個人開発者向け | チーム・組織向け | 大規模企業向け |
| 3 | **コード補完** | あり | あり | あり | あり |
| 4 | **Copilot Chat** | 一部制限あり（VS Codeのみ） | 多くのIDEで利用可能 | プロジェクト全体のコード理解向上 | セキュリティ・コンプライアンス対応 |
| 5 | **プルリクエストでの支援** | なし | なし | AIによるレビュー補助 | AIによる詳細なコード解析とサポート |
| 6 | **利用可能なIDE** | VS Code のみ | VS Code, JetBrains, Neovim など | Proと同等 | Proと同等 |
| 7 | **セキュリティとプライバシー** | 基本的なGitHubのセキュリティ | 基本的なGitHubのセキュリティ | チーム向けのアクセス制御・セキュリティ設定 | SOC 2 Type 2、ISO 27001対応 |
| 8 | **管理機能** | なし | なし | 管理者向けのダッシュボード・監査ログ | SAML SSO、監査ログ、詳細なアクセス管理 |
| 9 | **利用できるLLM** | GPT-3.5 | GPT-4 | GPT-4 | GPT-4（高セキュリティ版） |
| 10 | **VS Code LM API** | 利用可能 | 利用可能 | 利用可能 | 利用可能 |
| 11 | **VS Code LM APIで利用できるLLM** | gpt-4、gpt-4o、gpt-4o-mini、o3-mini、claude-3.5-sonnet、gemini-2.0-flash | gpt-4、gpt-4o、gpt-4o-mini、o3-mini、**claude-3.7-sonnet**、claude-3.5-sonnet、gemini-2.0-flash、<br>**o1-ga**、**o1-mini** | → | → |
| 12 | **気になった点** | ・Claude-3.5-sonnetが使えます。<br>・Claudeはマルチモーダル、コンピュータユース、プロンプトキャッシングが利用できません | ・**Claude-3.7-sonnetが使えます。**<br>・Claudeはマルチモーダル、コンピュータユース、プロンプトキャッシングが利用できません | → | → |

「[GitHub Copilot Free](https://docs.github.com/ja/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/about-github-copilot-free)」ページには VS Code LM API についての言及がありませんでしたが、**GitHub Copilot Pro の 30 日トライアル終了後に新たに GitHub Copilot Free を契約したところ、Free プランでも VS Code LM API が利用できることがわかりました。**
調査の結果、GitHub Copilot Free では Claude-3.7-sonnet、o1-ga、o1-mini などの Reasoning モデルは利用が制限されていますが、Claude-3.5-sonnet は使えることが確認できました。

「[**GitHub Copilot のサブスクリプション プラン**](https://docs.github.com/ja/copilot/about-github-copilot/subscription-plans-for-github-copilot)」のページにも比較表がありますが、ここにもこういった制限の記載がなく、実際に試してみて分かったことです。（ちょっと不親切ですね）
Roo ClineでのVS Code LM API設定方法(GitHub Copilot Proの30日トライアル期間)(vscodeにGitHub Copilotの拡張機能を導入するとLanguage Modelが選べるようになります。)

![Roo-Cline_API_vscode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/7b6a248e-bb4c-7bf3-6a36-9b33196a8216.png)

ここで気になるのは「Does not support images」、「Does not support computer use」、「Does not support prompt caching」です。Copilotのサブスクリプションを契約すればほぼ青天井で使い放題なので、Claudeの強みであるプロンプトキャッシングは気になりませんでしたが、画像とコンピューターユースは困ります。
ただ、ここで言う「コンピューターユース」はおそらくMCP（Model Context Protocol）サーバのことではないかと思いました。

「[GitHub Copilot Free](https://docs.github.com/ja/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/about-github-copilot-free)」ページの説明

```
Copilot Free に含まれている機能
Copilot Free には、次の機能が含まれています。

Visual Studio Code、Visual Studio、JetBrains IDES、Vim/Neovim、Xcode、Azure Data Studio でのコード補完
複数のファイルに変更を加える Copilot Edits (Visual Studio Code と Visual Studio のみ)
Visual Studio Code、Visual Studio、JetBrains IDES、GitHub.com の Copilot Chat
パブリック コードに一致する候補をブロックする
Claude 3.5 Sonnet モデルへのアクセス

Copilot Free の制限事項
Copilot Free には次の制限事項があります。

コード補完は 1 か月あたり 2,000 回に制限されています。
Copilot Chat のチャット メッセージは 1 か月あたり 50 回に制限されています。 この制限には、VS Code と Visual Studio での標準チャットと複数ファイル編集チャットの両方が含まれます。
これらの制限に達した場合は、Copilot Pro にアップグレードして、引き続き Copilot を使用できます。
```

実際に利用しようとすると以下のダイアログが表示され許可するとつなぎに行きます。（おや使えるのかと期待が高まります）

![Roo-Cline_API_vscode_accept.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/7b1bfe1e-de56-3df3-d137-dd3716385f8e.png)

GitHub Copilotのチャット欄はプロンプトを入力すると反応があるため、「GitHub Copilot Free」プランの登録は完了しているようですが、Roo CodeのVS Code LM APIの方はいづれのモデルも「Model not supported」が応答されます。
このことから「GitHub Copilot Free」(完全無料版）では利用できないことが分かります。（もしかしてこの段階でもチャット欄のモデルを切り替えれば使えたのかも…)

![Roo-Cline_API_vscode_model_not_suppoted.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/e99ce887-28df-dc6b-a2c4-e087b2f240bb.png)

![Roo-Cline_API_vscode_model_not_suppoted_zoom.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/f93bf0b1-8f41-317a-c38d-5e2f24582648.png)

次にvscodeの右上のGitHub CopilotアイコンのプルダウンからCopilotプランを管理で30日間無料のGitHub Copilot Pro試用版を申し込んでみます。

![Roo-Cline_API_subscribe_CopilotPro_menu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/bf2a1900-0c96-323c-91c5-496e4c9b78c6.png)

30日無料とはいえ、トライアルが終わると自動的に月額$10のGitHub Copilot Proの自動以降となりますので、少し緊張します。

![Roo-Cline_API_subscribe_CopilotPro_web.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/d8ec4a84-a331-7247-e861-992096df0f80.png)

![Roo-Cline_API_subscribe_CopilotPro_confirm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/ece8b605-facd-2690-8e98-d3739ee689f6.png)

この後、住所やクレジットカード情報、連絡先なをを入力して登録しました。
さらに「Select your preferences」でアカウントに関する設定をします。
設定するのはAnthropic Claude 3.5 Sonnet in CopilotをEnableにするくらいです。（他は全てデフォルト）

![Roo-Cline_API_subscribe_CopilotPro_success.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/8bcb145f-12ac-8eea-41e3-46386031fd7d.png)

この状態でGPT-4oなどは利用可能になりましたが、claude-3.5-sonnetが使えません。
この解決方法は「[社会人10＄で学生無料で無限にCline使えて笑うｗｗｗGithub CopilotをAPIに使えるReClineのご紹介！！！！！！](https://www.youtube.com/watch?v=OqPey8k2ivQ)」の動画の[00:11:00付近](https://youtu.be/OqPey8k2ivQ?t=660)にハマりポイントとして解説がありました。
引用すると**GitHub Copilotでclaude-3.5-sonnetを利用するにはGitHub上のアカウントで「Anthropic Claude 3.5 Sonnet in CopilotをEnableにする」以外で
GitHubチャットの下部でClaude -3.5 Sonnet(Preview)を選択して、「Enable Claude 3.5 Sonnet (Preview) for all clients」を「Enable」に設定する必要があります。**

![Roo-Cline_API_vscode_model_not_suppoted2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/70e23e93-a6f6-cf0e-02b1-783a3ab1ad5f.png)

![Roo-Cline_API_vscode_enable_claude-3.5_on copilot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/e7dee396-8a25-15a8-506c-23fd2a6ff2d7.png)

この設定で、GitHub Copilot Pro(30日無料版)のVS Code LM APIをRoo Code(旧Roo-Cline) 3.1.3以降(2025年1月18日時点で3.1.6) で使用できます。

![Roo-Cline_API_CpilotPro_API_use.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/c4407a28-614f-8d5b-f22c-608a91625cf4.png)

Roo CodeからGitHub Copilot ProのVS Code LM APIを使用するとclaude-3.5-sonnetはPreview版ではありますが、claude-3.5-sonnetが月額$10で利用できるようになります。

| No | 言語モデル | リリース日 | Context | Max Output | Cost |
| --- | --- | --- | --- | --- | --- |
| 1 | gpt-3.5-turbo | 2023-03-15 | 16K | 4K | $10/月 |
| 2 | gpt-4 | 2023-03-14 | 8K | 4K | $10/月 |
| 3 | gpt-4o | 2024-08-27 | 128K | 8K | $10/月 |
| 4 | gpt-4o-mini | 2024-08-27 | 128K | 4K | $10/月 |
| 5 | gpt-4-turbo | 2024-08-27 | 128K | 4K | $10/月 |
| 6 | o1-mini | 2024-12-06 | 128K | 64K | $10/月 |
| 7 | o1-ga | 2024-12-06 | 200K | 100K | $10/月 |
| 8 | claude-3.5-sonnet | 2024-10-22 | 200K | 100K | $10/月 |
※2025年1月19日にGitHub Copilot Proでo1-mini、o1-gaが利用できるようになりました。
但し、o1-gaはレイト制限があり、10回程度しか使えませんでした。

https://github.blog/jp/2024-12-19-github-copilot-in-vscode-free/

https://docs.github.com/ja/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/about-github-copilot-free

https://docs.github.com/ja/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-github-copilot-pro-subscription/canceling-your-copilot-pro-trial-as-an-individual-user


## ６．実行結果

### 6.1. 素数の計算

APIプロバイダーをAzure OpenAIに設定して素数を表示するPythonのプログラムを作成してもらいました。
Roo CodeのCustom Instructionの設定は[Sunwood-ai-labs/MysticLibrary](https://github.com/Sunwood-ai-labs/MysticLibrary)さんのprompt/codding/[CLAUDE-DEV-SYSTEM-PROMT-PS.md](https://github.com/Sunwood-ai-labs/MysticLibrary/blob/main/prompts/coding/CLAUDE-DEV-SYSTEM-PROMT-PS.md)を設定させていただいています。
記事は「[cline (旧：Claude-dev) 向けPowerShellシステムプロンプトの開発](https://zenn.dev/sunwood_ai_labs/articles/powershell-prompt-for-cline)」を参照してください。

APIプロバイダーの設定は以下の通りです
```
APIプロバイダー：OpenAI Compatible
Base URL：https://ptf-eus.openai.azure.com//openai/deployments/gpt-4o-mini/chat/completions?api-version=2024-06-01（エンドポイントとデプロイ名、モデルバージョンを含む）
APIキー：APIキー
Search and select a modle：gpt-4o-mini（デフォルトモデル名）
Set Azure API Version：2024-08-01-preview
```

エクスプローラで空のプロジェクトフォルダPrimeNumberを作成してvscodeで空のPrimeNumberフォルダを開いておき、以下のプロンプトを入力します。

プロンプト：**1から100までの素数を計算して表示するPythonプログラムを作成してください**

上記プロンプトで実際に実行されたのは以下の内容です。
① Pythonプログラムを作成するためのファイルを作成します。
② プログラムの内容を記述します。(コーディング)
③ prime_numbers.pyファイルの保存(vscodeで開いていたフォルダに保存されます)
④ PowerShellを使用して生成したprime_numbers.pyをPythonで実行
⑤ ローカルGitにコミット(ちゃんとgit addもしてくれるし、コミットメッセージはいい感じに考えてくれる)
　(当然、git initはしていないので、git commitでエラーになるのですが、エラーを自動検出して、git initを実行して.gitフォルダを生成し、その後git commitしてくれてます)
　git commitが一度エラーになるのがRoo Codee(Cline)がカワイイところですが、プロンプトを消費してくれます。

因みにこちらの作業で消費したプロンプトはInput:116.5k($0.003495:)、Output:1.5k($0.00009)で合計$0.00359(日本円で0.5385円)でした。
gpt-4o-miniは安いですね

上記コストはChatGPT o1で費用を計算してもらったものです。

https://chatgpt.com/share/e/677b22bb-3d7c-8005-86a7-95c53b98a3ee


Roo Codeはvscodeのコンソールで以下のように生成したコードも自動実行してくれます。
以下の例では実行後にgit commitしようとしてgit initされていないエラーが発生し、その後自動的にgit initコマンドを実行して再コミットする様子の記録です。
```
PS Q:\OneDrive\Python\PrimeNumber> python prime_numbers.py
1から100までの素数: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
PS Q:\OneDrive\Python\PrimeNumber> git add prime_numbers.py; git commit -m " feat: 1から100までの素数を計算するプログラムを作成
>> 
>> 1から100までの素数を計算し、表示するPythonプログラムを作成しました。"
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
PS Q:\OneDrive\Python\PrimeNumber> git init
Initialized empty Git repository in Q:/OneDrive/Python/PrimeNumber/.git/
PS Q:\OneDrive\Python\PrimeNumber> git add prime_numbers.py; git commit -m " feat: 1から100までの素数を計算するプログラムを作成
>> 
>> 1から100までの素数を計算し、表示するPythonプログラムを作成しました。"
[master (root-commit) 3d7382b]  feat: 1から100までの素数を計算するプログラムを作成
 1 file changed, 16 insertions(+)
 create mode 100644 prime_numbers.py
PS Q:\OneDrive\Python\PrimeNumber>
```

gitのコミットの結果をログから確認

![local_git_repositry.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/d1ff0a8b-da50-64cb-6689-e871277df657.png)

### 6.2. リアルタイム文字起こしツールの生成

OpenRouterのanthropic/claude-3.5-sonetを使って2024年11月30日に試したaoai-realtime-audio-sdkの**rtclient**を使ってリアルタイム文字起こしプログラムを作ってもらいます。

![real-time-transcript.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/e4a5ec5a-2ab1-a9f0-275d-db9f3783ce08.png)

プロンプト

```powershell
aoai-realtime-audio-sdkを使ってPythonで話した言葉を文字起こしするツールを作成してください。
必要なrtclientパッケージはインストールしてください。
AZURE_OPENAI_ENDPOINT、AZURE_OPENAI_API_KEY、AZURE_OPENAI_DEPLOYMENT、OPENAI_API_KEYは.envファイルから読み取るようにしてください。
利用するモデルはAzure OpenAIのgpt-4o-realtime-previewモデルです。
コンピュータのマイクからの入力はpyaudioのエコーキャンセル機能を使ってください。
```

当初の指示ではgpt-4o-realtime-previewモデルを使用する予定でしたが、実装上の課題があり、途中でWhisperモデルに切り替えることになりました。約20分間のトライアンドエラーを経て、最終的に動作するコードを生成できました。

East US2リージョンのWhisperには1分あたり3回という要求レート制限があり、この制限に対応する必要がありました。また、システムが複数のマイクを検出したため、当初は全てのマイクからの入力を監視する仕様となっていました。

このプロセスを通じて、AIの優れたエラー診断能力と問題解決力を実感することができました。

Whisperには1分あたり3回という要求レート制限では現実的に使えるものではありませんが、自然言語でコードが作成できるのは素晴らしいです。

```py
import os
import pyaudio
import wave
import asyncio
import json
from dotenv import load_dotenv
from openai import AsyncAzureOpenAI

# 環境変数の読み込み
load_dotenv()

# Azure OpenAI の設定
client = AsyncAzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    api_version="2024-02-15-preview",
    azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT")
)

# PyAudio の設定
CHUNK = 4096
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100

class AudioTranscriber:
    def __init__(self):
        self.p = pyaudio.PyAudio()
        
        # Logicool BRIOのデバイスインデックスを取得
        self.device_index = self.get_brio_device_index()
        if self.device_index is None:
            raise ValueError("Logicool BRIOが見つかりませんでした。")
        
        print(f"\nLogicool BRIO (デバイス {self.device_index}) を使用します。")
        
        # 入力デバイスの設定
        self.stream = self.p.open(
            format=FORMAT,
            channels=CHANNELS,
            rate=RATE,
            input=True,
            frames_per_buffer=CHUNK,
            input_device_index=self.device_index,
            stream_callback=self._audio_callback
        )
        
        self.frames = []
        self.is_recording = True
        self.silence_threshold = 1500  # 無音判定のしきい値を大幅に引き上げ
        self.last_transcription_time = 0
        self.min_transcription_interval = 20.0  # 20秒間隔（1分間に3回まで）

    def get_brio_device_index(self):
        """Logicool BRIOのデバイスインデックスを取得"""
        print("\n利用可能なオーディオデバイス:")
        for i in range(self.p.get_device_count()):
            dev_info = self.p.get_device_info_by_index(i)
            if dev_info.get('maxInputChannels') > 0:
                device_name = dev_info.get('name')
                print(f"デバイス {i}: {device_name}")
                # Logicool BRIOを探す
                if "BRIO" in device_name:
                    return i
        return None

    def _audio_callback(self, in_data, frame_count, time_info, status):
        if self.is_recording:
            self.frames.append(in_data)
        return (in_data, pyaudio.paContinue)

    def is_silent(self, data):
        """音声データが無音かどうかを判定"""
        # 音量レベルをデバッグ表示
        volume_level = max(abs(int.from_bytes(data[i:i+2], 'little', signed=True)) 
                         for i in range(0, len(data), 2))
        print(f"現在の音量レベル: {volume_level}")
        return volume_level < self.silence_threshold

    async def transcribe_audio(self):
        try:
            print("音声認識を開始しました。Ctrl+Cで終了します。")
            print("マイクに向かって話してください。")
            print(f"※ レート制限により、{self.min_transcription_interval}秒ごとに音声認識を実行します。")
            print(f"※ 無音判定のしきい値: {self.silence_threshold}")
            
            self.stream.start_stream()
            buffer_duration = 5.0  # 5秒分のバッファ
            samples_per_buffer = int(RATE * buffer_duration)
            
            while self.stream.is_active():
                current_time = asyncio.get_event_loop().time()
                
                # レート制限に基づく最小間隔を確保
                if current_time - self.last_transcription_time < self.min_transcription_interval:
                    await asyncio.sleep(0.1)
                    continue

                if len(self.frames) * CHUNK >= samples_per_buffer:
                    # フレームをまとめて音声データとして処理
                    audio_data = b''.join(self.frames)
                    self.frames = []

                    # 無音でない場合のみ処理
                    if not self.is_silent(audio_data):
                        print("音声を検出しました。文字起こしを開始します...")
                        # WAVファイルとして保存
                        with wave.open("temp.wav", 'wb') as wf:
                            wf.setnchannels(CHANNELS)
                            wf.setsampwidth(self.p.get_sample_size(FORMAT))
                            wf.setframerate(RATE)
                            wf.writeframes(audio_data)

                        # 音声認識を実行
                        try:
                            with open("temp.wav", "rb") as audio_file:
                                response = await client.audio.transcriptions.create(
                                    model=os.getenv("AZURE_OPENAI_DEPLOYMENT"),
                                    file=audio_file,
                                    response_format="text",
                                    language="ja"
                                )
                                if response and response.strip():
                                    print(f"認識結果: {response}")
                                    self.last_transcription_time = current_time
                        except Exception as e:
                            if "429" in str(e):
                                print("APIレート制限に達しました。20秒後に再開します。")
                                await asyncio.sleep(20)
                            else:
                                print(f"音声認識エラー: {str(e)}")
                                await asyncio.sleep(2)
                    else:
                        print("無音を検出しました。スキップします。")

                await asyncio.sleep(0.1)

        except KeyboardInterrupt:
            print("\n音声認識を終了します。")
        finally:
            self.cleanup()

    def cleanup(self):
        self.is_recording = False
        self.stream.stop_stream()
        self.stream.close()
        self.p.terminate()
        if os.path.exists("temp.wav"):
            os.remove("temp.wav")

async def main():
    transcriber = AudioTranscriber()
    await transcriber.transcribe_audio()

if __name__ == "__main__":
    asyncio.run(main())
```
![transcribe.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/343dd031-be31-701a-394e-e72f0df73e6d.png)

OpenRouterの課金
この作業を行う前は9.7USDくらいでしたので、約1USDくらい消費しました。
自然言語だけでコードが作成できてこの価格

![openrouter_credits.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3764962/fb6acaf1-12f8-c386-e4d2-d3971f05e76e.png)

## ７．感想(2025年3月1日更新)
これまで、VSCodeの拡張機能であるGenie AIをコーディングアシスタントとして利用してきました。しかし、Roo Codeは操作を必要としないため、より感動的な体験を提供してくれます。
推論モデルやRoo Codeのカスタムインストラクション設定に起因する可能性がありますが、Claude-3.5-SonnetやGPT-4o-miniを使用しても、なおケアレスミスが目立ちます。
2月24日にリリースされたAnthropicのClaude-3.7-Sonnetは、ケアレスミスが軽減され大幅に改善されていますが、それでも正解に到達するまでには試行錯誤が必要な印象です。
会社でLLMのゲートウェイプログラムを作成する際、OpenAIのReasoningモデルに対応するため、Roo Codeが内部的に発行するプロンプトを少し調査しました。その結果、Roo Codeは毎回大量のシステムプロンプトを送信しており、それに伴い多くのプロンプトトークンが消費されることがわかりました。
したがって、多くのトークンを消費する点には注意が必要です。
当初はGitHub Copilot Pro契約を利用する予定でしたが、2025年3月1日にこの記事を更新した時点では、その考え方に多少変化があります。
理由としては、GitHub Copilot Pro契約で利用できるVS Code LM APIは無制限に使用できる点が魅力的ですが、プロンプトに画像を貼り付けられない点が個人的には不満です。
また、言葉だけでは伝わりにくい情報も存在し、絵や図の方が効果的な場合があります。しかし、そのような場合にRoo Codeへ手書きのメモを渡して処理させるという裏技が使えないのも欠点です。
この点では従量課金制となってしまいますが、OpenRouterは使用に制限がなく、Claude-3.7-Sonnetによって文書作成やコード開発が非常に効率的に行えます。
そのため、現在はGitHub Copilot FreeとOpenRouterの二つのサブスクリプションを併用しています。
例えば、食べログ記事の執筆にはGitHub Copilot Freeで提供されるClaude-3.5-Sonnetを活用し、プログラムの要素技術開発にはOpenRouterのClaude-3.7-Sonnetを利用するという使い分けを行っています。
しかし、食べログ記事一つにおいてもClaude-3.7-Sonnetは魅力的な記事を生成してくれるため、どちらを選ぶべきか悩むことがあります。とはいえ、記事作成ごとに数十円の課金が発生する点も課題です。
細部においては改善の余地が残るものの、総合的には未来を感じさせる自律型AIエージェントであると評価できます。
## ８．参考URL

https://github.com/RooVetGit/Roo-Code

https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline

https://www.youtube.com/watch?v=63HNxpE9JYY

https://zenn.dev/sunwood_ai_labs/articles/powershell-prompt-for-cline

https://github.com/Sunwood-ai-labs/MysticLibrary/blob/main/prompts/coding/CLAUDE-DEV-SYSTEM-PROMT-PS.md

https://docs.github.com/ja/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/about-github-copilot-free

https://qiita.com/youtoy/items/c4e70aa794b03d86ed08