Subagents
Construa dois especialistas locais para comparar preço e prazo de um fornecedor. Você vai capturar exatamente o que cada um recebe e demonstrar o comportamento quando uma contribuição falta. O protótipo não usa modelos nem contrata fornecedores. Ele serve para revisar o contrato de delegação antes de escolher um framework ou um provedor.
O resultado esperado é uma recomendação com evidências separadas e uma condição de pendência clara. O laboratório também exige comparar contexto completo e contexto mínimo, mostrando quais dados seriam expostos em cada escolha. Essa comparação deve ser feita pelos campos enviados e pelas necessidades reais da subtarefa, sem inventar ganhos de desempenho ou segurança não medidos.
AgentesAo terminar esta aula
- Pacotes mínimos devem ser construídos campo a campo.
- Validar formato não basta: a contribuição precisa corresponder à solicitação.
- Especialistas só se justificam quando acrescentam benefício verificável.
Antes de continuar: Leitura: Subagents
Escreva o pedido de cada especialista
FundamentosSalve especialistas.cjs e crie um objeto do controlador contendo item, quantidade, destino, orçamento e nome do cliente. Construa os pacotes individuais a partir desse objeto, selecionando campos explicitamente. Para preço, envie item e quantidade; para prazo, envie item e destino. Capture os dois pacotes antes da execução e confirme que orçamento e nome não aparecem. O uso de spread sobre o objeto completo seria conveniente, mas desfaria a minimização. Escreva no README por que cada campo selecionado é necessário.
Defina as saídas com unidade, fonte e condição de validade. O exemplo simplifica valores, então acrescente moeda ao preço e data de referência ao prazo. Modifique combinar para exigir esses campos antes de recomendar. Essa alteração mostra como um controlador detecta um contrato incompleto sem pedir ao especialista que “seja mais rigoroso” em linguagem natural. A regra estrutural fica na aplicação; a verificação da validade da fonte pode exigir consulta adicional ou revisão humana conforme o domínio.
Compare três caminhos observáveis
FundamentosExecute o caso com ambas as contribuições e registre pronta. Remova o prazo e registre pendente. Agora retorne um prazo para outro item e acrescente ao contrato a comparação com a solicitação original. O controlador deve recusar essa contribuição, mesmo que dias seja um número válido. Esses casos diferenciam ausência, validade de forma e correspondência semântica. Use nomes de erro distintos para que o relatório mostre qual defesa detectou cada problema. Um único status erro torna a investigação menos útil.
Acrescente contadores às duas funções e simule um retry de preço. O controlador deve conservar o prazo já válido, evitando consultar tudo novamente sem necessidade. Se a operação for somente leitura, repetir pode ser seguro, mas ainda possui custo e pode trazer uma fonte atualizada em horário diferente. Registre a data das observações e estabeleça se elas podem ser combinadas. Para efeitos reais, uma repetição requer idempotência, e a contribuição do especialista jamais deve ser tratada como autorização suficiente para executar.
Inspecione independência e acesso
FundamentosDesenhe as dependências: preço e prazo podem ser independentes depois de item e destino conhecidos. Mude o cenário para prazo dependente de disponibilidade e acrescente estoque como premissa. Agora o prazo não deve iniciar com dados ausentes. Compare os dois desenhos e explique a mudança de ordem. Não use paralelismo como objetivo em si; use-o quando as entradas forem independentes. A evidência local deve indicar quais resultados precisam existir antes de cada chamada.
Crie uma ferramenta fictícia que rejeita tenant diferente do autorizado e chame-a por um especialista. A rejeição precisa funcionar mesmo quando o contexto é mínimo. Esse teste demonstra a diferença entre não enviar um segredo e impedir acesso indevido. Documente onde a identidade real será obtida no servidor e como credenciais serão limitadas. O modelo não deve preencher livremente um tenant para conceder a si mesmo permissão, e um campo no pedido não pode substituir autenticação.
Decida se o custo da divisão se justifica
FundamentosPrepare um conjunto pequeno de casos com contribuição completa, lacuna, conflito e falha. Compare uma função centralizada com a composição de especialistas usando os mesmos dados. Conte chamadas e valide a recomendação; se não houver modelo, declare que custo de tokens e qualidade de geração não foram medidos. Na futura integração, registre esses valores por caso e versão. Sua decisão deve relacionar o benefício da divisão à legibilidade, capacidade de verificação ou qualidade observada, em vez de justificar especialistas somente por serem uma técnica conhecida.
Exercício aplicado
Compare fornecedor F1 para o item I2 com especialistas de preço e prazo. O orçamento e o nome do cliente devem permanecer com o controlador. Uma contribuição ausente ou incompatível deve impedir recomendação completa.
- Capture os pacotes mínimos enviados a preço e prazo.
- Execute composição completa e composição sem prazo.
- Adicione item, moeda e data aos contratos e rejeite contribuição incompatível.
- Compare contagem de chamadas com uma implementação centralizada.
Abrir resolução comentada
A composição correta envia contextos distintos e mantém contribuições em campos separados. pronta exige preço e prazo compatíveis com o item; pendente identifica a contribuição ausente. Para um prazo de outro item, o controlador rejeita antes de sintetizar. Acrescentar evidências e unidades torna o contrato consumível por código e revisável por pessoas.
O teste de contexto usa os pacotes capturados, enquanto o teste de acesso usa a ferramenta que rejeita tenant proibido. São evidências complementares. A comparação com a versão centralizada precisa usar os mesmos casos; do contrário, diferenças de resultado podem vir dos dados e não da arquitetura.
function preco({item,quantidade}) { return {item,total:quantidade*100,fonte:'tabela F1'}; }
function prazo({item,destino}) { return {item,dias:destino==='Cuiaba'?3:5,fonte:'tabela logistica'}; }
function combinar(p,t) {
if (!p || !t) return {status:'pendente',lacuna:'preco ou prazo ausente'};
if (p.item!==t.item) throw new Error('contribuicoes incompativeis');
return {status:'pronta',total:p.total,dias:t.dias,evidencias:[p.fonte,t.fonte]};
}
const p=preco({item:'I2',quantidade:2});
const t=prazo({item:'I2',destino:'Cuiaba'});
console.log(combinar(p,t)); console.log(combinar(p,null));Como conferir seu resultado
- Dados desnecessários não aparecem nos pacotes dos especialistas.
- Resultado parcial permanece pendente.
- A contribuição incompatível é rejeitada antes da síntese.
Aplique em um problema novo
Primeiro resolva sem consultar a resposta. Explique suas decisões e guarde a evidência. A conclusão de leitura é independente desta autoavaliação.
Confira seus pré-requisitos
- Projetar contratos mínimos por especialista.
- Compor resultados compatíveis.
Controlador pede I8, quantidade 2, destino D. Recebe preço I8=200BRL e prazo I9=3 dias; depois preço I8=200 sem moeda; depois prazo ausente. Resolva três composições.
Conferir raciocínio e critérios de domínio
I8/I9 é premissa incompatível: rejeitar composição antes de recomendação. Nome/orçamento privado não precisa cruzar os pacotes enviados.
Preço sem moeda também é contrato incompleto; o controlador não assume BRL por conveniência.
Prazo ausente produz pendência explícita. Só item/unidade/destino compatíveis com fontes permitiriam recomendação completa.
Evidências para autoavaliação ou revisão por pares
- Compatibilidade do item: I8/I9 é premissa incompatível: rejeitar composição antes de recomendação. Nome/orçamento privado não precisa cruzar os pacotes enviados.
- Unidade monetária: Preço sem moeda também é contrato incompleto; o controlador não assume BRL por conveniência.
- Pendência da composição: Prazo ausente produz pendência explícita. Só item/unidade/destino compatíveis com fontes permitiriam recomendação completa.
Um erro frequente
Isolar contexto implementa autorização.
Separar contexto reduz exposição; autorização é um controle independente.
Teste sua compreensão
Responda com suas palavras antes de abrir o comentário. Saber explicar uma decisão é parte do domínio.
1. Subagente como ferramenta é um handoff?
Não. O controlador continua responsável pelo turno.
O especialista devolve uma contribuição ao controlador.
2. Contexto mínimo garante permissão mínima?
Não. O acesso das ferramentas exige controles próprios.
Informação recebida e capacidade de ação são fronteiras diferentes.
3. Quando paralelizar especialistas?
Quando suas entradas e efeitos forem independentes.
Dependências ocultas podem produzir contribuições incompatíveis.
Seu progresso fica salvo neste navegador. Concluir a leitura não substitui demonstrar o domínio nos exercícios.
Referências e aprofundamento
Documentação oficial e trabalhos originais. As referências registram o escopo e as limitações para você conferir o que sustentam.
- Subagents
LangChain • consulta: 2026-10-06
AgentesSupervisor, router, especialistas, contexto isolado/forked e contratos de entrada/saída.
Limites: Isolamento reduz contexto mas pode repetir trabalho; não compartilhar histórico e segredos sem necessidade.
- Agent definitions
OpenAI • consulta: 2026-10-06
OpenAIAgentesDefinição de agente, instruções, tools e saída estruturada.
Limites: APIs e nomes diferem entre Python e TypeScript; usar versão fixada no laboratório.
- State: The Session's Scratchpad
Google ADK • consulta: 2026-10-06
Google ADKEstado serializável e escopos de sessão, user:, app: e temp:.
Limites: Persistência depende do serviço; diferenças de APIs por linguagem e limitações específicas de VertexAiSessionService.
- Workflows and agents
LangChain • consulta: 2026-10-06
AgentesAutomaçãoRouting, parallelization, orchestrator-workers e evaluator-optimizer.
Limites: Planner/executor/reviewer é adaptação didática dos padrões; limitar ciclos e avaliar contra baseline.
- Guardrails and human review
OpenAI • consulta: 2026-10-06
OpenAISegurançaGuardrails de entrada, saída e ferramentas; interrupções de aprovação e retomada.
Limites: Guardrails de entrada só no primeiro agente e de saída no agente final; validação não substitui autorização.