
Anthropic lança Kiro: IDE agentic com harness leve
O problema: três agentes divergentes
No início do desenvolvimento do Kiro, cada cliente (IDE, CLI e web) tinha seu próprio agente com formato de sessão, conjunto de ferramentas e modelo de configuração independentes. O harness do IDE era em TypeScript, o do CLI em Rust e o do web em Python. Isso permitia iteração rápida, mas gerava inconsistências: recursos como spec-driven development só existiam no IDE, enquanto plan mode e code intelligence só existiam no CLI. Cada nova funcionalidade precisava ser construída três vezes, bugs precisavam ser corrigidos três vezes, e a visão de sessões contínuas entre dispositivos era arquiteturalmente impossível.
A decisão: um harness unificado como processo standalone
O ponto de inflexão veio com o lançamento público do Kiro na web. Em vez de manter o custo crescente de três implementações, a equipe consolidou tudo em um único agent harness. A decisão-chave foi construí-lo como um processo de servidor independente, não como biblioteca compilada em cada cliente. Isso garante separação real: cliente e harness não precisam compartilhar linguagem ou runtime, e o mesmo binário roda no laptop ou numa VM na nuvem.
O protocolo: Agent Client Protocol (ACP)
A interface entre cliente e harness usa o ACP, protocolo padronizado que atingiu 1.0 em junho de 2026 e já é suportado por JetBrains, Xcode, Zed, Obsidian, Emacs e Neovim. Para clientes remotos (web e iOS), foi adicionado um transporte WebSocket. A equipe estendeu o ACP com o que chama de Kiro-ACP, adicionando mais de 20 métodos agent-callable, 15 métodos client-callable e 20 tipos de notificação, incluindo live steering (injetar mensagens durante a execução do agente), workflows de spec-driven development e sistema de permissões multi-escopo.
Recursos agora disponíveis em todas as superfícies
Com o harness unificado, funcionalidades antes presas a um cliente agora funcionam em todos com o mesmo formato de configuração:
- Spec-driven development agora funciona no CLI (
/spec new), na web e no IDE. - Custom agents usam o mesmo formato Markdown em
.kiro/agents/em todas as superfícies. - Hooks usam o mesmo formato JSON em
.kiro/hooks/com os mesmos triggers. - Compaction e gestão de contexto são consistentes independentemente do cliente.
Permissões unificadas com Cedar
Antes, cada cliente tinha sistema de permissões próprio com sintaxes incompatíveis. Agora há um modelo baseado em capacidades usando Cedar, linguagem de política formalmente verificada. Uma regra de deny em fs_read bloqueia todas as ferramentas que leem arquivos de uma vez. As políticas compõem em múltiplos escopos com semântica "deny sempre vence", e crescem organicamente conforme o usuário toma decisões de consentimento.
Resultados já visíveis
Desde a unificação, a equipe lançou recursos que chegaram a todos os clientes sem nenhuma alteração do lado do cliente, como global hooks (definidos em ~/.kiro/hooks/) e policy presets. Ainda há capacidades a construir, como empacotamento de sessões para mover entre ambientes, mas a arquitetura garante que cada nova funcionalidade precisa ser construída apenas uma vez.