最速×最安のコーディングAI登場!Grok Code Fast 1で開発が変わる

- 従来モデルに比べハイスピード・低コスト
 - コーディング特化のエージェント型LLM
 - ターミナル操作・ファイル編集など、IDE統合を前提とした設計
 
2025年8月28日、xAIから新たなエージェント型コーディング特化のAIモデルがリリースされました!本記事執筆(2025年8月29日)時点でCursorやGitHbu Copilotで無料で利用可能です!
今回リリースされたGrok Code Fast 1は高速かつ低コストで、コーディングをサポートしてくれます。Grok Code Fast 1は全く新しいモデルであり、軽量モデルアーキテクチャをベースにゼロから設計されています。
本記事ではGrok Code Fast 1の概要から使い方、実際に使ってみた所感をお伝えします。最後までお読みいただければGrok Code Fast 1とそのほかのLLMとの違いを理解することができます。
ぜひ最後までお読みください!
\生成AIを活用して業務プロセスを自動化/
Grok Code Fast 1の概要
Grok Code Fast 1はxAIが新たにリリースしたエージェント型コーディング特化のAIモデル。従来のエージェント型モデルはツールを呼び出す際の処理が遅く感じられることも少なくありません。
そこでxAIは、IDE上でのコード生成・修正作業をより高速に処理できるようにするため、ゼロから新しいアーキテクチャを構築。grepやターミナル操作、ファイル編集など、実際の開発でよく用いられる操作を最適化しています。

Grok Code Fast 1の特徴
「Fast」と名前がついているくらいなので、Grok Code Fast 1の特徴は圧倒的な速度です。
推論過程で並列的にツール呼び出しを進めることで、ユーザーが思考トレースを読み終える前に数十回の処理が完了。また、プロンプトキャッシュ最適化により、キャッシュヒット率は90%以上を実現しています。
Prompt Engineering for Grok Code Fast 1に記載されているように、特にエージェント型タスク(ツールを連続的に呼び出す場面)では、多くのプロンプトの前半部分が共通化されるため、自動的にキャッシュから取得され、推論が加速します。※1
一方で、プロンプト履歴を頻繁に変更したり付け足したりするとキャッシュミスが発生し、速度が大きく低下するリスクがあると述べられています。
また、幅広いプログラミング言語に対応しており、特にTypeScript / Python / Java / Rust / C++ / Goを得意としています。コーディングのみならず新規プロジェクト立ち上げからコードレビュー、バグ修正まで、幅広いタスクをサポート。
Grok Code Fast 1の性能
続いてはGrok Code Fast 1の性能についてです。いくら処理速度が速くても性能がイマイチでは使用に耐えません。
性能として明記されているのはSWE-Bench-Verifiedのフルサブセットにて70.8%を達成したという点のみです。※1
SWE-Bench-Verifiedはソフトウェア開発向けのベンチマークでAIモデルの性能を評価する指標であり、モデルがどれくらいコーディングを人間と同じようにこなせるかということを見ています。
また、下記画像は各モデルの速度と出力価格の関係を示しているグラフです。

グラフは横軸が価格、縦軸が1秒あたりに生成できるトークン数です。トークン数に関しては数値が高いほど処理速度が速いと解釈できます。
Grok Code Fast 1を見てみると、低価格でトークン生成数もダントツです。このグラフからも分かるようにGrok Code Fast 1は非常にコスパが高いモデルと言えます。
Grok Code Fast 1のライセンス
Grok Code Fast 1のライセンスについては、明記されておらず利用規約に記載されています。開発者はGrok Code Fast 1を使って生成した結果を自由に利用・配布・商用利用ができますが、モデル自体の配布や改変、再販は禁止されています。※2
| 利用用途 | 可否 | 
|---|---|
| 商用利用 | ⭕️ | 
| 改変 | ⭕️ | 
| 配布 | ⭕️ | 
| 特許使用 | 🔺 | 
| 私的使用 | ⭕️ | 
なお、ポッドキャストの自動生成も可能なレベルのTTSについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

Grok Code Fast 1の料金
Grok Code Fast 1は従来のモデルに比べ、低コストでAPI利用料は下記のとおりです。
| 料金/トークン | |
|---|---|
| 入力 | $0.20 / 100万トークン | 
| 出力 | $1.50 / 100万トークン | 
| キャッシュ入力 | $0.02 / 100万トークン (繰り返し利用する部分が安価に処理される仕組み)  | 
上記はGrok Code Fast 1の100万トークンあたりのコストの表です。
ちなみにAnthropicのAPI料金一覧は下記です。
| Model | Base Input Tokens | 5m Cache Writes | 1h Cache Writes | Cache Hits & Refreshes | Output Tokens | 
|---|---|---|---|---|---|
| Claude Opus 4.1 | $15 /100万トークン | $18.75 /100万トークン | $30 /100万トークン | $1.50 /100万トークン | $75 /100万トークン | 
| Claude Opus 4 | $15 /100万トークン | $18.75 /100万トークン | $30 /100万トークン | $1.50 /100万トークン | $75 /100万トークン | 
| Claude Sonnet 4 | $3 /100万トークン | $3.75 /100万トークン | $6 /100万トークン | $0.30 /100万トークン | $15 /100万トークン | 
| Claude Sonnet 3.7 | $3 /100万トークン | $3.75 /100万トークン | $6 /100万トークン | $0.30 /100万トークン | $15 /100万トークン | 
| Claude Sonnet 3.5 | $3 /100万トークン | $3.75 /100万トークン | $6 /100万トークン | $0.30 /100万トークン | $15 /100万トークン | 
| Claude Haiku 3.5 | $0.80 /100万トークン | $1 /100万トークン | $1.6 /100万トークン | $0.08 /100万トークン | $4 /100万トークン | 
| Claude Opus 3 | $15 /100万トークン | $18.75 /100万トークン | $30 /100万トークン | $1.50 /100万トークン | $75 /100万トークン | 
| Claude Haiku 3 | $0.25 /100万トークン | $0.30 /100万トークン | $0.50 /100万トークン | $0.03 /100万トークン | $1.25 /100万トークン | 
上記はAnthropicの100万トークンあたりのコストです。比較すると低コストなのがよくわかります。
Grok Code Fast 1の使い方
では実際にGrok Code Fast 1を使ってみたいと思います。なお、Grok Code Fast 1の無料期間は日本時間9月3日午前5時までのようです。
今回はCursorで使っていきます。モデル選択画面に「Grok Code Fast 1」が表示されているのでそれを選択すればOKです。

下記のような簡単なプロンプトを与えてみます。
次の要件を満たすPython関数を実装してください:
- 入力: 英文の文字列
- 出力: 各単語の出現回数を辞書で返す
- 記号や大文字小文字は無視
- 単語はアルファベットのみで判定
さらに、簡単なテストケースも提示してください。動画を見ていただくとわかりますが、確かにめちゃくちゃ速い…!速さを感じていただきたいので、動画は倍速に編集はしていません。
Grok Code Fast 1とSonnet 4を比較検証
続いてはSonnet 4とGrok Code Fast 1で同じプロンプトを与えて、速度を比較してみたいと思います。
与えるプロンプトは下記です。
Pythonで「じゃんけんゲーム」を作ってください。
条件:
- 人間 vs コンピュータ
- 勝敗を3回戦で判定
- スコアを保存して最後に表示
- コードに説明用コメントを追加してください。まずはGrok Code Fast 1で出力されたコードです。
Grok Code Fast 1の出力結果はこちら
import random
def get_computer_choice():
    """コンピュータの手をランダムに選択する関数"""
    choices = ['グー', 'チョキ', 'パー']
    return random.choice(choices)
def determine_winner(user_choice, computer_choice):
    """勝敗を判定する関数
    戻り値: 'win' (ユーザーの勝ち), 'lose' (ユーザーの負け), 'draw' (引き分け)
    """
    if user_choice == computer_choice:
        return 'draw'
    # 勝敗の判定ロジック
    win_conditions = {
        'グー': 'チョキ',    # グーはチョキに勝つ
        'チョキ': 'パー',   # チョキはパーに勝つ
        'パー': 'グー'      # パーはグーに勝つ
    }
    if win_conditions[user_choice] == computer_choice:
        return 'win'
    else:
        return 'lose'
def get_user_choice():
    """ユーザーからの入力を取得する関数"""
    while True:
        print("\n選択してください:")
        print("1: グー")
        print("2: チョキ")
        print("3: パー")
        choice = input("番号を入力してください (1-3): ").strip()
        if choice == '1':
            return 'グー'
        elif choice == '2':
            return 'チョキ'
        elif choice == '3':
            return 'パー'
        else:
            print("無効な入力です。1-3の番号を入力してください。")
def play_round(round_number):
    """1回のじゃんけん対戦を実行する関数"""
    print(f"\n=== 第{round_number}回戦 ===")
    # ユーザーの選択を取得
    user_choice = get_user_choice()
    print(f"あなたの手: {user_choice}")
    # コンピュータの選択を取得
    computer_choice = get_computer_choice()
    print(f"コンピュータの手: {computer_choice}")
    # 勝敗を判定
    result = determine_winner(user_choice, computer_choice)
    # 結果を表示
    if result == 'win':
        print("あなたの勝ち!")
        return 'user'
    elif result == 'lose':
        print("コンピュータの勝ち!")
        return 'computer'
    else:
        print("引き分け!")
        return 'draw'
def main():
    """メインゲーム関数"""
    print("=== じゃんけんゲーム ===")
    print("3回戦で勝敗を決めます!\n")
    # スコアカウンターの初期化
    user_score = 0
    computer_score = 0
    draws = 0
    # 3回戦実行
    for round_num in range(1, 4):
        winner = play_round(round_num)
        if winner == 'user':
            user_score += 1
        elif winner == 'computer':
            computer_score += 1
        else:
            draws += 1
    # 最終結果を表示
    print("\n" + "="*30)
    print("=== 最終結果 ===")
    print(f"あなたの勝ち: {user_score}回")
    print(f"コンピュータの勝ち: {computer_score}回")
    print(f"引き分け: {draws}回")
    # 総合勝敗の判定
    if user_score > computer_score:
        print("\n🎉 おめでとうございます!あなたの総合勝利です!")
    elif computer_score > user_score:
        print("\n💻 コンピュータの総合勝利です。また挑戦してください!")
    else:
        print("\n🤝 引き分けです。また挑戦してください!")
if __name__ == "__main__":
    main()
次にSonnet 4で出力されたコードです。
Sonnet 4の出力結果はこちら
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
じゃんけんゲーム (Rock Paper Scissors Game)
人間 vs コンピュータの3回戦じゃんけんゲーム
機能:
- 3回戦での勝負
- スコア管理と表示
- 日本語インターフェース
"""
import random
class JankenGame:
    """じゃんけんゲームクラス"""
    
    def __init__(self):
        """ゲームの初期化"""
        # 手の選択肢を定義
        self.choices = {
            1: "グー",
            2: "チョキ", 
            3: "パー"
        }
        
        # スコアを初期化
        self.player_score = 0  # プレイヤーの勝利数
        self.computer_score = 0  # コンピュータの勝利数
        self.draw_count = 0  # 引き分け数
        
        # 総ラウンド数
        self.total_rounds = 3
        self.current_round = 0
    
    def display_welcome(self):
        """ゲーム開始時の挨拶を表示"""
        print("=" * 50)
        print("🎮 じゃんけんゲーム へようこそ!")
        print("=" * 50)
        print(f"人間 vs コンピュータの{self.total_rounds}回戦です")
        print("1: グー ✊")
        print("2: チョキ ✌️")
        print("3: パー ✋")
        print("=" * 50)
    
    def get_player_choice(self):
        """プレイヤーの手を取得"""
        while True:
            try:
                print(f"\n第{self.current_round + 1}回戦")
                choice = int(input("あなたの手を選んでください (1:グー, 2:チョキ, 3:パー): "))
                
                # 有効な選択肢かチェック
                if choice in self.choices:
                    return choice
                else:
                    print("❌ 1, 2, 3 のいずれかを入力してください")
                    
            except ValueError:
                print("❌ 数字を入力してください")
    
    def get_computer_choice(self):
        """コンピュータの手をランダムに生成"""
        return random.randint(1, 3)
    
    def determine_winner(self, player_choice, computer_choice):
        """勝敗を判定する
        
        Args:
            player_choice (int): プレイヤーの選択 (1-3)
            computer_choice (int): コンピュータの選択 (1-3)
            
        Returns:
            str: 勝敗結果 ("player", "computer", "draw")
        """
        # 引き分けの場合
        if player_choice == computer_choice:
            return "draw"
        
        # プレイヤーが勝つ場合の組み合わせ
        winning_combinations = {
            (1, 2),  # グー vs チョキ
            (2, 3),  # チョキ vs パー  
            (3, 1)   # パー vs グー
        }
        
        if (player_choice, computer_choice) in winning_combinations:
            return "player"
        else:
            return "computer"
    
    def display_round_result(self, player_choice, computer_choice, result):
        """ラウンド結果を表示"""
        print(f"\nあなた: {self.choices[player_choice]} vs コンピュータ: {self.choices[computer_choice]}")
        
        if result == "draw":
            print("🟰 引き分けです!")
        elif result == "player":
            print("🎉 あなたの勝利です!")
        else:
            print("😅 コンピュータの勝利です!")
    
    def update_score(self, result):
        """スコアを更新"""
        if result == "player":
            self.player_score += 1
        elif result == "computer":
            self.computer_score += 1
        else:
            self.draw_count += 1
    
    def display_current_score(self):
        """現在のスコアを表示"""
        print(f"\n📊 現在のスコア:")
        print(f"あなた: {self.player_score}勝 | コンピュータ: {self.computer_score}勝 | 引き分け: {self.draw_count}回")
        print("-" * 30)
    
    def play_round(self):
        """1ラウンドをプレイ"""
        # プレイヤーとコンピュータの手を取得
        player_choice = self.get_player_choice()
        computer_choice = self.get_computer_choice()
        
        # 勝敗を判定
        result = self.determine_winner(player_choice, computer_choice)
        
        # 結果を表示
        self.display_round_result(player_choice, computer_choice, result)
        
        # スコアを更新
        self.update_score(result)
        
        # 現在のスコアを表示
        self.display_current_score()
        
        # ラウンド数をインクリメント
        self.current_round += 1
    
    def display_final_result(self):
        """最終結果を表示"""
        print("\n" + "=" * 50)
        print("🏁 ゲーム終了!最終結果")
        print("=" * 50)
        
        print(f"📈 最終スコア:")
        print(f"あなた: {self.player_score}勝")
        print(f"コンピュータ: {self.computer_score}勝")
        print(f"引き分け: {self.draw_count}回")
        
        # 総合勝者を決定
        if self.player_score > self.computer_score:
            print("\n🎊 おめでとうございます!あなたの総合勝利です!")
        elif self.computer_score > self.player_score:
            print("\n😢 残念!コンピュータの総合勝利です...")
        else:
            print("\n🤝 総合結果は引き分けです!")
        
        print("=" * 50)
    
    def play_game(self):
        """メインゲームループ"""
        # ゲーム開始の挨拶
        self.display_welcome()
        
        # 3ラウンドをプレイ
        while self.current_round < self.total_rounds:
            self.play_round()
            
            # 最終ラウンドでなければ、次のラウンドへの準備
            if self.current_round < self.total_rounds:
                input("\nEnterキーを押して次のラウンドへ...")
        
        # 最終結果を表示
        self.display_final_result()
def main():
    """メイン関数 - ゲームを開始"""
    try:
        # ゲームインスタンスを作成して開始
        game = JankenGame()
        game.play_game()
        
        # ゲーム終了後、再戦の確認
        print("\nまた遊んでくださいね!👋")
        
    except KeyboardInterrupt:
        print("\n\nゲームが中断されました。またお会いしましょう!")
    except Exception as e:
        print(f"\nエラーが発生しました: {e}")
# スクリプトが直接実行された場合にメイン関数を呼び出す
if __name__ == "__main__":
    main()どちらも同じような結果ではありますが、生成速度自体はGrok Code Fast 1の方が圧倒的に速いです。
上記動画では2倍速にしていますが、2倍速でもGrok Code Fast 1の方が作業完了するのが速いのがわかります。
処理させている内容自体は結構簡単な内容なので、まずは簡単な内容であればGrok Code Fast 1で十分であることがわかりました。
なお、Sonnet 4を超えた?Anthropic最新LLMについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

まとめ
本記事ではGrok Code Fast 1の概要から使い方、使ってみた所感についてお伝えしました。本記事の検証では単純なコーディングしかさせていませんが、Grok Code Fast 1の生成速度はかなり速いことがわかります。
また、コスト自体もかなり低いのでGrok Code Fast 1でドラフトを作って、詳細を詰めていくときに別のモデルでコーディングをする、みたいな使い方ができるかもしれませんね。
ぜひ皆さんも本記事を参考にGrok Code Fast 1を使ってみてください。
最後に
いかがだったでしょうか?
Grok Code Fast 1の導入をご検討の方は、ユースケース相談や技術活用の壁打ちを無料で承ります。ぜひお気軽にご相談ください。
株式会社WEELは、自社・業務特化の効果が出るAIプロダクト開発が強みです!
開発実績として、
・新規事業室での「リサーチ」「分析」「事業計画検討」を70%自動化するAIエージェント 
・社内お問い合わせの1次回答を自動化するRAG型のチャットボット
・過去事例や最新情報を加味して、10秒で記事のたたき台を作成できるAIプロダクト
・お客様からのメール対応の工数を80%削減したAIメール 
・サーバーやAI PCを活用したオンプレでの生成AI活用
・生徒の感情や学習状況を踏まえ、勉強をアシストするAIアシスタント
などの開発実績がございます。
生成AIを活用したプロダクト開発の支援内容は、以下のページでも詳しくご覧いただけます。
➡︎株式会社WEELのサービスを詳しく見る。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、大規模言語モデル(LLM)を対象に、言語理解能力、生成能力、応答速度の各側面について比較・検証した資料も配布しております。この機会にぜひご活用ください。
