Caso de estudo
Coordination Hub
Um espaço para coordenar o trabalho com várias IAs e compreender o que cada uma propôs, o que foi revisto e que decisão me cabe tomar.
Comecei-o para resolver um problema no meu próprio trabalho: ao alternar entre IAs, perdia contexto e tinha de reconstruir decisões. O Hub, cuja interface experimental se chama Testigo, reúne projetos, conversas e memória revista. O meu objetivo é acompanhar o trabalho sem confundir uma proposta com um resultado verificado.
Experimental
- Piloto
- produto independente em desenvolvimento
- L0–L3
- autonomia com autoridade humana
- MCP
- coordenação entre sessões separadas
Colaboração: Trabalhei com Claude e Codex na implementação e revisão do sistema. Mantenho a responsabilidade pela direção de produto, pelos critérios de aceitação e pelas decisões que exigem autorização.
Interface real com dados de demonstração. Estas capturas vêm do desenvolvimento de Testigo e não contêm conversas de trabalho nem informação da LALIGA. Os fornecedores aparecem desligados nesta sessão isolada; os ecrãs demonstram o design da supervisão, não uma execução autónoma em curso.
O projeto, camada a camada
Pequenas decisões constroem o sistema.
Organizo o contexto por projeto e conversa. Cada contributo conserva o seu autor, e posso verificar a disponibilidade das ferramentas sem sair do espaço de trabalho. Interface real com dados de demonstração.
A memória distingue material recebido de conhecimento revisto. Quero que seja possível inspecionar e rever a informação reutilizada, em vez de assumir que tudo o que foi escrito é válido. Interface real com dados de demonstração.
Criar um espaço de trabalho separado torna explícita a fronteira de cada projeto. Faz parte da experiência de entrada que continuo a testar para reduzir a configuração e evitar a mistura de contextos. Interface real com dados de demonstração.
Investigação
O problema surgiu enquanto trabalhava. Copiava respostas entre assistentes, repetia contexto e gastava tempo a verificar o que realmente tinha sido feito. Queria separar três coisas frequentemente confundidas: o pedido, a proposta e a evidência do resultado.
Defini níveis de autonomia para que uma recomendação não se transformasse, por si só, em autorização. L0 permite observar; L1 e L2 limitam ações de acordo com o seu âmbito; L3 reserva as decisões de maior impacto para uma pessoa.
Métodos:Avaliação do custo real da mediação humana · Comparação com frameworks existentes e decisão de construir uma solução à medida · Modelo de autonomia L0–L3, com L3 reservado a uma pessoa · Critérios de sucesso mensuráveis antes de escrever código.
Protótipo
Organizei a interface em torno de uma tarefa concreta: compreender o que precisa da minha atenção. O contexto fica à esquerda, a conversa ao centro e o estado das ferramentas à direita. A memória é consultada quando necessário, em vez de ocupar permanentemente o espaço de leitura.
O registo de eventos preserva o rasto operacional. As vistas construídas sobre ele permitem ler uma conversa e rever as suas decisões sem percorrer todo o registo técnico.
IA no processo
Neste projeto, uso IA para construir uma ferramenta que também deve ajudar-me a supervisioná-la. Alterno implementação e revisão com Claude e Codex, confrontando as suas conclusões com o código e os testes. Duas respostas coincidentes não me bastam para considerar algo validado.
- Ferramenta
- Claude · Codex, coordenados entre si através do próprio Hub
- Fase
- O ciclo completo: especificação, implementação, revisão cruzada e verificação
- Contributo humano
- Problema, critérios de aceitação, arquitetura de decisão, prioridades e cada aprovação irreversível
- Resultado da IA
- Implementação, testes e revisões independentes com conclusões priorizadas e evidências
- Critérios de seleção
- Evidências verificáveis, reversibilidade, isolamento de projetos, ausência de segredos e testes aprovados
- Limites identificados
- Nenhuma IA amplia as próprias permissões, resolve uma decisão irreversível ou declara consenso sem revisão independente
- Decisão final
- Autoridade humana sobre tudo o que é irreversível. As IAs decidem ações reversíveis e deixam rasto
Desenvolvimento
O Hub disponibiliza operações através de MCP para ler mensagens, registar respostas e fornecer evidências a partir de ferramentas compatíveis. O contrato distingue envio, receção, processamento e verificação: são estados diferentes, e quero que a interface os trate dessa forma.
Concentrei-me na recuperação, nas novas tentativas e na separação entre projetos. São situações pouco vistosas, mas essenciais para que uma ferramenta de coordenação não acrescente mais incerteza do que aquela que resolve.
Validação
Uma revisão revelou um problema esclarecedor: um tema podia ser encerrado como consenso sem verificar a existência de uma revisão independente. Corrigimos o contrato para exigir essa revisão e conservar as evidências. Esta descoberta mudou o meu critério de design: um estado positivo precisa de explicar em que se apoia.
A versão inicial documentava 95 testes automatizados. É uma evidência histórica do desenvolvimento, não uma garantia de que o produto atual está concluído. O Hub continua em piloto, e a facilidade de utilização ainda precisa de ser avaliada com pessoas; uma captura de ecrã ou um teste de código não substitui essa validação.
Do protótipo ao componente
Organização do sistema
- fundamentos / níveis de autonomia · estados de disponibilidade · classes de visibilidade
- organismos / fila de atenção · cronologia da conversa · painel de consenso
- organismos / registo de decisões · inventário de agentes · cadeia de evidências
Código · evidência de implementação
const requiredReviewers = [
...new Set(target.to.filter((agent) => agent !== parsed.from)),
]
if (requiredReviewers.length === 0) {
throw new Error('Consensus requires an independent review')
}
const reviewedBy = requiredReviewers.filter((reviewer) =>
events.some(
(event) =>
event.correlationId === target.id &&
event.from === reviewer &&
['review', 'objection', 'result'].includes(event.messageKind),
),
)
if (reviewedBy.length !== requiredReviewers.length) {
throw new Error('Consensus requires an independent review from: ...')
}
const level =
parsed.reversibility === 'irreversible' ? 'L3' : topicLevel
if (level === 'L3' && parsed.from !== 'manuel') {
throw new Error('L3 consensus may only be resolved by Manuel')
}src/store.mjs · resolveTopic()
O núcleo do sistema: a barreira de consenso. Antes bastava a declaração de um agente; agora exige a revisão independente de cada revisor obrigatório e deriva o nível em vez de o atribuir.
consensusState = 'reviewed' | 'provisional' | 'lapsed' ← derivado das revisões registadas, não declarado pelo agente que resolve o tema
Aprendizagens
Separar inteligência de autoridade: uma parte propõe e outra, determinística, autoriza, evitando que uma recomendação seja confundida com uma decisão.
Um acordo sem revisão independente não é consenso; é uma opinião com um carimbo de aprovação. Se o sistema não o verificar, acabará por acontecer.
A indisponibilidade por quota não é uma exceção, mas uma condição normal: o design deve degradar o funcionamento de forma explícita, em vez de ficar bloqueado.
Aprendi a registar decisões enquanto trabalho: reconstruir o contexto mais tarde exige mais esforço e pode deixar lacunas.
Pergunta em aberto:O que precisa uma pessoa de ver para supervisionar com confiança vários agentes autónomos sem ler tudo o que produzem?
Contacto
Vamos conversar.
Se achas que a minha forma de trabalhar se adequa à tua equipa, ou tens um produto ou uma investigação que gostarias de desenvolver, gostaria de saber mais. Conta-me de que precisas e em que ponto estás. Lerei a tua mensagem pessoalmente.
Também me podes encontrar no LinkedIn