Глава 12

Используйте review, а не бесконечный спор

Critic полезен, если у него есть независимый evidence и право отклонить результат по rubric. Свободный group chat часто только умножает текст и коррелированные ошибки. Паттерн producer-critic выглядит убедительно, но легко превращается в цикл взаимного согласия: reviewer должен получать immutable artifacts, acceptance criteria и результаты проверок, а не оценивать скрытый reasoning producer и не верить заявлению "тесты пройдены" без evidence.

Три режима отличаются источником доверия. Self-critique дешёв, но ошибки и предположения сильно коррелируют - тот же контекст. Independent reviewer читает task contract, artifacts и evidence в свежем контексте, а не историю убеждений исполнителя. Group chat подходит для некоторых collaboration-паттернов, но растит контекст и требует жёсткой termination. В companion-проекте review именно evidence-gated.

TypeScript
  private review(context: AgentContext): AgentResult {
    const evidenceKeys = passedEvidence(context);
    const required = ["evidence/tests/result.json", "evidence/security/result.json"];
    const missing = required.filter((key) => !evidenceKeys.includes(key));
    if (!artifactExists(context, "release-notes/notes.md")) {
      missing.push("release-notes/notes.md");
    }
    const passed = missing.length === 0;
    const reviewEvidence: Evidence = {
      name: "independent-review",
      passed,
      details: passed ? "All independent branches supplied evidence" : `Missing: ${missing.join(", ")}`
    };
    if (!passed) {
      throw new Error(reviewEvidence.details);
    }
    return {
      summary: "Independent reviewer accepted the release package",
      artifacts: [{
        key: "report/release.json",
        content: JSON.stringify({ decision: "approve", evidence: evidenceKeys }),
        expectedVersion: 0
      }],
      evidence: [reviewEvidence],
      usage: USAGE.reviewer
    };

AutoGen документирует group-chat teams, где agents по очереди публикуют сообщения в общий контекст, и отдельно советует начинать с single agent для простых задач; в termination-документации условия проверяются после ответов agents - это часть паттерна, а не необязательное улучшение. Termination для review-цикла стоит задать явно: pass всех обязательных deterministic graders; максимум N revision rounds; отсутствие нового material finding; исчерпан локальный budget; escalation человеку при споре о requirement, а не ещё один opinion agent.

Не голосуйте по факту. Три агента, прочитавшие один ошибочный источник, не создают три независимых доказательства. Считайте provenance и разнообразие evidence, а не количество одинаковых выводов.

Review устроен. Но чтобы роль вообще была проверяемой, определять её надо контрактом, а не профессией.

Ссылки