前回の記事では、Claude Code の UltraCode 機能がタスク サイズに基づいて複数のエージェントを柔軟にディスパッチできる方法について説明しました。複数のエージェントがチームで同時に作業している場合、最大の懸念は、エージェントが互いに干渉したり、期待に沿わない変更を加えたりすることです。現時点では、ハーネス重要な役割を果たしました。
ハーネスとは何ですか?
ハーネス(テストフレームワーク/制御スクリプト)は、各エージェントに合わせた「作業隔離領域」と「受け入れ基準」としてイメージできます。以下を定義します。
このエージェントの入力それは何ですか?
変更することが許可されています作業境界線どこ?
その出力どのような検証を通過する必要がありますか?
ハーネスを書くための基本原則
完璧で安全なハーネスを作成するには、次の 3 つの原則に従ってください。
明確な入出力仕様(I/O仕様):
派遣された各エージェントは、プロジェクト履歴全体ではなく、必要なコンテキストのみを受信する必要があります。これにより、トークンの消費が削減されるだけでなく、モデルの幻覚も防止されます。厳密な状態分離:
複数のエージェントが並行して動作する場合、それらが独立したワークスペース (ワークスペース) または Git ブランチで動作することを確認する必要があります。これにより、コードの競合やダーティな状態が回避されます。無人自動検証:
ハーネスには、一連の検証スクリプト (単体テストやリンターなど) が含まれている必要があります。エージェントが作業結果を送信する前に、システムはこの一連のスクリプトを自動的に実行します。検証が失敗した場合、エージェントは検証が成功するまで自身を修復する必要があります。
実装例
以下は、という名前の変数を定義する簡略化されたハーネス設定例です。frontend-expertエージェントを作成し、その専用のテストと独立したブランチを構成します。
// harness.config.ts
export const uiComponentHarness = {
name: "UI Component Generation",
agents: ["frontend-expert"],
workspace: "branch:feat-new-ui",
context: ["src/components/ui/button.tsx", "src/styles/globals.css"],
validation: "npm run test:ui && npm run lint",
retryLimit: 3
};結論
適切に作成されたハーネスは、AI エージェントの作業の精度を大幅に向上させるだけでなく、「完全に自動化された開発パイプライン」に移行するために不可欠な部分でもあります。完全な分離と検証メカニズムにより、複雑なプロジェクトに直面しても、安全にタスクを AI チームに引き渡すことができます。