CurrentStack
#ai#agents#tooling#security#observability

コーディングエージェント時代のハーネス設計: MCP連携と可観測性の実務

QiitaやZennでは、コーディングエージェントの活用が「モデル性能」だけでなく「ハーネス設計」で差が出るという議論が増えています。実際、同じモデルでも運用品質が大きく変わるのは、実行環境の制御面が違うためです。

参考: https://qiita.com/popular-items/feed, https://zenn.dev/feed

結論から言うと、ハーネスは補助機能ではなく本体です。ここを設計しない自動化は、速度より先に事故を生みます。

ハーネス設計とは何か

ハーネスは、モデルの外側にある実行枠組みです。具体的には次を定義します。

  • どのリポジトリをどこまで触れるか
  • どのコマンドを誰の承認で実行できるか
  • 依存導入と外部通信をどう制限するか
  • テスト結果や成果物をどう保存するか
  • 危険操作をどこで人手に戻すか

この設計なしにエージェント導入を進めると、確率的システムに過大権限を渡すことになります。

最低限必要な5つの境界

  1. ID境界: 実行ごとの短命IDを払い出す
  2. ファイル境界: 書き込み可能パスを明示制限
  3. 実行境界: コマンドをリスククラス別に許可
  4. 通信境界: 外向き先のallowlist制御
  5. 承認境界: 保護操作は必ず人手承認

ポイントは「慣習」ではなく「機械的強制」にすることです。

MCP連携で注意すべき点

MCPは便利ですが、信頼境界を拡張します。導入時は次を標準化します。

  • サーバーを信頼ティア別に登録(社内/提携/公開)
  • スキーマ契約とレスポンス上限を設定
  • ツールメタデータの署名とバージョン管理
  • 呼び出しログにサーバーIDを必ず記録

MCPサーバーは「便利プラグイン」ではなく、本番依存先として扱うべきです。

エージェント専用の可観測性

通常のAPMだけでは不十分です。以下の指標を追加します。

  • 計画深度とツール連鎖長
  • 承認必要操作の回避/実施率
  • サンドボックス実行時間と失敗分類
  • ファイル変更グラフとロールバック成功率
  • ポリシー拒否理由と再試行挙動

このデータがあると、障害解析だけでなく改善サイクルも高速化できます。

失敗前提の封じ込め設計

エージェントは失敗します。問題は失敗するかではなく、被害を局所化できるかです。

  • 高リスク変更はdry-run先行
  • タスク単位ブランチ隔離で本線汚染を防止
  • マージ後テスト失敗時の自動revert束
  • トークン/実行時間超過時の予算停止

封じ込めがあると、失敗は運用可能な欠陥に変わります。

生産性と統制の両立

最初から全面自律を狙うと、現場の信頼を失います。段階導入が現実的です。

  • 低リスク反復作業から自動化
  • 設計影響の大きい変更はレビュー必須
  • エラー率改善に合わせて自律範囲を拡張

この進め方なら、開発速度と品質の両方を守れます。

45日導入プラン

1〜15日

  • コード操作をリスク分類
  • 書き込み範囲を絞ったサンドボックス導入

16〜30日

  • 信頼済みMCP連携とポリシーチェック実装
  • 可観測性指標の計測基盤を整備

31〜45日

  • 低リスク業務で条件付き自律を開始
  • 事後分析を通じて境界とルールを更新

まとめ

コーディングエージェントを本番インフラとして使うなら、ハーネス設計が主戦場です。境界制御、MCP統制、可観測性、封じ込め戦略を先に整えることで、速度を維持したまま安全に自動化を拡張できます。

おすすめ記事