Edison Watch

Code Mode Security (Beta)

Execução segura de MCP-as-code com sandboxing, análise AST e taint tracking.

O Code Mode permite que agentes executem código TypeScript para encadear várias ferramentas MCP, em vez de fazer chamadas de ferramenta individuais. Essa abordagem reduz significativamente a latência e o uso de tokens, mas introduz novas considerações de segurança.

Recurso Beta: Code Mode Security está atualmente em beta. Recursos e APIs podem mudar.

O Edison Watch protege o Code Mode com uma arquitetura de defesa em profundidade que combina execução sandboxed, análise estática e rastreamento de dados com consciência de taint.

Por que Code Mode?

Agentes tradicionais sofrem com context rot. A entrada e a saída de cada chamada de ferramenta precisam ser adicionadas à janela de contexto do LLM. Conectar um agente a muitos servidores MCP leva ao context rot, já que as definições das ferramentas consomem tokens mesmo antes de qualquer ação ser executada. Para processamento complexo de dados (por exemplo, "resuma estes 20 arquivos"), isso pode consumir centenas de milhares de tokens apenas para movimentar dados.

O Code Mode resolve isso permitindo que o agente escreva um script para processar dados dentro do ambiente seguro. O LLM vê apenas o resultado final, geralmente reduzindo o uso de tokens em mais de 90%.

MCP-to-TypeScript Generator

Arquitetura de Segurança

O Edison Watch emprega três camadas de defesa para tornar o Code Mode seguro para implantação corporativa.

1. O Sandbox do Deno (Proteção contra RCE)

O código é executado em um sandbox seguro do Deno com permissões estritas:

  • Sem Acesso à Rede: O script não pode fazer requisições HTTP arbitrárias. Ele só pode chamar ferramentas MCP permitidas.
  • Sem Escrita no Filesystem: O script não pode modificar o filesystem do host.
  • Limites de Recurso: Limites fixos de tempo de execução (90s), memória (256MB) e tamanho de saída (10MB).
Diagrama de Implementação do Code Mode

2. Análise AST (Analisabilidade)

Antes da execução, o Edison Watch analisa a Abstract Syntax Tree (AST) do script para impor um subconjunto estrito de TypeScript. Isso impede técnicas de ofuscação que atacantes usam para esconder comportamento malicioso.

Modo Estrito: Bloqueamos recursos dinâmicos como eval(), new Function() e imports dinâmicos (por exemplo, import(variable)). O código deve ser estaticamente analisável para ser executado.

3. Trifecta com Taint Awareness (Proteção de Dados)

O modelo vanilla da "Lethal Trifecta" (bloquear Dados Privados + Conteúdo Não Confiável + Comunicação Externa) pode ser agressivo demais para execução de código. O Code Mode usa taint tracking para ser mais preciso.

A Abordagem "Bisturi"

Em vez de marcar toda a sessão quando uma ferramenta sensível é chamada, o Edison Watch rastreia o fluxo real de variáveis de dados dentro do script.

Exemplo: O Problema do Calendário Imagine um agente lendo um convite de calendário para verificar sua disponibilidade. O corpo do convite contém conteúdo não confiável (possível prompt injection), mas os horários de início/fim são metadados seguros.

  • Trifecta Vanilla: Bloqueia a ação porque "Calendar" (Privado) e "Invite Body" (Não Confiável) foram acessados, mesmo que o agente só tenha impresso o horário.
  • Taint Tracking do Code Mode: Analisa o script. Se o código console.log(event.startTime) mas nunca registra event.body, o Edison sabe que o conteúdo não confiável nunca saiu do sandbox. A ação é permitida.

Essa precisão reduz falsos positivos enquanto mantém garantias estritas de segurança.

Observabilidade

Toda execução do Code Mode é totalmente auditada. O sistema registra:

  • O código TypeScript exato gerado pelo agente.
  • Resultados da validação e quaisquer erros de AST.
  • Saída do console e valores retornados.
  • Quais caminhos de dados específicos foram marcados como tainted.

Esses detalhes são armazenados nos logs de auditoria seguros.

Limites Operacionais

Para evitar negação de serviço (DoS) e abuso, o Code Mode impõe limites rígidos:

MétricaLimite
Tempo de Execução90 segundos
Memória256 MB
Tamanho da Saída10 MB

FAQ


On this page