AGENTES DE SEO — LABORATÓRIO LOCAL
Python 3.10+, somente biblioteca padrão.

Artigo: /blog/posts/agentes-ia-seo-producao/
Dados sintéticos em example.com. demo_model.py é um simulador, não um LLM.
O executor modifica apenas documentos em SQLite, nunca um site remoto.

1. Execute em uma pasta de trabalho:
python3 -B seo_agent.py --db seo-lab.db init
python3 -B seo_agent.py --db seo-lab.db run --run-id exemplo-001 --model-command python3 -B demo_model.py

2. Copie o proposal_id retornado e use-o em cada comando:
python3 -B seo_agent.py --db seo-lab.db review ID
python3 -B seo_agent.py --db seo-lab.db approve ID --reviewer editor-local
python3 -B seo_agent.py --db seo-lab.db apply ID
python3 -B seo_agent.py --db seo-lab.db render https://example.com/guia/ > depois.html
python3 -B seo_agent.py --db seo-lab.db rollback ID

3. Testes (não exigem credenciais):
python3 -B -m unittest discover -s . -p 'test_seo_agent.py' -v

O snapshot vence após 24h. Para reiniciar a experiência com dados novos,
use outro nome de banco; init não apaga dados existentes.
--model-command deve ser o último parâmetro: todos os argumentos seguintes
pertencem ao adaptador configurado pelo operador.

LIMITES
Um worker por investigação. A aprovação registra um nome, sem autenticação.
SQLite simula CMS e ledger na mesma transação; CMS remoto exige outro contrato.
O adaptador é executável confiável, não sandbox. Timeout: 30s por chamada;
8 decisões persistidas por investigação. Não há medição de tokens ou SEO real.
Não há coletor Search Console, cliente HTTP ou publicação em produção.
