Урок 0004 · Тулы (ACI) и субагенты

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

Цель урока Назвать условия «когда делить на субагентов» и 3–4 правила ACI с примерами.

1. Тулы: два разных вопроса

  1. Тул полезен системе? — ablation: выключи тул, прогони golden set. Упал success → тул нужен.
  2. Агент осмысленно его использует? — tool selection accuracy, tool-call F1, argument validity, outcome after tools.

Ключевое: outcome в БД, не слова агента. «Я забронировал» ≠ бронь существует.

2. Метрики тулов

МетрикаСутьGold?
Tool selection accuracyПравильный тул выбранда
Tool-call F1P/R по множеству вызововда
Argument validityСхема + enum + инвариант (сумма > 0)нет, код
Unnecessary callsВызов без изменения состоянияэвристика
pass^kУспех во всех k прогонахда

τ-bench (Sierra): метрика pass^k — стабильность, не pass@k. На airline Claude 3.5 Sonnet: pass^1 = 0.46, pass^4 = 0.225. Таксономия ошибок: used_wrong_tool, used_wrong_tool_argument, took_unintended_action, goal_partially_completed.

Источник: τ-bench.

3. ACI: интерфейс для агента, не REST для фронта

  1. Имя + 3–4 предложения: что делает, когда звать, когда НЕ звать.
  2. Параметры однозначные: user_id, не user.
  3. Namespace: cards_get_balance, а не два «search».
  4. Poka-yoke: enum статусов, absolute paths, неотрицательные суммы.
  5. Возврат high-signal: «no matches in src/policies/», не [].
  6. Ошибка учит следующий ход, не «Error: 400».
  7. Группируй действия: один тул с action=, не 3 тула.
  8. 3–5 горячих тулов в контексте, остальные за router.

Anthropic на SWE-bench потратили на тулы больше времени, чем на системный промпт. Пример: relative paths ломались после cd → обязали absolute paths — ошибки исчезли.

Источники: Writing tools for agents, Building Effective Agents.

4. Субагенты: когда НЕ делить

Принципы Cognition (Devin):

  1. Делись полным трейсом, не брифом. Субагент без контекста принимает чужие неявные решения.
  2. Действия несут неявные решения; конфликтующие решения = плохой merge.

Пример: «Flappy Bird» → субагент 1 делает фон в стиле Mario, субагент 2 — птицу не в том стиле. Lead не склеивает.

Claude Code: субагенты не работают параллельно с основным и обычно только отвечают на вопрос — из-за потери контекста.

Источник: Cognition — Don't Build Multi-Agents.

5. Субагенты: когда ДА

Anthropic Research: субагенты выигрывают на breadth-first, независимых направлениях, когда работа не влезает в одно окно. Их результат: +90.2% против одного агента на research-eval.

Цена: multi-agent ~15× токенов чата. Token usage объяснил ~80% дисперсии качества на BrowseComp.

Условия: подзадачи независимо параллелятся, задача платит 15× токенов, worker отдаёт артефакт в filesystem (не через «испорченный телефон»), lead получает ссылку, не простыню токенов.

Источник: Anthropic multi-agent research.

6. Как проверить, что сплит дал смысл

A/B на одном golden set: success вырос на независимых осях, конфликты артефактов не выросли. Если success не вырос, а $ вырос — выкинь субагентов.

Каре-бот банка: 80% — FAQ и статус карты, это router + RAG, не рой агентов.

Проверь себя

Что такое poka-yoke в ACI?

Главный принцип Cognition?

Multi-agent жжёт токенов примерно?

Первоисточник урока Anthropic — Writing tools for agents — ACI и eval тулов. Противовес: Cognition — Don't Build Multi-Agents.