<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>montanari.dev</title>
        <link>https://montanari.dev/knowledge/articles</link>
        <description>Engenharia de Sistemas Multiagentes: arquitetura, padrões e implementação.</description>
        <lastBuildDate>Mon, 01 Jun 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>pt-BR</language>
        <copyright>Copyright © 2026 montanari.dev</copyright>
        <item>
            <title><![CDATA[Control planes para sistemas multiagentes]]></title>
            <link>https://montanari.dev/knowledge/articles/control-planes-para-sistemas-multiagentes</link>
            <guid>https://montanari.dev/knowledge/articles/control-planes-para-sistemas-multiagentes</guid>
            <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Separando governança, execução e estado para operar agentes com previsibilidade.]]></description>
            <content:encoded><![CDATA[<img class="articleCover" src="https://montanari.dev/img/og/control-planes-para-sistemas-multiagentes.png" alt="Diagrama abstrato de um control plane coordenando agentes"><blockquote>
<p>Placeholder editorial: estrutura preparada para receber a versão aprofundada do artigo.</p>
</blockquote>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="contexto">Contexto<a href="https://montanari.dev/knowledge/articles/control-planes-para-sistemas-multiagentes#contexto" class="hash-link" aria-label="Link direto para Contexto" title="Link direto para Contexto" translate="no">​</a></h2>
<p>Sistemas multiagentes acumulam configuração, políticas, ferramentas e estado operacional. Quando esses elementos vivem dentro de cada runtime, a governança se fragmenta.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="arquitetura">Arquitetura<a href="https://montanari.dev/knowledge/articles/control-planes-para-sistemas-multiagentes#arquitetura" class="hash-link" aria-label="Link direto para Arquitetura" title="Link direto para Arquitetura" translate="no">​</a></h2>
<!-- -->
<section class="architectureDecision"><header><span>ADR</span><h3>Separar control plane e data plane</h3><span class="statusBadge statusBadge--accepted">accepted</span></header><p>O control plane governa configuração e políticas; o data plane executa tarefas com baixa latência.</p></section>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="trade-offs">Trade-offs<a href="https://montanari.dev/knowledge/articles/control-planes-para-sistemas-multiagentes#trade-offs" class="hash-link" aria-label="Link direto para Trade-offs" title="Link direto para Trade-offs" translate="no">​</a></h2>
<section class="tradeoffs"><h3>Trade-offs</h3><div class="tradeoffsGrid"><div><strong>Vantagens</strong><ul><li>Governança centralizada</li><li>Rollbacks independentes</li><li>Auditoria consistente</li></ul></div><div><strong>Custos e riscos</strong><ul><li>Nova camada operacional</li><li>Consistência eventual</li><li>Contratos adicionais</li></ul></div></div></section>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="próximos-passos">Próximos passos<a href="https://montanari.dev/knowledge/articles/control-planes-para-sistemas-multiagentes#pr%C3%B3ximos-passos" class="hash-link" aria-label="Link direto para Próximos passos" title="Link direto para Próximos passos" translate="no">​</a></h2>
<p>Este placeholder será expandido com protocolos, modelo de dados, código e testes de falha.</p>]]></content:encoded>
            <category>Architecture</category>
            <category>Multi-Agent</category>
            <category>Control Plane</category>
        </item>
        <item>
            <title><![CDATA[DSPy e otimização programática]]></title>
            <link>https://montanari.dev/knowledge/articles/dspy-otimizacao</link>
            <guid>https://montanari.dev/knowledge/articles/dspy-otimizacao</guid>
            <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Separando intenção, exemplos e otimização da escrita manual de prompts.]]></description>
            <content:encoded><![CDATA[<img class="articleCover" src="https://montanari.dev/img/og/dspy-e-otimizacao-programatica.png" alt="Capa do conteúdo: DSPy e otimização programática"><h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="programa-métrica-e-otimizador">Programa, métrica e otimizador<a href="https://montanari.dev/knowledge/articles/dspy-otimizacao#programa-m%C3%A9trica-e-otimizador" class="hash-link" aria-label="Link direto para Programa, métrica e otimizador" title="Link direto para Programa, métrica e otimizador" translate="no">​</a></h2>
<p>O ganho não vem apenas da sintaxe, mas da separação entre comportamento desejado e mecanismo de busca.</p>]]></content:encoded>
            <category>DSPy</category>
            <category>Evaluation</category>
            <category>Architecture</category>
        </item>
        <item>
            <title><![CDATA[Avaliação contínua em produção]]></title>
            <link>https://montanari.dev/knowledge/articles/avaliacao-continua</link>
            <guid>https://montanari.dev/knowledge/articles/avaliacao-continua</guid>
            <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Da suíte offline aos sinais amostrados no runtime.]]></description>
            <content:encoded><![CDATA[<img class="articleCover" src="https://montanari.dev/img/og/avaliacao-continua-em-producao.png" alt="Capa do conteúdo: Avaliação contínua em produção"><h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="uma-malha-de-avaliação">Uma malha de avaliação<a href="https://montanari.dev/knowledge/articles/avaliacao-continua#uma-malha-de-avalia%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para Uma malha de avaliação" title="Link direto para Uma malha de avaliação" translate="no">​</a></h2>
<p>Conecte testes determinísticos, juízes, revisão humana e métricas de negócio com proveniência comum.</p>
<figure class="benchmark"><figcaption><span>BENCHMARK</span><strong>Estratégias de avaliação</strong></figcaption><div class="benchmarkScroll"><table><thead><tr><th>Opção</th><th>Cobertura</th><th>Custo</th></tr></thead><tbody><tr class=""><th>Regras</th><td>Baixa</td><td>Baixo</td></tr><tr class="isHighlighted"><th>LLM judge</th><td>Média</td><td>Médio</td></tr><tr class=""><th>Humana</th><td>Alta</td><td>Alto</td></tr></tbody></table></div></figure>]]></content:encoded>
            <category>Evaluation</category>
            <category>Observability</category>
            <category>Multi-Agent</category>
        </item>
        <item>
            <title><![CDATA[Human in the Loop como protocolo]]></title>
            <link>https://montanari.dev/knowledge/articles/hitl-como-protocolo</link>
            <guid>https://montanari.dev/knowledge/articles/hitl-como-protocolo</guid>
            <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Intervenção humana modelada como estado, contrato e prazo.]]></description>
            <content:encoded><![CDATA[<img class="articleCover" src="https://montanari.dev/img/og/human-in-the-loop-como-protocolo.png" alt="Capa do conteúdo: Human in the Loop como protocolo"><h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="a-pausa-é-parte-do-sistema">A pausa é parte do sistema<a href="https://montanari.dev/knowledge/articles/hitl-como-protocolo#a-pausa-%C3%A9-parte-do-sistema" class="hash-link" aria-label="Link direto para A pausa é parte do sistema" title="Link direto para A pausa é parte do sistema" translate="no">​</a></h2>
<p>Modele solicitação, expiração, escalonamento e retomada como transições persistidas.</p>]]></content:encoded>
            <category>Human in the Loop</category>
            <category>Multi-Agent</category>
            <category>Architecture</category>
        </item>
        <item>
            <title><![CDATA[Eventos como memória operacional]]></title>
            <link>https://montanari.dev/knowledge/articles/eventos-como-memoria-operacional</link>
            <guid>https://montanari.dev/knowledge/articles/eventos-como-memoria-operacional</guid>
            <pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Por que eventos de domínio são melhores que logs para reconstruir decisões.]]></description>
            <content:encoded><![CDATA[<img class="articleCover" src="https://montanari.dev/img/og/eventos-como-memoria-operacional.png" alt="Capa do conteúdo: Eventos como memória operacional"><h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="eventos-de-decisão">Eventos de decisão<a href="https://montanari.dev/knowledge/articles/eventos-como-memoria-operacional#eventos-de-decis%C3%A3o" class="hash-link" aria-label="Link direto para Eventos de decisão" title="Link direto para Eventos de decisão" translate="no">​</a></h2>
<p>O evento deve registrar intenção, evidência, política aplicada, resultado e correlação, sem depender do texto livre do modelo.</p>]]></content:encoded>
            <category>Event-driven</category>
            <category>Observability</category>
            <category>Memory</category>
        </item>
        <item>
            <title><![CDATA[Guardrails em camadas]]></title>
            <link>https://montanari.dev/knowledge/articles/guardrails-em-camadas</link>
            <guid>https://montanari.dev/knowledge/articles/guardrails-em-camadas</guid>
            <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Prevenção, detecção e contenção de falhas em sistemas agentic.]]></description>
            <content:encoded><![CDATA[<img class="articleCover" src="https://montanari.dev/img/og/guardrails-em-camadas.png" alt="Capa do conteúdo: Guardrails em camadas"><h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="modelo-de-defesa">Modelo de defesa<a href="https://montanari.dev/knowledge/articles/guardrails-em-camadas#modelo-de-defesa" class="hash-link" aria-label="Link direto para Modelo de defesa" title="Link direto para Modelo de defesa" translate="no">​</a></h2>
<p>Distribua controles entre entrada, planejamento, execução de ferramentas, saída e efeitos externos.</p>]]></content:encoded>
            <category>Guardrails</category>
            <category>Multi-Agent</category>
            <category>Tool Calling</category>
        </item>
        <item>
            <title><![CDATA[Tool calling é um contrato distribuído]]></title>
            <link>https://montanari.dev/knowledge/articles/tool-calling-como-contrato</link>
            <guid>https://montanari.dev/knowledge/articles/tool-calling-como-contrato</guid>
            <pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Schemas, idempotência e limites na execução de ferramentas por agentes.]]></description>
            <content:encoded><![CDATA[<img class="articleCover" src="https://montanari.dev/img/og/tool-calling-e-um-contrato-distribuido.png" alt="Capa do conteúdo: Tool calling é um contrato distribuído"><h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="contratos-antes-de-prompts">Contratos antes de prompts<a href="https://montanari.dev/knowledge/articles/tool-calling-como-contrato#contratos-antes-de-prompts" class="hash-link" aria-label="Link direto para Contratos antes de prompts" title="Link direto para Contratos antes de prompts" translate="no">​</a></h2>
<p>Uma tool precisa declarar entradas, saídas, autorização, idempotência, timeout e política de retry.</p>
<aside class="mdxCallout mdxCallout--warning"><div class="mdxCalloutMarker">!</div><div><strong>Atenção</strong><div>Retries automáticos em operações não idempotentes podem duplicar efeitos no mundo real.</div></div></aside>]]></content:encoded>
            <category>Tool Calling</category>
            <category>Guardrails</category>
            <category>Architecture</category>
        </item>
        <item>
            <title><![CDATA[LangGraph como runtime, não como desenho]]></title>
            <link>https://montanari.dev/knowledge/articles/langgraph-como-runtime</link>
            <guid>https://montanari.dev/knowledge/articles/langgraph-como-runtime</guid>
            <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Estado, checkpoints e recuperação em grafos de agentes.]]></description>
            <content:encoded><![CDATA[<img class="articleCover" src="https://montanari.dev/img/og/langgraph-como-runtime-nao-como-desenho.png" alt="Capa do conteúdo: LangGraph como runtime, não como desenho"><h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="problema">Problema<a href="https://montanari.dev/knowledge/articles/langgraph-como-runtime#problema" class="hash-link" aria-label="Link direto para Problema" title="Link direto para Problema" translate="no">​</a></h2>
<p>O valor do grafo aparece quando falhas, retomadas e intervenção humana fazem parte do fluxo.</p>
<aside class="mdxCallout mdxCallout--info"><div class="mdxCalloutMarker">→</div><div><strong>Dica</strong><div>Modele cada nó como uma transição observável e idempotente sempre que possível.</div></div></aside>]]></content:encoded>
            <category>LangGraph</category>
            <category>Multi-Agent</category>
            <category>Architecture</category>
        </item>
        <item>
            <title><![CDATA[Observabilidade além de traces]]></title>
            <link>https://montanari.dev/knowledge/articles/observabilidade-sistemas-multiagentes</link>
            <guid>https://montanari.dev/knowledge/articles/observabilidade-sistemas-multiagentes</guid>
            <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sinais, avaliações e contratos para explicar decisões de agentes em produção.]]></description>
            <content:encoded><![CDATA[<img class="articleCover" src="https://montanari.dev/img/og/observabilidade-alem-de-traces.png" alt="Capa do conteúdo: Observabilidade além de traces"><blockquote>
<p>Placeholder editorial para uma análise completa de observabilidade agentic.</p>
</blockquote>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="os-sinais">Os sinais<a href="https://montanari.dev/knowledge/articles/observabilidade-sistemas-multiagentes#os-sinais" class="hash-link" aria-label="Link direto para Os sinais" title="Link direto para Os sinais" translate="no">​</a></h2>
<p>Combine traces distribuídos, eventos de decisão, métricas de resultado e avaliações amostradas.</p>
<aside class="mdxCallout mdxCallout--danger"><div class="mdxCalloutMarker">×</div><div><strong>Anti-pattern</strong><div>Usar o texto integral do prompt como único evento de auditoria mistura dados sensíveis, ruído e ausência de estrutura.</div></div></aside>]]></content:encoded>
            <category>Observability</category>
            <category>Evaluation</category>
            <category>Multi-Agent</category>
        </item>
        <item>
            <title><![CDATA[Memória não é contexto]]></title>
            <link>https://montanari.dev/knowledge/articles/memoria-nao-e-contexto</link>
            <guid>https://montanari.dev/knowledge/articles/memoria-nao-e-contexto</guid>
            <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Um modelo prático para memória episódica, semântica e operacional em agentes.]]></description>
            <content:encoded><![CDATA[<img class="articleCover" src="https://montanari.dev/img/og/memoria-nao-e-contexto.png" alt="Capa do conteúdo: Memória não é contexto"><blockquote>
<p>Placeholder editorial para o modelo completo de memória.</p>
</blockquote>
<h2 class="anchor anchorTargetHideOnScrollNavbar_vjPI" id="contexto-e-memória">Contexto e memória<a href="https://montanari.dev/knowledge/articles/memoria-nao-e-contexto#contexto-e-mem%C3%B3ria" class="hash-link" aria-label="Link direto para Contexto e memória" title="Link direto para Contexto e memória" translate="no">​</a></h2>
<p>Contexto é uma projeção temporária. Memória possui retenção, proveniência, escopo e políticas de esquecimento.</p>
<!-- -->
<aside class="mdxCallout mdxCallout--success"><div class="mdxCalloutMarker">✓</div><div><strong>Best practice</strong><div>Defina o contrato de retenção antes de escolher o mecanismo de armazenamento.</div></div></aside>]]></content:encoded>
            <category>Memory</category>
            <category>Multi-Agent</category>
            <category>Architecture</category>
        </item>
    </channel>
</rss>