Skip to the content.

fak — instalação e primeiros passos

Esta é uma página de entrada localizada (entry point), não uma tradução completa da documentação. A documentação completa está em inglês — esta página dá a você o caminho de instalação e o mapa de tiers, e depois o encaminha para a documentação em inglês. Aviso: esta tradução foi gerada por máquina e ainda aguarda revisão de falante nativo — se encontrar um erro, abra uma issue/PR.

Outros idiomas e o índice de traduções estão no i18n hub.

Esta é a porta de entrada de instalar e executar; o pitch denso está no README. fak é uma única binária Go, estática, sem dependências externas: a mesma binária é o gateway, o motor de KV-cache e roteamento, e — no mesmo caminho de chamada — o portão de política, a quarentena de resultados e o log de auditoria. Você não reescreve seu agente: aponta uma base URL para fak serve, ou envolve um agente existente com um único comando, fak guard -- claude.

Por que importa no Brasil e em Portugal

0. Pré-requisitos

1. Mapa de tiers

Há quatro coisas que você pode fazer, em ordem crescente de custo de setup — e nada novo é instalado entre elas:

Tier O que você obtém Setup
0 — Experimentar o kernel Rodar/medir o limite de adjudicação, offline go build
1 — Colocar fak à frente de um modelo real O kernel à frente de um modelo que você serve em outro lugar (Ollama / vLLM / llama.cpp / cloud) + um servidor compatível com OpenAI
1b — Modelo local em um comando Um modelo GGUF local, in-kernel, com seu agente atual — sem key, sem rede, sem segundo terminal fak guard --gguf qwen2.5:7b -- claude
2 — O modelo fundido no kernel O forward pass em Go puro que o próprio kernel executa + export das weights reais

Se você só quer servir um modelo útil com fak à frente, o alvo é o Tier 1. O modelo in-kernel do Tier 2 é um forward pass de referência, comprovado bit a bit contra o HuggingFace — não um motor de serviço com qualidade de chat.

2. Instalar a binária

Com Go, o module path é a raiz do repositório, então instala direto:

go install github.com/anthony-chaudhary/fak/cmd/fak@latest   # -> $(go env GOBIN) / $GOPATH/bin

A partir do clone (contribuidor):

git clone https://github.com/anthony-chaudhary/fak.git
cd fak
go build -o fak ./cmd/fak          # -> ./fak   (Windows: build com -o fak.exe)
./fak help

3. Prova em 60 segundos (sem key, sem modelo, sem GPU)

go build -o fak ./cmd/fak
./fak preflight --policy examples/customer-support-readonly-policy.json --tool refund_payment --args "{}"   # -> DENY (POLICY_BLOCK)
./fak preflight --policy examples/customer-support-readonly-policy.json --tool search_kb     --args "{}"   # -> ALLOW
./fak agent --offline                                                                                       # injection blocked, task still completes

O capability floor é default-deny, verificado dentro do kernel no mesmo caminho de chamada (fail-closed): uma ação que nunca está na allow-list não roda, não importa o que convenceram o modelo a fazer. Resultados suspeitos de ferramentas ficam em quarentena, fora do contexto do modelo — por estrutura, não por um detector. Em testes ao vivo, a prompt injection atingiu a baseline desprotegida 5/5; fak a bloqueou 5/5.

4. Com o seu modelo

fak governa e faz cache do seu modelo; não o substitui. Qwen2/Qwen3 e GLM-MoE são comprovadamente bit-exact no motor de referência in-kernel. Todo o resto (DeepSeek, Mistral, qualquer modelo de open-weights) conecta pela wire compatível com OpenAI: Ollama / vLLM / SGLang / llama.cpp / LM Studio ou qualquer API compatível com OpenAI.

Sobre o prompt-cache do provider: fak mantém o prefixo em cache byte a byte idêntico enquanto descarta os turnos antigos do meio, de modo que o desconto do provider sobrevive. fak garante a identidade byte a byte do prefixo; se o provider reutiliza o cache é decisão do provider, que fak repassa em vez de afirmar.

Para onde ir em seguida

License: Apache-2.0.