Curso
Nanobot é um assistente pessoal de IA leve, uma alternativa ao OpenClaw. Ele é 98% menor que o OpenClaw e entrega as mesmas funcionalidades essenciais de agente. Assim como o OpenClaw, pode rodar na sua máquina, se conectar aos seus apps preferidos e, por ser pequeno, você consegue inspecionar o código com facilidade.
O Nanobot conecta seus modelos favoritos, abertos ou fechados, para executar um agente de codificação local. Quando você envia mensagens pelo Telegram, WhatsApp ou terminal, o agente responde executando comandos na sua máquina, como ler logs, rodar scripts e buscar arquivos.
Neste tutorial, vou mostrar como configurar o Nanobot do zero e como criar um agente de IA completo em poucos minutos. Também vou comentar algumas pegadinhas que você precisa conhecer ao usar essa tecnologia.
O que é o Nanobot?
Nanobot é uma alternativa ao OpenClaw que ganhou popularidade rapidamente, acumulando mais de 21.000 estrelas no GitHub até o momento desta publicação. Assim como o OpenClaw, ele oferece suporte a plataformas de mensagens como Discord, Slack e Telegram.
Assim como o agente OpenClaw, seu agente Nanobot também pode entrar na festa das redes sociais no Moltbook, como mostramos no nosso tutorial de primeiros passos no Moltbook.
Principais capacidades do Nanobot
Mesmo sendo pequeno, o Nanobot cobre três pontos essenciais que você espera de um agente poderoso:
- Memória com estado: o Nanobot constrói um grafo local do seu histórico. Isso significa que, se você está trabalhando hoje em um projeto de análise de dados em Python, ele vai lembrar disso mesmo daqui a uma semana.
- Independente de modelo: você não fica preso a um provedor específico. Pode usar modelos da OpenAI, Anthropic ou até modelos locais rodando no seu próprio hardware.
- UI instantânea: o Nanobot pode ser usado nos seus apps de mensagem preferidos, ou seja, você continua usando as interfaces às quais já está acostumado.

Pré-requisitos para rodar o Nanobot
Para acompanhar este tutorial, você vai precisar do básico:
- Python 3.11 ou superior instalado no seu computador (Mac, Windows ou Linux).
- Uma chave de API de um provedor como OpenRouter, OpenAI ou Anthropic, ou configurar um modelo local via Ollama.
- Uma conta no Telegram (vou usar o Telegram como interface porque é o mais fácil de configurar).
Tutorial passo a passo do Nanobot: criando um "agente de pesquisa"
Vamos criar um agente que vive no seu Telegram, consegue pesquisar na web e lembra dos seus interesses.

Passo 1: instalar o Nanobot
A forma mais limpa de instalar ferramentas Python hoje é usando pip ou uv, mantendo-as isoladas do Python do sistema. Se você não tiver esses, o pip padrão também funciona.
Abra o terminal e execute:
# run inside your env
pip install nanobot-ai
# OR if you prefer uv
uv tool install nanobot-ai
Depois de instalar, você verá uma mensagem como esta:
Successfully installed nanobot-0.4.1
Passo 2: pegue o token da interface
Para configurar a interface:
- Abra o Telegram e procure por @BotFather
- Digite
/newbote siga as instruções - Copie o token fornecido pelo BotFather
- Em seguida, obtenha seu user ID para garantir que o bot aceite comandos apenas de você. Procure por @userinfobot no Telegram, clique em Start e copie o user ID.
Passo 3: inicializar
Execute nanobot onboard para inicializar seu bot. Você deve ver uma mensagem semelhante a esta:
✓ Created config at /Users/derrickmwiti/.nanobot/config.json
✓ Created workspace at /Users/derrickmwiti/.nanobot/workspace
Created AGENTS.md
Created SOUL.md
Created USER.md
Created memory/MEMORY.md
Created memory/HISTORY.md
🐈 nanobot is ready!
Next steps:
1. Add your API key to ~/.nanobot/config.json
Get one at: https://openrouter.ai/keys
2. Chat: nanobot agent -m "Hello!"
Want Telegram/WhatsApp? See: https://github.com/HKUDS/nanobot#-chat-apps
Passo 4: configuração
Execute o comando abaixo e adicione a chave de API do provedor de modelo que você deseja usar na seção providers:
nano ~/.nanobot/config.json
Edite o arquivo para incluir a chave de API do provedor escolhido:
{
"workspace": "./workspace",
"providers": {
// Option 1: OpenAI
"openai": {
"apiKey": "sk-YOUR-OPENAI-KEY-HERE",
"model": "gpt-4o"
},
// Option 2: Anthropic (Claude)
"anthropic": {
"apiKey": "sk-ant-YOUR-CLAUDE-KEY-HERE",
"model": "claude-3-5-sonnet-20240620"
},
// Option 3: Google Gemini
"google": {
"apiKey": "AIza-YOUR-GOOGLE-KEY-HERE",
"model": "gemini-1.5-pro"
},
// Option 4: OpenRouter (Best for flexibility)
"openrouter": {
"apiKey": "sk-or-YOUR-OPENROUTER-KEY-HERE",
"model": "nousresearch/hermes-3-llama-3.1-405b"
},
// Option 5: Local (Ollama or vLLM)
"local": {
"apiBase": "http://localhost:11434/v1",
"apiKey": "ollama",
"model": "llama3"
}
},
"channels": {
"telegram": {
"enabled": true,
"token": "YOUR_TELEGRAM_BOT_TOKEN",
"allowFrom": ["YOUR_NUMERIC_USER_ID"]
}
}
}
Edite a seção do Telegram e adicione o token e o user ID que você obteve. Isso garante que só você poderá enviar instruções ao seu agente.
"telegram": {
"enabled": true,
"token": "",
"allowFrom": [""],
"proxy": null
}
Ajuste a seção agents para refletir o provedor escolhido:
"agents": {
"defaults": {
"workspace": "~/.nanobot/workspace",
"model": "openai/gpt-5",
"maxTokens": 8192,
"temperature": 0.7,
"maxToolIterations": 20,
"memoryWindow": 50
}
}
Teste seu agente no terminal:
nanobot agent -m "Hello"
🐈 nanobot
Hi there! How can I help you today?
Passo 5: configurar o gateway
Para finalizar a integração com o Telegram, execute o comando abaixo no terminal:
nanobot gateway
Agora você deve ver que o Telegram foi habilitado, como nas mensagens abaixo:
🐈 Starting nanobot gateway on port 18790...
2026-02-13 09:59:35.405 | INFO | nanobot.channels.manager:_init_channels:46 - Telegram channel enabled
✓ Channels enabled: telegram
✓ Heartbeat: every 30m
2026-02-13 09:59:35.406 | INFO | nanobot.cron.service:start:154 - Cron service started with 0 jobs
2026-02-13 09:59:35.406 | INFO | nanobot.heartbeat.service:start:81 - Heartbeat started (every 1800s)
2026-02-13 09:59:35.406 | INFO | nanobot.agent.loop:run:116 - Agent loop started
2026-02-13 09:59:35.406 | INFO | nanobot.channels.manager:start_all:159 - Starting telegram channel...
2026-02-13 09:59:35.406 | INFO | nanobot.channels.manager:_dispatch_outbound:187 - Outbound dispatcher started
2026-02-13 09:59:35.411 | INFO | nanobot.channels.telegram:start:140 - Starting Telegram bot (polling mode)...
2026-02-13 09:59:39.245 | INFO | nanobot.channels.telegram:start:148 - Telegram bot @mwitibananabot connected
2026-02-13 09:59:39.417 | DEBUG | nanobot.channels.telegram:start:152 - Telegram bot commands registered
Vá para o Telegram e teste:

Você pode aprender a usar o Claude Code, da Anthropic, para melhorar fluxos de trabalho de desenvolvimento de software com um exemplo prático usando a biblioteca Supabase Python no nosso tutorial do Claude Code.
Elevando o Nanobot: o agente "multi-ferramentas"
Agora que a configuração terminou, é hora de deixar seu agente mais funcional. A maioria dos modelos tem informação limitada até a data de corte do treinamento. Podemos torná-lo mais útil conectando-o à internet.
O Nanobot é compatível com o Model Context Protocol (MCP), adicionando capacidades ao seu agente, como busca na web ou consultas a banco de dados. Vamos adicionar o Brave Search Server para permitir que o agente acesse a internet:
- Obtenha uma chave de API da Brave
- Atualize a configuração com a chave
"tools": {
"web": {
"search": {
"apiKey": "",
"maxResults": 5
}
},
"exec": {
"timeout": 60
},
"restrictToWorkspace": false
}
Reinicie seu gateway.
Agora, no Telegram, pergunte algo como “Qual é o preço atual da ação da Apple?”. No terminal, você verá que ele está realmente pesquisando na web:
2026-02-13 10:14:48.753 | INFO | nanobot.agent.loop:_process_message:164 - Processing message from telegram:7045522516: What is the current price of the Apple Stock
2026-02-13 10:14:59.726 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_search({"query": "AAPL stock price Yahoo Finance", "count": 5})
2026-02-13 10:15:22.066 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://finance.yahoo.com/quote/AAPL/", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:15:26.886 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://www.google.com/finance/quote/AAPL:NASDAQ", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:15:51.361 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://query1.finance.yahoo.com/v7/finance/quote?symbols=AAPL", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:15:52.018 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://query2.finance.yahoo.com/v10/finance/quoteSummary/AAPL?modules=price", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:16:07.071 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://www.marketwatch.com/investing/stock/aapl", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:16:07.406 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://finviz.com/quote.ashx?t=AAPL", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:16:35.897 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://financialmodelingprep.com/api/v3/quote/AAPL?apikey=demo", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:16:36.919 | INFO | nanobot.agent.loop:_process_message:246 - Tool call: web_fetch({"url": "https://stooq.com/q/l/?s=aapl.us&i=5", "extractMode": "text", "maxChars": 20000})
2026-02-13 10:17:14.870 | INFO | nanobot.agent.loop:_process_message:266 - Response to telegram:7045522516: Reflection:
- JS-heavy sites (Yahoo/Google) hid the live quote; Yahoo's JSON APIs blocked (401).
- Finviz returned a pr...

Local e privado: rodando o Nanobot offline
Assim como o OpenClaw, um dos maiores diferenciais do Nanobot é a privacidade. Você pode usá-lo sem enviar nenhum dado para a nuvem. Como o Nanobot é compatível com vllm e endpoints no padrão OpenAI, você pode apontá-lo para um executor de modelos local como o Ollama.
- Instale o Ollama e execute
ollama - Atualize a seção providers do seu config.json (veja o exemplo "local" no Passo 4 acima).
Confira nosso tutorial de OpenClaw com Ollama para aprender a criar um analista de dados de IA 100% local com OpenClaw e Ollama que orquestra fluxos de trabalho em várias etapas, analisa datasets e gera relatórios visuais sem enviar seus dados para a nuvem.
Erros comuns do Nanobot e como resolver
Mesmo com uma ferramenta simples como o Nanobot, algumas coisas podem dar errado. Veja alguns problemas comuns e como solucioná-los.
Erros de "connection refused"
Se você tentar rodar o Nanobot em um servidor e acessar modelos locais, vai receber um erro de conexão recusada. Isso acontece porque o servidor online não consegue acessar seu computador local.
Para contornar, garanta que os modelos open source também estejam rodando no mesmo servidor, ou use algo como o ngrok para fazer a ponte da conexão.
Limites de janela de contexto
Modelos locais geralmente têm limites de memória menores (janelas de contexto). Mesmo os modelos na nuvem têm um limite de contexto. Como o Nanobot armazena sua memória em arquivos simples, a melhor forma de "resetar" o cérebro dele é apagar manualmente os arquivos de memória dentro da pasta ./workspace.
Como alternativa, mude para um modelo com janela de contexto maior, como o gemini-1.5-pro ou o Claude Opus 4.6.
Conclusão
O Nanobot prova que software poderoso não precisa ser pesado. Ele oferece as mesmas funcionalidades centrais do OpenClaw sendo muito menor. Porém, em termos de segurança, os riscos continuam — por isso, recomendo configurá-lo em um ambiente sandbox para evitar problemas catastróficos, como apagar todo o seu HD.
Para aprender mais sobre como trabalhar com ferramentas de IA, recomendo conferir nosso guia das melhores ferramentas de IA gratuitas. Para desenvolver competências amplas de codificação com IA, experimente nosso curso AI-Assisted Coding for Developers e aprenda a tornar os assistentes de IA parceiros mais confiáveis no seu fluxo de desenvolvimento.
Você também pode descobrir como criar aplicações com IA usando LLMs, prompts, chains e agents no LangChain no nosso curso Developing LLM Applications with LangChain .
Perguntas frequentes sobre o Nanobot
How is Nanobot different from OpenClaw?
A funcionalidade central é a mesma. O Nanobot é uma alternativa menor, o que facilita para você ler e atualizar o código.
My Nanobot agent is online but ignoring my messages. Why?
Quase sempre é a configuração allowFrom. Se você adicionou qualquer valor a essa lista (mesmo um placeholder), o Nanobot ativa o "Whitelist Mode" e vai ignorar estritamente qualquer user ID que não esteja nessa lista.
Does Nanobot have a web UI?
Não. O Nanobot usa as UIs dos seus apps de mensagem favoritos ou o terminal.



