Se você constrói com prompts componíveis — blocos compartilhados herdados por vários agentes — mudar um componente deixa uma pergunta difícil no ar: o que precisa ser re-avaliado antes de enviar para produção? Um engenheiro construiu um grafo de dependências de prompts em Python puro que responde isso com dois números.
Reachable vs. Candidate
A ideia separa o “teto estrutural” do conjunto que realmente precisa de avaliação:
- Reachable (alcançável): tudo que está a jusante do componente alterado — o limite máximo de impacto possível, derivado só da estrutura do grafo.
- Candidate (candidato): o conjunto menor de nós que declaram dependência da seção específica que mudou, mais seus consumidores a jusante.
Em um sistema sintético de 55 nós (50 agentes + 5 workflows), o rastreamento por seção reduziu o conjunto de avaliação em 0% a 85%, dependendo de quão seletivamente o componente é compartilhado. A pegadinha é a imprevisibilidade: às vezes o grafo encontra uma redução enorme, às vezes nenhuma — e você só descobre rodando.
Por que o lookup direto falha
Checar apenas quem importa diretamente o componente é insuficiente. Em um teste com dois grafos de mesmo impacto total (4 nós a jusante), um lookup de um salto achou os 4 nós no caso “raso” (flat), mas apenas 1 no caso “profundo” (deep), onde o componente alimenta um agente que alimenta um workflow, que alimenta outro agente. Um lookup de um salto erra 3 de 4 consumidores reais — porque dependências se propagam em cadeias, e prompts são organizados como organogramas.
Como funciona por dentro
Um PromptComponent é modelado como uma coleção versionada de seções nomeadas (em vez de um blob de texto opaco). Os agentes declaram quais seções usam e com que relação (imports, inherits, references, formats-with). A detecção de mudança é mecânica: compara o texto de cada seção entre versões, ignorando espaços extras. Depois, dois BFS (busca em largura): um a partir de todos os dependentes do componente (Reachable), outro a partir apenas dos nós que declaram a seção alterada (Candidate).
A curva de compartilhamento
Variando o percentual de agentes que compartilham um componente (10%, 24%, 50%, 76%, 100%), o autor observou uma relação quase linear: quanto mais universal o componente, menor a redução possível. No extremo, mudar a seção tone (usada por 100% dos agentes) resultou em Reachable 55, Candidate 55, Narrowing 0% — porque, quando todo mundo usa o componente da mesma forma, não há grupo menor a excluir.
Esse resultado honesto é o que mantém a ferramenta confiável: ela não força um número menor quando a resposta correta é “avalie tudo”. Um grafo de dependências não torna um prompt mais seguro — ele torna visível o custo de mudá-lo antes de você pagar por isso.
Descubra mais sobre noticiAI
Assine para receber nossas notícias mais recentes por e-mail.



