Agentic OS
Trate o Claude Code como um sistema operacional / runtime persistente, em vez de uma sessão de chat. Esta skill codifica a arquitetura usada por configurações agênticas de produção: um kernel que roteia tarefas para agentes especialistas, memória persistente baseada em arquivos, automação programada e uma camada de dados em JSON/markdown.
Quando Ativar
- Construindo um workflow multi-agente dentro do Claude Code
- Configurando automação persistente do Claude Code que sobrevive a reinícios de sessão
- Criando um "SO pessoal" ou "SO agêntico" para tarefas recorrentes
- Usuário diz "agentic OS", "personal OS", "multi-agent", "agent coordinator", "persistent agent"
- Estruturando projetos de longa duração onde o contexto deve sobreviver entre sessões
Visão Geral da Arquitetura
O Agentic OS possui quatro camadas. Cada camada é um diretório na raiz do seu projeto.
project-root/
├── CLAUDE.md # Kernel: identidade, regras de roteamento, registro de agentes
├── agents/ # Definições de agentes especialistas (prompts em markdown)
├── .claude/commands/ # Comandos de barra: CLI voltada ao usuário
├── scripts/ # Scripts daemon: tarefas programadas ou orientadas a eventos
└── data/ # Estado: sistema de arquivos JSON/markdown, sem BD externo
Responsabilidades das Camadas
| Camada | Propósito | Persistência |
|---|---|---|
Kernel (CLAUDE.md) | Identidade, roteamento, políticas de modelo, registro de agentes | Rastreado pelo Git |
Agentes (agents/) | Identidades especialistas com ferramentas e memória escopadas | Rastreado pelo Git |
Comandos (.claude/commands/) | Comandos de barra voltados ao usuário (/daily-sync, /outreach) | Rastreado pelo Git |
Scripts (scripts/) | Daemons Python/JS acionados por cron ou webhooks | Rastreado pelo Git |
Estado (data/) | Logs apenas de adição, estado do projeto, registros de decisões | Ignorado ou rastreado pelo Git |
O Kernel
CLAUDE.md é o kernel. Ele atua como COO / orquestrador. O Claude o lê no início da sessão e o usa para rotear o trabalho.
Estrutura do Kernel
# CLAUDE.md - Kernel do Agentic OS
## Identidade
Você é o COO do [nome-do-projeto]. Você roteia tarefas para agentes especialistas.
Você nunca escreve código diretamente. Você delega para o agente certo e sintetiza os resultados.
## Registro de Agentes
| Agente | Função | Gatilho |
|---|---|---|
| @dev | Código, arquitetura, depuração | Usuário diz "construir", "corrigir", "refatorar" |
| @writer | Documentação, conteúdo, e-mails | Usuário diz "escrever", "rascunho", "blog" |
| @researcher | Pesquisa, análise, verificação de fatos | Usuário diz "pesquisar", "analisar", "comparar" |
| @ops | DevOps, implantação, infraestrutura | Usuário diz "implantar", "CI", "servidor" |
## Regras de Roteamento
1. Analise a solicitação do usuário em busca de palavras-chave de intenção
2. Corresponda à coluna de gatilho do Registro de Agentes
3. Carregue o arquivo do agente correspondente de `agents/<nome>.md`
4. Transfira a execução com contexto completo
5. Sintetize e apresente o resultado de volta ao usuário
## Políticas de Modelo
- Modelo padrão: use o padrão do repositório ou da plataforma.
- Tarefas @dev: prefira um modelo de raciocínio mais alto para arquitetura complexa.
- Tarefas @researcher: use o modelo configurado para pesquisa e as ferramentas de busca aprovadas.
- Teto de custo: avise antes de exceder o limite de gastos configurado do projeto.
Princípio Chave
O kernel deve ser pequeno e declarativo. A lógica de roteamento vive em tabelas markdown simples, não em código. Isso torna o sistema inspecionável e editável sem depuração.
Agentes Especialistas
Cada agente é um arquivo markdown independente em agents/. O Claude carrega o arquivo do agente relevante ao rotear uma tarefa.
Formato de Definição do Agente
# @dev - Engenheiro de Software
## Identidade
Você é um engenheiro de software sênior. Você escreve código limpo, testado e de nível de produção.
Você prefere soluções simples. Você faz perguntas esclarecedoras quando os requisitos são ambíguos.
## Escopo de Memória
- Leia `data/projects/<projeto-atual>.md` para contexto
- Leia `data/decisions/` para decisões arquiteturais
- Acrescente logs de execução a `data/logs/<data>[email protected]`
## Acesso a Ferramentas
- Acesso completo ao sistema de arquivos dentro da raiz do projeto
- Operações Git (status, diff, commit, branch)
- Acesso ao executor de testes
- Servidores MCP conforme configurados em `.claude/mcp.json`
## Restrições
- Sempre escreva testes para novos recursos
- Nunca faça commit diretamente em `main`; use branches de recurso
- Prefira editar arquivos existentes a criar novos
- Mantenha funções com menos de 50 linhas quando possível
Padrão de Colaboração Multi-Agente
Quando uma tarefa abrange vários agentes, o kernel os executa sequencialmente ou em paralelo:
Usuário: "Construa uma landing page e escreva o post de lançamento do blog"
Roteamento do kernel:
1. @dev - "Construa uma landing page com [requisitos]"
2. @writer - "Escreva um post de lançamento do blog para [produto] usando o texto da landing page"
3. Kernel sintetiza ambas as saídas em uma resposta unificada
Para execução paralela, use a capacidade de tarefa em segundo plano do Claude Code ou scripts shell que invocam o Claude Code com contextos de agente específicos.
Comandos e Fluxos de Trabalho Diários
Comandos de barra são arquivos markdown em .claude/commands/. Eles definem fluxos de trabalho reutilizáveis.
Estrutura do Comando
# /daily-sync
Execute o briefing matinal:
1. Leia `data/logs/last-sync.md` para contexto
2. Verifique o status do projeto: `git status`, PRs pendentes, saúde do CI
3. Revise `data/inbox/` para novas tarefas ou decisões necessárias
4. Gere um resumo de bloqueadores, prioridades e próximas ações
5. Acrescente o briefing a `data/logs/daily/<data>.md`
Conjunto Padrão de Comandos
| Comando | Propósito |
|---|---|
/daily-sync | Briefing matinal: status, bloqueadores, prioridades |
/outreach | Executar fluxo de divulgação (e-mail, LinkedIn, etc.) |
/research <tópico> | Pesquisa aprofundada com rastreamento de citações |
/apply-jobs | Adaptar currículo + carta de apresentação para uma vaga alvo |
/analytics | Extrair métricas do Stripe, GitHub ou fontes personalizadas |
/interview-prep | Gerar flashcards ou perguntas simuladas de entrevista |
/decision <tópico> | Registrar uma decisão com prós/contras e caminho escolhido |
Ativando Comandos
Coloque os arquivos de comando em .claude/commands/<nome-do-comando>.md. O Claude Code os descobre automaticamente. Os usuários os invocam com /<nome-do-comando>.
Memória Persistente
A memória é baseada em arquivos. Sem BD vetorial, sem Redis, sem PostgreSQL. Arquivos JSON e markdown em data/ são o banco de dados.
Estrutura do Diretório de Memória
data/
├── daily-logs/ # Logs diários de atividade apenas de adição
├── projects/ # Arquivos de contexto por projeto
├── decisions/ # Decisões arquiteturais e de negócios (formato ADR)
├── inbox/ # Novas tarefas ou ideias aguardando triagem
├── contacts/ # Pessoas, empresas, notas de relacionamento
└── templates/ # Prompts e formatos reutilizáveis
Formato de Log Diário
# 2026-04-22 - Log Diário
## Sessões
- 09:00 - Sessão 1: Refatoração do módulo de autenticação (@dev)
- 11:30 - Sessão 2: Rascunho da atualização para investidores (@writer)
## Decisões
- Mudou de JWT para cookies de sessão (veja `data/decisions/2026-04-22-auth.md`)
## Bloqueadores
- Aguardando chave de API do fornecedor (acompanhar em 2026-04-24)
## Próximas Ações
- [ ] Mesclar PR de refatoração de autenticação
- [ ] Enviar atualização para investidores para revisão
Padrão de Autorreflexão
Ao final de cada sessão, o kernel acrescenta uma reflexão:
## Reflexão - Sessão 3
- O que funcionou: Execução paralela de agentes economizou 20 minutos
- O que não funcionou: @researcher encontrou uma fonte atrás de paywall, precisa de melhor classificação de fontes
- O que mudar: Adicionar campo `fonte-camada` às notas de pesquisa (credibilidade A/B/C)
Isso cria um ciclo de feedback que melhora o sistema ao longo do tempo sem alterações de código.
Automação Programada
As tarefas do Agentic OS são executadas em um cron externo, não no cron embutido do Claude Code (que morre quando a sessão termina).
macOS: LaunchAgent
<!-- ~/Library/LaunchAgents/com.agentic.daily-sync.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ...>
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.agentic.daily-sync</string>
<key>ProgramArguments</key>
<array>
<string>/claude</string>
<string>--cwd</string>
<string>/path/to/project</string>
<string>--command</string>
<string>/daily-sync</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>StandardOutPath</key>
<string>/tmp/agentic-daily-sync.log</string>
</dict>
</plist>
Linux: systemd Timer
# ~/.config/systemd/user/agentic-daily-sync.service
[Unit]
Description=Agentic OS Daily Sync
[Service]
Type=oneshot
ExecStart=/usr/local/bin/claude --cwd /path/to/project --command /daily-sync
# ~/.config/systemd/user/agentic-daily-sync.timer
[Unit]
Description=Run daily sync every morning
[Timer]
OnCalendar=*-*-* 8:00:00
Persistent=true
[Install]
WantedBy=timers.target
Multiplataforma: pm2
# ecosystem.config.js
module.exports = {
apps: [{
name: 'agentic-daily-sync',
script: 'claude',
args: '--cwd /path/to/project --command /daily-sync',
cron_restart: '0 8 * * *',
autorestart: false
}]
};
Camada de Dados
A camada de dados é o seu sistema de arquivos. Use JSON para dados estruturados e markdown para conteúdo narrativo.
JSON para Estado Estruturado
// data/projects/website-v2.json
{
"name": "Website v2",
"status": "em-andamento",
"milestone": "lançamento-beta",
"agents_involved": ["@dev", "@writer"],
"files": {
"spec": "docs/website-v2-spec.md",
"design": "./designs/website-v2.fig"
},
"metrics": {
"commits": 47,
"last_session": "2026-04-22T11:30:00Z"
}
}
Markdown para Conteúdo Narrativo
Use markdown para tudo que um humano lê: decisões, logs, notas de pesquisa, registros de contatos.
Evolução de Esquema
Nunca renomeie campos existentes. Adicione novos campos e marque os antigos como obsoletos:
{
"name": "Website v2",
"status": "em-andamento",
"milestone": "lançamento-beta",
"_deprecated_priority": "alta",
"priority_v2": { "level": "alta", "rationale": "Bloqueia demonstração para investidores" }
}
Isso mantém os dados históricos legíveis sem scripts de migração.
Antipadrões
Agente Único Monolítico
# RUIM - Um agente faz tudo
Você é um desenvolvedor full-stack, escritor, pesquisador e engenheiro de DevOps.
Divida em agentes especialistas. O kernel lida com o roteamento.
Sessões Sem Estado
# RUIM - Sem memória entre sessões
Começando do zero toda vez que o Claude Code abre.
Sempre leia data/ no início da sessão e escreva de volta no final.
Credenciais Hardcoded
# RUIM - Chaves de API em arquivos de agente ou CLAUDE.md
Sua chave de API OpenAI é sk-xxxxxxxx
Use variáveis de ambiente ou um arquivo .env carregado por scripts. Os agentes referenciam process.env.API_KEY.
Banco de Dados Externo para Estado Simples
# RUIM - PostgreSQL para o SO agêntico de um único usuário
Use arquivos JSON/markdown até ter vários usuários concorrentes ou GBs de dados.
Roteamento Superengenhado
# RUIM - Lógica de roteamento em código em vez de tabelas markdown
if (intent.includes('deploy')) { agent = opsAgent; }
Mantenha o roteamento declarativo em tabelas markdown no CLAUDE.md. É inspecionável, editável e depurável.
Melhores Práticas
-
CLAUDE.mdtem menos de 200 linhas e cabe na janela de contexto - Cada arquivo de agente tem menos de 100 linhas e é focado em um domínio
-
data/é ignorado pelo Git para logs sensíveis, rastreado para decisões e especificações - Comandos usam nomes imperativos:
/daily-sync, não/run-daily-sync - Logs são apenas de adição; nunca edite logs diários passados
- Todo agente tem uma seção
Memory Scopedefinindo quais arquivos ele lê - Reflexões são escritas no final de cada sessão
- Tarefas programadas usam cron externo (LaunchAgent, systemd, pm2), não o cron de sessão do Claude Code
- Rastreamento de custos: registre o gasto de API por sessão em
data/logs/<data>-costs.json - Um projeto = um Agentic OS. Não compartilhe um único
CLAUDE.mdentre projetos não relacionados.