Olá! Seja bem-vindo à nossa última lição do Módulo 8.
Nas lições anteriores, você construiu um fluxo de trabalho de automação de ponta a ponta. Seu agente agora pode pegar uma tarefa do Jira, gerar o código necessário, criar pull requests no GitHub e, finalmente, atualizar o ticket do Jira com os resultados. O ciclo funcional está completo. No entanto, um agente autônomo que modifica o código-fonte precisa ser mais do que apenas funcional; ele precisa ser confiável, transparente e auditável.
O que acontece quando o agente interpreta mal um requisito? E se ele gerar um código que falha na compilação ou se entrar em um loop de ações? Como você pode depurar o "processo de pensamento" do agente para entender por que ele tomou uma determinada decisão?
Esta lição aborda diretamente essas questões, focando no resultado de aprendizagem: implementar logging e rastreabilidade robustos para as ações do agente, a fim de facilitar a depuração e a auditoria. Vamos além do simples funcionamento para construir um agente em que sua equipe possa confiar.
1. A Mudança de Paradigma: Depurando o Raciocínio, Não Apenas o Código
Diferentemente do software tradicional, que é em grande parte determinístico, os agentes de IA operam com base em LLMs não determinísticos. A mesma entrada pode gerar saídas ligeiramente diferentes. Isso significa que a depuração muda de encontrar um bug em uma função para entender uma falha no "raciocínio" do agente. Nossa principal ferramenta para isso é a observabilidade.
Para entender essa mudança fundamental, assista às seções a seguir de uma apresentação da LangChain, uma popular biblioteca de orquestração de agentes.
Building Better AI Agents: Observability and Evaluation
Este vídeo, intitulado 'Building Better AI Agents: Observability and Evaluation', explica por que a observabilidade é crucial para agentes de IA e introduz os blocos de construção conceituais para rastrear seu comportamento.
Assista a estas três seções consecutivas para obter uma base teórica sólida: 03:26 - 06:05: Esta parte contrasta o desenvolvimento de software tradicional com o de agentes de IA, destacando como o comportamento emergente e não determinístico dos agentes torna o código-fonte insuficiente para entender a lógica do aplicativo. 06:05 - 07:08: Aqui, o conceito de 'depurar o raciocínio' é introduzido. Preste atenção na afirmação de que os traços (traces) se tornam a fonte da verdade para o comportamento do agente, em vez do código. 07:08 - 08:49: Esta seção define os primitivos da observabilidade de agentes: runs (uma única execução, como uma chamada de LLM), traces (uma execução completa do agente de ponta a ponta) e threads (uma conversação que agrupa múltiplos traços). Esse modelo mental é fundamental.
Esses conceitos — especialmente o de trace como uma gravação completa de cada passo do agente — são a base de qualquer sistema de logging robusto para IA.
2. Rastreabilidade no Ecossistema Atlassian
Felizmente, a plataforma Atlassian já oferece ferramentas integradas para logging e auditoria, que servem como nossa primeira camada de rastreabilidade.
Logs de Auditoria do Jira
Para qualquer ação que o agente execute no Jira (como comentar ou transicionar um ticket), o Jira registra o evento em seus logs de auditoria. Isso fornece uma trilha de auditoria "quem, o quê e quando" para as interações do agente com o sistema de gerenciamento de projetos.

Logging em Rovo e Forge
Quando seu agente está em execução, especialmente em um fluxo de trabalho de automação, você precisa ver o que ele está "pensando". A Atlassian fornece mecanismos para registrar a saída do agente.
From zero to hero: Building Rovo agents
No vídeo 'From zero to hero: Building Rovo agents', a equipe da Atlassian demonstra como depurar um agente Rovo dentro de uma automação. Os princípios são diretamente aplicáveis à sua necessidade de rastreabilidade.
Assista a estas seções para ver as ferramentas práticas de logging da Atlassian: 29:55 - 30:42: Esta parte introduz o uso de uma ação de log para capturar a saída do agente em uma regra de automação. Essa é a maneira mais direta de 'imprimir' o que o agente está fazendo para depuração. 32:02 - 33:20: Este é um conceito-chave para logging robusto. O vídeo explica como instruir o agente a retornar sua saída em formato JSON estruturado. Isso transforma a saída de um 'blob de texto' em dados que podem ser facilmente analisados, registrados e consultados. 36:08 - 36:58: O Rovo Studio mostra uma lista de auditoria de onde cada agente está sendo usado. Isso ajuda na rastreabilidade, permitindo que você saiba quais automações serão afetadas se você modificar ou excluir um agente.
A capacidade de forçar a saída em JSON é extremamente poderosa. Em vez de uma resposta em linguagem natural, você pode instruir o agente a gerar um objeto JSON que contenha seu plano, os parâmetros da ferramenta que ele escolheu e seu raciocínio. Esse JSON pode ser registrado diretamente, fornecendo um registro estruturado e pesquisável de cada decisão.
3. Uma Abordagem Padrão da Indústria: OpenTelemetry e Semantic Kernel
Para um desenvolvedor com sua experiência em C#/.NET e DevOps, adotar padrões da indústria para observabilidade é um passo natural e altamente recomendado. O padrão de fato para instrumentar, gerar e coletar dados de telemetria é o OpenTelemetry (OTel).
O OpenTelemetry se baseia em três pilares:
- Logs: Registros de eventos discretos que acontecem em um determinado momento (ex: "Arquivo X lido com sucesso").
- Metrics: Medições agregadas ao longo do tempo (ex: tempo médio de execução da função, número de tokens de LLM usados por hora).
- Traces: Registros detalhados de uma única transação ou solicitação à medida que ela passa por múltiplos componentes de um sistema. Isso se alinha perfeitamente com o conceito de trace de agente que vimos anteriormente.
Felizmente, frameworks de IA modernos, como o Semantic Kernel da Microsoft (que é escrito em .NET), têm suporte de primeira classe para o OpenTelemetry.
Observability in Semantic Kernel
A documentação da Microsoft explica como a observabilidade é integrada ao Semantic Kernel. Isso conecta a teoria do OpenTelemetry diretamente ao seu ecossistema de desenvolvimento C#.
Leia as seguintes seções: 'Observability in Semantic Kernel': Esta seção confirma que o SK emite logs, métricas e traços compatíveis com o OpenTelemetry. A tabela de Telemetria para .NET: Preste atenção especial às métricas específicas que o SK captura, como semantic_kernel.function.invocation.duration e semantic_kernel.function.invocation.token_usage.prompt. Esses são dados de auditoria extremamente valiosos. 'OpenTelemetry Semantic Convention': Esta parte destaca que o SK segue convenções de nomenclatura padrão, o que torna os dados de telemetria mais fáceis de analisar com ferramentas padrão.

A implementação disso em seu código C# é surpreendentemente simples. Você usa pacotes NuGet para configurar o OpenTelemetry e direcionar a saída para um destino, como o console (para desenvolvimento) ou um serviço de monitoramento como o Azure Monitor.
Semantic Kernel: Build Multi-Agent AI Systems in .NET
Este artigo técnico, 'Semantic Kernel: Build Multi-Agent AI Systems in .NET', fornece um exemplo de código prático para habilitar a observabilidade.
Revise estas duas seções: 'Monitoring Semantic Kernel with OpenTelemetry': Examine o trecho de código C#. Ele mostra como adicionar e configurar o OpenTelemetry em um aplicativo .NET (Host.CreateApplicationBuilder) para capturar traços e logs da origem Microsoft.SemanticKernel*. 'How do I debug Semantic Kernel agents?': Esta FAQ reforça a mensagem principal — use a integração OpenTelemetry para rastrear invocações de funções, chamadas de modelo e etapas de raciocínio.
A adoção do OpenTelemetry lhe daria uma solução de logging de nível empresarial que pode crescer com seu agente, fornecendo insights não apenas sobre o comportamento, mas também sobre o custo (uso de tokens) e o desempenho (duração).
4. Estratégia de Rastreabilidade para o Seu Agente
Vamos sintetizar tudo isso em uma estratégia concreta para o seu agente de codificação.
-
ID de Rastreamento Único (Trace ID): No início de cada execução do agente (acionada por uma tarefa do Jira), gere um ID único (por exemplo, um GUID).
-
Log Estruturado por Etapa: Para cada passo no plano do seu agente, registre uma entrada de log estruturada (JSON) contendo:
- O
traceIdda execução geral. - Um
stepIdpara a etapa atual. timestamp.stepName(ex: "AnalyzeJiraTicket", "SearchBusinessRules", "GenerateCSharpCode", "CreatePullRequest").inputs: Os dados de entrada para a etapa (ex: prompt do LLM, chave do ticket do Jira). Cuidado com dados sensíveis aqui!outputs: O resultado da etapa (ex: resposta do LLM, URL do PR, status de sucesso/falha).metrics: Métricas relevantes comoduration_msetoken_usage.
- O
-
Armazenamento de Logs:
- Desenvolvimento: O log do console do Forge é suficiente.
- Produção: Envie esses logs estruturados para um sistema centralizado. As ferramentas da Atlassian podem registrar no CloudWatch da AWS. Se você usar uma abordagem baseada em OpenTelemetry, pode enviar para Azure Monitor, Datadog ou qualquer outro backend compatível.
-
Auditoria e Depuração:
Com logs estruturados, você pode facilmente consultar e visualizar o comportamento do agente.- Para auditar: "Mostre-me todas as ações executadas pelo agente para o ticket
PROJ-123." (Filtre porinputs.jiraTicket == 'PROJ-123'). - Para depurar: "A geração de código falhou. Mostre-me o prompt exato enviado ao LLM e a resposta de erro que ele retornou para o
traceIdxyz-abc." - Para otimizar: "Qual etapa do processo está demorando mais?" (Agregue
duration_msporstepName).
- Para auditar: "Mostre-me todas as ações executadas pelo agente para o ticket
Este nível de detalhe transforma seu agente de uma "caixa preta" em um sistema transparente e gerenciável.
Conclusão
Nesta lição, você aprendeu a importância crítica da observabilidade para agentes de IA e explorou métodos práticos para implementá-la. Agora você está equipado para construir um agente que não apenas funciona, mas que também é robusto, depurável e auditável.
Principais Pontos:
- A depuração de agentes de IA foca em entender o raciocínio, e os traços (traces) são a fonte da verdade para isso.
- O ecossistema Atlassian fornece ferramentas integradas como logs de auditoria do Jira e ações de log do Forge/Rovo.
- O uso de saída JSON estruturada do agente é uma técnica poderosa para um logging que pode ser facilmente analisado por máquinas.
- OpenTelemetry é o padrão da indústria para observabilidade, e sua integração com ferramentas como o Semantic Kernel o torna uma escolha ideal para um desenvolvedor .NET.
- Uma estratégia de rastreabilidade robusta envolve um ID de rastreamento único e o logging detalhado e estruturado de cada etapa da execução do agente.
Você completou o Módulo 8, construindo um fluxo de trabalho de ponta a ponta. Agora que temos um agente funcional e observável, a próxima fronteira é garantir que o trabalho que ele produz seja de alta qualidade.
Na próxima lição, iniciaremos o Módulo 9: Garantindo a Qualidade dos Ativos Gerados. Começaremos com a primeira linha de defesa da qualidade do código: integrar ferramentas de linting automatizado para garantir que o código gerado pelo agente siga as convenções do seu projeto.