Como a IA do PocketCode Funciona nos Bastidores
Um olhar técnico sobre como projetamos o assistente de IA do PocketCode: autocompletar inteligente, chat contextual e dezenas de ferramentas integradas aos módulos do app.
Como a IA do PocketCode Funciona nos Bastidores
A inteligência artificial do PocketCode não é um chatbot genérico colado a um editor. É um sistema integrado que entende seu projeto, seu código e os módulos que você está usando. Neste post, vamos contar como construímos isso.
Arquitetura Geral
O sistema de IA tem três camadas principais:
1. Autocompletar Inteligente (LSP)
O autocompletar funciona por meio do Language Server Protocol (LSP). Quando você digita código, o editor envia o contexto (arquivo atual, posição do cursor, arquivos abertos) para o modelo de IA, que retorna sugestões de conclusão.
O que torna nosso autocompletar diferente:
- Contexto completo do projeto: ele não vê apenas o arquivo atual, mas a estrutura do projeto, os imports e as dependências
- Modelos otimizados: usamos temperatura 0.0 e topK=1 para máxima precisão nas sugestões
- Cache inteligente: separamos o cache por modelo (chat vs. conclusão) para evitar contaminação de contexto
- Fill-in-the-Middle (FIM): o modelo recebe o código antes E depois do cursor para sugestões mais precisas
2. Chat Contextual
O chat de IA não é um simples prompt-resposta. Quando você faz uma pergunta:
- O arquivo atualmente aberto é analisado
- O código selecionado é extraído (se houver uma seleção)
- A estrutura do projeto é incluída
- Tudo é enviado como contexto para o modelo
Isso significa que você pode perguntar "o que essa função faz?" sem ter que copiar e colar código.
3. Ferramentas de Módulos (Tool Calling)
Esta é a parte mais poderosa. A IA pode invocar dezenas de ferramentas para interagir diretamente com os módulos do app. Uma amostra representativa:
| Ferramenta | O que faz |
|---|---|
create_file | Cria arquivos no seu projeto |
run_in_terminal | Executa comandos no terminal integrado |
db_query | Executa consultas no banco de dados |
design_list | Lista e lê projetos do designer visual |
git_status | Verifica o status do Git |
read_file | Lê arquivos do projeto |
semantic_search | Pesquisa a base de código por significado |
grep_search | Pesquisa a base de código por padrão |
Quando você diz à IA "crie um ViewModel para a lista de usuários", ela não apenas gera código — cria o arquivo, coloca-o na pasta correta e atualiza os imports necessários.
Segurança
Toda execução passa por validações rigorosas:
- Injeção de comandos: os comandos do terminal são sanitizados contra injeção
- Sandboxing: os comandos só podem rodar dentro do diretório do projeto
- Timeouts: toda operação tem um limite de tempo para evitar processos zumbis
- Null safety: todas as ferramentas validam valores nulos antes de executar
Modelos Suportados
O PocketCode funciona com múltiplos provedores de IA sob um modelo BYOK (traga sua própria chave) ou login OAuth por meio das CLIs oficiais. O Pocket Code não é um provedor de IA: cada requisição vai diretamente do dispositivo para o provedor que você escolher, e o uso é cobrado pelo provedor conforme a política dele.
- Gemini (Google) — chave de API (BYOK). Modelo padrão, excelente para Kotlin/Android
- OpenAI / Codex (GPT-4, série o) — chave de API ou OAuth via a Codex CLI
- Anthropic Claude (Sonnet, Opus, Haiku) — chave de API ou OAuth via a Claude Code CLI
- GitHub Copilot — login com sua conta do GitHub (13 modelos de múltiplos fornecedores)
- Custom (compatível com OpenAI) — qualquer endpoint
/v1: OpenRouter, um Ollama local ou seu próprio servidor - Modelos locais, offline via Ollama — grátis, sem necessidade de chave de API
Todos os provedores são grátis. O PocketCode nunca cobra pelo acesso aos modelos; o plano pago é para suas próprias ferramentas (Swarmcode, sincronização na nuvem).
Os usuários conectam sua conta ou chave de API em Configurações > Chaves de API.
O Que Está por Vir
Estamos trabalhando em:
- RAG (Geração Aumentada por Recuperação): para que a IA pesquise a documentação de Android e Kotlin antes de responder
- Edição de múltiplos arquivos: editar vários arquivos em uma única operação
- Templates de prompt: modelos de prompt reutilizáveis para tarefas comuns
Conclusão
A IA do PocketCode não é um componente aparafusado por cima — é parte integral da experiência de desenvolvimento. Cada módulo do app (terminal, banco de dados, designer, Git) está conectado, e a IA pode orquestrar todos eles. Se quiser começar, confira o guia de primeiros passos.
Você pode ver o status completo do desenvolvimento em nosso post de status.
Assistente de IA
Respostas rápidas sobre isso
Pronto para experimentar o PocketCode?
Baixe o app e comece a programar pelo seu celular.