ハーネスエンジニアリングとは何か?

TL;DR
ハーネスエンジニアリングとは、非決定論、有限の注意力、長文脈での性能低下といったモデルの性質を補い、出力の確実性と品質を高める設計である。CLAUDE.mdで常時ルールを示し、Agent Skillsで必要な情報だけを開示し、hooksで必須処理を強制し、subagentで関心と評価を分離する。
Transcript
おすまです。本日はですね、AI エージェントを学んでいく上での、ま、 モデルであったりだとか、ハーネス エンジニアリングに関連するお話をして いきたいと思います。ま、ハネスって言っ たらね、もう今では結構皆さんも毎日の ように、ま、耳にするワードなんじゃない かなと思うんですけれども、ま、これが そもそも何をさしているのかっていうのを ね、え、もうちょっと具体的に知りたいよ みたいな方も結構いるかなという風に思い ますんで、特にですね、ま、クロード コードを最近使い始めましたとか、ま、 コデックスをね、え、日常的に使ってる けど、その深掘りはまだできてないな みたいな方に、え、対してですね、ま、 なぜこれが必要なのか、え、ま、どういう ことがね、中で行われているのか、ま、 そういうのを含めて... Read More
Key Insights
- LLMは次の語を確率的に選ぶ非決定論的な仕組みであり、同じプロンプトを複数回実行しても、意味が近い別の表現や内容を返す可能性がある。
- ナレッジカットオフはモデルが学習済み情報しか持たないという制約であり、それ以降の情報を扱うには検索ツールや外部情報の取得が必要になる。
- コンテキストウィンドウはモデルが一度に参照できる短期記憶の範囲であり、容量が大きくても、内部の情報を確実に想起して制約を守れるとは限らない。
- モデルの注意力は有限であり、常時適用するルールを大量に与えると、一部の指示が抜けたり、矛盾する制約を安定して守れなくなったりする。
- lost in the middleは重要情報が長い入力の中央にあると正答率が落ちやすい性質であり、重要な指示や根拠の配置を設計する必要がある。
- context rotは入力が長くなるほどモデルの性能が低下する性質であり、タスク分割やコンテキストのクリアによって負荷を抑える必要がある。
- Agent Skillsは必要な時だけ詳細やスクリプトを読み出す段階的開示の仕組みであり、すべての知識を常時読み込ませずに注意力を節約できる。
- hooksはモデルの判断に依存せず必須処理を確実に実行する仕組みであり、特定入力時やコマンド実行後の処理を決定論的に強制できる。
- 🎬 このチャンネルの他の動画:
- 📺 このチャンネル: まさおAIじっくり解説ch
Install to Summarize YouTube Videos and Get Transcripts
Explore YouTube Video Summarizer or Get YouTube Transcript Extractor
Questions & Answers
Q: ハーネスエンジニアリングとは何ですか?
ハーネスエンジニアリングとは、モデルの性質を踏まえて、より確実で質の高い出力を得るための周辺設計です。システムプロンプト、ツール、権限、メモリ、CLAUDE.md、Agent Skills、hooks、subagentなどを組み合わせ、モデルの非決定性や有限の注意力、長い入力による性能低下を補います。
Q: AIエージェントとモデルの違いは何ですか?
AIエージェントはモデル単体ではなく、モデルとハーネスを組み合わせたものです。動画ではモデルを車のエンジン、ハーネスを車全体に例えています。モデルが推論を担い、ハーネスが指示、ツール、処理の流れ、権限、メモリなどを整えて、その能力を実際の作業に使える形へ導きます。
Q: LLMの出力が毎回変わるのはなぜですか?
LLMの出力が毎回変わり得るのは、次の語を確率的に選ぶ非決定論的な仕組みだからです。同じモデルへ同じ質問を与えても、内容が似た別の表現になる場合があります。そのため、AIエージェントには結果を検証する仕組みや、必要な処理を確実に実行させる仕組みが求められます。
Q: コンテキストウィンドウとは何ですか?
コンテキストウィンドウとは、モデルが一度に読んで参照できる情報量の範囲であり、短期記憶や机の広さに例えられます。範囲外の情報は見えず、範囲内でも入力が長くなるほど性能が落ちることがあります。したがって、何を入れるか、いつ区切るか、どの単位でタスクを渡すかが重要です。
Q: 長いコンテキストによる性能低下を防ぐ方法は?
長いコンテキストによる性能低下を抑えるには、作業を小さな単位へ分割し、必要に応じてコンテキストをクリアします。UI、サーバー側、コンテンツ生成など関心の異なる作業を一度に渡さず、それぞれを独立したタスクにすると、入力が簡潔になり、モデルの有限な注意力を一つの目的へ向けやすくなります。
Q: CLAUDE.mdには何を書くべきですか?
CLAUDE.mdには、モデルが常に意識すべきルール、利用可能なツール、報告形式、設計上の選択肢、関連文書への導線などを書きます。細かな方法を過剰に固定せず、簡潔で構造的に整理することが重要です。背景情報やドメイン知識はすべて埋め込まず、必要な文書のパスを示す段階的開示も活用できます。
Q: Agent Skillsは何のために使うのですか?
Agent Skillsは、必要な知識や手順だけを必要な時に読み出すために使います。モデルは最初にスキルの名称や説明を把握し、必要だと判断した時点でSKILL.mdの内容や関連スクリプトを参照します。辞書型のドメイン知識やワークフロー型の手順を分離でき、すべてを常時読み込ませずに済みます。
Q: hooksと通常の指示は何が違いますか?
hooksは、モデルの判断に任せず、条件に合えば必ず処理を実行させる点が通常の指示と異なります。通常の指示やスキルは、注意力の限界などによって参照されない可能性があります。特定のユーザー入力時やコマンド実行後に必須のスクリプトを走らせたい場合、hooksで決定論的な処理として組み込みます。
Q: subagentを使ってタスクを分割する方法は?
subagentによる分割では、UI設計、バックエンド、素材作成など、関心ごとが異なる作業を別々のエージェントへ割り当てます。一つのモデルへ多くの注文を同時に与えると仕事の質が落ち得るため、各エージェントが一つの領域へ集中できるようにします。長いタスクのコンテキストを分離する手段としても使えます。
Q: AIの回答を第三者役に評価させるのはなぜですか?
第三者役のエージェントに評価させる目的は、作成を続けた同じ文脈から離れ、新鮮なコンテキストで結果を検証することです。モデルは修正を重ねる過程で評価を上げ続けるなど、迎合的な判断やバイアスを示す場合があります。そこで、作成者とは別のエージェントの視点を設け、評価の独立性を高めます。
Summary & Key Takeaways
-
AIエージェントは、推論を担うモデルと、それを使いこなすハーネスの組み合わせとして捉えられる。モデルは次の語を確率的に選ぶため、同じ指示でも表現や内容が変わり得る。また、学習後の情報を知らないナレッジカットオフと、一度に扱える情報量を制限するコンテキストウィンドウがあるため、検索ツールや適切な情報投入が必要になる。
-
モデルの注意力は有限であり、指示を増やしすぎると一部が抜けたり、矛盾したルールを守れなくなったりする。さらに、重要情報が入力の中央にあると正答率が落ちるlost in the middleや、入力が長くなるほど性能が低下するcontext rotもある。対策は、指示を短くし、タスクを関心ごとに分け、必要に応じてコンテキストをクリアすることである。
-
代表的なハーネスには、常時参照するCLAUDE.md、必要時に詳細を読むAgent Skills、条件に応じて必ず処理を走らせるhooks、作業や評価を分担するsubagentがある。CLAUDE.mdは簡潔かつ構造的にし、背景情報は文書への導線として示す。Skillsは段階的開示により注意力を節約し、hooksはモデルの判断に委ねられない必須処理を決定論的に実行する。
Read in Other Languages (beta)
Share This Summary 📚
Summarize YouTube Videos and Get Video Transcripts with 1-Click
Try YouTube Summary with ChatGPT & Claude or YouTube Transcript Generator
Explore More Summaries from まさおAIじっくり解説ch 📚
Summarize YouTube Videos and Get Video Transcripts with 1-Click
Try YouTube Summary with ChatGPT & Claude or YouTube Transcript Generator





