00:00:00AIの進化と次々にリリースされるモデルの性能向上により、コードを生成する方法は完全に変貌を遂げました。
00:00:07ClodCode、
00:00:08Cursor、
00:00:09Antigravityなど、
00:00:10コーディングに特化したツールが数多く登場し、
00:00:12それぞれが独自の機能を備えています。
00:00:14しかし、優れたモデルだけでは、生成されるコードの品質は決まりません。
00:00:18ツールの使い方とコンテキストの管理方法が、同じくらい重要なのです。
00:00:22これらのツールはすべて、
00:00:23コンテキストエンジニアリングのための何らかの仕組みを備えていますが、
00:00:26Cursorは新しいアプローチを大きく推進し、
00:00:28アプリ自体にネイティブに組み込みました。
00:00:29彼らの記事を読み進めるうちに、これらの原則が本当に優れていることに気づきました。
00:00:33今日お話しすることはたくさんあります。なぜなら、
00:00:35これらのアイデアは、
00:00:36アプリケーション構築に使用するあらゆるプラットフォームに広く適用できるからです。
00:00:40AIエージェントと作業する際、コンテキスト管理は常に重要でした。優れたコンテキスト管理が出力の品質を左右するからです。
00:00:47私たちは以前の動画で、コンテキスト管理がいかに重要かについて話し、そのワークフローについても触れました。
00:00:53Cursorはコンテキスト管理機能を製品に直接実装し、それに関する記事を公開しました。
00:00:58これらの原則は、
00:00:59モデルから良い結果を得るには、
00:01:01コンテキストウィンドウにできるだけ少ない詳細情報を提供する方が良いという彼らの観察に基づいています。
00:01:06モデルが一度に受け取る情報が少なければ少ないほど、
00:01:09一度に処理するデータも少なくなり、
00:01:11混乱が減り、
00:01:12関連情報のみが含まれるため、
00:01:13その瞬間に実行する必要があるタスクに集中できるのです。
00:01:17このアプローチを、彼らは動的コンテキスト発見と呼んでいます。
00:01:20このアイデアは、構造化されたノートテイキングです。
00:01:22つまり、
00:01:22今すぐ必要でない情報はコンテキストウィンドウに含めるべきではなく、
00:01:26混乱を招いたり矛盾したりする可能性のある詳細を除外することで、
00:01:30エージェントの応答品質が大幅に向上するのです。
00:01:32Cursorの最新リリースでは、5つの動的コンテキスト管理手法が追加され、まもなくユーザーに展開されます。
00:01:37Cursorはこれを製品アップデートとして実装していますが、これらの原則はすべてのAIエージェントに広く応用可能です。
00:01:44Cursorが言及した最初のアップデートは、長いツールレスポンスをファイルに保存するというものです。
00:01:48MCPは大きなレスポンスを返すことが多く、それがコンテキストウィンドウに残ります。
00:01:52レスポンスからのすべての情報が常に必要とは限りません。
00:01:55Cursorは、
00:01:56ほとんどのコーディングツールの一般的なアプローチは、
00:01:59長いMCPレスポンスを切り詰めることであり、
00:02:02それがデータ損失や、
00:02:03コンテキストに必要な可能性のある重要な情報の削除につながると述べています。
00:02:07ClaudeのChrome拡張機能は非常にツール重視の拡張機能であり、
00:02:10わずか数回のプロンプトで、
00:02:11膨大なチャンクがコンテキストウィンドウに読み込まれ、
00:02:13コンテキストがいっぱいになってしまいます。
00:02:15そこで私は、
00:02:15Claude.mdファイルに、
00:02:1750行を超えるMCPツールレスポンスは、
00:02:19ターミナルでechoコマンドを実行して.contextフォルダ内のMCPフォルダに保存する必要があるという指示を追加しました。
00:02:27Chrome拡張機能を実行してランディングページのUIを分析したとき、
00:02:30ClaudeがReadPageのようなコンテキストウィンドウを大幅に肥大化させるツールに遭遇すると、
00:02:36MCPレスポンスをファイルに保存して後で読み取り、
00:02:38それを使用してページ全体を分析し、
00:02:40レポートを提供してくれました。
00:02:42この回避策により、
00:02:43Claudeが必要に応じてファイルからレスポンスを何度も分析できるようになり、
00:02:47ツールレスポンス分析の精度が向上し、
00:02:49繰り返しのツール呼び出しの必要性がなくなりました。
00:02:52以前のMCP呼び出しからのデータが必要な場合、
00:02:54Claudeはツール呼び出しを行う代わりに.contextフォルダから直接読み取ることができ、
00:02:59大幅な時間節約になります。
00:03:00次の変更に移る前に、スポンサーのZen Roseからお話を聞きましょう。
00:03:04AI製品、
00:03:04自動化、
00:03:05またはデータ駆動型システムを構築している場合、
00:03:07すでに1つのことをご存知でしょう。すべては信頼できるWebデータから始まります。しかし、
00:03:11クリーンで構造化されたデータを大規模に取得することは、
00:03:14聞こえるほど簡単ではありません。そこでZen Roseがスタックに完璧に適合します。
00:03:18Zen Roseは、
00:03:19複雑なWebサイトからのデータ抽出を処理し、
00:03:22アンチボット回避を自動的に管理するため、
00:03:24実際に重要なこと、
00:03:25つまりデータの使用に集中できます。
00:03:27煩雑な出力を扱う代わりに、
00:03:29Zen RoseはJSONやMarkdownのような構造化された結果を提供し、
00:03:33パイプラインに直接組み込めます。統合対応でビジネス志向であるため、
00:03:37インフラの面倒を見たくないAIスタートアップ、
00:03:40データチーム、
00:03:41自動化構築者にとって理想的です。
00:03:43リードのエンリッチメント、
00:03:44AIエージェントの駆動、
00:03:45リサーチの自動化など、
00:03:46どんな用途でもZen Roseは確実に機能します。Webデータに依存する業務なら、
00:03:50Zen Roseは技術スタックに欠かせません。
00:03:52ピン留めされたコメントのリンクをクリックして、今すぐ構築を始めましょう。
00:03:55コンテキストウィンドウが満杯になったときの要約ステップは煩雑で、
00:03:58多くの情報が失われることがわかっています。CursorやClaude Codeを含むほとんどのツールは、
00:04:04要約ステップをトリガーし、
00:04:05その要約を出発点として新しいコンテキストウィンドウでセッションを開始します。
00:04:09コンパクト化を何度も実行すると、
00:04:11要約はあなたにとって重要かもしれないが、
00:04:13モデルの要約では見落とされる可能性のある詳細を忘れ始めます。
00:04:16自動コンパクション化に対する制御には限界があり、繰り返し圧縮を行うと、重要な情報が失われてしまいます。
00:04:24Cursorの解決策は、エージェントが後で参照できるように、すべての過去のチャット履歴をファイルとして保存することです。
00:04:30非常に具体的なプロンプトを提供し、
00:04:32モデルが要約内に情報を見つけられない場合、
00:04:34過去のトランスクリプトがその知識ベースとして機能します。
00:04:37モデルはそのトランスクリプトを使用してソリューションを生成し、要約から失われたものを復元できるようにします。
00:04:43Cursorの実装が展開され、誰でも利用できるようになるまで、私はClaude Codeでこの機能を実装してみました。
00:04:50Claude.mdファイル内に指示を追加し、
00:04:52各ターン後にチャット履歴を更新し、
00:04:54すべての主要な決定と実行されたステップを記録するようにしました。
00:04:58.contextフォルダ内のhistoryフォルダを使用し、各ファイル名にセッションを反映させました。
00:05:03そのため、
00:05:03何かタスクを実行するよう依頼すると、
00:05:06タスク実行セッションの終わりに、
00:05:08対応する履歴ファイルにチャット履歴を記録し、
00:05:10すべてをそのファイルに追加します。
00:05:12こうして、.contextフォルダにはすべてのセッションと実行された内容の詳細な記録が保管されます。
00:05:18エージェントには、MCPが引き起こすコンテキスト問題を管理するためのスキルが与えられました。
00:05:23スキルの目的は、
00:05:24スクリプトや指示ファイルを通じてガイドすることで、
00:05:26エージェントが自身の能力をより良く活用できるようにし、
00:05:30段階的な開示によってコンテキストの肥大化を削減することです。
00:05:33Anthropicが最初にこのアイデアを考案しました。これは基本的に、
00:05:37エージェントが特定のタスクでより良いパフォーマンスを発揮するために発見して使用できる、
00:05:41一連の指示、
00:05:42スクリプト、
00:05:43リソースを提供するものです。Anthropicは基本的にこれらのエージェントスキルをオープンソース化し、
00:05:48他社が実装できる標準を設定しました。これに続いて、
00:05:51Codex、
00:05:51Geminiなどがエージェントスキルの実装を始め、
00:05:54最終的にCursorも同様の実装を行いました。Cursorのスキルは基本的に、
00:05:58エージェントがそれぞれのタスクに使用できる実行ファイルとスクリプトを1つのスキルにまとめたものです。スキルの名前と説明のみが静的コンテキストに含まれています。
00:06:07エージェントが静的コンテキスト内に入ると、
00:06:09grepやCursorのセマンティック検索を使って、
00:06:11自分でスキルを引き出すことができます。これが違いを生む理由は、
00:06:15Cursorのセマンティック検索が、
00:06:17grepコマンドの正規表現ベースの検索のような単純なパターンマッチングではなく、
00:06:21独自の埋め込みモデルとインデックスパイプラインをバックグラウンドで使用しているためです。Claudeのスキルは、
00:06:27スクリプトが何個のファイルを使用していても、
00:06:29名前と説明だけをコンテキストに公開するため、
00:06:31コンテキストの肥大化を防ぎます。私のプロジェクトでは5つのスキルを設定していましたが、
00:06:36それぞれが消費するトークンは非常に少なく、
00:06:38全体のわずか0.2%程度で、
00:06:39作業のための余裕が増えました。さらに異なるのは、
00:06:42Claudeのスキルは/commandsを通じてもアクセスできるため、
00:06:45必要なときに手動でトリガーできることです。これにより、
00:06:48スキルがオンデマンドで適切に読み込まれないという人々の不満に対処しています。MCPは多くのツールをコンテキストウィンドウに公開するため、
00:06:55不必要にコンテキストウィンドウを肥大化させます。Cursorはこの問題を自ら引き受け、
00:07:00コンテキストの肥大化を修正するのはMCPサーバーではなくコーディングエージェントの責任であると強調しました。この解決策は、
00:07:06フォルダ内でツールの説明を同期することによる動的コンテキスト検出でした。Cursorのアイデアは、
00:07:11接続された各MCPにちなんで名付けられた別々のフォルダにすべてのMCPを配置し、
00:07:15各フォルダ内にすべてのツールをリストすることです。これにより、
00:07:19エージェントはツールの名前のみを受け取り、
00:07:21ツールが必要になったときにフォルダを通じて検索します。彼らが行ったテストでは、
00:07:25MCPツールの動的検出により使用量が46.9%削減されることがわかり、
00:07:29長時間実行されるシステムで作業している場合には大きな違いとなります。この実装は、
00:07:33MCPサーバーが誤って切断されたり、
00:07:35再認証が必要になったりする場合にも役立ちます。通常、
00:07:37システムはそれらのツールを忘れてしまいますが、
00:07:40今ではエージェントが実際にユーザーに再認証が必要であることを通知できます。Claudeには、
00:07:45この問題に対処するために特別に設計された高度な検索ツールもあり、
00:07:48特定のフラグセットを使用してClaudeにロードするかどうかを知らせます。これはCursorの動的コンテキスト検出のアイデアを正確に実装していますが、
00:07:56これは開発者プラットフォームに限定されており、
00:07:58APIを使用して構築している人のみが対象です。MCPはAnthropicによってClaude Codeに組み込まれているため、
00:08:05Claude CodeでMCPがどのように使用されるかを変更することはできません。Claude Codeでこれを実装する方法を探していたところ、
00:08:12隠しフラグを見つけました。このフラグを設定しないと、
00:08:15接続していたすべてのMCPツールがClaude Codeのコンテキストに公開されていました。experimental MCP CLIフラグを有効にすると、
00:08:23すべてのツールがコンテキストウィンドウから削除され、
00:08:25以前MCPツールが占有していたスペースが解放されました。しかし、
00:08:29このCLIが有効になってもMCPが切断されるわけではありません。唯一の違いは、
00:08:33コンテキストウィンドウに最初から公開されないことです。すべてのスキーマをコンテキストに入れる代わりに、
00:08:38Claudeは現在、
00:08:39MCP CLIと呼ばれる中間bashレイヤーを使用し、
00:08:42すべてのMCP関連タスクを処理します。Claudeはこの中間レイヤーを使用して、
00:08:46ツールを検索、
00:08:47情報取得、
00:08:47呼び出しを行います。MCPツール呼び出しを必要とするタスクの実行をClaudeに依頼すると、
00:08:52通常の方法を使用する代わりに、
00:08:54MCP CLIを介してMCPを使用してタスクを実行します。このツールを使用することで、
00:08:58Claudeはこの中間レイヤーを通じて通常通りすべてのタスクを実行します。Cursorではアクセスが制限されているため、
00:09:04ターミナルエラーの報告が困難です。ターミナルにエラーが表示された場合、
00:09:08チャットに追加してから修正してもらう必要がありました。これに対するCursorの解決策も、
00:09:13ターミナルセッションをファイルに移動することです。そのため、
00:09:16質問をすると、
00:09:17それらの履歴ファイルを参照し、
00:09:18grepを使用して関連する出力を抽出します。
00:09:20サーバーログは通常長時間実行され、
00:09:22エージェントにとって大量のノイズを含むため、
00:09:24grepタスクを使用する方が効率的です。これによりエージェントがパターンマッチングを行えるからです。このアイデアは、
00:09:30CLIベースのコーディングエージェントから得たもので、
00:09:33コマンドを実行した後、
00:09:34その出力をClaude Codeなどがデフォルトで行うのと全く同じ方法でコンテキストに注入します。Claudeは賢くこれを自動処理しますが、
00:09:42Claude.mdに指示を記述することで、
00:09:44さらに細かく管理できます。具体的には、
00:09:46すべてのターミナルログを.contextフォルダ内のterminalフォルダにあるファイルに追加するよう指示します。基本的に、
00:09:52Claudeがnpmコマンドを実行すると、
00:09:55出力ストリームと入力ストリームの両方をドキュメントファイルにログ記録する特別なコマンドが実行されます。ここで、
00:10:002は標準エラーストリームを表し、
00:10:021は標準出力ストリームを表します。これらのログはタイムスタンプ付きでterminalフォルダに書き込まれます。そして、
00:10:08それらを検索する必要があるときは、
00:10:10指定したパターンでgrepコマンドを使用し、
00:10:12最後の20行を読み込んで重要な部分だけを抽出します。
00:10:15開発サーバーをテストするたびに、
00:10:17これらのコマンドが使用され、
00:10:18Claude.mdファイルに従ってターミナルの実行結果がファイルに書き込まれ続けました。サーバー実行後、
00:10:24ログファイルを参照して問題の原因を特定し、
00:10:27私のために問題を修正してくれました。
00:10:29Claude Codeへのこの追加機能は、
00:10:31即座の作業にはあまり影響がないように見えるため取るに足らないものに思えるかもしれませんが、
00:10:36アプリの動作を振り返りたいときに非常に便利です。どのサービスがアプリのクラッシュを引き起こしているかを特定する必要があったとき、
00:10:42テストを再実行する代わりにテストログを参照するようClaudeに指示するだけで済みました。すでに確認済みのエラーを再現するためだけに2分間のテストスイートを再実行する手間が省けたのです。これでこの動画は終わりです。チャンネルをサポートして、
00:10:54このような動画を作り続けられるよう応援したい方は、
00:10:57下のスーパーサンクスボタンをご利用ください。いつもご視聴ありがとうございます。それではまた次回お会いしましょう。