Изолируйте context и передавайте только нужные факты
Отдельное context window полезно как фильтр и способ распараллеливания. Оно становится расходом, когда каждый worker заново читает весь исходный материал. Subagent получает goal, минимальный набор artifacts, ограничения и формат ответа - и не должен автоматически наследовать весь transcript manager. Иначе вы оплачиваете одинаковый контекст несколько раз и переносите все prompt injections в каждую ветвь.
Что передавать - task contract, canonical identifiers, версии artifacts, ссылки на первичные evidence, локальные stop conditions и budget. Что не передавать автоматически - полный chat history, сырые логи других workers, секреты, недоверенные инструкции из документов и внутренние черновики.
Anthropic описывает subagents как средство compression: независимые context windows исследуют разные направления и возвращают lead agent наиболее важные tokens; документация Claude Code также отмечает, что subagent работает в собственном контексте и возвращает summary. Это экономит основной контекст, но не делает summary истинным. В companion-проекте контекст worker собирается узким envelope.
export function createHandoff(
source: AgentContract,
target: AgentId,
input: Omit<HandoffEnvelope, "from" | "to">
): HandoffEnvelope {
if (!source.allowedHandoffs.includes(target)) {
throw new Error(`Handoff ${source.id} -> ${target} is not allowed`);
}
if (input.goal.trim().length < 8) {
throw new Error("Handoff goal is too vague");
}
if (input.remainingCalls < 1) {
throw new Error("Handoff has no remaining call budget");
}
return { from: source.id, to: target, ...input };
}Summary является данными. Следующий агент должен отличать verified fact, цитату tool result, инженерный вывод и неподтверждённое предположение. Происхождение важнее уверенного тона - в production добавьте версии и hashes artifacts, provenance для фактов и срок жизни package, а недостающий artifact worker запрашивает явно.
Контекст изолирован. Но временная проекция - не хранилище: состояние надо держать вне разговоров.