【Claude Code】Serenaの導入でAI活用を加速!
3行まとめ
- Claude Codeの出力精度を安定させるための設定ファイル整備に苦労していた
- Serena導入で、コードベース全体の一貫性を保持しつつ、暗黙知の言語化コストを大幅削減
- LSPとIndexingによりToken使用量が削減され、APIコストを低減
はじめに
Claude Codeを導入してみたものの、期待した効果が得られずに悩んでいる方も多いのではないでしょうか。私もその一人でした。具体的には、コードベース全体との一貫性や、チーム固有の設計思想を踏まえた生成がうまくいかず、そのたびにCLAUDE.md
やプロンプトで補足情報を足すのですが、暗黙知を毎回言語化して投げるのはかなりの労力でした。
「もう少しプロジェクト全体を理解してくれたらな、、、」そう思っていたときに出会ったのが Serena でした。
本記事では、Claude CodeとSerenaを組み合わせた実運用の結果、生成精度とAPIコストがどのように変化したかを体験ベースで整理します。いまLLMの活用に手応えを感じきれていない人にとって、参考になれば幸いです。
Claude Code単体で直面した課題
Claude Codeを単なる補助ツールではなく、チーム開発の一員として機能させるには、プロジェクト固有の設計意図やスタイルガイドを正確に理解させる必要があります。しかし、実際の開発現場ではそれらの多くがドキュメント化されず、命名規則やモジュール分割の粒度といった細かいルールが暗黙知として共有されています。
このため、設定ファイルやプロンプトで補足しなければ精度が安定せず、設定の微調整や生成結果の手直しに時間を取られました。本来は開発工数の削減を目的としていたものの、その前提となるコンテキスト整備の負担が大きく、さらに細かな修正を繰り返すラリーによってAPI使用料金も増加。結果として、コストと労力の両面でリターンが見えづらくなり、活用を継続すること自体に心理的な負担を感じる状態でした。
この課題を解決してくれたのが、Serenaの導入でした。
Serenaとは
Serenaは、人間がIDEを操作するのと同じように、LSP(Language Server Protocol)を介してコードベースを理解し、効率的に操作できるように設計されたツールです。Serenaは以下の3つの主要な機能を提供します。
- LSP連携:コードのセマンティック(意味的)な理解に基づく、コード検索・編集機能を提供
- Indexing:コードの構文情報をもとに、必要な部分のみを効率的に参照
- Memory構築:コードベース全体の知識を永続的に保持
詳細な説明やセットアップ手順は以下の記事が参考になりました。
Serenaは、まさにコンテキスト整備の負担を軽減し、プロジェクト全体を効率的かつ深く理解させるためのツールとして理想的でした。
Serena導入後の効果
Serena導入後、以下の3点で明確な改善が見られました。
コンテキスト整備コストの削減
Serenaのオンボーディング(プロンプト例:Serena のオンボーディングを開始してください。
)を実施すると、コードベースを解析し、以下のようなドキュメント群が自動生成されます。
.serena/
├── memories/
│ ├── code_style_and_conventions.md # コードスタイル・規約
│ ├── development_patterns.md # 各種設計パターン
| ├── project_overview.md # プロジェクト概要
| ├── suggested_command.md # 開発時の推奨コマンド
| └── task_completion_checklist.md # タスク完了チェックリスト
├── cache/
│ └── ... # LSPやIndexingのキャッシュ
├── .gitignore
└── project.yml # Serena設定ファイル
これらはプロジェクト全体の設計意図やスタイルガイドを自動的に抽出し、Serenaのmemoryとして永続化します。
結果として、従来は手動で設定ファイルに書き込んでいた「命名規約」「設計思想」「推奨コマンド」などを一から構築する必要がなくなり、初回オンボーディングだけでコンテキスト整備コストが大幅に削減されました。
生成コードの一貫性と精度の向上
Memoryに蓄積された知識をもとに、Claudeが既存コードの構造・責務を踏まえた提案を行うようになりました。
その結果、命名・関数分割などの揺れが減少し、出力の再現性が向上。体感では、追加説明をしなくても期待水準の90%程度の精度を安定して得られるようになりました。
LSP + IndexingによるToken使用量の削減
SerenaはLSP経由で得た構文情報をもとに、Claudeに渡す入力を最適化します。例えば、コード全体を読み込んだり、grepのような文字列検索を行う代わりに、find_symbol
やinsert_after_symbol
のようなLSP中心のツールを利用して、必要なコード部分に直接アクセスできます。
同一のテストコード生成タスクでSerenaあり/なしを比較したところ、極端な例ではありますが、API使用料が約75%削減されました。
条件 | APIコスト(USD) |
---|---|
Serenaなし | $4.52 |
Serenaあり | $1.14 |
Serenaなしでは、文脈を補うために何度も会話を重ねる必要があり、そのたびに入力サイズとAPI利用量が増加していました。Serenaは対話回数の削減、入力トークンの最適化の両面で、コスト構造を改善したと考えています。
なお、SerenaのLSP連携による効果は、言語の型システムによって差が生じる可能性があります。本検証は Go で実施しており Go のような静的型付け言語では、LSPが型情報や関数シグネチャを正確に把握できるため、Serenaがより精密なコード理解と効率的な操作を行えます。一方、Ruby のような動的型付け言語では、実行時まで型が確定しないため、LSPから得られる情報に限りがあり、Serenaの効果も相対的に控えめになる可能性があります。
現時点での適用範囲と今後の展望
現段階では、テストコードの作成に限定してSerenaを利用しています。テストケース提案の精度が向上し、APIコストも大幅に削減できたため、非常に効果的でした。
今後は、テストコード以外のコード生成タスクや、コードレビュー支援など、他の開発プロセスへの適用も検討しています。またSerenaのさらなるカスタマイズや、他のMCPとの連携も視野に入れ、開発効率の最大化を目指します。
まとめ
Serenaの導入により、Claude Codeのコードベース理解能力が大幅に向上しました。これにより、次の3点が実現しました。
- コンテキスト整備コスト削減
- コードベースの一貫性維持
- Token消費の最適化によるAPIコスト削減
Claude Codeを導入してみたものの、期待した効果が得られないと感じている場合は、Serenaのようなツールの活用を検討してみる価値があります。本記事が、LLMを活用した開発支援の一助となれば幸いです。

「物流の次を発明する」をミッションに物流のシェアリングプラットフォームを運営する、ハコベル株式会社 開発チームのテックブログです! 【エンジニア積極採用中】t.hacobell.com//blog/engineer-entrancebook
Discussion