活用例に戻る
開発者ツール

AI コードアシスタント — Claude と GPT で Cursor のようなツールを構築

Cursor、Aider、Cline、Continue.dev — どれも同じ少数の最先端 LLM に支えられています。コーディングツールや自社開発製品内のコパイロットを構築するなら、アーキテクチャと現実的なコストを解説します。

最終確認日:。

コードAIの状況を簡単に説明すると

Cursor、Aider、Cline、Continue.dev、そしてClaude Code自体。これらはすべて、同じ3〜4種類の最先端LLMの上に構築されています。差別化要因はモデルではなく、その周りのエージェントループ、ファイルのインデックス作成、差分適用、ユーザー体験です。これらのいずれかを構築している場合(または自社の開発者向け製品にコーディング支援アシスタントを組み込む場合)、このページではモデルメニュー、実際のコスト、レイテンシ予算を説明します。

コードワークフロー向けモデルメニュー

  • Claude Haiku 4.5(claude-haiku-4-5)— オートコンプリート(補完1回あたり約$0.0001〜0.0005)。レイテンシの勝者であり、プロバイダーを直接呼び出す場合に匹敵するストリーミングの最初のトークンまでの時間。
  • Claude Sonnet 5(claude-sonnet-5)— コードベースとのチャット、複数ファイル編集、エージェントループ。$1.40 / 1Mあたり$7.00で、Cursor級の主力モデル。
  • Claude Opus 5(claude-opus-5)— 詳細なレビュー、アーキテクチャ批評、セキュリティ監査。より低速(P50約3秒)ですが、最も強力な推論能力を持ち、1Mあたり$3.50 / $17.50。
  • GPT-5.6 Sol(gpt-5-6-sol)— OpenAIのコード調整モデル。同等の品質で、スタイル上の好みが異なります。

2つの中核フロー

code_assistant.py
import json
from openai import OpenAI
client = OpenAI(api_key="sk-kn-...", base_url="https://api.kunavo.com/v1")

# Code completion (autocomplete-as-you-type)
def complete(file_content: str, cursor_offset: int, file_path: str) -> str:
    before = file_content[:cursor_offset]
    after = file_content[cursor_offset:]
    resp = client.chat.completions.create(
        model="claude-haiku-4-5",   # FAST for IDE latency
        messages=[
            {"role": "system", "content": (
                "Complete the code at the cursor. Output ONLY the inserted "
                "text — no markdown, no explanation."
            )},
            {"role": "user", "content": (
                f"<file path=\"{file_path}\">\n{before}<CURSOR>{after}\n</file>"
            )},
        ],
        max_tokens=200,
        stop=["<CURSOR>", "</file>"],
    )
    return resp.choices[0].message.content

# Code review (heavier model). Claude enforces a json_schema
# response_format; json_object it does not.
REVIEW = {
    "type": "object",
    "properties": {
        "comments": {"type": "array", "items": {
            "type": "object",
            "properties": {"file": {"type": "string"},
                           "line": {"type": "integer"},
                           "comment": {"type": "string"}},
            "required": ["file", "line", "comment"],
            "additionalProperties": False,
        }},
        "verdict": {"type": "string", "enum": ["approve", "request_changes"]},
    },
    "required": ["comments", "verdict"],
    "additionalProperties": False,
}

def review(diff: str, conventions: str) -> dict:
    resp = client.chat.completions.create(
        model="claude-opus-5",
        messages=[
            {"role": "system", "content": [{
                "type": "text",
                "text": conventions,  # team style guide, security policy
                "cache_control": {"type": "ephemeral"},
            }]},
            {"role": "user", "content": f"Review this diff.\n\n{diff}"},
        ],
        response_format={"type": "json_schema",
                         "json_schema": {"name": "review", "schema": REVIEW}},
        max_tokens=2000,
    )
    return json.loads(resp.choices[0].message.content)

機能別レイテンシ予算

  • インラインオートコンプリート:TTFTは<200msである必要があります。Claude Haiku 4.5。出力をストリーミングし、カーソル移動時に中止します。
  • コードベースとのチャット:TTFTは<500msなら許容範囲です。Sonnet+ストリーミング。生成中のレスポンスを表示します。
  • 複数ファイル編集/リファクタリング:5〜30秒は通常の範囲です。進捗を表示し、バックグラウンドで実行し、レビュー用に差分を表示します。
  • PRレビュー:10〜60秒なら許容範囲です。Opusで詳細分析を行い、実行可能なコメントとして整形します。

コード製品のコスト構造

現実的な開発者1人あたり月間消費量(ヘビーユーザー):

  • 1日約500回の補完 × Haiku 約$0.0003 = 1日$0.15 = 月$4〜5
  • 1日約30回のチャットセッション × Sonnet 約$0.05 = 1日$1.50 = 月$30〜45
  • 週約3回のPRレビュー × Opus 約$0.30 = 週$1 = 月$4
  • ヘビーパワーユーザー:約月$40〜55のAPIコスト
  • 平均的なユーザー:約月$10〜15

コードAI製品の多くはユーザーあたり月$20で料金設定しています。余裕はありますが、パワーユーザーでは厳しい水準です。プロンプトキャッシュは不可欠です。ワークスペースのコンテキスト(ファイル構造、規約、最近のファイル)をキャッシュに入れ、呼び出しごとに直近の編集コンテキストだけを新しくします。入力コストを50〜70%削減できます。キャッシュの設定方法。

取り入れるべきアーキテクチャパターン

  • FIM(Fill-in-Middle)プロンプティング:「ここから補完して」とする代わりに、before<CURSOR>afterを渡してモデルに前後両方を使用させます。
  • 停止シーケンス:stop=["<CURSOR>", "</file>", "```\n"]により、要求された補完を超えてモデルが創作するのを防ぎます。
  • 複数ファイル編集のツール使用:5つのファイルを1つのレスポンスで出力するようモデルに求めないでください。tools=[{name: 'edit_file', ...}]を使用して構造化された編集を生成させ、それをアトミックに適用します。
  • ストリーミングによる投機的デコーディング:最初の約50トークンを到着次第表示します。完全なレスポンスが完了する前でも、ユーザーは適切なものを選べます。

数秒でプロバイダーを切り替える

KunavoはOpenAIワイヤー互換です。OpenAIのSDKでアシスタントを構築済みなら、base_urlを置き換えるだけで、同じコードからClaudeとGPTにアクセスできます。移行についてはOpenAI SDKでClaudeを呼び出すをご覧ください。

開始:/app/signup — $10のチャージから従量課金(オートコンプリート約30,000回)。残高は失効しません。エンドポイントのリファレンスは/docs/chat、AnthropicネイティブのMessages APIは/docs/messagesです。

よくある質問

AIコーディングアシスタントのヘビーユーザーは、API利用料がいくらかかりますか?

ユーザーあたり$20の料金設定に対し、APIコストは月額約$40–55です。この利益幅が成り立つのは、プロンプトキャッシュによって入力コストが50–70%削減されるからにほかなりません。

コーディングアシスタントの各機能には、どのモデルが適していますか?

インライン補完では、最初のトークンまでを200ms未満にする必要があるため、Claude Haiku 4.5が適しています。コードベースとのチャットでは500ms未満が必要で、Claude Sonnet 4.6が適しています。PRレビューでは10–60秒待てるため、Claude Opus 4.7が適しています。

補完プロンプトはどのような形式にすべきですか?

Fill-in-Middleプロンプトを使います。モデルがカーソルの前後両方を参照できるよう、リクエストをbefore<CURSOR>afterの形式にし、出力のはみ出しを防ぐためstop=['<CURSOR>', '</file>']を設定してください。

アシスタントは複数ファイルの編集をどのように処理すべきですか?

tools=[{name:'edit_file', ...}]のようなツール定義を渡し、編集をアトミックに適用します。複数のファイル全体を1回の応答で出力するようモデルに求める方法は避けてください。