WUPHF - um sistema em estilo Karpathy em que agentes mantêm diretamente uma wiki para LLMs
(github.com/nex-crm)- Camada de wiki para agentes de IA baseada em Markdown & Git
- Camada de base de conhecimento nativa para LLMs, projetada para permitir que agentes de IA acumulem contexto além de uma sessão, armazenada localmente em
~/.wuphf/wiki/e que pode ser levada inteira comgit clone - Em vez de infraestruturas pesadas como Postgres, pgvector, Neo4j e Kafka, é composta apenas por markdown + git, e gerencia conhecimento com BM25 + SQLite sem usar banco vetorial
- Armazena em markdown, usa o bleve para busca BM25 e o SQLite para gerenciar metadados estruturados (
facts,entities,edges,redirects,supersedes) - Sem usar banco vetorial, alcançou recall@20 de 85% em um benchmark com 500 artefatos e 50 consultas
- Está previsto o uso de sqlite-vec caso certas classes de consulta caiam abaixo desse nível
- Armazena em markdown, usa o bleve para busca BM25 e o SQLite para gerenciar metadados estruturados (
- Cada agente possui um notebook pessoal no caminho
agents/{slug}/notebook/*.mde acessa a wiki compartilhada no caminhoteam/- Existe um fluxo para promover entradas do notebook para a wiki após revisão por um agente ou por uma pessoa, com backlinks gerados automaticamente
- Uma pequena máquina de estados gerencia expiração (
expiry) e arquivamento automático
- Log de fatos por entidade: registrado como JSONL append-only em
team/entities/{kind}-{slug}.facts.jsonl- Um worker de síntese reconstrói o resumo da entidade a cada N fatos, e os commits ficam registrados com uma identidade git separada chamada "Pam the Archivist", permitindo verificar a origem diretamente no
git log - O ID do fato é um ID determinístico que inclui o deslocamento da frase, e o slug canônico, depois de atribuído uma vez, é mesclado por meio de um stub de redirecionamento e nunca pode ser alterado
- O rebuild é logicamente igual, mas não garante identidade byte a byte
- Um worker de síntese reconstrói o resumo da entidade a cada N fatos, e os commits ficam registrados com uma identidade git separada chamada "Pam the Archivist", permitindo verificar a origem diretamente no
- Suporte a [[Wikilinks]], com links quebrados renderizados em vermelho, e um cron diário de lint detecta contradições, entradas desatualizadas e wikilinks quebrados
- Busca baseada em citações fornecida por meio do comando slash
/lookupe de ferramentas MCP- Um classificador heurístico direciona buscas curtas para BM25 e consultas descritivas para um loop de resposta com citações (
cited-answer)
- Um classificador heurístico direciona buscas curtas para BM25 e consultas descritivas para um loop de resposta com citações (
- Limitações conhecidas
- O ajuste de recall ainda está em andamento, e 85% não é um valor garantido para uso geral
- A qualidade da síntese depende da qualidade dos fatos registrados pelos agentes (
garbage in, garbage out); o lint ajuda, mas não é um mecanismo de julgamento - Atualmente cobre apenas um único office, sem suporte a federação entre offices
- É fornecido como parte do WUPHF (office de agentes de IA open source com suporte a Claude Code, Codex, OpenClaw e LLMs locais), mas a camada de wiki pode ser usada de forma independente — ao conectar o WUPHF a uma configuração de agentes existente, a wiki é anexada automaticamente
- Licença MIT
1 comentários
Comentários no Hacker News
Não entendo muito bem qual é a grande ideia por trás da automação de notas. No passado, jogar texto copiado e colado em notas nunca me ajudou em nada, então não sei se multiplicar isso por 100 vai mudar alguma coisa
Para mim, o essencial das notas é ler as fontes criticamente, absorver aquilo de acordo com meu modelo mental e então registrar isso
Os detalhes podem ser buscados depois; no fim, o importante é o processo de refinar esse modelo
Nesse caso, talvez o objetivo seja justamente não construir esse modelo mental por conta própria e delegar isso a um cérebro de LLM compartilhado
Ainda assim, tenho bastante dúvida se essa abordagem consegue criar algo realmente valioso para o dono do produto. Se dá para criar um produto valioso só com prompts e harnesses de agentes, então qualquer um pode recriar esse produto, o desenvolvimento de produto vira commodity e, no fim, talvez só os tokens retenham valor
Minha hipótese é que o do things that don’t scale, do Paul Graham, vai continuar valendo, mas o conteúdo dessas coisas que não escalam pode mudar bastante
Mesmo assim, recentemente comecei a usar Obsidian de verdade. Configurei skills para anotar, pesquisar, ligar links, dividir conteúdo e reorganizar a base de conhecimento, e parece que ganhei uma assistente digital que faz a arrumação por mim
Agora basta eu despejar pensamentos soltos e o agente organiza a estrutura, faz perguntas de acompanhamento e conecta isso a outros trabalhos. Ler as fontes e construir o modelo mental ainda é trabalho meu, mas estou conseguindo notas de alta qualidade quase de graça
É um desperdício gigantesco
A maior parte das coisas nem precisava entrar em notas para começo de conversa, e os LLMs amplificam demais o ruído sem praticamente nenhuma validação ou filtragem
Tinha um ensaio em vídeo do JA Westenberg que tratava bem desse tema
https://youtube.com/watch?v=3E00ZNdFbEk
Achei isso bem interessante
Na minha visão, o ponto ótimo é a curadoria humana e, principalmente, operação sem supervisão não funciona se você não gerenciar conscientemente dívida e drift
Ainda mais porque o nome é o mesmo daquele produto inútil e redundante Wuphf.com que apareceu em The Office
Parece que basta colocar AI no nome do produto para aparecerem bilhões de dólares, e colocar Karpathy num post de blog para ser contratado como principal engenheiro da Anthropic
Passa a impressão de que é só mais uma corrida para extrair dinheiro enquanto a moda durar, com pouca atenção ao que os clientes realmente precisam
Todo mundo está correndo para aproveitar a onda de qualquer jeito
Ainda assim, naquela época as pessoas de fato construíam coisas, e o ambiente de capital mais apertado segurava um pouco o superaquecimento
Desta vez, o boom de LLM ao menos tem alguma capacidade e valor reais, e também é uma tecnologia bem divertida de aprender e mexer
Faz tempo que eu aceitei que, quando o dinheiro se concentra em algo assim, faz sentido aproveitar a oportunidade ali, desde que não seja antiético. Enquanto houver abundância de capital de VC/PE, ainda dá para construir coisas legais e valiosas
Eu ainda estou esperando um harness de CLI de nível mundial que possa substituir o Claude Code. Preciso de algo que resolva problemas de memória e de arquitetura
Design web ainda é praticamente um pesadelo com LLM
Fizemos PoCs com empresas, e tudo isso acabou se condensando neste projeto paralelo que eu vinha construindo para ajudar no meu próprio trabalho. No fim, esta foi a interface realmente utilizável para a infra de contexto
Não tenho interesse em um cargo de principal engenheiro na Anthropic. Antes eu era Product Manager na HubSpot e ganhava muito melhor do que hoje, e é bem provável que eu não volte a esse nível pelos próximos anos
Apostei várias vezes e fui iterando porque a evolução veio de conversar diretamente com clientes. Enquanto isso, concorrentes antigos ainda estão em stealth construindo AI CRM
Como alguém que já está na área há bastante tempo, a onda em si não é o mais importante, mas acho que há sim valor concreto para ser extraído debaixo dela
Vi esta análise: https://zby.github.io/commonplace/agent-memory-systems/reviews/wuphf/
É o terceiro wiki com LLM a chegar à front page em menos de 24 horas, então claramente é um tema em alta
Também tenho interesse nessa área, então não sou totalmente imparcial, mas deixei anotado em outro lugar o que eu gostaria de ver nesses sistemas
https://zby.github.io/commonplace/notes/designing-agent-memory-systems/
Cada um reinventar o próprio sistema parece um desperdício grande demais, então seria ótimo se houvesse alguma forma de colaborar
Mas, pelo estilo, parece claramente que foram escritas por um LLM, então fiquei curioso se você costuma revisitar esse tipo de nota de design depois para reescrevê-la com suas próprias palavras e confirmar que ela realmente contém suas ideias
Nós começamos como uma empresa de context infra chamada nex.ai muito antes de o Karpathy falar em ideia de wiki com LLM, e embora isso ainda quase não apareça no WUPHF, agora estamos começando a mostrar aos poucos
Foi bom ver que muitas das preocupações levantadas no texto comparativo são coisas que já vínhamos tratando na infra de contexto que construímos
Mesmo assim, seria ótimo reduzir duplicação e colaborar mais, compartilhando o que cada um aprendeu
Você disse que gostaria que houvesse uma chance de colaborar, e isso me soou estranho, como se essa chance não existisse agora
Só colocar QMD em cima de um vault do Obsidian já leva uns 80% do caminho, e provavelmente em menos de 2 horas
Para contexto, aqui está também o link do post original do Karpathy
https://x.com/karpathy/status/2039805659525644595
https://xcancel.com/karpathy/status/2039805659525644595
Fico curioso se AI Notes vai agregar valor ou só criar mais ruído
Ainda assim, gostei bastante do estilo ASCII do site
Seria bom se alguém criasse algo como um renascimento do StackOverflow como solução para esse problema
Seria uma knowledge graph distribuída com curadoria humana, em que coletivos de LLMs tentam resolver problemas e, quando travam, postam uma pergunta do jeito antigo
Eu acharia perfeitamente aceitável meu agente dizer: "travei aqui, já postei uma pergunta no SO, vamos voltar depois quando alguém responder"
Fico pensando como impedir que um LLM escreva demais
Já construí algumas ferramentas e sistemas parecidos, e em todos eles o LLM ficava inflando a documentação sem parar até o sistema inteiro virar uma bagunça, ficando menos útil quanto maior ficava
Um experimento que fiz anos atrás era dar alguns links e deixar o LLM pesquisar os tópicos relacionados, montar seu próprio wiki de conhecimento e organizar em cada página resumos, links cruzados e fontes
Na aparência parecia bom, mas quando eu lia os dados de verdade não era grande coisa
Foi um experimento de anos atrás, então talvez hoje valha a pena testar de novo com algo como opus 4.7
Como ponto para reflexão, a comunidade do TiddlyWiki obviamente também vem explorando ferramentas de IA
O TiddlyWiki é um wiki baseado em um único arquivo HTML capaz de modificar a si mesmo, e existe há mais de 20 anos
Não necessariamente evoluiu para um ambiente agentic, mas tem plugin de markdown e ferramentas para tornar arquivos executáveis ou transformá-los em webapps self-serving. Git é meio complicado
Então, em teoria, um wiki agentic de arquivo único poderia circular por aí modificando a si próprio
https://tiddlywiki.com/
Essa configuração de arquivo único que você mencionou já tem vários conectores para LLM. Por exemplo, https://github.com/rimir-cc/tw-llm-connect
O apelo é exatamente esse ponto. Não há dependências, não precisa instalar nada e é muito fácil de armazenar, então uma configuração de wiki agentic de arquivo único se editando sozinha já é possível hoje mesmo
Algo mais próximo do padrão de LLM Wiki do Karpathy é o twillm, em que estou trabalhando
https://github.com/Jermolene/twillm
Ele usa a configuração Node.js do TiddlyWiki, salva tiddlers como arquivos individuais, aponta diretamente para vaults Markdown existentes e pode ser usado junto com ferramentas como Claude Code
As vantagens do TiddlyWiki também são bem claras. É open source, então dá para seguir usando no longo prazo, e como é web-based dá para acessar de qualquer lugar
Além disso, views computadas substituem arquivos de índice materializados. No modelo do Karpathy, o LLM precisa ficar sincronizando o index.md toda vez que adiciona notas, e esse tipo de coisa tende a ficar stale conforme as sessões mudam, algo em que LLMs são particularmente ruins
Já as views do TiddlyWiki são expressões de filtro em tempo real; por exemplo, algo como "ordenar tiddlers com a tag concept por rating" é calculado na hora da renderização
O Frontmatter também vira uma estrutura consultável. O Obsidian mostra YAML frontmatter como metadados em caixa no topo da nota, mas o TiddlyWiki promove esses campos a campos de tiddler de primeira classe, para uso direto em filtragem, ordenação e agregação
E o LLM pode escrever não só conteúdo, mas também pequenos applets. Em vez de apenas notas em Markdown, ele pode adicionar tiddlers em wikitext (
.tid) para criar views vivas e interativas como dashboards, exploradores de tags, índices de diário e glossáriosA área de artefatos que se constroem sozinhos é interessante e está crescendo bastante agora, especialmente porque os LLMs recentes, sobretudo os voltados para código, estão ficando muito melhores nisso
Eu mesmo experimentei recentemente um projeto focado em minimizar dependências e manter o agente sob controle local
https://github.com/GistNoesis/Shoggoth.db/
Ele cria e organiza seu próprio banco de dados sqlite para executar tarefas longas dadas por prompt, usando como dados-fonte uma cópia local da Wikipedia
Também inclui só o mínimo de harness e ferramentas para experimentar drift de agente
É bem fácil acoplar ferramentas de imagem também. Basta codificar a imagem em base64 e passar para o llama.cpp, e os detalhes de implementação podem ser meio que vibecoded com um LLM local
Acho que é uma ferramenta utilitária de propósito bem geral
Por exemplo, antes eu tinha um script que usava Amazon Textract para extrair valores, datas e vendedores de faturas e recibos numa pasta, e depois uma pessoa conferia os números para montar um CSV para o contador
Agora dá para trocar essa chamada de Amazon Textract por uma chamada de modelo no llama.cpp com um prompt adequado, mantendo a ferramenta de faturas existente e abrindo espaço para um tratamento contábil muito mais criativo
Também experimentei uma variação para mover um robô físico com base em uma sequência de imagens de câmera, e em casos simples ele realmente se mexia e chegava ao objetivo
Só que o LLM que eu uso nunca foi treinado para dirigir robôs, e levava 10 segundos para escolher a próxima ação, então não era prático. Os controladores clássicos que uso hoje, sem deep learning, rodam o loop visual a 20 Hz
Modelos de LLM e os agentes construídos em cima deles não são determinísticos, e sim probabilísticos
Eles conseguem fazer algo com certa taxa de acerto, mas não acertam sempre
Por isso, quanto mais tempo um agente fica levando uma tarefa adiante, maior a probabilidade acumulada de falha. Agentes de execução longa desse tipo acabam falhando e, no processo, queimam uma quantidade enorme de tokens
Uma das coisas que agentes de LLM fazem bem é reescrever as próprias instruções
O truque está em limitar o tempo e as etapas de raciocínio do modelo de thinking, depois avaliar, atualizar e rodar de novo
Fazendo uma analogia, agentes caem. Não deixe que corram por tempo demais até tropeçar; duas vezes por 5 minutos é melhor do que uma vez por 10 minutos
Daqui a algumas semanas, esses agentes autorreferenciais provavelmente já vão estar dominando o topo do feed do Twitter
Então é bem possível que esses wikis cheguem a um certo estado e simplesmente parem ali