00:00:00BeemadやSpeckitなどのAIコーディングフレームワークについてはすでにご存知だと思いますが、
00:00:04これらだけではありません。
00:00:06何百人もの人々が独自のワークフローを実験し、
00:00:08リリースしていますが、
00:00:09実際に試してみると、
00:00:10約束を果たせないことが多いことに気づくでしょう。
00:00:13これは手法が悪いからではなく、あなたの特定のユースケースに適合していないからです。
00:00:18アプリを構築する際、ほとんどの場合、既製のワークフローに頼るのではなく、独自のワークフローを作成します。
00:00:23これは、
00:00:24ワークフローは特定のユースケースに合わせて構築されるべきであり、
00:00:27構築しようとしているプロジェクトと整合している場合にのみ機能するためです。
00:00:30では、独自のプロセスに合わせたワークフローをどのように構築すればよいのでしょうか?
00:00:32そのためには、特定の原則を知る必要があります。
00:00:34これらは、すべてのフレームワークが何らかの形で使用している原則です。
00:00:38主要な原則について説明する前に、これらのAIツールのコンテキストウィンドウの中身を知ることが不可欠です。
00:00:44これは非常に重要です。なぜなら、コンテキストの管理こそが、これらのフレームワークが行っていることの基本だからです。
00:00:48コンテキストウィンドウとは、基本的にモデルが一度に記憶できる情報量のことです。
00:00:53モデルのコンテキストウィンドウから外れたものは、作業メモリから外れ、それを思い出す方法はありません。
00:00:59モデルには限られたコンテキストウィンドウがあります。
00:01:00例えば、
00:01:01Anthropicのモデルは20万トークンのコンテキストウィンドウを持ち、
00:01:04Geminiのモデルは100万トークンを持っています。
00:01:06送信するメッセージの観点からは非常に大きな数字に見えるかもしれませんが、
00:01:10実際にはそれほど巨大ではありません。なぜなら、
00:01:12これらのAIツールでは、
00:01:13コンテキストウィンドウはシステムプロンプトとユーザーメッセージだけでなく、
00:01:17過去のメッセージ、
00:01:18メモリファイル、
00:01:19ツール、
00:01:20MCP呼び出しなど、
00:01:21他の多くのものも含まれているからです。
00:01:23この限られた作業スペースを最大限に活用する方法を学ぶ必要があります。そうすれば、
00:01:27ワークフローを構築する際に、
00:01:28モデルが望み通りの動作をするようになります。
00:01:30このビデオ全体を通して、
00:01:31主要なコーディングツールとしてClaude Codeを使用しますが、
00:01:34すべてのプラットフォームにこれらの原則に必要なツールがあるため、
00:01:37どのプラットフォームでもワークフローを構築できます。
00:01:39最も重要な原則であり、あらゆるワークフロー設計の鍵となるのは、プログレッシブ・ディスクロージャー(段階的開示)です。
00:01:44つまり、
00:01:44LLMに重要なものだけを明らかにし、
00:01:46将来必要になるかもしれないすべてのものでコンテキストウィンドウを満たすのではなく、
00:01:51今実際に必要なものにモデルの注意を集中させるということです。
00:01:54現在、
00:01:55Sonnet 4.5のようなより高度なモデルには、
00:01:58コンテキスト編集機能が組み込まれており、
00:02:00何がノイズかを理解し、
00:02:01自動的にフィルタリングしようとします。また、
00:02:04grepコマンドを使用して、
00:02:05必要なものを絞り込みます。
00:02:07しかし、それだけでは十分ではありません。
00:02:08曖昧な指示を与えると、これらの新しいモデルでさえ、必要のない多くのものを読み込み、ウィンドウを汚染してしまいます。
00:02:14バックエンドのエラーを修正するようClaudeに依頼する代わりに、
00:02:17すべてを一度に修正するように依頼するのではなく、
00:02:20エンドポイントを1つずつチェックするように依頼する方が良いでしょう。
00:02:23Claudeのスキル機能は現在オープンソースになっており、すべてのツールで使用できます。
00:02:27スキルは、プログレッシブ・ディスクロージャーの具現化とも言えます。
00:02:29その説明は、
00:02:30すべてをコンテキストに読み込むことなく、
00:02:32各スキルをいつ使用すべきかをAIコーディングプラットフォームが知るのに十分な情報を提供します。
00:02:38人々が犯す大きな間違いは、すべてにMCPを使用することです。
00:02:41MCPは外部データが必要な場合にのみ使用し、それ以外はすべてスキルを使用する必要があります。
00:02:462番目に重要な原則は、今すぐ必要でない情報はコンテキストウィンドウに含めるべきではないということです。
00:02:52これを実現するために、ツールは構造化されたノート取りを使用します。
00:02:55これを活用して、AIツールに決定事項、問題、技術的負債を文書化するために使用できる外部ファイルを提供することができます。
00:03:03このアプローチにより、
00:03:04エージェントは、
00:03:05本当に複雑なものを構築する際に失われる可能性のある重要なコンテキストを維持できます。
00:03:09これらのツールには、コンテキストウィンドウを管理するための圧縮機能もあります。
00:03:13コンテキストがリセットされた場合、圧縮サマリーだけに頼る必要はありません。
00:03:17例えば、
00:03:18エージェントはこれらのノートを使用して、
00:03:20すでに完了したことと、
00:03:21まだ行う必要があることのコンテキストを得ることができます。
00:03:23このアプローチは、本質的に複雑な長期タスクに特に役立ちます。
00:03:28agent.mdについてはご存知かもしれません。
00:03:30これは、すべてのエージェントがセッションを開始する前に読み取る標準的なコンテキストファイルです。
00:03:34一部のエージェントはこれに従わず、
00:03:36claud.mdなど独自のものを持っており、
00:03:38私はこれらを使用して、
00:03:39外部ファイルがどのように構造化されているか、
00:03:41それぞれに何を書くべきかをエージェントに指示しています。
00:03:44時々、これらのエージェントは長時間実行されるタスクの途中でランダムに一時停止します。
00:03:47これが起こる多くの場合、コンテキストが制限の70%を超えているためです。
00:03:52ここで、アテンション・バジェット(注意予算)の概念が登場します。
00:03:55コンテキストウィンドウとは、出力を生成する際にモデルが注意を払うものです。
00:03:5970%を超えると、モデルはより集中しなければならず、ハルシネーション(幻覚)の可能性が高くなります。
00:04:04AIエージェントの観点では、ツールを効果的に使用できなくなり、多くの場合、単にそれらを無視することを選択します。
00:04:10これを解決するために、使用できるいくつかの組み込みツールがあります。
00:04:14すでにご存知のように、
00:04:15圧縮により、
00:04:15モデルは起動プロンプトとして何が起こったかの適切なサマリーと、
00:04:18縮小されたコンテキストウィンドウで新たに開始できます。
00:04:21したがって、
00:04:2290%まで埋めて自動圧縮機能をトリガーするのではなく、
00:04:25コンテキストウィンドウに注意を払い、
00:04:26自分で行うようにしてください。
00:04:28実験している場合は、
00:04:29Claudeの組み込みの巻き戻し機能を使用して、
00:04:31不要な部分を継続してClaudeに変更を依頼するのではなく、
00:04:34削除できるようにしてください。
00:04:36また、
00:04:36新しいタスクごとにクリアするか、
00:04:38新しいコンテキストウィンドウを開始して、
00:04:39以前のコンテキストがモデルを遅くしないようにする必要があります。
00:04:42プログレッシブ・ディスクロージャーの原則から派生するもう1つのことは、
00:04:45メインのコンテキストウィンドウを汚染することなく、
00:04:48これらのエージェントがバックグラウンドでタスクを実行できることです。
00:04:51サブエージェントは独自の分離されたコンテキストウィンドウで動作し、出力のみをメインエージェントに報告します。
00:04:57これは、
00:04:57互いに分離されたタスクに取り組む場合に特に役立ちます。なぜなら、
00:05:01メインのコンテキストウィンドウは、
00:05:03サブエージェントが行うツール呼び出しや検索で肥大化することから保護され、
00:05:07情報が専用の作業ゾーンに留まることが保証されるからです。
00:05:10これらのエージェントはバックグラウンドで実行されるため、
00:05:13メインエージェントとのやり取りを続け、
00:05:15実際に注意が必要な何かに取り組ませることができます。
00:05:17作業している新しいフレームワークのルールなど、何かを調査してほしい場合は、これらのサブエージェントを使用します。
00:05:23この方法で、ツール呼び出しや検索が分離され、メインエージェントに答えを返すだけです。
00:05:29ノート取りの原則を理解している場合は、どのタスクにどのファイル形式を使用すべきかも知っておく必要があります。
00:05:34これらのファイルは異なる形式を持っているため、トークン数、ひいてはワークフローの効率に影響を与えます。
00:05:40YAMLは最もトークン効率が高いため、主にデータベーススキーマ、セキュリティ設定、API詳細に使用しています。
00:05:46そのインデントは、モデルが情報を適切に構造化するのに役立ちます。
00:05:49Markdownは、
00:05:50claud.mdのようなドキュメントに適しています。見出しレベルにより、
00:05:54モデルがセクション間を移動しやすくなるためです。
00:05:56XMLは、特にClaudeモデル向けに最適化されています。
00:05:59Anthropicは、
00:06:00彼らのモデルがこれらのタグをコンテナや区切り文字として認識するようにファインチューニングされていると述べており、
00:06:06制約、
00:06:06サマリー、
00:06:07視覚的詳細などの明確なセクションがある場合に便利です。
00:06:10他のモデルは一般的に、XMLよりもMarkdownとYAMLを好みます。
00:06:13最後にJSONです。
00:06:14すべての余分な中括弧と引用符のため、
00:06:16最もトークン効率が悪いため、
00:06:18タスク状態のような小さなものにのみ使用し、
00:06:21ほとんどの場合、
00:06:22使用を推奨しません。
00:06:23Gitは、プログラミングを始める際に教えられる最も基本的なものの1つです。
00:06:26これらのコンテキストワークフローには、
00:06:29プロジェクト全体でも単一のタスクでも、
00:06:31進行状況のリマインダーとして実際にgitのコミット履歴を使用するという別のトレンドが見られます。
00:06:37進行状況の保存に使用したくない場合でも、
00:06:39一般的に、
00:06:40これらのコンテキストエンジニアリングワークフローは、
00:06:42git初期化されたリポジトリで使用する必要があります。
00:06:44コンテキストエンジニアリングワークフローを持つということは、
00:06:47モデルにすべてを一度に実行させるのではなく、
00:06:49計画されたステップを一つずつ実行させることを意味します。
00:06:51どの段階で問題に遭遇しても、
00:06:53gitを使えばどのバージョンに戻すかを制御でき、
00:06:56どの変更が問題を引き起こしているかを評価するのに役立ちます。
00:06:59また、gitのワークツリーを使って並列処理を実装している人もいます。
00:07:02私も、サブエージェントが専用のワークツリーで並列作業を行う多くのワークフローを紹介してきました。
00:07:07どんなワークフローを作成したとしても、一般的な手順のために指示を繰り返すケースは必ず発生します。
00:07:13良い例としては、AIツールにgitコミットやドキュメントの更新を依頼する方法があります。
00:07:18ほぼすべてのAIツールには、最も繰り返し使用するプロンプトを再利用する方法があります。
00:07:22私は自分のプロジェクトでカスタムコマンドをよく使用しています。なぜなら、
00:07:25それらは基本的にClaudeに再利用可能なガイドを提供するからです。
00:07:28私はよくcatchupコマンドを使用していますが、
00:07:30これにはコンテキストウィンドウの外でメモリをどのように構造化するかの指示が含まれているため、
00:07:34Claudeはすべてのファイルを読むのではなく、
00:07:36プロジェクトの状況を把握する方法を理解できます。
00:07:38これらは構造を強制するのにも優れています。
00:07:40コミットとドキュメントが定義された形式に従うように、
00:07:43私はcommitコマンドを使用しており、
00:07:45これはコミットメッセージの書き方とコミット前に実行すべきプリコミットチェックについて特定の構造に従います。
00:07:51このようにして、
00:07:52/commandsはすべてを標準化し、
00:07:54私が好む方法でタスクを実行するようClaudeに何度も指示する必要がなくなります。
00:07:58ご存知の通り、MCPは外部データが必要な場合に使用すべきです。
00:08:01Jiraは最も広く使用されているチーム管理ソフトウェアです。
00:08:04チケットから情報を取得したい場合は、
00:08:06Jira MCPを使用することで、
00:08:08チケットに直接アクセスして変更の実装を開始できます。
00:08:11同様に、
00:08:11私はFigma MCPを使用してClaudeにアプリのスタイルガイドを提供し、
00:08:16それをデザインの構築に使用させています。
00:08:18モデルの組み込み機能が不十分なタスクでは、外部ソースと効率的に対話するためにMCPが不可欠です。
00:08:25これらのMCPを/commandsに直接含めることで、ワークフロー全体の一部にすることができます。
00:08:31これでこの動画は終わりです。
00:08:32チャンネルをサポートして、
00:08:34このような動画を作り続けられるよう応援していただける方は、
00:08:37下のスーパーサンクスボタンをご利用ください。
00:08:39いつもご視聴ありがとうございます。次の動画でお会いしましょう。