Ir para o conteúdo

Desafio 008: Construa um Agente 100% Local

Nível: L200 Tipo: Desafio Tempo: ~75 min 💰 Custo: Gratuito (local)

Cenário

A OutdoorGear quer um pequeno agente de suporte que funcione sem Azure, GitHub Models, LLMs hospedados ou chamadas de rede. Ele deve classificar uma solicitação, usar ferramentas locais sobre dados locais e retornar uma resposta fundamentada com trace.

Sua tarefa é finalizar o agente 100% local e provar que ele lida com busca de produtos, consulta de política e recomendação de bundle sem configuração de nuvem.


Objetivo

Corrija starter_local_agent.py para que o agente local roteie solicitações corretamente, use apenas dados locais, retorne respostas úteis, reporte nenhum uso de nuvem e gere um código de validação.

Seu agente local final deve:

  • Não exigir configuração de nuvem
  • Classificar três intents suportadas
  • Buscar produtos localmente
  • Consultar texto de política localmente
  • Montar um bundle de camping dentro do orçamento
  • Retornar resposta, trace, intent e uses_cloud: False

Arquivos Iniciais

Salve estes arquivos em uma pasta chamada challenge-008/:

Arquivo Finalidade Download
local_data.json Dados locais de produtos e políticas Download
eval_requests.json Solicitações de avaliação Download
starter_local_agent.py Agente local quebrado Download
test_local_agent.py Testes de aceite Download
validate_local_agent.py Gera o código final de conclusão Download

Briefing do Desafio

Você recebe dados locais de produtos/políticas, solicitações de avaliação e um agente local quebrado. Não há walkthrough: decida como rotear intents, chamar ferramentas locais, compor respostas e provar que nenhuma dependência de nuvem é necessária.


Restrições

  • Use apenas a biblioteca padrão do Python em starter_local_agent.py.
  • Não chame rede, modelo hospedado ou API de nuvem.
  • Não hardcode respostas por ID de solicitação.
  • Preserve os nomes públicos das funções usados pelos testes.
  • Mantenha traces úteis para mostrar qual ferramenta local foi executada.

Critérios de Aceite

Sua solução está completa quando:

  • python -m pytest test_local_agent.py passa
  • Busca de produto retorna RainShell Pro Jacket
  • Consulta de política retorna a política de devolução de 60 dias
  • Recomendação de bundle inclui os três itens esperados de camping dentro do orçamento
  • O trace registra intent e execução de ferramenta
  • uses_cloud é False

Validação

Quando sua implementação estiver pronta, execute:

python -m pytest test_local_agent.py
python validate_local_agent.py

Digite o código de conclusão impresso por validate_local_agent.py:


Dicas

Dica 1 — Local-only é requisito

Um agente local ainda pode ser útil se roteamento de intent e ferramentas forem determinísticos.

Dica 2 — Mantenha o roteamento estreito

As solicitações de fixture são propositalmente limitadas a busca de produto, consulta de política e recomendação de bundle.

Dica 3 — Trace a ferramenta, não só a resposta

Um trace ajuda a provar que o agente tomou uma decisão e usou uma ferramenta local.


Rubrica

Área Pontos Como fica bom
Comportamento local-only 25 Nenhuma dependência de nuvem ou rede
Roteamento de intent 25 Três tipos de solicitação classificados corretamente
Saídas das ferramentas 25 Respostas de produto, política e bundle corretas
Rastreabilidade 15 Trace mostra intent e ferramenta local selecionada
Simplicidade 10 Implementação local determinística

Labs Relacionados