Windsurf のコンテキストエンジンは、コードベース、過去の操作履歴、次の意図を深く把握します。 従来のコード生成アプローチは、コードベースに合わせて大規模言語モデル(LLM)を微調整することに重きを置いてきましたが、 これは個々のユーザーのニーズに合わせてスケールさせるのが難しい手法です。 近年主流となっているのは RAG(retrieval-augmented generation)の活用で、 LLM から正確な回答を引き出すために、 高い関連性と豊富なコンテキストを備えたプロンプトを構築する技法に焦点を当てます。 当社はコードベースのコンテキストに最適化した RAG アプローチを実装しており、 これにより提案の品質が向上し、ハルシネーションが減少します。
Windsurf は Enterprise 向けに完全な微調整機能を提供しており、最適な解は 微調整と RAG を組み合わせることです。

既定のコンテキスト

Windsurf は、初期状態で複数の関連するコンテキストソースを考慮します。
  • 現在のファイルと IDE で開いている他のファイル。これは、いま書いているコードに非常に関係することが多いです。
  • 続いてローカルのコードベース全体(未表示のファイルを含む)をインデックス化し、 コードの記述・質問・コマンドの呼び出しに応じて、Windsurf の検索エンジンが関連するコードスニペットを取得します。
  • Pro ユーザーには、コンテキスト長の拡張、インデックス化上限の引き上げ、カスタムコンテキストおよびピン留めコンテキスト項目の上限増を提供します。
  • Teams および Enterprise ユーザー向けには、Windsurf はリモートリポジトリもインデックス化できます。 これは、開発組織が複数のリポジトリにまたがって作業する企業に有用です。

ナレッジベース(ベータ)

Teams および Enterprise のお客様のみご利用可能です。現在、Hybrid のお客様はご利用いただけません。
この機能により、チーム全体で共有するコンテキストやナレッジソースとして Google Docs を取り込めます。 現時点では Google Docs のみ対応しています。画像はインポートされませんが、チャート、表、書式付きテキストは完全にサポートされています。

Knowledge Base

チームのナレッジベース設定を行います。このページは管理者権限がある場合にのみ表示されます。
管理者は OAuth を使用して手動で Google Drive と接続し、その後、チームのナレッジソースとして最大 50 件の Google Docs を追加できます。 Cascade は Windsurf ダッシュボードで指定されたドキュメントにアクセスします。これらのドキュメントは個々のユーザーのアクセス制御には従いません。つまり、管理者がドキュメントをチームに公開した場合、Google Drive 側のアクセス制御に関係なく、すべてのユーザーがアクセスできるようになります。

ベストプラクティス

Context Pinning は、現在作業中のファイルでのタスクが他ファイルの情報に依存している場合に有効です。 必要なものだけをピン留めしましょう。ピン留めしすぎると、AIモデルのパフォーマンスが低下したり、出力に悪影響が出る可能性があります。 効果的な Context Pinning のアイデア:
  • モジュール定義: 現在アクティブなファイルとは別モジュールにある、リポジトリ内のクラス/構造体の定義ファイルをピン留めする。
  • 内部フレームワーク/ライブラリ: フレームワーク/ライブラリの使用例コードが入ったディレクトリをピン留めする。
  • 特定のタスク: 特定のインターフェースを定義するファイルやフォルダ(例: .proto ファイル、抽象クラスのファイル、設定テンプレート)をピン留めする。
  • 現在の重点領域: 現在のコーディングセッションで必要なファイルの大半を含む「最小公倍数」的なディレクトリをピン留めする。
  • テスト: 単体テストを書いている対象クラスを含む特定のファイルをピン留めする。

Chat 固有のコンテキスト機能

Windsurf Chat で会話する際は、@-mentions やカスタムガイドラインなど、コードベースのコンテキストを活用する方法が複数あります。 詳しくは Chat のページ をご覧ください。

よくある質問(FAQ)

Windsurf はコードベースをインデックス化しますか?

はい。Windsurf はコードベースをインデックス化します。さらに、独自の M-Query 手法を用いて、コードベースに対して RAG(retrieval-augmented generation)を実行します。 インデックス化のパフォーマンスや機能は、ワークフローやご利用の Windsurf プランによって異なります。詳しくは コンテキスト認識のページをご覧ください。