Anthropicもコーディングエージェント「Claude Code」発表。新バージョンのClaude 3.7 Sonnetを基盤に
Anthropicは、大規模言語モデルと推論モデルを1つに統合した「Claude 3.7 Sonnet」を発表しました。
大規模言語モデルと推論モデルのハイブリッド
大まかに言えば、大規模言語モデルは、ある言葉の次に来る確率が高いと考えられる言葉を並べて文章を作成することに優れた仕組みであり、推論モデルはデータの中から何らかのパターンを認識することにより新たな結論を導き出すことに優れた仕組みです。
Claude 3.7 Sonnetはこの2つのモデルを統合したハイブリッド推論モデルであると同社は説明しています。
その上で、Claude 3.7 Sonnetの「スタンダードモード」では前バージョンのClaude 3.5 Sonnetのアップグレード版として機能する一方、「拡張思考モード」(Extended Thinking Mode)では、回答する前に自己検証を行うことで数学や物理、コーディング、指示への対応などの多くのタスクでの性能が向上するとしています。
また最適化において、数学やコンピュータサイエンス、競技プログラミングなどの能力よりも、現実のビジネス現場におけるタスクの解決能力にフォーカスしたとしています。
これらによって、Claude 3.7 Sonnetはソフトウェアエンジニアリング領域において既存の他のモデルよりも優れた能力を備えていると同社は主張し、下記のベンチマークを示しています(左端の赤いマーカーがClaude 3.7 Sonnet)。

コーディングエージェント「Claude Code」発表
このClaude 3.7 Sonnetを基盤として、自律的にプログラミングを行うコーディングエージェントとして発表されたのが「Claude Code」です。現在、リミテッドリサーチプレビューとなっています。

Claude Codeはコマンドラインから利用するツールです。プログラマはコマンドラインを通じて指示を出し、それに対して結果もコマンドラインで返ってきます。
以下は同社が公開したClaude Codeの紹介動画から、動作の様子を画面キャプチャで見ていきましょう。
Claude Codeはコマンドラインから利用
ここではNext.jsを用いた簡単なチャットアプリケーションのコードをClaude Codeで機能追加していきます。
コードが保存されているディレクトリをカレントディレクトリとした状態で、Claude Codeを実行すると、Claude Codeのコマンドプロンプト画面となります。ここでプログラマは指示としてのプロンプトを入力します。
まずは、このコードがどのようなものなのかをClaude Codeに説明してもらうため、「explain to me this project structure」とプロンプトを入力(赤線はPublickeyによる)。

早速、Claude Codeがプロジェクトの処理を開始。

さらに処理が進み、詳細な説明が出力されます。

機能追加を指示するとコードを自動で変更、生成
次に、このチャットアプリケーションに、チャットの履歴を保存する機能追加を次のように指示します。

Claude Codeは、まずは「Let's start by examining the current components.」と、現在のコンポーネントの調査から作業を開始。

実装計画を立てた後に、コードの変更部分を提案してきます。プログラマがここで「Yes, and don't ask again this session.」(はい、以後これについての確認は不要)と返答。

するとClaude Codeは順次コードの変更を実行し、完了後にどのような変更を行ったかを報告してきます(デモでは、きちんと実装されていることも確認されました)。

テストコードも自動生成、実行
次に、Claude Codeに今行った変更に関するテストコードの生成を指示します。

Claude Codeはプロジェクトの内容を理解した上で、テスティングライブラリのインストールが必要だと判断。インストールの実行を行うためのBashコマンドを実行してよいかどうかを確認してきます。

ここでも、イエス、以下確認不要と返答をすると、Claude Codeは次に次ぎにテストコードの生成やそのための変更を実行していきます。

テストコードを生成後にテスト実行も自動的にClaude Codeによって行われ、全てパスしたこと、変更内容などが報告されました。

ビルドのエラーも自律的に修正
続いて、コード全体のビルドを指示します。

ビルドコマンドを実行してよいかどうかを尋ねてくるため、ここでも以下全部イエスと返答。

ビルドに失敗してエラーが発生すると、エラーメッセージを認識して自律的に修正を行います。

エラーのたびに修正を自律的に繰り返し、最終的にビルドに成功しました。

最後にGitHubへのプッシュを指示すると、コマンドと同時にコメントを生成して実行許可を待ちます。

プログラマは指示した後にイエスと答えるだけで、全ての作業が終了しました。