Como (quase) criei um agente para aprender computação quântica.
Suponho que a esta altura, todos já ouviram falar pelo menos um pouco sobre agentes e Openclaw.
Essas palavras surgiram de repente e se tornaram as palavras da década.
Como um cara da área de tecnologia, estou adorando todas as possibilidades que elas oferecem e, com certeza, são ótimas ferramentas.
Apesar disso, eu nunca tinha criado meus próprios agentes, embora sempre tivesse desejado.
No entanto, alguns dias atrás, decidi mudar isso e implantar meus próprios agentes localmente. Eu não tinha nada muito sofisticado em mente, a única coisa que eu queria era configurar uma ferramenta semelhante ao Openclaw para me enviar algoritmos quânticos aleatórios todos os dias no meu servidor do Discord, nada mais do que isso.
Buscando o modelo
Para começar meu projeto, comecei a procurar modelos. Como sou um estudante de mestrado desempregado, não tenho dinheiro para gastar em um Mac mini, VPS ou modelos de última geração. Então, eu estava limitado à minha antiga GeForce GTX 1060 de 6 GB. Depois de pesquisar um pouco no Hugging Face, encontrei um modelo perfeito para mim: um modelo Granite Tiny otimizado para o Qiskit.
Baixei e executei localmente, e funcionou perfeitamente na minha configuração com o llama.cpp. Testei alguns prompts e tudo funcionou.
Configurei os containers, o LibreChat, o MongoDB e pronto! Tinha um modelo Qiskit para usar!
Configurando o Zeroclaw
Depois disso, fiquei pensando em como configuraria meus agentes.
A primeira opção seria usar o próprio Openclaw, mas ele era muito pesado para o meu computador. Após uma boa pesquisa, encontrei algumas informações sobre agentes em geral e plataformas locais para implantá-los.
Encontrei várias opções, como:
- picoclaw
- nanobot
- zeroclaw
- nullclaw
A princípio, tentei usar o nullclaw, mas me pareceu muito experimental e difícil de configurar, então optei pelo zeroclaw.
A primeira coisa que notei depois de configurar tudo foi que a imagem Docker fornecida não estava funcionando corretamente, sabe-se lá porquê! Então, descobri como instalá-la de forma eficiente em um contêiner personalizado e fiz a configuração.
No início, foi difícil fazer o painel de controle web funcionar, mas algumas depurações e análises de código do repositório deles me ajudaram a resolver o problema.
Ok, agora tínhamos nossa infraestrutura. A peça que faltava era configurar o agente. E essa é a pior parte!
O agente
O projeto ZeroClaw pretende ser uma versão leve do OpenClaw, construída em Rust, o que é verdade. Mas há um grande problema com ele: A DOCUMENTAÇÃO!
Eu queria configurar vários provedores, criar tools, novas skills, etc. Mas não havia nada me dizendo como fazer isso como usuário. A ferramenta que mais me ajudou nesse caso específico foi o Gemini. Ok, na maior parte do tempo ele não me guiava para lugar nenhum, mas cada passo que funcionou foi graças ao Gemini que me disse o que fazer.
Configurei tudo o que faltava e testei. Funcionava às vezes, mas o modelo não seguia tudo o que eu dizia. Eu atualizei a temperatura algumas vezes, mas nada funcionava 100%.
Nesse ponto, desisti de usar o Granite e testei alguns modelos diferentes localmente.
Bem, nenhum deles funcionou como esperado. Então me lembrei que o OpenRouter tinha um plano gratuito com alguns bons modelos que você podia usar uma certa quantidade por dia, e isso me pareceu ótimo!
Escolhi o Nemotron, sem nenhum motivo específico, e funcionou. Ele tinha um entendimento melhor do que aqueles modelos minúsculos que eu estava usando, e um melhor entendimento das ferramentas, o que era perfeito para mim.
No entanto, o principal problema agora era o uso de tokens, e como ele devora tokens. Depois de 3 iterações, tinha mais de 100 chamadas ao openrouter e mais de 1M de tokens consumidas.
Naquele momento, eu estava cansado e decidi terminar o projeto como estava.
Conclusão
A implementação em si ficou simples, mas foi divertido de fazer.
Todo o código pode ser visto em https://github.com/Dpbm/qiskit-personal-assistant.
Apesar de o projeto não ter funcionado como esperado, devido à falta de documentação, achei-o uma ferramenta muito interessante. Durante a depuração, testei diferentes comandos e tudo funcionou muito bem. Não sei bem o que dizer, mas certamente vou explorar isso mais tarde, desta vez com outras opções como OpenClaw e Picoclaw.