Anthropic は最近、Harness のエンジニアリング実践に関する記事を公開しました。表面的には製品の実装について話しているように見えますが、本質的には長期的な質問に答えています。
**モデルの機能が変化し続ける場合、エージェント システムのどのレイヤーが安定している必要があり、どのレイヤーが迅速な置き換えを可能にする必要がありますか? **
核心判断
この記事に関する私の基本的な理解は、エージェント インフラストラクチャがますます軽量の エージェント OS に近づいていくだろうということです。
焦点は「今日の最良のプロセスをハードコーディングする」ことではなく、「長期的に安定したシステム抽象化を定義する」ことにあります。
これがなぜ重要なのでしょうか?
多くのエージェント フレームワークに共通する問題は次のとおりです。
- モデルの一時的な欠点を永続的な構造に統合します。
- プロンプトプロジェクトをシステム境界と間違えた
- 長期的な依存関係として一度有効なパッチを作成する
モデルはより強力になり、今日合理的なパッチが明日には技術的負債になる可能性があります。
人間的ソリューション: コンクリートハーネスからメタハーネスへ
このアイデアは、固定された配置方法を約束するものではありませんが、安定したインターフェイスの 3 つの層を抽象化します。
session: 回復可能なイベントとステータスの履歴harness: 推論とスケジューリングのループ (脳)sandbox: 実行環境とツールの機能 (ハンド)
分離すると、システムの交換、復旧、拡張が容易になります。
1) セッションはコンテキスト ウィンドウではありません
重要な点は次のとおりです。 **セッションはモデル コンテキストと等しくありません。 **
セッションは、モデルに直接接続された履歴のスプライシングではなく、クエリ可能、再生可能、および回復可能なイベント ログである必要があります。
これを行うことの価値:
- トリミングは歴史の消滅を意味するものではありません
- 圧縮は事実の損失と同等ではない
- クラッシュリカバリは、サマリーメモリに依存するのではなく、イベントレイヤーに戻ることができます
2) ハーネスは交換可能なオーケストレーション レイヤーです
ハーネスは、ビジネス ステータスを保持することよりも、スケジュールを管理することに重点を置く必要があります。
理想的なインターフェイスは次のようなものです。
execute(name, input) -> string
これは、モデルが「どの機能を呼び出すことができるか」のみを考慮しており、特定のデバイス、コンテナー、オペレーティング システムに強く束縛されていないことを意味します。
3) サンドボックスは「頭脳」ではなく「手」です。
脳と手が切り離されると:
- ツール環境は独立して進化できる
- 異なるインフラストラクチャに並行してアクセス可能
- セッションごとに実行環境全体をウォームアップする必要はありません
これは、起動および拡張のパフォーマンスの向上に直接つながります。
パフォーマンスとセキュリティのインスピレーション
多くの場合、この分割によりパフォーマンスとセキュリティの両方が向上します。
パフォーマンス:
- 最初に脳を起動し、必要に応じて手を引き上げることができます
- 最初のトークンの遅延を減らす (TTFT)
安全性:
- 機密性の高い認証情報をモデルに直接公開しないでください
- 間接的な資格情報アクセスには制御されたプロキシ/ボールトを使用する
- 安全境界はシステムの制約に基づいており、「モデルが実行できないこと」ではありません。