Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agent Harnessはどう作る?事例から学ぶAI Agentの設計思想

Avatar for sergicalsix sergicalsix
November 10, 2026

Agent Harnessはどう作る?事例から学ぶAI Agentの設計思想

2026年11月10日のイベント登壇資料となります。

https://rosca.connpass.com/event/410646/

Avatar for sergicalsix

sergicalsix

November 10, 2026

More Decks by sergicalsix

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 渋谷 優介(@sergicalsix) AI駆動開発カンファレンス 2025秋 Software Design 2026年2月号 開発専門役員・AI駆動開発センター センター長

    【Harness Engineering入門】 AIエージェントを制御するアプローチ Software Design 2026年8月号 ©Algomatic 2
  2. 前提: AI駆動開発におけるマルチエージェント 型設計 型設計 ポイント : 流れを決める主体 Swarm型 スーパーバイザー型 流れを決める

    スーパーバイザー役 LLM。 次に呼ぶエージェントや継続条件など全てを決め る パイプライン型( Workflow) 流れを決定する 各エージェント。 流れを決定する コード。 各エージェントが次 担当へ引き継ぐ。 各フローで独立して LLMが判断する。 handoff 流れをコードで定義 スーパーバイザー 計画 実装 Agent A 審査 Agent B 計画 実装 審査 検証 Agent C ©Algomatic 4
  3. 従来 エージェント設計 スーパーバイザー型と安価なモデル 併用 当時 構成 当時 らい 1 スーパーバイザー(

    LLM) チケット 次 2 工程・やり直し・完了をLLMが判断 完了? 1 チケットごとに必要な工程をLLMが選べる 2 Planner 計画 Builder 実装 Reviewer 審査 呼ぶ順番・やり直す回数・終わるタイミング 、毎回 LLM次第 節約 手を動かすだけ 3 3 柔軟さ 役 安いモデルで回す 手軽さ フローを書かず、プロンプトだけで組める ©Algomatic 5
  4. 失敗例 LLMに流れを任せて起きた 3つ 失敗 誤った完了報告 落ちるテストに .skipを付けて飛 部通りました」と報告する 甘い検証 し、「全

    検証する ずが、作り手 た実装です」と弁明する 終わらないループ 立場で「意図し 安いモデルで 差し戻しを直しきれず、 1 チケットで数百ドルに膨らむ ©Algomatic 6
  5. 変更点 Harnessによる処理 流れ 設計 pipeline.ts(抜粋・簡略化) 処理 流れ 変化 // attempt-progress.ts(抜粋・簡略化)

    次 工程を決める rejected(sha, requirementsVersion, feedback) { → 関数を呼ぶ順番を前もって決定 const key = `${sha}:${requirementsVersion}`; // 候補も要件も前回と同じなら「進んでいない」 this.stalled = key === this.previous ? this.stalled + 1 : 0; やり直すか決める → 基準に従って打ち切り this.previous = key; return this.stalled >= 2 ? { kind: "stop", reason: … } : { kind: "retry", reason: feedback }; 完了を判断する → 基準を明確に設定 } // stop なら実装を止めて、人に返す 自ら検証する → 検証 モデル 別系統 モデルとして設定 ©Algomatic 7
  6. 役割分担 HarnessとLLM 役割分担 コードが持つ( Harness) LLMに任せる(判断) 工程 順序 何を作るかを決める(計画) 差し戻し

    宛先と打ち切り条件 どう作るかを決める(実装) 完了 判定(終了コード) 通してよいかを決める(審査) 触ってよい範囲 動いたと言えるかを決める(検証) Harness 全体設計、 LLMに 個別 判断を任せる ©Algomatic 8
  7. 弊社事例 弊社開発プロセス事例 実装の問題 → Workerへ 相談(⾮同期) Issue 依頼‧コメント 要件担当 受⼊条件を整理

    失敗 → 直す Worker 実装‧⾃⼰検証 ⾃動チェック 型‧test‧verify Verifier 条件ごとに検証 AGREE Pull Request 質問 3回変化がない場合REJECT ⼈ Issueで回答 Surveyor コード調査 ⼈に返す 要件の問題 → 要件担当へ 差し戻し先の固定 ⼈への確認 ⼈を排した⾃律的な実装 Verifierは受⼊条件ごとに判定し、実装の問題は 実装も要件も変わらないまま 不明点はIssueで質問し、 Workerへ、要件の問題は要件担当へ返す 3回差し戻されたら⼈に返す 回答に依存しない条件から先に実装‧検証する ©Algomatic 9
  8. 具体例: 入力 パイプラインへ Issue 入力対象 Issue Issueに書くこと 例(勤怠一覧に平均実働時間 カードを追加) 1

    現状 ど ファイル 2 、ど 部品 要件 計算式と見た目 3 話かを書く 規約まで書く スコープ外 触らない範囲を書き、勝手に広げさせない ©Algomatic 10