Pular para o conteúdo

Plato

O Plato põe o agente que você já roda dentro da página do navegador: uma visão ao lado do que estiver aberto, onde você conversa com o Claude Code, o Codex ou qualquer comando que fale o Agent Client Protocol, e a página entrega o que está na tela como contexto. O agente roda na raiz, lê as mesmas instruções e o mesmo me.md que todo agente, e trabalha sob o mesmo contrato de papéis. Ligado por padrão (eidos plugin disable plato o desliga); a página do plugin nomeia o agente com quem esta máquina conversa.

Nada próprio do eidosmd está no circuito: nenhum modelo, nenhuma chave, nenhum endpoint. Nada sai da máquina a não ser através do agente que você configurou, sob as suas próprias permissões.

  • Uma visão Plato na barra lateral auxiliar: uma conversa com o agente, iniciada na raiz na primeira mensagem com EIDOS_ROOT definido.
  • Contexto sem pedir. O que a página tem aberto vai junto com cada mensagem: um Blueprint (plano) por título, id e arquivo; uma página de canvas; a tabela de uma coleção e o seu filtro; uma aba de configurações; um documento de nível superior. Aparece no compositor como um chip que você pode tirar para uma mensagem ou ao qual adicionar um Blueprint, e o plugin o redige para o agente. A primeira mensagem de uma sessão carrega uma nota fixa: onde o agente está, o que ler primeiro, que o trabalho dele é a pasta raiz e nada fora dela, que a documentação é eidos standard e eidos instructions, e a persona.
  • A resposta chega em streaming enquanto o agente responde. Suas chamadas de ferramenta e os arquivos que ele mudou são listados sob a resposta, e o leitor e as tabelas se atualizam como para qualquer mudança em disco. Uma mensagem pode ser interrompida.
  • As permissões são do agente. Um pedido de permissão que o agente levanta é mostrado como o agente o redigiu e respondido na visão; nada é aprovado em seu nome, e você está na visão em toda mensagem. As leituras e escritas de arquivo do agente são respondidas só dentro da raiz.
  • Interrogatório. /grill na caixa de mensagem (oferecido quando você digita a barra, com o que vier depois dela como a sua abertura) começa uma conversa em que o Plato questiona o que está aberto: ele lê o Blueprint, ou o Framework (a estrutura), e faz uma pergunta de cada vez sobre o que o texto deixa por dizer, sem nunca responder por você. Ele só pergunta o que o seu papel pode responder, nas palavras e na profundidade dele: o papel do usuário escolhido como você em Users, senão o de .eidos/me.md, com o seu contrato, e a sua calibração de me.md quando o papel é o mesmo. Escolher um usuário de outro papel é se colocar no lugar dele: o Plato interroga você como esse usuário, só pelo papel dele. What did we find? a encerra com cada lacuna, o que você disse e a que parte do Blueprint ela pertence, com as lacunas de outro papel à parte e o papel que decide cada uma, e oferece escrevê-las através da permissão habitual do agente.
  • Uma mensagem de commit para o Git. Com o plugin Git ligado, o Summarize no Source control e cada auto save pedem ao Plato uma mensagem de commit de uma linha. Ele responde em uma sessão própria, que não fica em nenhuma conversa, sem nenhuma edição e nenhuma ferramenta permitida; enquanto o agente responde a uma conversa, o auto save usa uma mensagem simples no lugar. Commit messages, na página do plugin, redige o que é pedido, com as mudanças em seguida; vazio, uma linha de assunto no imperativo com menos de 100 caracteres.
  • Plato: Focus Plato, na paleta, mostra a visão e põe o cursor na sua caixa de mensagem.
  • As conversas são partilhadas com a raiz, para que qualquer pessoa nela possa abrir e continuar uma, ou privadas. Uma conversa continuada depois que o agente reinicia segue na sessão do próprio agente, recarregada pelo session/load do ACP onde o agente o oferece; senão, a uma sessão nova se contam os turnos até ali, e nada a mais aparece na conversa.

O Plato não traz um agente: ele inicia o do seu computador pelo adaptador ACP desse agente, que o npx baixa na primeira vez. Então um computador precisa de três coisas: o Node.js (que fornece o npx), a sessão iniciada do próprio agente e um modelo que a conta possa usar.

  • Codex inicia sessão com npx -y @openai/codex login (uma conta do ChatGPT) ou com uma chave da OpenAI em OPENAI_API_KEY, que o Plato passa ao adaptador quando não há outra sessão iniciada. Ele lê o modelo de ~/.codex/config.toml; uma linha model = com um modelo que a conta não pode usar transforma cada resposta em um erro.
  • Claude Code inicia sessão com /login no claude (ou npx -y @anthropic-ai/claude-code).

A barra abaixo do agente, na página do plugin, testa o agente escolhido, e escolher um o testa: Node.js encontrado, o agente iniciado, com sessão iniciada e respondendo a uma mensagem curta, cada passo marcado, com o que fazer no passo que falhou e Copiar detalhes para enviar a quem ajudar você. O teste inicia um agente próprio, então nenhuma conversa em andamento é tocada.

O Plato responde como Plato: curioso, direto, um pouco seco, apreciador de uma boa pergunta e de uma resposta curta. Isso é uma voz e nada mais; o contrato de papéis do me.md e as instruções decidem o que ele traz à tona e quem tem uma decisão. A página do plugin oferece a voz do Plato, o seu próprio texto ou nenhuma.

  • .eidos/plugins/plato/local.yaml, privado: o agent (claude-code, codex ou custom), command (o comando ACP a rodar; sem definir, o adaptador do agente nomeado através do npx, baixado no primeiro uso), persona_mode (plato, own, off) e persona (o seu próprio texto). Nunca commitado: o agente com quem você conversa não viaja com a raiz.
  • .eidos/plugins/plato/settings.yaml: commit_prompt, o que se pede para a mensagem de commit do Git, partilhado com todos na raiz; e Plato como usuário (as_user, ligado por padrão) com Plato age como (acts_as): o usuário com que os comentários do Plato são assinados, por padrão um usuário Plato (@plato, um agente sem papel) que o plugin adiciona aos usuários da raiz na primeira vez que é preciso. Escolha outro usuário (por exemplo, Sammy) e o Plato assina como ele; desligue-o e o Plato não comenta como ninguém, seus comentários recusados. A partir de um shell, eidos plugin set plato as_user off ou eidos plugin set plato acts_as sammy.
  • .eidos/plugins/plato/conversations/<id>.yaml: uma conversa partilhada, commitada. .eidos/plugins/plato/local/conversations/<id>.yaml: uma privada, que nunca sai da máquina. Cada uma guarda as mensagens, o contexto que cada uma levou como foi redigido, os arquivos que uma resposta mudou e o id de sessão do agente.

Não há eidos plato: pedir à CLI para perguntar ao seu agente, a partir do seu agente, é um laço sem nada dentro. A página é a única superfície para conversar com ele. As suas configurações são escritas a partir do shell como as de qualquer plugin:

Janela do terminal
eidos plugin set plato agent codex # the agent, private, in local.yaml
eidos plugin set plato command "my-agent --acp" # a command of your own that speaks ACP
eidos plugin set plato agent --unset # back to Claude Code, the default

Nada. Desligado ou sem configurar, não há processo, nada é enviado a lugar nenhum, e a página do plugin diz qual dos dois casos é.