導入事例

Factory Droids導入事例 — Opus 4.7で成功率15%向上

Factory Droids導入事例 — Opus 4.7で成功率15%向上

この記事の結論

Factory社のDroidsがClaude Opus 4.7導入でタスク成功率10〜15%向上を達成。55万時間以上の開発工数削減を実現した自律エンジニアリングエージェントの設計パターンを解説。

「AIエージェントが自律的にコードを書き、レビューし、PRを出す」——これを本番環境で動かし続けている企業がある。Factory(ファクトリー)だ。2023年創業の同社は、「Droids」と呼ぶAIエージェント群を使ってソフトウェア開発ライフサイクル全体の自律化を進めており、顧客企業での累計開発工数削減は55万時間を超える。

2026年4月16日にClaude Opus 4.7がリリースされると、FactoryはOpus 4.7をDroidsのコアモデルとして採用した。その結果、タスク成功率が10〜15%向上し、ツールエラーの減少とバリデーション追従精度の改善が確認されている。

この記事では、FactoryのDroidsの設計パターンとClaude Opus 4.7との組み合わせがどのような成果をもたらしているのかを、公開情報をもとに解説する。

> 事例区分: 公開事例
> 以下はAnthropic公式のカスタマーストーリーおよびFactoryの公開技術資料に基づく情報です。

まず結論:FactoryがDroidsで達成した成果

KPI 導入前(従来開発) Droids導入後 備考
累計工数削減 55万時間以上 顧客全社合計(2026年時点)
開発サイクル時間 基準 20%短縮 Anthropic公式ストーリー記載
コードチャーン 基準 3分の1に削減 同上
タスク成功率(Opus 4.7採用後) Opus 4.6時 10〜15%向上 ツールエラー減少・バリデーション精度改善
SWE-bench Full(Code Droid) 19.27% Factory技術レポート(2024年時点)
SWE-bench Lite(Code Droid) 31.67% 同上

1. Factory Droidsとは何か — 設計の出発点

FactoryのCTO、Eno Reyesはこう語っている。「私たちが必要としているのは、本質的にエージェント的なシステムです。計画立案・サブゴールの分解・失敗からの反省・タスクの改良ができなければならない」。

Droidsは単一の万能エージェントではなく、役割が明確に分かれた複数のエージェントで構成される。

  • Code Droid: Jira・Linearなどのプロジェクト管理システムからチケットを取得し、コードを実装してPRを作成する。フィーチャー追加・バグ修正・リファクタリング・マイグレーションを担当
  • Review Droid: PRを自動分析し、コンテキスト付きのインラインコメントを残す。レビュアーが変更の意図を把握しやすくする
  • Knowledge Droid・Test Droid・Docs Droid: ドキュメント生成・テスト作成・知識管理を担当する専門エージェント

コーディネーターエージェントが作業を分解し、各専門Droidに振り分ける構成で、各Droidの出力は構造化された型付きデータ(差分・レビューコメント・テスト結果)として次のDroidに渡される。会話的なコンテキストをそのまま渡す方式ではないため、解釈のブレが生じにくい。

2. Droidsを支える2つの独自技術

HyperCode — コードベースの多解像度表現

大規模コードベースの理解は、LLMエージェントの最大の課題の一つだ。FactoryはHyperCodeという独自システムでこれに対応している。HyperCodeはコードベースの明示的なグラフ構造(依存関係・呼び出し関係)と暗黙的な潜在空間の類似性の両方を構築し、タスクに関連するコードを正確に特定するByte Rankというアルゴリズムと組み合わせて使う。

これにより、Droidsは「このバグを修正するために読む必要があるファイルはどれか」を自律的に判断できる。

DroidShield — コミット前のリアルタイム安全検査

自律エージェントがコードを書く際のリスクとして、セキュリティ脆弱性の混入やIP侵害がある。DroidShieldは静的解析をリアルタイムで実行し、コミット前にこれらを検出してブロックする。本番環境に出荷するコードに対してAIが何を書いたかを監査証跡として記録する機能も持つ。

3. Claude Opus 4.7が引き出した改善

Claude Opus 4.7(2026年4月16日リリース)は、複雑なソフトウェアエンジニアリングタスクで前世代のOpus 4.6を上回る性能を示している。FactoryがDroidsにOpus 4.7を採用した結果として報告している改善点は以下の通りだ。

  • タスク成功率の10〜15%向上: 特に複雑で長時間かかるコーディングタスクで顕著。以前は常時監視が必要だった作業が、組み込みチェック付きで完結するようになった
  • ツールエラーの減少: ファイルシステム操作・git操作・テスト実行などのツール呼び出しで発生するエラーが減少
  • バリデーション追従精度の改善: テストが失敗した場合の自律的なリトライ・修正の精度が向上

Opus 4.7が特に力を発揮するのは「最も難しいタスク」であり、FactoryのDroidsが扱うような複合的な実装作業(リファクタ・マイグレーション・フィーチャー実装)がその典型にあたる。

4. 自律エンジニアリングエージェントの設計パターン — Factory事例から得られる知見

パターン1: 専門化されたエージェントの連鎖(Specialist Chain)

一つのエージェントに全てをやらせるのではなく、役割を分けて連鎖させる。FactoryはCode→Review→Test→Docsという流れで、各エージェントが担当する出力の型を明確に定義している。

# 概念コード(Factoryのアーキテクチャをモデル化したもの)
# 本番環境での使用前に必ずテスト環境で動作確認してください

from dataclasses import dataclass
from typing import Optional

@dataclass
class CodeDiffOutput:
    diff: str
    file_paths: list[str]
    commit_message: str

@dataclass
class ReviewOutput:
    inline_comments: list[dict]
    summary: str
    approval: bool

# コーディネーターが型付き出力で繋ぐ
def run_code_pipeline(ticket: str) -> ReviewOutput:
    code_output: CodeDiffOutput = code_droid.execute(ticket)
    review_output: ReviewOutput = review_droid.review(code_output)
    return review_output

パターン2: サブタスク分解(Subtask Decomposition)

「フィーチャーXを実装して」という大きなタスクを、フロントエンド作業・バックエンド作業・テスト・フィーチャーフラグ設定という具体的なサブタスクに分解してから実行する。Factoryは「ドロイドは計画の質と同じ品質しか出せない」という原則を設計の中心に置いている。

# サブタスク分解の概念実装
# 本番環境での使用前に必ずテスト環境で動作確認してください

def decompose_task(task_description: str) -> list[dict]:
    """
    LLMを使ってタスクをサブタスクに分解する
    各サブタスクには担当エージェント・成果物・依存関係を含める
    """
    plan = llm.create_plan(task_description, schema={
        "subtasks": [
            {
                "id": "str",
                "agent": "code|review|test|docs",
                "description": "str",
                "output_type": "str",
                "depends_on": ["str"]
            }
        ]
    })
    return plan["subtasks"]

パターン3: フィードバックループによる自己修正(Self-Healing Loop)

テストが失敗した場合、エラーログを入力として再度コードを修正するループを組み込む。Droidsはこのサイクルを自律的に回し、人間の介在なしに修正を完結させる。

# 自己修正ループの概念実装
# 本番環境での使用前に必ずテスト環境で動作確認してください

MAX_RETRIES = 3

def implement_with_self_healing(task: str, max_retries: int = MAX_RETRIES) -> CodeDiffOutput:
    for attempt in range(max_retries):
        diff = code_droid.implement(task)
        test_result = test_runner.run(diff)

        if test_result.passed:
            return diff

        # 失敗した場合、エラーログをコンテキストに加えて再試行
        task = f"{task}nn## 前回の試行のエラーn{test_result.error_log}"

    raise RuntimeError(f"{max_retries}回試行後も成功しませんでした")

5. 実装時の落とし穴と回避策

失敗パターン1: コードベースの理解なしにタスクを開始する

❌ 関連ファイルを特定せずにコードを書き始める
✅ まずコードベースの依存グラフを構築し、タスクに関連するファイルを特定してから実装を開始する(FactoryのHyperCodeはこのための専用システム)

失敗パターン2: コンテキストをそのままエージェント間で渡す

❌ 「前の会話の続き」として次のエージェントに処理を渡す
✅ 各エージェントの出力を構造化された型(差分・テスト結果・コメント)として定義し、型付きデータとして受け渡す

失敗パターン3: コミット前の安全検査を省略する

❌ AIが生成したコードをそのままコミットする
✅ セキュリティスキャン・リンター・型チェックを自動実行し、問題があればエージェントに差し戻す(DroidShieldの役割)

失敗パターン4: 監視なしで長時間タスクを実行する

❌ タスクを投入して結果だけを見る
✅ サブタスクごとに中間成果物を記録し、どのステップで失敗したかをトレースできるようにしておく

参考・出典

まとめ:今日から始める3つのアクション

  1. 今日: 自分のチームの開発フローの中で「定型的で繰り返す作業」をリストアップする。Code Review・テスト作成・ドキュメント更新がDroids的なアプローチの最初の候補になる
  2. 今週中: 単一の万能エージェントではなく、役割が明確な複数の専門エージェントの連鎖として設計する方針を検討する。各エージェントの入出力の型を定義することから始める
  3. 今月中: Claude Opus 4.7を使った複雑なコーディングタスクのPoCを1本試す。特に「複数ファイルにまたがるリファクタリング」がモデルの強みを引き出しやすい

あわせて読みたい:


著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー10万人超。100社以上の企業向けAI研修・導入支援。著書累計3万部突破。SoftBank IT連載7回執筆。
ご質問・ご相談はお問い合わせフォームからお気軽にどうぞ。

この記事を読んでAIエージェント活用のイメージが固まってきた方へ

UravationではAIエージェント導入の研修・コンサルを行っています。

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

Uravationでは、AIエージェントの要件整理、PoC設計、社内導入、研修まで一気通貫で支援しています。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年4月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事