Глава 5

Формулируйте гипотезу выигрышем, а не числом агентов

Пилот должен отвечать на один вопрос: стала ли система лучше single-agent baseline по outcome, latency и стоимости принятого результата. Плохая гипотеза - "четыре специалиста рассуждают глубже". Хорошая - "три независимых проверки сократят median wall-clock time на 25 процентов без роста conflict rate выше 2 процентов и без удвоения cost per accepted release".

Метрики стоит выбирать так, чтобы они не подменяли пользу активностью.

Метрика · Что измеряет · Чего не подменяет

  • Task success rate - Доля принятых outcomes; Красоту текста и самооценку агента
  • Cost per accepted task - Полную цену успешного результата; Цену одного model call
  • Wall-clock latency - Время от input до gate; Сумму длительностей параллельных calls
  • Conflict rate - Долю пересекающихся или отклоненных writes; Количество сообщений между agents
  • Human rework - Время на исправление и сборку результатов; Время наблюдения за красивой демонстрацией

Решение по нескольким метрикам удобно оформить кодом, а не впечатлением.

TypeScript
export interface ArchitectureMetrics {
  readonly successRate: number;
  readonly medianLatencyMs: number;
  readonly costPerAcceptedTask: number;
  readonly conflictRate: number;
  readonly humanReworkMinutes: number;
}

export interface AdoptionDecision {
  readonly adopt: boolean;
  readonly reasons: readonly string[];
}

export function compareArchitectures(
  single: ArchitectureMetrics,
  multi: ArchitectureMetrics
): AdoptionDecision {
  const reasons: string[] = [];
  const qualityGain = multi.successRate - single.successRate;
  const latencyGain = single.medianLatencyMs - multi.medianLatencyMs;
  const costRatio = multi.costPerAcceptedTask / single.costPerAcceptedTask;

  if (qualityGain >= 0.05) {
    reasons.push(`success rate +${(qualityGain * 100).toFixed(1)} pp`);
  }
  if (latencyGain > 0) {
    reasons.push(`median latency -${latencyGain} ms`);
  }
  if (multi.humanReworkMinutes < single.humanReworkMinutes) {
    reasons.push("less human rework");
  }
  if (multi.conflictRate > 0.02) {
    reasons.push("conflict rate exceeds 2%");
  }
  if (costRatio > 2) {
    reasons.push(`cost ratio ${costRatio.toFixed(2)}x`);
  }

  const adopt =
    (qualityGain >= 0.05 || latencyGain > 0) &&
    multi.conflictRate <= 0.02 &&
    costRatio <= 2 &&
    multi.humanReworkMinutes <= single.humanReworkMinutes;

  return { adopt, reasons };
}

Сравнивайте архитектуры на одном наборе задач, с одинаковыми входами и одним внешним gate. Результат multi-agent run нельзя считать успешным только потому, что supervisor сказал "готово".

Нормальная развязка пилота. Single agent может победить. Это не провал исследования, а экономия production-сложности. Сохраняйте multi-agent вариант только для классов задач, где он доказал преимущество.

Гипотеза поставлена. Если разделение оправдано, следующий выбор - топология, и определяет её место принятия решения.

Проверка знаний

Что доказывает пользу multi-agent варианта?

Ссылки