Ir para o conteúdo

Produto

Navegue, não recupere.

Esta é a máquina por trás dos números: dez ferramentas tipadas com orçamento fixo de tokens, um caminho sem LLM para as perguntas fáceis, uma ingestão que transforma planilhas em datasets consultáveis e uma superfície MCP que qualquer harness de agente consegue segurar.

A Vine

Dez primitivas, cada observação com orçamento

O agente toca a floresta exclusivamente por elas. Toda leitura carrega um orçamento rígido de saída com truncamento explícito (`truncated: true`, nunca um corte silencioso), para que o agente sempre distinga “não está lá” de “foi cortado”.

PrimitivaOrçamentoO que faz
locate(query, k)Leitura≤ 800 tokensPontos de entrada ranqueados apenas sobre metadados curados. BM25 no FTS5 do SQLite, com pesos de cheiro título : apelidos : tags : resumo em 4 : 3 : 2 : 1; híbrido com vetores por RRF quando existe um índice Canopy.
look(id)Leitura≤ 500 tokensO resumo executivo do nó: sumário, tags, outline e suas doze melhores arestas, cada uma com vinte e cinco tokens de cheiro do vizinho para onde aponta.
move(id, rel?)Leitura≤ 600 tokensTravessia por uma aresta tipada até os vizinhos do outro lado.
pick(id, section?)Leitura≤ 4.000 tokensLê um corpo. Qualquer coisa acima do orçamento devolve o outline no lugar, levando o agente a escolher uma seção em vez de ser cortado no meio da frase.
sniff(terms)Leitura≤ 800 tokensGrep literal, com acentuação normalizada, apenas sobre os corpos: a outra metade da divisão normativa entre locate e sniff.
scan(parent, filter)Leitura≤ 800 tokensFiltragem por metadados sobre uma região inteira, sem abrir um único arquivo. É como uma pergunta ampla é estreitada barato.
query(id, sql)Leitura200 linhas / 2 sSQL somente leitura sobre um nó de dataset, endurecido contra injeção. Toda escrita é rejeitada; datasets nascem de um esquema declarativo validado pela Vine, então o modelo nunca escreve DDL.
plantEscritaatômicoFaz nascer um nó com passaporte validado por contrato. Um commit de git.
graftEscritaatômicoCria ou reforça uma aresta tipada, sob uma regra de reforçar-antes-de-criar que nunca duplica. Um commit de git.
tendEscritaatômicoAltera um nó: passaporte, links, ou exatamente um INSERT/UPDATE/DELETE com WHERE obrigatório e sem DDL, jamais. Um commit de git.

A divisão locate/sniff é normativa: `locate` busca apenas metadados curados, `sniff` apenas os corpos brutos. É essa separação que torna o valor da curadoria mensurável, e que mantém a busca de entrada em 1,3 ms de p95, sem embedder nenhum.

Um salto típico custa de 200 a 500 tokens de observação. Uma resposta de cinco saltos custa algo entre 1,5 e 2,5 mil tokens de contexto exatamente relevante, contra um empilhamento top-k de tamanho parecido cuja relevância foi uma aposta feita antes de ler qualquer coisa.

Os caminhos baratos

Nem toda pergunta merece uma caçada

Navegar custa por salto. Em perguntas rasas, um caminho de um passo é mais rápido e suficiente, que é exatamente por que ele existe, e por que a regra de operação está escrita em vez de subentendida.

  • harvest: recuperação sem LLM

    `locate` e `sniff` fundidos por Reciprocal Rank Fusion, seguidos de um `pick` seletivo, tudo dentro de 4.000 tokens. Puro tempo de máquina: nenhuma chamada de modelo. Medido em cerca de 50 ms de mediana para um pacote de evidências de ~1,3 mil tokens.

  • answer: embasada, com as fontes

    A única chamada que custa dinheiro de verdade. Ela chega com os ids dos nós em que se apoia, então “de onde veio esta resposta” é uma lista que dá para abrir, não um escore de similaridade.

  • O armazém de respostas

    Por floresta, ligado por padrão. A recuperação continua rodando a cada pergunta; uma resposta guardada só é servida enquanto o material por trás dela for byte a byte o que era, então um acerto obsoleto é estruturalmente impossível e qualquer escrita invalida todas as entradas anteriores. Uma resposta servida avisa que veio do armazém, e a linha de auditoria registra o custo evitado.

A regra de operação que sai das medições: passe primeiro pelo harvest de um passo e escale para o agente navegador quando a resposta cheirar a agregação ou o pacote voltar vazio.

Ingestão

Tudo que você entrega vira navegável

Você não prepara seus arquivos para o engine. Você os entrega, e o Gardener converte, resume e commita cada um: pela linha de comando, pelo console ou pelo navegador, sempre pelo mesmo pipeline.

O que você joga dentroNo que vira
.md · .markdown · .txtuma nota: o texto já é o corpo
.docxum documento: títulos e parágrafos como markdown
.pdfum documento, por um hook de conversão de uma linha usando o extrator de linha de comando em que você já confia
.csvum dataset: uma tabela SQLite de verdade, consultada com SQL somente leitura
.jsonum dataset quando é uma tabela plana, senão um documento carregando o JSON
.xlsx · .xlsum dataset por aba, com tipos de coluna inferidos
.db · .sqlite · .sqlite3adotado inteiro: o banco vira o payload, com manual de consulta gerado e linhas de amostra
.png · .jpg · .gif · .webpum nó de mídia; com um modelo de visão vinculado, também uma descrição escrita que a busca encontra
.mp3 · .wav · .m4a · .ogg · .flacum nó de mídia carregando seu passaporte
qualquer outra coisalistado como não suportado no relatório, pelo nome, para você ver exatamente o que não entrou

Planilhas deixam de ser documentos

Uma planilha vira uma tabela que o agente consulta em SQL, com um `## Query manual` e linhas de amostra escritos no passaporte, para que o modelo saiba quais tabelas e colunas existem antes de perguntar. O que elas significam é a única coisa que uma máquina não infere, então uma pessoa escreve isso numa seção `## Notes` que viaja com o dataset para todo lugar onde ele é lido.

Medido, não afirmado

Sobre um despejo heterogêneo de 100 documentos com um curador de 12B: 100 nós plantados sob uma hierarquia espelhada de oito galhos, 100% dos resumos aprovados no contrato de cheiro de sessenta tokens, zero links quebrados, zero erros de lint e 1,71 s por documento de ponta a ponta. Construir uma floresta também não exige um modelo de fronteira.

O console Ingest: enviando arquivos para uma floresta como um job que dá para acompanhar
Solte arquivos, espelhe uma pasta inteira que o host consegue ler, ou escreva um documento ali mesmo. Nada é fatiado e esquecido: cada documento vira um nó com nome, resumo e arestas.

O Ranger mantém a floresta saudável

Manutenção é uma passagem que você agenda, não um daemon para vigiar. O calor evapora com meia-vida de trinta dias; atalhos descobertos por agentes são promovidos quando as duas pontas estão quentes, ou podados quando ficam geladas; fontes que sumiram são marcadas como obsoletas em vez de apagadas.

  • A confiança tem ciclo de vida: 1,0 estrutural ou humana e intocável, 0,8 promovida, 0,5 atalho descoberto por agente, 0,3 proposta do curador na ingestão.
  • Promoção e poda só acontecem abaixo de 1,0, e cada mudança é um commit auditado.
  • O Ranger nunca apaga nós.

O Troop: forrageadores em paralelo e um juiz

Para perguntas difíceis, de três a cinco macacos caçam em paralelo a partir de pontos de entrada distintos, compartilham calor de sessão pelo caminho, e um juiz sintetiza os candidatos. Uma política de paciência (continue caçando enquanto as colheitas ainda trazem nós novos, pare depois de algumas rodadas secas) substitui o conhecimento oracular sobre a largura da bifurcação.

O resultado honesto

O Troop é um amplificador de acurácia, não de velocidade. 11/11 contra 10/11 solo em perguntas de cadeia única e 8/8 contra 7/8 nas de bifurcação, com 2,3× os tokens e 3,3× o tempo de relógio. A hipótese de aceleração falhou de forma limpa, e o post-mortem está escrito no paper em vez de descartado.

A camada de gestão

Dez consoles sobre uma API

O Studio é onde as pessoas observam, governam e ensinam a floresta. Cada console chama as mesmas rotas `/v1` que qualquer cliente chamaria: não há caminho privilegiado, nem painel de superadministrador separado.

  • Overview: O que há nesta floresta e o que a sua chave pode fazer aqui.

    Overview

    O que há nesta floresta e o que a sua chave pode fazer aqui.

  • Ask: Respostas que chegam com os nós em que se apoiam.

    Ask

    Respostas que chegam com os nós em que se apoiam.

  • Explore: A árvore como um grafo vivo, percorrida nó a nó.

    Explore

    A árvore como um grafo vivo, percorrida nó a nó.

  • Data: SQL somente leitura sobre nós de dataset, com o manual de consulta ao lado.

    Data

    SQL somente leitura sobre nós de dataset, com o manual de consulta ao lado.

  • Ingest: Arquivos, pastas e clipes, como um job que dá para acompanhar.

    Ingest

    Arquivos, pastas e clipes, como um job que dá para acompanhar.

  • Access: Uma linha por pessoa: nível, escopo, acesso e tokens ativos.

    Access

    Uma linha por pessoa: nível, escopo, acesso e tokens ativos.

  • Models: Vínculos, orçamentos e o placar do armazém de respostas.

    Models

    Vínculos, orçamentos e o placar do armazém de respostas.

  • Health: O que a floresta vai precisar, antes de precisar.

    Health

    O que a floresta vai precisar, antes de precisar.

  • Skills: O arquivo de instruções que torna esta floresta a memória do seu agente.

    Skills

    O arquivo de instruções que torna esta floresta a memória do seu agente.

  • Integrations: Os trechos exatos deste deployment, com o endereço já preenchido.

    Integrations

    Os trechos exatos deste deployment, com o endereço já preenchido.

Integração

Ele fala MCP com o que você já roda

A superfície MCP é idêntica em contrato a um `vine serve` local: um agente que funciona contra uma floresta no seu próprio disco funciona contra uma floresta servida pela Station sem nenhuma mudança além do endpoint e de uma credencial. O escopo apenas estreita o conteúdo; nunca muda o formato da resposta.

SuperfícieA quem serveOnde
StudioPessoas: o console webhttps://station.example.com/
RESTApps, scripts e integraçõeshttps://station.example.com/v1/…
MCPQualquer harness de agente (HTTP streamável)https://station.example.com/mcp/
Terminal
vine serve --forest ./brain                    # servidor MCP por stdio
vine serve --forest ./brain --transport http   # ou sobre HTTP
  • O Claude Code e qualquer runtime compatível com MCP seguram as dez ferramentas da floresta diretamente: sem host, sem contas, no seu ecossistema.
  • O console Skills gera o arquivo de instruções deste deployment exato, para que o agente aprenda a usar a floresta como memória persistente.
  • Uma chave que você pareia para um agente só estreita o seu acesso, nunca amplia.

Uma lista de ferramentas, não uma segunda stack

Registrar uma floresta não pede que você aposente nada. Ela ocupa um lugar ao lado dos servidores que você já roda, e o agente roteia entre eles com a descrição de cada ferramenta à frente. O banco vetorial, a ferramenta de SQL, o grafo e a camada de fusão do desenho híbrido que as pessoas rascunham já são primitivas deste mesmo endpoint.

Ver o desenho híbrido, caixa por caixa

Arquitetura

Quatro camadas, uma direção de dependência

A Station é um cliente privilegiado do engine, não uma extensão: o engine não ganha nem perde nada com a existência dela. É por isso que a divisão de licenças na mesma linha é exigível.

CLIENTESSeus agentesClaude Code · qualquer harness MCPStudioo console webApps e scriptsREST /v1MCP /mcpHTTPSStationidentidade · política por floresta · auditoria · vínculos de modelo · armazém de respostasEngine (Apache-2.0)Vine: 10 primitivas · harvest · Gardener · Ranger · Catalog · CanopyFlorestanós de markdown + git embutido_derived/ (descartável)catálogo FTS5 · banco de feromônio · índice vetorialSuas fontes: arquivos · pastas · clipes do navegador
Diagrama: agentes, console e clientes de API encontram um único portão; o portão opera um engine intocado; o engine é dono da floresta, e a floresta é dona do próprio histórico git.

Rode antes de acreditar.

O repositório constrói uma floresta de teste e reproduz todas as tabelas do paper. Passada essa etapa, vendemos as partes que você não deveria ter que construir sozinho.