13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[ことはじめ] 非プログラマーのためのAIコーディング #Cline

13
Last updated at Posted at 2026-02-18

本記事は日本オラクルが運営する下記Meetupで発表予定の内容になります。発表までに今後、内容は予告なく変更される可能性があることをあらかじめご了承ください。

ChatGPT Image 2026年2月11日 18_30_13.png

AIコーディングエージェントとは

そもそもAIエージェントとは、ユーザーの要求に応じてさまざまな処理を自律的に実行するAIプログラムを指します。

下図のように「自社の人気商品の売り上げ分析を行いマーケティングや在庫適正化をしたい」とAIに話しかけると、AIが自律的にSNSで人気商品を調査したり、調査結果からデータを分析し、社内のSCMに連携して在庫の過不足をコントロールしてくれるようなイメージです。

近年、この便利な仕組みをどの領域で有効活用できるのか、多くのユーザーや企業が模索しています。

image.png

その数ある適用領域の一つがコーディングです。ユーザーの指示のもとでアプリケーションのコードを生成し、実行まで行うAIエージェントは「AIコーディングエージェント」と呼ばれます。AIエージェント市場の中でも、コーディング分野は技術革新のスピードが比較的早く、かつ最も成功している領域の一つだと言えるでしょう。

どんなことをしてくれる?

AIコーディングエージェントはその名の通り、ユーザーの指示に応じて自律的にコーディングを行い、目的のアプリケーションを作成してくれるAIエージェントです。

image.png

しかし、昨今のAIコーディングエージェント関連製品は、単なるコード生成処理だけにとどまらず、下記のような多岐にわたる機能を備えています。

  • 開発タスクの作成やリアルタイムでの進捗監視
  • 開発環境のプロビジョニング
  • コードの生成と実行、エラーの修正と再実行
  • 各種コマンドの実行やエラー調査
  • リファクタリングとコード品質改善
  • セキュリティ診断と脆弱性検出
  • CI/CDパイプラインの構築支援
  • 外部サービスとの連携

上記は主だった項目のみでごく一部をリストしたにすぎません。もはや「コーディング支援」というよりも、プロジェクトとしてのアプリケーション開発全体をカバーし、そのプロセスを包括的に支援する存在へと進化していることが分かります。

どんなツールを使う?

実際にAIコーディングの環境を整える際には、以下の3つを揃える必要があります。

  • コードエディタ
    AIコーディングエージェントを活用するうえで、まず基盤となるのがコードエディタです。従来は人間がコードを書くためのツールでしたが、近年はAIとの統合が進み、エディタ自体がエージェントの操作インターフェースとして機能します。ファイル編集、差分確認、ターミナル実行、Git操作などを一体的に扱え、AIの提案を即座に反映・検証できる環境を提供します。開発者とAIが同じワークスペースを共有するためのハブと言える存在です。

  • コーディングエージェント
    コーディングエージェントは、ユーザーの指示をもとにタスクを分解し、コード生成・実行・修正までを自律的に進める中核的な存在です。単なる補完機能とは異なり、複数ファイルを横断した変更やエラー解析、テスト実行なども行います。必要に応じてツールや外部APIを呼び出しながら目的達成までループを回す点が特徴です。開発プロセス全体を俯瞰しながら実行主体として振る舞う、いわば“仮想開発者”の役割を担います。

  • 大規模言語モデル(LLM)
    コーディングエージェントの知的基盤となるのが大規模言語モデル(LLM)です。自然言語の理解だけでなく、プログラミング言語の文法や設計パターン、エラーメッセージの意味まで学習しており、高度な推論を可能にします。エージェントはこのLLMを活用してコード生成や原因分析を行います。モデルの性能がそのままエージェントの能力に直結するため、精度・速度・コンテキスト長などが重要な選定ポイントとなります。

主に、コードエディタに後からコーディングエージェントをプラグインして利用するパターンと、コードエディタにコーディングエージェントが組み込み済の状態になっているケースの2パターンがあります。著名なツールとしては下表。

コードエディタ 開発元 OSS / Proprietary 概要
Visual Studio Code Microsoft OSS 言わずと知れた、恐らく世界で一番有名なコードエディタ。マイクロソフト社からOSSとしてリリースされた製品。VSCodeの拡張機能としてコーディングエージェント(Clineなど)をインストールして利用。
Cursor Anysphere Proprietary VSCodeをフォークして開発された製品。初期状態でコーディングエージェントが組み込み済のAIネイティブエディタ。コードベース全体を理解し、対話的に修正・生成できる。
Claude Code Anthropic Proprietary VSCode系エディタとは異なり、IDEではなくCLIベースで動作するターミナル型AIコーディングエージェント。プロジェクト全体を読み取り、ファイル編集・コード生成・テスト実行・リファクタリング・PR作成までを対話形式で自律的に実行できる。エディタに組み込むのではなく、開発ワークフローそのものに統合するタイプのツール。
Antigravity Google Proprietary VSCodeをフォークして開発されたAIネイティブエディタ。チャットベースのUIを中心に、プロジェクト全体のコンテキストを理解しながらコード生成・修正・設計支援を行う。単なる補完ではなく、複数ファイルにまたがる変更やリファクタリングを対話的に実行できる点が特徴。
Windsurf Codeium Proprietary VSCodeをフォークして開発されたAIファーストIDE(旧Codeium Editor)。AIがコードベース全体を解析し、横断的な修正・生成・説明・デバッグ支援まで一体化して提供する。補完型ツールというよりも、エージェント的にプロジェクトを扱う統合型開発環境。

AIコーディングエージェントの構成例とセットアップ

上述したように様々なコードエディタがある中で、今回は王道のVS Codeのパターンを採用し、下図のような構成でAIコーディングの環境を作ります。

image.png

  • コードエディタ 
    Microsoft社のVS Codeを利用します。ダウンロードサイトからインストーラーを入手し、ウィザードで簡単にインストールできます。マニュアルなどのドキュメント類はこちらから確認できます。インストール後に下記手順で日本語パックをインストールすると日本語表示で利用できます。
    image.png

  • コーディングエージェント
    VS CodeのAIコーディングエージェントとしては最も著名なClineを利用します。AIコーディングの主役となるモジュールであり、本記事の以降のパートでは全てこのClineの機能についてご紹介します。VS Codeの拡張機能の画面から簡単に検索、インストールできます。
    image.png

  • LLMサービス
    Oracleが提供する生成AIのクラウドサービスOCI Generative AI Serviceを利用します。

  • VS CodeからLLMサービスへ接続するための拡張機能
    Oracleが提供するOracle Code Assistを利用します。これにより、OCI Generative AI ServiceがVS Codeから簡単に利用できるようになります。
    現時点ではBetaバージョンの製品なので、上記のリンクからお申込みいただくとVSIXフォーマットのファイルがダウンロードできますので下図の手順でVS Codeの拡張機能としてインストールできます。
    image.png
    下図のようにClineの画面からLLM(Oracle Code Assist)を選択し、Oracle Cloudにログインします。
    image.png
    Oracle Cloudにログインできると下図のようにModelのプルダウンメニューからLLMを選択することができるようになります。
    image.png

以上が VS CodeベースでAIコーディングを行う際の典型的な構成です。もちろんLLMサービスは好みのものを選択可能です。

基本的な使い方

実際に動かしてみると下記の動画のような感じです。左下のテキストフィールドに指示文を入力することで、その内容に応じて、AIコーディングエージェントであるClineが自律的にコード生成を開始します。

cline_01.gif

VS Codeを使った経験がない方にとってはこの画面は情報量が多く、非常に理解しにくいかもしれませんので、この画面の各部の役割を簡単に下記に説明します。

image.png

この画面には赤枠で囲った主に4つのエリアがあり、各エリアに役割があります。

  • ①のエリア
    ユーザーが指示文を入力します。この例では「オラクルクラウドのランディングページを作ってください。」という非常にシンプルなアプリ開発の指示文になっていますが、実際はもっと仕様めいた文章を入力したり箇条書きで要件をリストして入力します。

  • ②のエリア
    ①の指示文を受けて、Clineが開発計画(というと大げさですがtodoリスト)のようなものを生成し、それに沿って様々な処理を実行することになります。多くはコードを生成してファイルに保存したり、OSコマンドを実行したりする処理ですが、それらの説明がこの②のエリアに流れて表示されます。たまにClineから質問されたりしますので、それに対する応答を①に入力するというチャットのやり取りでアプリを開発してゆきます。

  • ③のエリア
    Clineが実際にコードを生成したり、修正したり、ファイルで保存したりという動きの様子がこのエリアに動的に表示されます。タブ形式で複数のファイルが表示され、ここでユーザーがコードを編集することもできます。

  • ④のエリア
    ClineがOSのコマンドを実行する様子がコマンドターミナルに動的に表示されます。その他SQLを実行する場合にSQLクライアントの画面にもタブで切り替えられます。

③、④の画面は②の処理内容に応じて、自動的に画面が表示され、ユーザーがここをあまりいじることはありません。自分でコードを修正したり、コマンドを実行したりしたいときだけですが、基本はCline任せという感じです。(そのためのAIコーディングなので)

つまり、開発者の作業の殆どは左側のペインで行うことになります。①に指示文を入力し、②でClineの計画説明をふむふむと参照しながら、③、④の画面で生成されるコードや作成されるファイル、実行されるコマンドなどを眺めているという感じです。

Clineを使うならこれだけは必ず知っておきたい機能

Clineには実に様々な機能が用意されており、その全てを本記事でお伝えすることは難しいですが、Cline を「便利」に、そして「安全」に利用するため、最低限、理解しなければいけない定番の設定と機能がありますのでそれらをいくつかピックアップして以降でご紹介します。

Workspace

WorkspaceはClineをインストールした後に真っ先に設定が必要となる機能です。Clineはインストールされた環境で、アプリを開発するために、コマンド実行やファイルの作成・削除・上書き処理などを自律的に実行します。これら自動処理は便利な反面、ユーザーが意図しないファイルを削除・編集してしまうかもしれないというリスクもつきまといます。

image.png

そのため、フォルダ(ディレクトリ)を作成し、それをワークスペースに設定することで、Clineが勝手にワークスペース外のファイルを削除・変更できないようにします。つまり、ワークスペースとは、開発環境の中でClineが自由に読み書きできる領域の境界線となる仕組みです。

設定はいたって簡単です。ワークスペースにしたいフォルダを作成し、VS Codeのファイルメニューから「フォルダーを開く」をクリックし、作成フォルダ済のフォルダを選択するだけです。

image.png

下図のように、VS Codeのワークスペースの画面に自動的に遷移します。下図はワークスペースを指定した直後なのでフォルダもファイルも全く作成されていない状態です。

image.png

下図のように右上のメニューからフォルダやファイルを作成することができます。

image.png

もちろんClineが生成したコードはファイルとして自動的にこのワークスペースに保存されます。

  • Clineの実行は普段ご自身が使われいてる環境ではなく、仮想環境など開発専用の環境を用意することが望ましいです。
  • 一般的にはプロジェクト毎にワークスペースを作成します
  • ファイルの読み書きはワークスペースに限られますが、プログラムの実行はOSパスが通っていれば実行可能です。

Checkpoint

ユーザーはClineと会話をしながら開発を進めることになります。会話の度にClineが自律的に様々な処理を行うわけですが、その処理の度に、内部でチェックポイントが取得されています。このチェックポイントを元に、特定の処理をUndoすることができます。

image.png

例えば上図のように、処理1、処理2が完了した後に、処理2だけをUndoすることができます。このように会話の流れ(全体の処理フロー)を維持したまま、特定の処理のみをUndoして、その処理がなかった状態に戻すことができる機能です。

下図のように、ユーザーの指示文に対して実行された処理が表示されますが、処理完了後には処理内容の上に「Restore」ボタンが表示されます。このボタンをクリックすると、表示されている処理内容がUndoされます(チェックポイントがリストアされる)。

image.png

処理がUndoされると、下図のように処理内容の部分が削除され、「Restore」ボタンが青色に変更されます。

image.png

この機能を利用するには、gitのインストール必須となっています。つまりgitのチェックポイントの機能を使って実装されているということですね。

Plan/Act

Checkpoint機能により、Clineで自動実行された処理はUndoができます。なのでどんどん指示文を投げて処理を実行すればよいのですが、やはり処理される前に事前にその内容を知りたいということもありますよね。そのためにあるのがPlan(プラン)モードとAct(実行)モードの切り替え機能です。

デフォルトではActモードとなっており、入力された指示文の内容に沿って、コード生成、コマンド実行、ファイル作成・編集などの処理が実際に実行されます。これをPlanモードに切り替えると、実際に処理を実行する前に、Clineが処理内容を説明してくれて、その処理内容で問題なければAct(実行)モードに切り替えてくださいという応答が入ります。

下図の下部にあるボタンをPlanモードに切り替え、指示文を入力すると、Clineの応答に処理の説明とPlanモードであることが明記されるようになります。

image.png

そして、下図のように処理内容に問題がなければACTモードで実行が促されます。

image.png

Auto ApproveとYoloモード

Clineで実際に開発処理を進めると、Clineから実行する処理についてユーザーに許可を求められることがあります。例えば下図は、生成したコードをファイルに保存する許可を求められたときの表示です。このとき、一旦Clineの処理が完全にストップし、下図のSaveボタンをクリックすることで処理が再開します。

image.png

下図は、Clineがコマンド実行の許可を求めている画面です。

image.png

このように頻繁に処理がストップし、その都度ユーザーが介入しなければいけないのは面倒だ、という方向けにAuto Approveの機能があります。下図のように、ある程度安全な処理に関してはClineにお任せということで各処理にチェックを入れ、許可を自動化します。これにより、ユーザーは、Clineの自動処理中に頻繁に画面をチェックする必要がなく、他の作業を並行して行えるようになります。

image.png

更にアグレッシブな設定としてYoloモード(You Look Only Oneceの略)という設定があり、こちらは Auto Approveにリストされている項目以外の処理もオール許可という結構危険な機能です。

image.png

サンドボックス環境前提で、長時間かつ頻繁な許可が発生する場合はアリかもしれません。

Focus Chain

長時間実行されるタスクの進捗状況をリアルタイムで追跡する、自動ToDoリスト管理機能です。

image.png

上図のように、ユーザーの指示文に対して、何をどのような順序で実行すべきかのToDoリストを生成し、それに沿って自律的に処理を一つ一つ実行してゆき、一つ処理が完了するたびにリストの該当箇所を終了状態にアップデートします。

下図の手順でFocus Chainのトグルを有効にします。

image.png

Focus Chain無効時は下図のようにTODOが生成されません。

image.png

Focus Chain有向時は下図のようにTODOが生成され、進捗管理されます。

image.png

上記のような簡単な指示文は数十秒で処理が完了しますのであまり有効ではありませんが、実際の開発の現場では、Clineが何時間も処理を継続するような複雑なタスクになりますので、進捗状況が管理できる機能は必須と言えます。

Cline Rules

ユーザーの全ての指示の中で、毎回共通する内容を予めルール化することで、Clineがそのルールに従って処理を実行できるようにする機能がCline Rulesです。ルールはマークダウンファイルに自由書式で記載します。

image.png

これにより、新しいタスクを開始するたびに同じ指示を繰り返し入力しなくても、ルールを一度定義すれば、Cline が自動的にそれに従うようになります。

もちろん、ルールは任意の纏まった単位で複数作成することができ、ルール単位で有効・無効を切り替えられます。ユースケースとしては、開発チームのコーディングルール(命名規則、ファイル構成、エラー処理パターン)、ドキュメント作成やテスト要件を標準化するためによく使われますが、これに限らず共通のルールにしたいものは全てが対象にできます。

設定は下図の順序ボタンをクリックし、ルールを定義するマークダウンファイルを表示させます。

image.png

下図のように、右ペインに設定したルールと同じ名前のマークダウンファイルが表示されますので、ここにルールを自由書式で記載してゆきます。

image.png

非常に簡単なサンプルではありますが、例えば下図のような感じです。

image.png

# コーディング規約

# 下記のルールに沿ってコードを生成してください
- 冒頭にコードの概要説明をコメントで記載する
- 各コードブロックの説明の先頭に絵文字を入れてわかりやすくする
- プログラミング言語はPythonで生成

設定できたところで実際に指示文を入力してみます。

image.png

指示文「ニューラルネットワークのサンプルコードを提示してください。」と入力したところ、ルールに定義した3つの条件(①冒頭にコードの概要説明②各コードブロックの先頭に絵文字を入れて説明③Pythonでコード生成)に従っていることが分かります。

上記はサンプルなので非常に短いルールとなりますが、実際の開発の現場ではルールの数も、その中の条件の数も膨大な数になることが予想されます。はじめから完成されたルールを定義するのは難しいので、まずは、最低限の定義を行い、実際に開発をしながら徐々にこれらのルールを育てるような運用になると思います。

RulesにはGlobal RulesとWorkspace Rulesがあります。前者は全てのWorkspaceで有効となるルール、後者はアクティブなWorkspaceでのみ有効となるルールです。

Workflow

定型的な処理や処理フローを反復タスクとしてマークダウンに定義し、バッチ的に実行する機能です。

image.png

処理フローはマークダウンに自由書式で記述します。上図のように、例えば「Step 1 〇〇の処理を実行」、「Step 2 〇〇について検索」、「Step 3 〇〇のコマンドを実行」というような内容で定義します。一般的なワークフローツールはコードやコマンドをエラーがでないようにミスなく定義してゆく必要がありますが、それとは異なり、マークダウンの中で、言葉で定義しますので非常に柔軟で楽に定義できるところがメリットです。もちろんコードやコマンドも記述できますが、「下記のコマンドを参考にして、、、」というような記述でもエージェントがなるべくミスなく実行してくれる点も便利です。

ワークフローは複数定義でき、実行の際は、指示文を入力するテキストフィールドに、事前定義したワークフローの名前をスラッシュコマンドで記載するだけの簡単実行です。

ユースケースとしては、定期的もしくは頻繁に実行する定型処理となり、例えば、リリース処理やCI/CDなどのOps系処理からデータ変換処理など適用範囲は広いと思います。

設定としては、下記の手順でマークダウンファイルを開きます。

image.png

すると、下図のように右ペインにマークダウンファイルが表示されますので、ここに処理フローを定義します。

image.png

例えば、下図のようにgithubの指定のリポジトリのPull Requestの情報を取得し、必要な情報を抜き出してリスト化するワークフローを定義してみます。

image.png

# github リポジトリの日次チェック

## 目的
- 該当リポジトリのOpen PRについて後述するステップの内容を纏める
- 対象のリポジトリURL:https://github.com/oracle/agent-spec

## Step 1 : 現在OpenになっているPull Requestと一覧を取得する
- Open PR 取得は下記コマンドを参考にしてください。
gh pr list --repo oracle/agent-spec --state open --json number,title,isDraft,author,createdAt,body > open-prs.json

## Step 2 : 取得した情報から以下の情報をリスト化しレポートする
- PRタイトルとステイタス
- 内容(body)のサマリ
- 作成者
- 作成日

## 完了条件
- すべてのstepの処理が完了している
- PRの一覧が取得できている

ワークフローの実行はClineのスラッシュコマンドで実行できます。下図のように指示文の入力フィールドにスラッシュ(/)を入力すると実行できるスラッシュコマンドのリストが表示されます。そのリストの中に、事前に定義したワークフローのマークダウンファイルが表示されますのでそれを選択します。

image.png

実行結果は下図の通り、ワークフローに定義した処理が全て実行されていることがわかります。

image.png

ワークフローにはGlobal WorkflowとWorkspace Workflowの二種類があります。前者は全てのWorkspaceで実行できるワークフロー、後者はアクティブなWorkspaceでのみ実行できるワークフローです。

Skills

スキルとは特定のタスク向けにClineの機能を拡張するモジュール式の命令セットを定義する機能です。特に専門性の高い処理について、そのノウハウや処理フローをマークダウンに文書化しておくことで、必要なタイミングでClineが処理を自動的に適用します。

image.png

上図では、ユーザーがCSVファイルの内容を分析する指示文を入力した際に、事前に定義されたスキル data_analysis.mdの内容が読み込まれ、その処理が実行されるイメージです。この場合、data_analysis.mdにデータ分析のノウハウや処理フローを定義しておくことになります。

このマークダウン以外に、参照するサポートファイル(Clineが処理を実行するうえで参考にするドキュメント、テンプレート、スクリプトなど)を定義することもできます。

スキルは複数定義することができ、スキル単位で有効・無効を設定できますが、スキルを使うか使わないか、どのスキルを使うかはClineが自律的に判断します。(もちろんユーザーが指示文で指定することもできます。)

ユースケースとしては「データ分析」、「セキュリティ監査」、「ログ解析」、「DevOps」、「性能テスト」、「負荷テスト」などノウハウが必要かつ専門性の高い処理をスキルとして定義するとよいかと思います。

設定手順は下図のようにスキルを定義します。

image.png

すると下図のように右ペインにスキルの内容を定義するマークダウンが表示されます。Rulesと違い、Skillsはマークダウンのテンプレートがある程度決まっていますのでこの内容に沿って記載する必要があります。

image.png

「データ分析」のスキルをイメージして下記のような内容を定義してみました。

image.png

---
name: demo_skill
description: CSVファイルのデータ分析および機械学習観点を適用するスキル
---

# demo_skill
- CSVファイルを読み込んだときは必ずこのスキルを使用してください。
- データ分析および機械学習の専門家として振る舞ってください。
- 「分析観点・確認事項・次のアクション」を構造化して提示してください。
- 出力は必ず以下の3セクション構成にしてください。

1. データ概要
2. 分析観点
3. 次のアクション

## Steps

1. カラム名・データ型・件数などの基本情報を整理する  

2. 以下の観点で分析ポイントを提示する  
   - 欠損値の割合と補完方針  
   - 異常値の有無と検出方法  
   - 数値データの分布(平均・中央値・分散・歪度)  
   - カテゴリ変数の粒度・偏り  
   - 目的変数の分布(分類/回帰の判定)  
   - 特徴量間の相関係数(多重共線性の確認)  
   - 目的変数との相関・関連性  
   - 特徴量のスケーリング必要性  
   - クラス不均衡の有無  
   - データリークの可能性  

3. モデル構築に向けた前処理案・特徴量設計案・適切なアルゴリズム候補を提案する

ワークスペースにwine_data.csvを配置し、「ワークスペースにあるwine_data.csvの内容を分析してください」と入力し実行してみると下図のような応答となりました。

image.png

一番上の赤枠が指示文です。それに対して二番目の赤枠で事前に定義したdemo_skill(「データ分析」のスキル)がClineにより自動的に読み込まれていることがわかります。そして三番目の赤枠が最終的な結果で、demo_skillの指示内容(「データ概要」のセクションを設ける)に従っていることがわかります。

Rules機能では常に有効設定になっている全てのルールが読み込まれますが、Skillは必要な時に、必要なスキルのみClineが判断して読み込みます。
また、SkillsにはGlobal skillsとWorkspace skillsがあります。前者は全てのWorkspaceで有効となるスキル、後者はアクティブなWorkspaceでのみ有効となるスキルです。

Context Windowの圧縮機能

LLMを使ったアプリケーションでよく課題になるのが「Context Windowの上限制約」です。Context Windowとは一つのセッションの中でLLMが記憶できる会話の量(トークン数)のことで、その量には上限があります。複雑なアプリケーションを開発する場合、当然Clineとの会話は多くなりますし、会話だけでなく読み込むデータ量も多くなりがちです。その結果、まだ実行したい処理があるにも関わらずContext Windowの上限に達してしまう場合があります。これを回避するため、大抵のAIコーディングエージェントにはcontext windowの使用量を圧縮し、残量を増やす機能があります。

image.png

この圧縮は、Clineに任せるAuto Compact機能と、ユーザーが自分で実行する機能の両方が利用できます。ただし、この圧縮処理は、「記録されている会話の要約を行う処理」となり、もとの会話の全てのコンテキストが保持されるわけではないという点に注意する必要があります。つまり、圧縮することにより、コンテキストは失われることになります。

context windowの消費量は非常に重要なため、下図のようにセッション上に、メーター形式で常に表示されています。

image.png

上図のように、残り少ない状況から同一セッション内で新たな会話(指示)を入力した場合、下図のようなエラーとなり、その先の処理が一切できなくなるという状況になります。

image.png

このような状態から、下図の手順で圧縮処理を行うことにより、現在のコンテキストの使用量を圧縮することができます。

image.png

圧縮すると、下図のように残量が確保され、続きの会話を継続して行うことができるようになります。

image.png

この圧縮をClineに自動実行してほしい場合は、Clineの下記画面でAuto Compactを有効にしておきます。

image.png

この圧縮機能を多用するほど要約が行われコンテキストは失われてゆきます。それによって、過去の処理内容の記憶レベルが薄れ、Clineが以前と同じ推論ミスを繰り返したりするようになります。
現状、この制約を完全に逃れる技術的なワークアラウンドはありませんので、全体の開発処理を分割してcontext windowsに収め、後からそれらを結合する作業を行うなど工夫が必要になります。
また、context windowの上限値はLLMによって異なりますのでそちらも注意してLLMを選択する必要があります。

Memory Bank

Memory Bankは異なるセッション間でコンテキストを引き継ぐ機能です。セッションAの会話の内容をナレッジとしてセッションBで有効活用する目的で利用します。副次的にContext Window圧迫の対策にもなりえます。

image.png

仕組みとしては、セッションAでの会話の内容をClineが体系的に整理し、複数のマークダウンファイルに纏め永続化するファイル群をmemory bankと呼んでいます。セッションBで、memory bankからそれらのファイル群をcontext windowに読み込むことで、セッションBでもセッションAのコンテキストを再活用できます。memory bankの内容はclineによってまとめられていますので、セッションAの会話の内容は大幅に圧縮されているため、新たにセッションBでcontext windowを圧迫することはありません。

会話の内容はClineが予め決まったテンプレート(下記の6つのマークダウンファイル)に体系的に纏めます。

ファイル名 内容
projectbrief.md プロジェクトの目的・要件・ゴールを整理した全体方針のドキュメント
productContext.md プロダクトが目指す目的や提供価値を明確にした文書(なぜ存在するのか、どんな課題を解決するのか)
systemPatterns.md システム構成や設計方針、採用しているアーキテクチャや主要な技術的判断をまとめた資料
techContext.md 利用している技術スタック、開発環境、前提となる技術条件や制約事項を整理した内容
activeContext.md 現在進行中の作業内容や最近の変更点、次に取り組む予定など「今」の状況を記録したもの
progress.md 実装済み機能や未完了タスク、現在の進捗状況、把握している課題をまとめた進捗ログ

特に大規模なアプリ開発ではチーム開発になりますし、長期間の開発になりますから、その過程でたくさんのセッションを使うことになります。このような場合、memory bankの機能は非常に有用です。

Subagents (Experimental)

複雑なタスクを複数のエージェントで分担・協力しタスクを実行する機能です。一つのサブエージェントは限られた役割を担当し、複数のサブエージェントが並列で連携しながら複雑なタスクをこなします。(現時点では実験的な機能として実装されてます。)

image.png

ユーザーが指示文の中でサブエージェントの利用を支持することで、メインエージェントがサブエージェントの必要性を判断し、必要と思われる個数のサブエージェントとその役割を自律的に設定します。各サブエージェントは独立したコンテキストウィンドウで処理を行います。残念ながら現時点ではMCPとの併用は不可です。

複雑そうな機能に見えますが、設定はいたって簡単で、下図のように Clineの設定で同機能のトグルを有効にするだけです。

image.png

実際に機能を使ってみます。下図のように、githubのリポジトリをワークスペース内にクローンした状態(ワークスペースの複数のフォルダにCSVファイルやJupyter Notebookなどのプログラムのファイルを配置されている状態)でこれらのファイル群の内容を読み解く指示文(つまり、githubのリポジトリを説明させる処理)を実行してみます。

下図がワークスペースに配置されたgithubリポジトリのファイル群。

image.png

図のように「サブエージェントを使ってワークスペース内のディレクトリ配下のフォルダやファイルの役割を整理してください。」という指示文を実行してみます。

image.png

この例では、ユーザーの指示文に対して、3つのサブエージェントが作成され、それぞれ「ソフトウェアアーキテクト」、「データサイエンティスト」、「技術ドキュメンテーションの専門家」という役割が割り当てられていることがわかります。

各サブエージェントの処理結果の抜粋が以下の通り。

「ソフトウェアアーキテクト」の役割を持つサブエージェントの処理結果
image.png

「データサイエンティスト」の役割を持つサブエージェントの処理結果
image.png

「技術ドキュメンテーションの専門家」の役割を持つサブエージェントの処理結果
image.png

最後にメインエージェントが上記サブエージェントの処理内容を纏めて下図のように応答を生成します。

image.png

このリポジトリは機械学習処理のソースコードファイルと、その学習データのCSVから構成されていますので、上記サンプルの指示文に対して作成されたサブエージェントの数と、各役割は最適なものだと感じます。

MCP

MCPはAIエージェントシステムの中核になる仕組みです。Clineが開発環境の中にある情報だけでなく、インターネットから情報を得たり、外部のシステムを操作できるようになることで開発の柔軟性が高くなり、更に有用なアプリケーションの開発を行うことができるようになります。

image.png

例えば上図では、「Oracle DB操作のMCP」、「Google検索のMCP」、「Github操作のMCP」の3つのMCPをClineに設定しています。これによって、インターネット検索からアプリ開発のための情報を得たり、アプリで利用するデータベースを操作したり、Githubを使ったCI/CDの運用を回したりという操作をClineが自律的に行うことができるようになります。

世の中には既に様々なMCPがリリースされており、下図のようにClineの画面から検索、インストールが可能です。Clineでは実に数百以上のMCPが利用可能なので著名なMCPは大抵ここからインストールできます。

image.png

Playwright : ブラウザ操作のMCP を使ってみる

WebUI自動化でお馴染みのPlaywright(Microsoft)のMCPを使ってみたいと思います。ウェブサイトのチェックやスクレイピング処理をする開発者ご用達のツールです。

上述のマーケットプレイスの画面から下記手順でPlaywright MCPをインストールします。

image.png

下図の手順で、Clineにインストール済のMCPのリストを確認することができます。Playwrightがリストされていることがわかります。

image.png

実際に使ってみます。下図のように「楽天市場のサイトでキーワード「OCI」で検索し、そのスクリーンショットを撮ってください。」という指示文で実行すると、ClineがインストールしたPlaywrightのMCPを使って処理を始めていることがわかります。

image.png

待つこと数分で処理が完了しました。下図が最終的なClineの応答となり、指示通り、検索とスクリーンショットの取得が完了したことがわかります。

image.png

ダウンロードフォルダを開くと下記のようにスクショのファイルが作成されており、ちゃんと指示通りのスクリーンショットが取得できていることがわかります。

image.png

スクショの画像

image.png

Oracle DB操作のMCPを使ってみる

次はDB操作のMCPを使ってみます。
手順としては、

  • Oracle CloudにDBを作成しておきます。(Autonomous Databaseがお勧めです。)
  • VS Codeの拡張で「Oracle SQL Developer Extension for VS Code」をインストール
  • SQL Developer Extensionの画面でDB接続の設定を実行
  • ClineのMCP設定画面(control + shift + p)から「Configure Cline SQLcl MCP」を実行するとClineでOracle DB操作のMCPが使えるようになります。

この状態から下図のような指示文で実行すると、まずClineがMCPを使ってOracle DBに接続していることがわかります。

image.png

処理が続き、表が作成されていることがわかります。

image.png

最終的な応答が下図の通り。

image.png

実際に表が作成されているかどうか、DBに接続して確認してみると、下図の通りちゃんと作成されています。

image.png

その他、沢山のMCPが利用できますが何から試していいかわからないという方は下記のブログにあるものから試してみてください。

5 Recommended MCP Servers for Cline
https://cline.bot/blog/5-tool-mcp-starter-pack-for-cline

さいごに

本記事では、主にClineの設定方法や基本的な使い方、機能について紹介しました。

率直に言うと、現時点ではコーディングや開発環境をまったく知らない人向けというよりも、初学者(経験の浅い開発者)が学習しながらアプリ開発を進めたり、ベテラン開発者が開発効率を高めるために活用したりするユースケースで、特に有用だと思います。

具体的には、次の3点が大きなメリットです。

  • 調査にかかる時間が圧倒的に減る(APIリファレンスの確認、必要な関数の探索、引数の調整など)
  • ライブラリ習得のラーニングコストが大幅に下がる(「答えから学ぶ」感覚で理解できる)
  • 少しの工夫でベストプラクティスに近いコードが生成される

一方で、「寝ている間にAIがアプリケーションをすべて開発してくれる」といったイメージとはまだ距離があります。小規模なアプリケーションであっても、人間による設計判断やレビュー、細かな修正は欠かせません。

これまでの進化の早さを考えれば、今後AIに大部分を任せる開発スタイルも現実味を帯びてくるでしょう。しかし、最終的に責任を負い、コードをコミットするのはあくまで人間です。AIの発達によって開発は加速しますが、その分、開発者に求められる判断力と責任は、むしろこれまで以上に大きくそして重要になっていくのではないでしょうか。

13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?