Controlo e operação de agentes - observabilidade, ferramentas, MCP, segredos, ganchos e fiabilidade

Concluído

Nesta unidade, irá aprender:

  • Descubra as provas e artefactos necessários para o trabalho de agente

  • Como controlar ferramentas, integrações MCP e segredos de forma segura

  • Como os ganchos aplicam as proteções e a registo de auditorias

  • Como projetar para fiabilidade usando tentativas, escalonamento e privilégios mínimos

Provas e artefactos necessários para agentes

Um sistema agente deve produzir artefactos visíveis para cada ação significativa. Sem artefactos, não pode rever comportamentos de forma fiável, depurar falhas ou realizar análises pós-hoc.

No GitHub, a observabilidade é alcançada através de artefactos como:

  • pull requests e cronogramas de PR,

  • comissões e história do ramo,

  • execuções de workflow e registos de trabalhos,

  • verificações e resultados de análise obrigatórios, e

  • Carregava artefactos do fluxo de trabalho (por exemplo, relatórios de teste).

Conjunto mínimo de observabilidade

Uma tarefa de agente bem desenhada deve produzir evidências visíveis e revisíveis usando artefactos nativos do GitHub:

  • Um plano estruturado, normalmente incluído numa descrição ou discussão de um pull request

  • um pull request restrito e histórico de commits

  • Links de execução do workflow para verificações obrigatórias

  • artefactos carregados (por exemplo, registos ou relatórios)

  • Revisão dos resultados (aprovações ou alterações solicitadas)

Carregar artefactos do fluxo de trabalho para revisão e depuração

Carregar artefactos torna as provas duráveis e revisíveis, mesmo quando os registos desaparecem.

Recomendamos a melhor prática de incluir links para execuções de workflow e artefactos relevantes na PR sob a secção "Evidência", para que os revisores possam validar rapidamente os resultados.

- name: Upload test results
  uses: actions/upload-artifact@v4
  with:
    name: test-results
    path: results/

A fiabilidade assume a falha

Sistemas fiáveis assumem que ocorrerá uma falha. Os agentes irão interpretar mal as tarefas, os testes falharão e as alterações entrarão em conflito com o comportamento existente. A sua arquitetura deve detetar falhas cedo e fornecer caminhos de recuperação seguros.

Um padrão prático de fiabilidade inclui:

  • Tentativas: o agente pode atualizar o branch quando os testes falham.

  • Escalada: falhas persistentes são resumidas e passadas para um humano.

  • Prontidão para rollback: alterações de alto risco incluem notas de rollback e limites de âmbito.

Política de iteração segura

Use uma política previsível para a iteração:

  • Se uma verificação obrigatória falhar, o agente pode rever o ramo PR e repetir as verificações.

  • Se a mesma verificação exigida falhar duas vezes, escale para um revisor humano com:

    • O que falhou,

    • O que foi tentado,

    • que provas existem, e

    • Qual é o próximo passo sugerido.

Esta política ajuda a prevenir ciclos infinitos e torna as falhas acionáveis.

Observabilidade como característica arquitetónica obrigatória

Um conjunto mínimo de observabilidade para trabalho autónomo deve incluir:

  • um artefacto visível do plano,

  • um PR + histórico de commits,

  • links de execução de workflow para verificações necessárias,

  • artefactos duráveis (registos/relatórios/vestígios),

  • Analise os resultados e aprovações.

Tornar a prova rastreável em relação à execução e ao estado do código

Ensinar um princípio de nomeamento/metadados

  • As provas devem ser rastreáveis a uma execução de fluxo de trabalho específica e a um commit específico.

Isto auxilia nas auditorias e na depuração: pode responder "qual execução produziu este artefacto e em que estado estava o código?"

Partilhar evidências entre tarefas usando artefactos

Ensina o padrão:

  • Carregar artefactos onde são produzidos

  • Descarregu-os onde forem revistos ou implementados

Isto mantém as saídas inspecionáveis e utilizáveis sem que os ficheiros gerados sejam reenviados para o repositório.

Como controlar ferramentas, integrações MCP e segredos de forma segura

A configuração do perfil do agente fornece três tipos de controlo:

  • Limite de capacidade: que ferramentas são permitidas (prefere listas de permissões)
  • Limite de visibilidade: se o agente é selecionável pelo utilizador na interface interativa
  • Delimitação de delegação: quais subagentes podem ser invocados e como as transferências ocorrem Diretrizes de design:
  • Utilize conjuntos de ferramentas de apenas leitura para agentes de planeamento e revisão.
  • Restringa as ferramentas de implementação a agentes de execução.
  • Trate as alterações às listas de permissões de ferramentas como uma alteração sensível à governação.

Servidores MCP: estender ferramentas de forma segura

Os servidores MCP estendem a capacidade da ferramenta. Ensina estes padrões:

  • Forma de transporte: alguns servidores MCP são endpoints remotos; outros são processos locais.
  • Autenticação: os tokens devem ser injetados em tempo de execução através de limites secretos protegidos.
  • Controlo do namespace: prefiro permitir um subconjunto restrito de ferramentas em vez de wildcards amplos.

Orientações operacionais:

  • Adicionar ou expandir ferramentas MCP aumenta o raio de explosão e deve ser analisado como uma dependência de alto risco.

Segredos e restrições de ambiente (manter segredos fora do conteúdo do repositório)

Não coloque segredos em:

  • ficheiros de instruções,
  • ficheiros de configuração comprometidos,
  • ou workflow YAML em texto simples.

Em vez disso:

  • Use limites secretos protegidos destinados à injeção em tempo de execução,
  • Passar segredos apenas aos componentes que precisam,
  • Analise a disponibilidade de segredos (por exemplo, por ambiente) para reduzir a exposição.

Ensina o princípio:

  • "O ambiente de execução do agente tem o seu próprio limite secreto; não assumas que herda automaticamente os segredos do CI do repositório."

Como os ganchos aplicam as proteções e a registo de auditorias

Nos agentes GitHub Copilot, hooks são definidos como ficheiros de configuração armazenados no repositório (por exemplo, em .github/hooks/). Cada hook especifica quando é ativado e que ação realiza.

Os ganchos executam comandos personalizados em pontos específicos durante a execução do agente. Isto permite às equipas aplicar políticas, validar ações e capturar automaticamente os dados das auditorias.

Um exemplo simplificado:

{
  "name": "block-high-risk-command",
  "trigger": "pre-tool-use",
  "run": "if [[ \"$TOOL\" == \"delete\" ]]; then echo 'Blocked unsafe command'; exit 1; fi"
}

Como funciona

  • O gancho é executado antes de uma ferramenta ser utilizada (pré-uso da ferramenta)

  • Inspeciona a ação solicitada

  • Se a ação corresponder a um padrão bloqueado, a execução é interrompida

Padrões comuns de gancho

  • Ganchos de pré-ação Validar ou bloquear ações inseguras antes da execução

  • Ganchos pós-ação Registo de utilização de ferramentas, resultados ou decisões para auditoria

  • Ganchos de erro Capturar falhas e escalar ou disparar alertas

O que os ganchos permitem

  • Aplicação de políticas de segurança (por exemplo, bloquear comandos inseguros)

  • Adição de registos de auditoria para conformidade e resolução de problemas

  • Integração com sistemas externos (alertas, monitorização, aprovações)

  • Os ganchos fornecem pontos de controlo exequíveis que operam independentemente do raciocínio do modelo. Em vez de dependerem de instruções, garantem que certas regras são sempre aplicadas durante a execução.

Como projetar para fiabilidade usando tentativas, escalonamento e privilégios mínimos

Como falámos anteriormente, os agentes acabarão por falhar, mas podemos construir sistemas que consigam detetar essas falhas e garantir que a intervenção humana as detete; por exemplo, aqui estão algumas formas de garantir que as falhas são detetadas:

  • Retentativas limitadas para falhas transitórias

  • Caminhos de escalonamento para falhas repetidas

  • Prontidão para reverter alterações de alto risco

  • Permissões de privilégio mínimo para reduzir o raio de explosão

Padrão seguro para rollback a ser ensinado:

  • Operar com referências explícitas (commit/tag) ao implementar configurações sensíveis, em vez de "mais recente numa ramificação".

Lembrete sobre privilégio mínimo

  • Restringa as permissões do fluxo de trabalho por defeito e eleve apenas onde necessário.

Permissões de fluxo de trabalho de menor privilégio

O privilégio mínimo reduz o risco quando algo corre mal. Também impede que a automação com excesso de permissões se torne uma vulnerabilidade arquitetónica.

permissions:
  contents: read
  pull-requests: write

Esta configuração permite automação para ler conteúdos de repositórios e atualizar o contexto de PR (comentários, estados), impedindo por defeito o acesso amplo à escrita.