{"id":17397,"date":"2025-08-06T12:55:28","date_gmt":"2025-08-06T19:55:28","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=17397"},"modified":"2025-10-21T13:06:50","modified_gmt":"2025-10-21T20:06:50","slug":"evaluating-agentic-ai-workflows","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/evaluating-agentic-ai-workflows\/","title":{"rendered":"Avalia\u00e7\u00e3o de fluxos de trabalho de IA ag\u00eantica"},"content":{"rendered":"<p>Agentes e pipelines ag\u00eanticos est\u00e3o sendo criados e lan\u00e7ados em um ritmo acelerado como nunca antes. Mas como podemos determinar se eles s\u00e3o bons?<\/p>\n<h2 style=\"font-weight: 400;\">Por que a avalia\u00e7\u00e3o de agentes de IA \u00e9 importante<\/h2>\n<p>Pense em um agente de IA como um rastreador de condicionamento f\u00edsico. O rastreador sempre funciona, nunca diz \"N\u00e3o foi poss\u00edvel obter dados precisos\" e sempre fornecer\u00e1 uma leitura quando voc\u00ea pressionar o bot\u00e3o, mas, na maioria das vezes, essas leituras n\u00e3o s\u00e3o precisas. O mesmo vale para os agentes: cada equipe tem um para seu caso de uso espec\u00edfico, e eles sempre geram uma resposta. Mas poucos sabem qual \u00e9 o desempenho deles em cen\u00e1rios do mundo real. Presumimos que eles funcionam, mas n\u00e3o sabemos realmente o quanto.<\/p>\n<p>O desenvolvimento de estruturas robustas de avalia\u00e7\u00e3o de agentes de IA tornou-se essencial por v\u00e1rios motivos convincentes:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Qualidade<\/b> <b>garantia<\/b>: \u00c0 medida que os agentes de IA se tornam mais aut\u00f4nomos e lidam com tarefas cr\u00edticas, a avalia\u00e7\u00e3o sistem\u00e1tica garante que eles atendam aos padr\u00f5es de confiabilidade antes da implementa\u00e7\u00e3o<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Desempenho<\/b> b<b>enchmarking<\/b>: As m\u00e9tricas objetivas permitem o acompanhamento consistente do desempenho em todas as itera\u00e7\u00f5es do modelo e a compara\u00e7\u00e3o com os padr\u00f5es do setor<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Direcionado<\/b> <b>aprimoramento<\/b>: A an\u00e1lise detalhada identifica pontos fracos espec\u00edficos, permitindo a aloca\u00e7\u00e3o eficiente de recursos de desenvolvimento<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Alinhamento<\/b> <b>verifica\u00e7\u00e3o<\/b>: Garante que os agentes ajam de acordo com as inten\u00e7\u00f5es do projeto e n\u00e3o desenvolvam comportamentos inesperados em casos extremos<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Conformidade<\/b> <b>e<\/b> <b>risco<\/b> <b>gerenciamento<\/b>: Facilita a documenta\u00e7\u00e3o dos recursos e das limita\u00e7\u00f5es do agente para requisitos regulat\u00f3rios e legais<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Investimento<\/b> <b>justificativa<\/b>: Fornece evid\u00eancias quantitativas do valor e da melhoria do sistema de IA para as partes interessadas e os tomadores de decis\u00e3o<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h2 style=\"font-weight: 400;\">Detalhamento do processo de avalia\u00e7\u00e3o de agentes<\/h2>\n<p>A avalia\u00e7\u00e3o de um agente, seja ele um chatbot, um sistema de gera\u00e7\u00e3o aumentada de recupera\u00e7\u00e3o (RAG) ou um LLM que usa ferramentas, requer uma abordagem sistem\u00e1tica para garantir que o modelo seja preciso, confi\u00e1vel e robusto. Vamos examinar as etapas t\u00edpicas de como um fluxo de trabalho ag\u00eantico pode ser avaliado:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Preparar a verdade b\u00e1sica<\/strong>: Use conjuntos de dados p\u00fablicos se eles se adequarem ao seu caso de uso ou, de prefer\u00eancia, gere dados sint\u00e9ticos adaptados \u00e0 funcionalidade do seu agente<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Executar o agente no conjunto de dados<\/strong>: Alimentar cada entrada\/consulta do conjunto de dados para o agente<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Registre todas as atividades do agente<\/strong>respostas finais, chamadas de ferramentas, resultados e etapas de racioc\u00ednio, se aplic\u00e1vel<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Criar e realizar um experimento<\/strong>: Avaliar as respostas do agente. Comparar as respostas do agente com as respostas esperadas\/refer\u00eancia. Lidar com correspond\u00eancias parciais, sa\u00eddas aninhadas ou dados estruturados usando l\u00f3gica de compara\u00e7\u00e3o personalizada, se necess\u00e1rio. Agregar resultados e calcular m\u00e9tricas de avalia\u00e7\u00e3o (precis\u00e3o, taxa de sucesso, etc.).<\/li>\n<li aria-level=\"1\"><strong>Resultados persistentes<\/strong>: Armazenar os resultados da avalia\u00e7\u00e3o para que possam ser reproduzidos e consultados posteriormente. Identificar pontos de falha a partir das m\u00e9tricas<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<div id=\"attachment_17398\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-17398\" class=\"wp-image-17398 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image2-1024x425.png\" alt=\"\" width=\"900\" height=\"374\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image2-1024x425.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image2-300x125.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image2-768x319.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image2-1536x638.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image2-18x7.png 18w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image2-1320x548.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image2.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><p id=\"caption-attachment-17398\" class=\"wp-caption-text\">Um fluxo de trabalho modular ideal usando a estrutura<\/p><\/div>\n<h3 style=\"font-weight: 400;\">Preparar a verdade b\u00e1sica<\/h3>\n<p>Um dos principais desafios na avalia\u00e7\u00e3o de sistemas ag\u00eanticos \u00e9 a disponibilidade da verdade b\u00e1sica, ou seja, refer\u00eancias com as quais voc\u00ea compara as respostas do agente para avali\u00e1-lo. Para avaliar um agente t\u00edpico de forma eficaz, voc\u00ea precisa de dados abrangentes de verdade b\u00e1sica que cubram chamadas de ferramentas, par\u00e2metros de ferramentas, sa\u00eddas de ferramentas e respostas finais. A coleta e a rotulagem de todos esses dados de verdade b\u00e1sica consomem muito tempo e exigem uma grande quantidade de contribui\u00e7\u00e3o humana.<\/p>\n<p>Se n\u00e3o tivermos os recursos para preparar uma verdade b\u00e1sica com curadoria para a avalia\u00e7\u00e3o, temos duas op\u00e7\u00f5es. Podemos aproveitar os conjuntos de dados de avalia\u00e7\u00e3o dispon\u00edveis publicamente ou gerar dados sint\u00e9ticos que possam ser usados como verdade fundamental.<\/p>\n<p>Um gerador de dados sint\u00e9ticos lida com a cria\u00e7\u00e3o de verdades b\u00e1sicas selecionadas a partir de documentos brutos, sendo que documentos brutos se referem a qualquer documento que contenha informa\u00e7\u00f5es sobre o caso de uso do agente. Por exemplo, se o agente for um planejador de viagens, um documento que contenha todos os locais, juntamente com informa\u00e7\u00f5es sobre o local, pode ser fornecido como entrada para o gerador de dados que gera um conjunto de pares de perguntas e respostas que podem ser usados para avaliar esse agente. Voc\u00ea pode gerar consultas de salto \u00fanico (consultas que podem ser respondidas a partir de uma \u00fanica inst\u00e2ncia de dados) ou consultas de salto m\u00faltiplo (s\u00f3 podem ser respondidas a partir de v\u00e1rias fontes).<\/p>\n<p>Uma amostra da sa\u00edda do gerador:<\/p>\n<pre class=\"\">{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"question\": \"How do the house rules for noise levels vary among the available rental options in Hell's Kitchen, Manhattan?\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"answer\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"The house rules for noise levels among .......\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n}<\/pre>\n<p>Mas essa solu\u00e7\u00e3o tem suas pr\u00f3prias desvantagens: os dados gerados s\u00e3o inditerminados e sempre conter\u00e3o algum tipo de ru\u00eddo. Al\u00e9m disso, \u00e9 necess\u00e1rio um LLM realmente bom para gerar as melhores amostras, e esses LLMs s\u00e3o, em sua maioria, caros e consomem muitos recursos.<\/p>\n<h3 style=\"font-weight: 400;\">Executar o agente na verdade terrestre<\/h3>\n<p>Quando a verdade b\u00e1sica estiver pronta, a pr\u00f3xima etapa \u00e9 executar o agente nesse conjunto de dados. Execute o agente nos pares pergunta-resposta criados pelo gerador ou nas verdades b\u00e1sicas de refer\u00eancia anotadas manualmente e recupere a sa\u00edda de estado, em que cada estado do agente est\u00e1 no seguinte formato (esse estado \u00e9 registrado por padr\u00e3o se voc\u00ea estiver usando estruturas populares como o LangGraph):<\/p>\n<pre class=\"\">{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"question\": \"What is the price of copper?\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"agent_responses\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"The current price of copper is $0.0098 per gram.\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"agent_tool_calls\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"name\": \"get_price\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"args\": {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"item\": \"copper\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"agent_tool_outputs\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"$0.0098\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n},\r\n<\/pre>\n<p>Passe essa sa\u00edda do agente para o modelo de dados (<em>Conjunto de dados de avalia\u00e7\u00e3o<\/em>) para criar um <b>conjunto de dados dourados <\/b>(o conjunto de dados dourado aqui se refere ao conjunto de dados que cont\u00e9m todos os dados necess\u00e1rios para a avalia\u00e7\u00e3o, ou seja, a combina\u00e7\u00e3o da sa\u00edda do agente e a verdade b\u00e1sica na qual o agente foi executado). A estrutura inclui uma classe LoadOperator para envolver e manter esses dados. Ela garante que os conjuntos de dados sint\u00e9ticos sejam:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Validado em rela\u00e7\u00e3o ao esquema<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Vers\u00e3o autom\u00e1tica<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Armazenado no Couchbase com um <em>dataset_description<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Um componente essencial na recupera\u00e7\u00e3o e no armazenamento de dados \u00e9 o <em>LoadOperator<\/em>. Ele lida com a ingest\u00e3o, o armazenamento e a recupera\u00e7\u00e3o de conjuntos de dados de avalia\u00e7\u00e3o, abstraindo os detalhes do armazenamento do Couchbase e expondo uma interface limpa para o restante da estrutura. Voc\u00ea pode carregar e recuperar o conjunto de dados de avalia\u00e7\u00e3o de e para o armazenamento KV do Couchbase usando a fun\u00e7\u00e3o <em>dataset_id<\/em>.<\/p>\n<h3 style=\"font-weight: 400;\">Criar e realizar um experimento<\/h3>\n<p>Quando tivermos as respostas do sistema ag\u00eantico (o <i>conjunto de dados dourados<\/i>), iniciamos um experimento (uma inst\u00e2ncia \u00fanica e gerenciada de avalia\u00e7\u00e3o realizada no conjunto de dados golden) usando a estrutura com os dados de avalia\u00e7\u00e3o e um conjunto de op\u00e7\u00f5es de experimento que consiste nas m\u00e9tricas (mais sobre m\u00e9tricas na pr\u00f3xima se\u00e7\u00e3o) a serem usadas e outras informa\u00e7\u00f5es sobre o seu sistema ag\u00eantico.<\/p>\n<p>O gerenciamento de experimentos em nossa estrutura vai al\u00e9m do simples registro de resultados, ele fornece um sistema abrangente e automatizado para rastrear todos os aspectos de uma execu\u00e7\u00e3o de avalia\u00e7\u00e3o. Cada experimento \u00e9 anexado a um conjunto de dados identificado de forma exclusiva, carregado e versionado com metadados descritivos e registros de data e hora. Isso garante que cada conjunto de dados, seja ele sint\u00e9tico ou real, possa ser rastreado e reutilizado com total transpar\u00eancia. Par\u00e2metros configur\u00e1veis (por exemplo, pontos de verifica\u00e7\u00e3o do modelo, vers\u00f5es de prompt, cadeias de ferramentas) tamb\u00e9m s\u00e3o armazenados junto com os resultados, criando uma trilha de metadados para cada execu\u00e7\u00e3o.<\/p>\n<p>O gerenciador de experimentos tamb\u00e9m oferece a possibilidade de iniciar uma cadeia de experimentos, com cada experimento sucessivo rastreando as altera\u00e7\u00f5es no agente a partir do experimento principal. Os experimentos s\u00e3o versionados usando o Git, fa\u00e7a o commit do seu c\u00f3digo e execute o experimento para desenvolver iterativamente seus agentes e comparar as avalia\u00e7\u00f5es realizadas no mesmo agente entre as vers\u00f5es. Os metadados de cada experimento cont\u00eam registros de diferen\u00e7as de c\u00f3digo, m\u00e9tricas m\u00e9dias e configura\u00e7\u00f5es que podem ser usadas para analisar se uma altera\u00e7\u00e3o melhorou ou n\u00e3o o sistema ag\u00eantico. Al\u00e9m disso, todos os conjuntos de dados e experimentos usados em nossa estrutura s\u00e3o versionados, consult\u00e1veis e dimension\u00e1veis. Podemos armazenar grandes conjuntos de avalia\u00e7\u00e3o, recuperar subconjuntos para an\u00e1lise direcionada e rastrear metadados como carimbos de data\/hora e descri\u00e7\u00f5es de conjuntos de dados, um enorme aprimoramento em rela\u00e7\u00e3o a fluxos de trabalho baseados em arquivos simples, planilhas ou documentos na mem\u00f3ria.<\/p>\n<h3 style=\"font-weight: 400;\">Persistir os resultados no Couchbase<\/h3>\n<p>A sa\u00edda de um experimento consiste em arquivos json e csv com inst\u00e2ncias de dados e as pontua\u00e7\u00f5es correspondentes. Um exemplo de resultado para uma conversa com um \u00fanico agente (inst\u00e2ncia de dados individual) \u00e9 mostrado abaixo:<\/p>\n<pre class=\"\">[\r\n \u00a0\u00a0\u00a0{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"user_input\": \"What is the price of copper?\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"retrieved_contexts\": null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"response\": null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"reference\": null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"agent_responses\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"The current price of copper is $0.0098 per gram.\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"agent_tool_calls\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"name\": \"get_metal_price\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"args\": {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"metal_name\": \"copper\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"agent_tool_outputs\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"0.0098\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"reference_tool_calls\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"name\": \"get_metal_price\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"args\": {\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"metal_name\": \"copper\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"gt_answers\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"The current price of copper is $0.0098 per gram.\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"gt_tool_outputs\": [\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"0.0098\"\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"answer_faithfulness\": 3,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"logical_coherence\": 1.0,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"agent_response_correctness\": 0.5\r\n \u00a0\u00a0\u00a0},\r\n]\r\n<\/pre>\n<p>Os resultados s\u00e3o armazenados no reposit\u00f3rio KV do Couchbase com um ID de experimento. Os experimentos podem ser recuperados usando a fun\u00e7\u00e3o <em>LoadOperator<\/em>permitindo que voc\u00ea consulte e compare experimentos realizados durante uma sess\u00e3o diferente.<\/p>\n<p>Em resumo, com a estrutura, a execu\u00e7\u00e3o de um experimento n\u00e3o \u00e9 apenas uma execu\u00e7\u00e3o \u00fanica de script. \u00c9 um processo gerenciado:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Voc\u00ea carrega ou gera um conjunto de dados de verdade terrestre, que \u00e9 versionado e descrito<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Configure o agente e os par\u00e2metros de avalia\u00e7\u00e3o, que s\u00e3o todos registrados<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Voc\u00ea executa a avalia\u00e7\u00e3o, e a estrutura armazena automaticamente os resultados, juntamente com todos os metadados relevantes<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Posteriormente, voc\u00ea pode recuperar qualquer experimento, ver exatamente quais foram as altera\u00e7\u00f5es feitas no sistema e compar\u00e1-lo com outras execu\u00e7\u00f5es<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Esse n\u00edvel de gerenciamento de experimentos \u00e9 o que transforma a avalia\u00e7\u00e3o de uma \"caixa preta\" em um processo transparente, repet\u00edvel e colaborativo<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h2 style=\"font-weight: 400;\">Como isso funciona?<\/h2>\n<div id=\"attachment_17399\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-17399\" class=\"wp-image-17399 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image3-1024x570.png\" alt=\"\" width=\"900\" height=\"501\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image3-1024x570.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image3-300x167.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image3-768x428.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image3-1536x855.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image3-18x10.png 18w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image3-1320x735.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image3.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><p id=\"caption-attachment-17399\" class=\"wp-caption-text\">Uma arquitetura de n\u00edvel m\u00e9dio da estrutura<\/p><\/div>\n<p>No centro da estrutura, h\u00e1 quatro componentes principais que trabalham juntos para produzir os resultados finais.<\/p>\n<h3 style=\"font-weight: 400;\">Gerador de dados sint\u00e9ticos<\/h3>\n<p>O gerador de dados cria pares sint\u00e9ticos de perguntas e respostas a partir de documentos. Esses pares de perguntas e respostas podem ser usados como verdade b\u00e1sica para avaliar seu sistema ag\u00eantico usando nossa estrutura. O gerador de dados recebe documentos (CSV, JSON ou texto simples) e utiliza um <a href=\"https:\/\/www.ibm.com\/think\/topics\/few-shot-prompting\" target=\"_blank\" rel=\"noopener\">prompt de poucos disparos<\/a> LLM com ajuste fino para gerar os pares. O processo de gera\u00e7\u00e3o \u00e9 o seguinte:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Os documentos ingeridos s\u00e3o limpos e pr\u00e9-processados<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">A <a href=\"https:\/\/github.com\/Babelscape\/rebel\/blob\/main\/README.md\" target=\"_blank\" rel=\"noopener\">REBEL<\/a> \u00e9 usado para extrair relacionamentos entre entidades de cada documento. REBEL, um <em>seq2seq<\/em> modelo baseado no BART que realiza a extra\u00e7\u00e3o de rela\u00e7\u00f5es de ponta a ponta para mais de 200 tipos de rela\u00e7\u00f5es diferentes<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Um mapa de entidade-rela\u00e7\u00e3o \u00e9 criado para cada documento. Cada um desses mapas de entidade-rela\u00e7\u00e3o \u00e9 incorporado usando o modelo de incorpora\u00e7\u00e3o MiniLM-V2 (384 dim embeddings),<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Os embeddings de cada documento s\u00e3o agrupados usando algoritmos de agrupamento de embedding, como <em>HDBSCAN<\/em> para obter \"n\" grupos de documentos semanticamente semelhantes<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Esses clusters de documentos s\u00e3o fornecidos ao LLM para gerar pares de respostas de consultas com v\u00e1rios saltos<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<div id=\"attachment_17400\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-17400\" class=\"wp-image-17400 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image1-1024x633.png\" alt=\"\" width=\"900\" height=\"556\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image1-1024x633.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image1-300x185.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image1-768x474.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image1-1536x949.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image1-18x12.png 18w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image1-1320x816.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/image1.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><p id=\"caption-attachment-17400\" class=\"wp-caption-text\">Arquitetura do gerador de dados sint\u00e9ticos<\/p><\/div>\n<p>Informa\u00e7\u00f5es adicionais e instru\u00e7\u00f5es personalizadas tamb\u00e9m podem ser fornecidas se o usu\u00e1rio quiser gerar a consulta e as respostas em um formato ou estilo espec\u00edfico.<\/p>\n<h3 style=\"font-weight: 400;\">Conjunto de dados de avalia\u00e7\u00e3o<\/h3>\n<p>Estrutura de dados principal para gerenciar dados de verdade terrestre. O <em>Conjunto de dados de avalia\u00e7\u00e3o<\/em> recebe os dados da verdade terrestre e as sa\u00eddas do agente (chamadas de ferramentas, respostas do agente etc.) e estrutura os dados brutos em um formato f\u00e1cil de processar para o processo de valida\u00e7\u00e3o que se segue. Ela transforma o conjunto de dados dourado (conjunto de dados que cont\u00e9m a verdade b\u00e1sica e as respostas do agente para o mesmo) em uma lista de atributos que s\u00e3o importantes para a avalia\u00e7\u00e3o e podem ser facilmente processados pelo mecanismo de valida\u00e7\u00e3o. O conjunto de dados de avalia\u00e7\u00e3o criado tem um ID de conjunto de dados que pode ser usado para extrair o conjunto de dados do armazenamento de valores-chave do Couchbase, eliminando a necessidade de armazenar e gerenciar o conjunto de dados localmente.<\/p>\n<h3 style=\"font-weight: 400;\">Mecanismo de valida\u00e7\u00e3o<\/h3>\n<p>Processa o conjunto de dados de avalia\u00e7\u00e3o e realiza a avalia\u00e7\u00e3o no mesmo. Conectado a um cat\u00e1logo de m\u00e9tricas que fornece aos usu\u00e1rios um conjunto completo de m\u00e9tricas para avaliar cada parte do sistema ag\u00eantico\/RAG. O cat\u00e1logo de m\u00e9tricas tamb\u00e9m \u00e9 integrado ao RAGAS, proporcionando aos usu\u00e1rios a flexibilidade de usar as m\u00e9tricas do RAGAS, se necess\u00e1rio. O mecanismo de valida\u00e7\u00e3o calcula as m\u00e9tricas para o conjunto de dados de avalia\u00e7\u00e3o e combina os resultados para formar um quadro de dados interpret\u00e1vel, juntamente com um \u00edndice m\u00e9dio que fornece aos usu\u00e1rios uma ideia da qualidade do sistema geral.<\/p>\n<h3 style=\"font-weight: 400;\">Gerente de experimentos<\/h3>\n<p>M\u00f3dulo central que conecta todos os outros componentes. Cria e gerencia experimentos de avalia\u00e7\u00e3o. Um experimento \u00e9 uma inst\u00e2ncia individual de avalia\u00e7\u00e3o, que consiste em uma sa\u00edda detalhada e metadados, juntamente com recursos de rastreamento de c\u00f3digo para fornecer aos usu\u00e1rios uma vis\u00e3o das altera\u00e7\u00f5es feitas em seu sistema ag\u00eantico entre dois experimentos.<\/p>\n<p>O gerenciador de experimentos recebe os dados de avalia\u00e7\u00e3o e um conjunto de op\u00e7\u00f5es de experimentos que consistem nas m\u00e9tricas a serem usadas e em outras informa\u00e7\u00f5es relacionadas ao seu sistema ag\u00eantico e se conecta ao mecanismo de valida\u00e7\u00e3o para avaliar o conjunto de dados e obter as pontua\u00e7\u00f5es calculadas. Em seguida, as pontua\u00e7\u00f5es s\u00e3o processadas e formatadas para produzir um relat\u00f3rio de avalia\u00e7\u00e3o juntamente com metadados do experimento, o que permite inferir a avalia\u00e7\u00e3o e comparar diferentes experimentos.<\/p>\n<p>O gerenciador de experimentos tamb\u00e9m oferece aos usu\u00e1rios a capacidade de iniciar uma cadeia de experimentos, com cada experimento sucessivo rastreando as altera\u00e7\u00f5es no agente a partir do experimento principal. Permite que os usu\u00e1rios desenvolvam seus agentes de forma iterativa e comparem as avalia\u00e7\u00f5es realizadas no mesmo agente entre as vers\u00f5es. Os metadados de cada experimento cont\u00eam registros de diferen\u00e7as de c\u00f3digo, m\u00e9tricas m\u00e9dias e configura\u00e7\u00f5es que podem ser usadas para analisar se uma altera\u00e7\u00e3o melhorou ou n\u00e3o o sistema ag\u00eantico.<\/p>\n<h2 style=\"font-weight: 400;\">Escolhendo as m\u00e9tricas certas para seu sistema ag\u00eantico<\/h2>\n<p>Ao avaliar um sistema ag\u00eantico, \u00e9 fundamental selecionar as m\u00e9tricas corretas para avaliar com precis\u00e3o seu desempenho. A escolha da m\u00e9trica influencia diretamente a forma como voc\u00ea interpreta o resultado e faz melhorias iterativas. Para sistemas de IA, as m\u00e9tricas devem ser escolhidas com base nas seguintes considera\u00e7\u00f5es:<\/p>\n<p><b>Sistema<\/b> <b>Tipo<\/b><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Sistemas RAG<\/strong>: Foco em m\u00e9tricas de recupera\u00e7\u00e3o (precis\u00e3o, recall) e m\u00e9tricas de gera\u00e7\u00e3o (fidelidade, corre\u00e7\u00e3o da resposta)<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Sistemas ag\u00eanticos<\/strong>: Priorizar a precis\u00e3o da chamada da ferramenta, a coer\u00eancia l\u00f3gica e a fidelidade da resposta<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><b>Uso<\/b> <b>Caso<\/b> <b>Requisitos<\/b><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Resposta \u00e0 pergunta<\/strong>: Enfatizar a corre\u00e7\u00e3o e a relev\u00e2ncia das respostas<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Recupera\u00e7\u00e3o de informa\u00e7\u00f5es<\/strong>: Foco na precis\u00e3o e na recupera\u00e7\u00e3o do contexto<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Tarefas de racioc\u00ednio<\/strong>: Priorizar a coer\u00eancia l\u00f3gica e a fidelidade<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><b>T\u00e9cnica<\/b> <b>Considera\u00e7\u00f5es<\/b><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Custo de computa\u00e7\u00e3o<\/strong>: As m\u00e9tricas baseadas em incorpora\u00e7\u00e3o s\u00e3o mais pesadas do que as baseadas em tokens<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Depend\u00eancias de API<\/strong>: As m\u00e9tricas do LLM-as-judge exigem acesso \u00e0 API<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Processamento em lote<\/strong>: Algumas m\u00e9tricas oferecem suporte \u00e0 avalia\u00e7\u00e3o eficiente de lotes<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Para facilitar o processo acima, estas s\u00e3o as cinco m\u00e9tricas que fornecem a melhor vis\u00e3o geral do desempenho do seu sistema ag\u00eantico:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ferramenta<\/b> <strong>c<\/strong><b>todos<\/b> <b>precis\u00e3o<\/b>: Avalia se o agente usa as ferramentas certas com os par\u00e2metros certos.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ferramenta<\/b> <b>precis\u00e3o<\/b>: Compara os resultados da ferramenta com os resultados da ferramenta de verdade. Mede a precis\u00e3o das ferramentas.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Agente<\/b> <b>resposta<\/b> <b>corre\u00e7\u00e3o<\/b>: Avalia a corre\u00e7\u00e3o das respostas do agente em compara\u00e7\u00e3o com a verdade b\u00e1sica. Mede a qualidade da resposta geral do agente.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>L\u00f3gico<\/b> <b>coer\u00eancia<\/b>: Avalia o fluxo l\u00f3gico e o racioc\u00ednio nas respostas do agente, ajuda a analisar a cadeia de comando entre os agentes em um sistema e como cada agente trabalha em conjunto para responder \u00e0 consulta do usu\u00e1rio.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Resposta<\/b> <b>fidelidade<\/b>: Verifica se a resposta do agente \u00e9 consistente com as sa\u00eddas de ferramentas obtidas pelo agente.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>O est\u00e1gio final \u00e9 a an\u00e1lise: agrega\u00e7\u00e3o de resultados, m\u00e9tricas de computa\u00e7\u00e3o e, principalmente, compreens\u00e3o de onde e por que o agente falhou. \u00c9 aqui que a falta de padroniza\u00e7\u00e3o e automa\u00e7\u00e3o nas etapas anteriores volta a assombrar o desenvolvedor. A depura\u00e7\u00e3o de incompatibilidades, o rastreamento de erros at\u00e9 sua origem e a itera\u00e7\u00e3o no agente ou nos dados s\u00e3o lentos e propensos a erros.<\/p>\n<h2 style=\"font-weight: 400;\">Aprofundamento: interpreta\u00e7\u00e3o eficaz dos resultados<\/h2>\n<p>Agora que voc\u00ea selecionou as m\u00e9tricas apropriadas, executou o experimento e obteve os resultados, o que vem a seguir? Como dar sentido aos n\u00fameros aparentemente aleat\u00f3rios que voc\u00ea coletou? Interpretar esses resultados \u00e9 uma etapa crucial para entender o comportamento e o desempenho de seu sistema. H\u00e1 v\u00e1rias estrat\u00e9gias eficazes para analisar os resultados, descobrir insights e avaliar o impacto das altera\u00e7\u00f5es que voc\u00ea fez. Essa etapa transforma as m\u00e9tricas brutas em conhecimento acion\u00e1vel sobre os pontos fortes e fracos de seu agente e as \u00e1reas que precisam ser aprimoradas.<\/p>\n<h3 style=\"font-weight: 400;\">T\u00e9cnicas de an\u00e1lise comparativa<\/h3>\n<p>Ao comparar duas implementa\u00e7\u00f5es ou vers\u00f5es diferentes de agentes:<\/p>\n<p><strong> Compara\u00e7\u00e3o de m\u00e9tricas lado a lado<\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>M\u00e9dia de cada m\u00e9trica em todos os casos de teste para ambos os agentes<\/li>\n<li>Calcule a melhoria relativa entre os sistemas (por exemplo, \"O Agente B mostra uma melhoria de 12% na precis\u00e3o da chamada da ferramenta em rela\u00e7\u00e3o ao Agente A\")<\/li>\n<li>Use gr\u00e1ficos de radar para visualizar o cen\u00e1rio de desempenho multidimensional<\/li>\n<li>Identificar pontos fortes complementares (por exemplo, \"o Agente A \u00e9 excelente na sele\u00e7\u00e3o de ferramentas, enquanto o Agente B produz respostas mais fi\u00e9is\")<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong> An\u00e1lise pareada<\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Comparar o desempenho em consultas id\u00eanticas para identificar diferen\u00e7as sistem\u00e1ticas<\/li>\n<li>Calcule a porcentagem de consultas em que um agente supera o outro<\/li>\n<li>Identificar os tipos de consulta em que as diferen\u00e7as de desempenho s\u00e3o mais acentuadas<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><i>Exemplo de interpreta\u00e7\u00e3o<\/i>: \"Embora o Agente B tenha maior precis\u00e3o m\u00e9dia de chamadas de ferramentas (0,87 vs. 0,79), o Agente A tem melhor desempenho em tarefas complexas de racioc\u00ednio em v\u00e1rias etapas, sugerindo que o Agente B pode usar padr\u00f5es mais simples, por\u00e9m mais confi\u00e1veis.\"<\/p>\n<h3 style=\"font-weight: 400;\">Abordagens de an\u00e1lise de distribui\u00e7\u00e3o<\/h3>\n<p>Compreender a distribui\u00e7\u00e3o das pontua\u00e7\u00f5es de m\u00e9tricas fornece uma vis\u00e3o mais profunda do que apenas as m\u00e9dias:<\/p>\n<p><strong> An\u00e1lise de histograma<\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Trace a distribui\u00e7\u00e3o de pontua\u00e7\u00f5es para cada m\u00e9trica<\/li>\n<li>Identificar se o desempenho segue uma distribui\u00e7\u00e3o normal ou se apresenta agrupamento\/bimodalidade<\/li>\n<li>Comparar o spread (varia\u00e7\u00e3o) entre diferentes implementa\u00e7\u00f5es<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong> An\u00e1lise de quartis<\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Examine os percentis 25, 50 (mediana) e 75<\/li>\n<li>Uma grande diferen\u00e7a entre a mediana e o 75\u00ba percentil indica um desempenho inconsistente<\/li>\n<li>Concentrar os esfor\u00e7os de aprimoramento no aumento do quartil inferior<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><i>Exemplo de interpreta\u00e7\u00e3o<\/i>: \"A precis\u00e3o da chamada de ferramenta do Agente A tem uma distribui\u00e7\u00e3o bimodal com picos de 0,4 e 0,9, indicando que ele tem um desempenho muito bom em alguns tipos de consulta, mas tem dificuldades significativas em outros. O Agente B apresenta uma distribui\u00e7\u00e3o mais estreita centrada em 0,75, indicando um desempenho mais consistente, mas menos excepcional.\"<\/p>\n<h3 style=\"font-weight: 400;\">An\u00e1lise baseada em limites<\/h3>\n<p>A defini\u00e7\u00e3o de limites de desempenho ajuda a quantificar as taxas de sucesso:<\/p>\n<p><strong> C\u00e1lculo da taxa de sucesso<\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Definir limites aceit\u00e1veis para cada m\u00e9trica (por exemplo, precis\u00e3o da chamada da ferramenta &gt; 0,85)<\/li>\n<li>Calcule a porcentagem de amostras que excedem cada limite<\/li>\n<li>Identificar quais limites s\u00e3o mais dif\u00edceis de serem atingidos<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong> An\u00e1lise multicrit\u00e9rio<\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Definir sucesso como o cumprimento de limites em v\u00e1rias m\u00e9tricas simultaneamente<\/li>\n<li>Calcule a porcentagem de amostras que atendem a todos os crit\u00e9rios<\/li>\n<li>Identificar os pontos de falha mais comuns<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><i>Exemplo de interpreta\u00e7\u00e3o<\/i>: \"Embora 78% das respostas do Agente A atendam ao nosso limite de precis\u00e3o de ferramenta de 0,9, apenas 62% atendem simultaneamente ao nosso limite de fidelidade de resposta de 0,85. Isso sugere que o agente ocasionalmente produz resultados corretos por meio de caminhos de racioc\u00ednio incorretos.\"<\/p>\n<p>Ao aplicar essas abordagens anal\u00edticas \u00e0s m\u00e9tricas do agente, voc\u00ea pode desenvolver uma compreens\u00e3o razo\u00e1vel do desempenho do seu sistema, tomar decis\u00f5es de aprimoramento e estabelecer padr\u00f5es de qualidade confi\u00e1veis para a implanta\u00e7\u00e3o. Essa an\u00e1lise sistem\u00e1tica ajuda a ir al\u00e9m das m\u00e9tricas simples para compreender de fato os recursos e as limita\u00e7\u00f5es do agente em diferentes contextos.<\/p>\n<h2 style=\"font-weight: 400;\">Exemplo: avalia\u00e7\u00e3o de um agente de an\u00e1lise de dados<\/h2>\n<p>Testamos essa estrutura em um agente de conversa\u00e7\u00e3o projetado para responder a consultas com base em dados armazenados no Couchbase. O agente recebe as perguntas do usu\u00e1rio, encaminha a pergunta para uma ferramenta NL2SQL++ que gera consultas SQL++ para buscar os documentos correspondentes no armazenamento e gera uma resposta detalhada e um relat\u00f3rio de an\u00e1lise para a pergunta do usu\u00e1rio usando os documentos recuperados.<\/p>\n<p>Para nossa avalia\u00e7\u00e3o, o agente foi executado em um conjunto de dados de listagens do AirBNB que cont\u00e9m os detalhes das listagens do AirBNB nos Estados Unidos. Geramos perguntas e respostas de refer\u00eancia nas inst\u00e2ncias de dados usando o Gerador de dados sint\u00e9ticos. Abaixo est\u00e1 um exemplo de conjunto de pares de respostas de consulta gerados pelo gerador de dados sint\u00e9ticos:<\/p>\n<pre class=\"\">[\r\n  {\r\n    \"question\": \"What type of room is offered in the \\\"Clean and quiet apt home by the park\\?\"\r\n    \"answer\": \"The room type offered in the \\\"Clean and quiet apt home by the park\\\" is a Private room. This conclusion is based on the data retrieved from the Airbnb listings, where the specific entry for this listing name was queried to determine the type of accommodation provided. The data clearly indicates that the listing is categorized under the \\\"Private room\\\" type, meaning guests will have a private space within a shared property.\"\r\n  },\r\n  {\r\n    \"question\": \"What is the cancellation policy for the \\\"Skylit Midtown Castle\\\"?\"\r\n    \"answer\": \"The cancellation policy for the \\\"Skylit Midtown Castle\\\" is moderate. This conclusion is drawn from the data retrieved from the Airbnb listings, where the specific entry for this listing name was queried to determine the cancellation terms. The data indicates that the listing follows a moderate cancellation policy, which typically allows for more flexibility compared to strict policies, offering guests the ability to cancel within a certain timeframe before the check-in date for a full refund.\"\r\n  }\r\n]\r\n<\/pre>\n<p>Um conjunto de 40 pares de documentos de consulta foi gerado para esse experimento espec\u00edfico. O agente foi executado nessas consultas geradas e a sa\u00edda foi registrada para criar o conjunto de dados de avalia\u00e7\u00e3o.<\/p>\n<p>O conjunto de dados de avalia\u00e7\u00e3o (golden dataset) consiste em:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Perguntas: Perguntas geradas no conjunto de dados<\/li>\n<li aria-level=\"1\">Respostas da verdade b\u00e1sica: As respostas de refer\u00eancia (corretas) para as perguntas geradas<\/li>\n<li aria-level=\"1\">Contexto de refer\u00eancia: A fonte de verdade a partir da qual as consultas foram geradas (resultados da ferramenta de verdade terrestre)<\/li>\n<li aria-level=\"1\">Contexto recuperado: Os documentos recuperados usando a ferramenta NL2SQL++ executada nas consultas geradas (resultados da ferramenta)<\/li>\n<li aria-level=\"1\">Respostas do agente: As respostas do agente, considerando a consulta e o contexto recuperado<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Um experimento foi criado nesse conjunto de dados de avalia\u00e7\u00e3o usando tr\u00eas m\u00e9tricas: similaridade sem\u00e2ntica, precis\u00e3o do contexto e relev\u00e2ncia da resposta. A similaridade sem\u00e2ntica mede a similaridade de incorpora\u00e7\u00e3o entre os contextos recuperados e de refer\u00eancia. A precis\u00e3o do contexto mede a precis\u00e3o dos contextos recuperados com rela\u00e7\u00e3o \u00e0 consulta e ao contexto de refer\u00eancia. A relev\u00e2ncia da resposta mede a relev\u00e2ncia da resposta do agente para a consulta do usu\u00e1rio e o contexto recuperado.<\/p>\n<p>As pontua\u00e7\u00f5es m\u00e9dias de m\u00e9tricas, juntamente com os metadados do experimento para esse experimento espec\u00edfico, s\u00e3o fornecidas abaixo. Aqui, \"m\u00e9dia\" refere-se \u00e0 m\u00e9dia de cada m\u00e9trica nos pontos de dados do conjunto de dados de avalia\u00e7\u00e3o:<\/p>\n<pre class=\"lang:default decode:true\">{\r\n  \"experiment_id\": \"experiment5\",\r\n  \"timestamp\":\"2025-03-20T11:17:46.411457\",\r\n  \"llm_model\":\"gpt-4o\",\r\n  \"metrics\":[\"semantic_similarity\", \"context_precision\", \"answer_relevancy\"],\r\n  \"dataset_size\":40,\r\n  \"dataset_id\":\"11b2d36a-4f00-40d2-bbe7-e614f4a77f1f\",\r\n  \"avg_metrics\":{\r\n    \"semantic_similarity\":0,85,\r\n    \"context_precision\":0,99,\r\n    \"answer_relevancy\":0,90,\r\n  }\r\n}\r\n<\/pre>\n<p>Uma tabela de an\u00e1lise de qualidade de m\u00e9trica pode nos ajudar a analisar o desempenho do agente geral em todo o conjunto de dados de avalia\u00e7\u00e3o, usando um limite para cada m\u00e9trica e o n\u00famero de pontos de dados que produziram uma pontua\u00e7\u00e3o acima do limite determinado.<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>S.No<\/strong><\/td>\n<td><strong>M\u00e9trico<\/strong><\/td>\n<td><strong>Limite<\/strong><\/td>\n<td><strong>Amostras acima do limite<\/strong><\/td>\n<td><strong>N\u00famero total de amostras<\/strong><\/td>\n<td><strong>Precis\u00e3o (%)<\/strong><\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Similaridade sem\u00e2ntica<\/td>\n<td>0.70<\/td>\n<td>40<\/td>\n<td>40<\/td>\n<td>100.00<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Precis\u00e3o de contexto<\/td>\n<td>0.90<\/td>\n<td>40<\/td>\n<td>40<\/td>\n<td>100.00<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Relev\u00e2ncia da resposta<\/td>\n<td>0.70<\/td>\n<td>37<\/td>\n<td>40<\/td>\n<td>92.50<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Em nossa avalia\u00e7\u00e3o, o NL2SQL++ demonstrou consistentemente um bom desempenho, com todas as 40 amostras de teste atingindo pontua\u00e7\u00f5es de similaridade sem\u00e2ntica e precis\u00e3o de contexto acima do limite predefinido. Isso indica que a ferramenta captura de forma confi\u00e1vel a inten\u00e7\u00e3o do usu\u00e1rio e traduz com precis\u00e3o as consultas em linguagem natural para SQL estruturado.<\/p>\n<p>O LLM respons\u00e1vel pela gera\u00e7\u00e3o das respostas finais tamb\u00e9m teve um desempenho excepcional. Enquanto 37 das 40 respostas excederam o limite da m\u00e9trica, as 3 restantes ficaram um pouco abaixo. Essa pequena varia\u00e7\u00e3o \u00e9 esperada, pois os LLMs geram inerentemente novas sequ\u00eancias de tokens em vez de replicar o conte\u00fado de refer\u00eancia linha por linha. Apesar desses desvios, o modelo manteve a alta precis\u00e3o das respostas em todos os aspectos e, se n\u00e3o tivesse feito isso, ter\u00edamos observado quedas m\u00e9tricas mais significativas.<\/p>\n<p>Relat\u00f3rios detalhados de experimentos est\u00e3o dispon\u00edveis para inspecionar amostras individuais, inclusive aquelas que n\u00e3o atingiram o limite, fornecendo informa\u00e7\u00f5es sobre o quanto elas se desviaram e os poss\u00edveis motivos.<\/p>\n<h2 style=\"font-weight: 400;\">Conclus\u00e3o<\/h2>\n<p>Essa estrutura foi criada com o requisito principal de fornecer aos usu\u00e1rios um m\u00e9todo persistente para avaliar sistemas de IA em v\u00e1rios dom\u00ednios e casos de uso, simplificando a avalia\u00e7\u00e3o por meio do uso de um formato consistente para os dados, automatizando o tratamento de dados e criando cen\u00e1rios de exemplo nos quais \u00e9 dif\u00edcil coletar dados reais. Ele tamb\u00e9m rastreia cada etapa realizada por um agente, o que ajuda quando v\u00e1rios agentes trabalham juntos. No futuro, esperamos que essas ferramentas continuem melhorando, atualizando os casos de teste \u00e0 medida que as necessidades do mundo real mudam, gerando relat\u00f3rios f\u00e1ceis de entender para todos e incluindo verifica\u00e7\u00f5es para detectar tend\u00eancias ou comportamentos inseguros. Com isso, podemos garantir que os agentes de IA permane\u00e7am confi\u00e1veis, transparentes e, o mais importante, alinhados com as necessidades dos desenvolvedores.<\/p>","protected":false},"excerpt":{"rendered":"<p>Agents and agentic pipelines are being built and released at an accelerated pace like never before. But how can we determine how good they are? Why evaluating AI agents matter Think of an AI agent like a fitness tracker. The [&hellip;]<\/p>","protected":false},"author":85664,"featured_media":17402,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[10122,3917,10133],"tags":[],"ppma_author":[10141],"class_list":["post-17397","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence-ai","category-company","category-engineering"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Evaluating Agentic AI Workflows - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Evaluating an agent requires a systematic approach to ensure your model is accurate, reliable, and robust. We show how to do it!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/evaluating-agentic-ai-workflows\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Evaluating Agentic AI Workflows\" \/>\n<meta property=\"og:description\" content=\"Evaluating an agent requires a systematic approach to ensure your model is accurate, reliable, and robust. We show how to do it!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/evaluating-agentic-ai-workflows\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-06T19:55:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-21T20:06:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/blog-evaluating-agentic-ai-workflows.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1256\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Goutham Krishnan - Software Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Goutham Krishnan - Software Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/\"},\"author\":{\"name\":\"Goutham Krishnan - Software Engineer\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8a8eb64ed80d85c760d35a1d2789d6b4\"},\"headline\":\"Evaluating Agentic AI Workflows\",\"datePublished\":\"2025-08-06T19:55:28+00:00\",\"dateModified\":\"2025-10-21T20:06:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/\"},\"wordCount\":3404,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/blog-evaluating-agentic-ai-workflows.png\",\"articleSection\":[\"Artificial Intelligence (AI)\",\"Company\",\"Engineering\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/\",\"name\":\"Evaluating Agentic AI Workflows - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/blog-evaluating-agentic-ai-workflows.png\",\"datePublished\":\"2025-08-06T19:55:28+00:00\",\"dateModified\":\"2025-10-21T20:06:50+00:00\",\"description\":\"Evaluating an agent requires a systematic approach to ensure your model is accurate, reliable, and robust. We show how to do it!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/blog-evaluating-agentic-ai-workflows.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/blog-evaluating-agentic-ai-workflows.png\",\"width\":2400,\"height\":1256,\"caption\":\"Why Evaluating AI Agents Matter\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Evaluating Agentic AI Workflows\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8a8eb64ed80d85c760d35a1d2789d6b4\",\"name\":\"Goutham Krishnan - Software Engineer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/70e17f9875a6a1f039900f26e5792aea\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0dab894f8141839723a5f0cbb12a4db009ff38a7b17897c589f084c56cbd60df?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0dab894f8141839723a5f0cbb12a4db009ff38a7b17897c589f084c56cbd60df?s=96&d=mm&r=g\",\"caption\":\"Goutham Krishnan - Software Engineer\"},\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/gouthamkrishnan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Evaluating Agentic AI Workflows - The Couchbase Blog","description":"A avalia\u00e7\u00e3o de um agente requer uma abordagem sistem\u00e1tica para garantir que seu modelo seja preciso, confi\u00e1vel e robusto. N\u00f3s mostramos como fazer isso!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/evaluating-agentic-ai-workflows\/","og_locale":"pt_BR","og_type":"article","og_title":"Evaluating Agentic AI Workflows","og_description":"Evaluating an agent requires a systematic approach to ensure your model is accurate, reliable, and robust. We show how to do it!","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/evaluating-agentic-ai-workflows\/","og_site_name":"The Couchbase Blog","article_published_time":"2025-08-06T19:55:28+00:00","article_modified_time":"2025-10-21T20:06:50+00:00","og_image":[{"width":2400,"height":1256,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/blog-evaluating-agentic-ai-workflows.png","type":"image\/png"}],"author":"Goutham Krishnan - Software Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Goutham Krishnan - Software Engineer","Est. reading time":"16 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/"},"author":{"name":"Goutham Krishnan - Software Engineer","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8a8eb64ed80d85c760d35a1d2789d6b4"},"headline":"Evaluating Agentic AI Workflows","datePublished":"2025-08-06T19:55:28+00:00","dateModified":"2025-10-21T20:06:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/"},"wordCount":3404,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/blog-evaluating-agentic-ai-workflows.png","articleSection":["Artificial Intelligence (AI)","Company","Engineering"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/","url":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/","name":"Evaluating Agentic AI Workflows - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/blog-evaluating-agentic-ai-workflows.png","datePublished":"2025-08-06T19:55:28+00:00","dateModified":"2025-10-21T20:06:50+00:00","description":"A avalia\u00e7\u00e3o de um agente requer uma abordagem sistem\u00e1tica para garantir que seu modelo seja preciso, confi\u00e1vel e robusto. N\u00f3s mostramos como fazer isso!","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/blog-evaluating-agentic-ai-workflows.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/08\/blog-evaluating-agentic-ai-workflows.png","width":2400,"height":1256,"caption":"Why Evaluating AI Agents Matter"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/evaluating-agentic-ai-workflows\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Evaluating Agentic AI Workflows"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8a8eb64ed80d85c760d35a1d2789d6b4","name":"Goutham Krishnan - Engenheiro de software","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/70e17f9875a6a1f039900f26e5792aea","url":"https:\/\/secure.gravatar.com\/avatar\/0dab894f8141839723a5f0cbb12a4db009ff38a7b17897c589f084c56cbd60df?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0dab894f8141839723a5f0cbb12a4db009ff38a7b17897c589f084c56cbd60df?s=96&d=mm&r=g","caption":"Goutham Krishnan - Software Engineer"},"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/gouthamkrishnan\/"}]}},"authors":[{"term_id":10141,"user_id":85664,"is_guest":0,"slug":"gouthamkrishnan","display_name":"Goutham Krishnan - Software Engineer","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/0dab894f8141839723a5f0cbb12a4db009ff38a7b17897c589f084c56cbd60df?s=96&d=mm&r=g","author_category":"1","last_name":"Krishnan - Software Engineer","first_name":"Goutham","job_title":"","user_url":"","description":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/17397","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/85664"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=17397"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/17397\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/17402"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=17397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=17397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=17397"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=17397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}