# Seis prompts para um agente de conteúdo trabalhar com segurança nas contas dos seus clientes

_2026-09-22 · Prompts prontos para um agente de IA no Shager: regras fixas, rascunhos da semana, variação de legenda, agendamento, revisão e triagem de falhas._

Os prompts que importam para um agente de conteúdo não são frases espertas de uma linha. São um bloco de instruções fixas, que define as regras rígidas uma vez só, mais alguns prompts de tarefa, cada um com uma função: escrever a semana, variar as legendas, agendar, revisar antes de qualquer coisa sair e fazer a triagem das falhas. Abaixo estão seis deles, completos e prontos para colar, escritos para um agente conectado ao Shager por MCP.

Eles foram escritos para Claude Code e Claude Desktop e devem funcionar no Codex ou no Cursor com pequenos ajustes, já que os nomes das ferramentas vêm do servidor MCP, e não do cliente.

## Como esses prompts são montados

Duas técnicas fazem a maior parte do trabalho. As [boas práticas de prompting](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices) da Anthropic recomendam separar instruções, contexto e entradas com tags XML, para que o modelo não confunda o briefing de um cliente com uma ordem, e usar exemplos concretos para fixar formato e tom. As duas aparecem abaixo.

O outro princípio é meu: todo prompt diz exatamente quais ferramentas do Shager ele pode chamar. Um agente que recebe "publique isto" vai dar um jeito. Um agente que recebe "chame `create_post` sem `schedule_at` e pare" vai fazer exatamente isso.

Substitua tudo o que estiver entre os sinais < e > antes de usar.

## Prompt 1: instruções fixas

Este vai para o contexto permanente do agente: um [arquivo `CLAUDE.md`](https://code.claude.com/docs/en/memory) no Claude Code, as instruções do projeto no Claude Desktop, um [arquivo `AGENTS.md`](https://developers.openai.com/codex/guides/agents-md) no Codex. A documentação de memória da Anthropic observa que instruções mais curtas e específicas são seguidas com mais consistência, então mantenha só as regras de que você realmente precisa. Cada regra aqui corrige um erro que os agentes cometem quando ninguém diz o contrário. O bloco é lido uma vez por sessão e poupa você de repetir regras em cada tarefa.

```text
You are the content distribution agent for <AGENCY NAME>. You work through the
Shager MCP server. Shager publishes to Facebook Pages, Instagram professional
accounts and YouTube channels through official APIs.

<hard_rules>
1. Never publish or schedule unless the task explicitly says "schedule". Default
   to drafts: call create_post WITHOUT schedule_at.
2. Before any write, call whoami and list_workspaces, and state which workspace
   you are about to act on by name. If the task does not name a client, ask.
3. Every post to more than one account uses per_channel with a different caption
   for each account. Never send identical captions to multiple accounts.
4. Times are ISO 8601 with an explicit offset, computed from the workspace
   timezone for that specific date. Never guess an offset.
5. Never shorten stagger_seconds below the default [30, 90].
6. Do not invent facts about the client: prices, opening hours, offers, dates.
   If the brief does not contain it, leave it out or ask.
7. If any tool returns an error, stop and report the error code and message.
   Do not retry more than once.
</hard_rules>

<house_style>
1. Short sentences. No hashtags unless the brief asks for them.
2. Facebook first comments may carry the link. On Instagram and YouTube Shorts,
   links in comments and captions are not clickable; do not rely on them there.
3. Write in the language of the account, not the language of the brief.
</house_style>

<reporting>
End every task with a table: account name, network, what you did, post_id,
status. Then one line: what a human needs to do next, if anything.
</reporting>
```

## Prompt 2: escrever a semana a partir de um briefing

Este é o prompt que pega no pesado. O briefing fica dentro da própria tag, para que o modelo o trate como material, e não como ordens.

```text
Draft next week's posts for the client workspace "<CLIENT WORKSPACE NAME>".

<brief>
<PASTE THE CLIENT BRIEF, OFFERS, DATES AND ASSETS HERE>
</brief>

<steps>
1. Call list_channels and list_groups for this workspace. Summarise the accounts
   by network and group before drafting.
2. For each media URL in the brief, call upload_media_from_url. For video, pass
   width, height and duration_ms; if you do not know them, ask me.
3. Plan <NUMBER> posts for the week. Show me the plan as a table (day, topic,
   format, target group) and wait for "go".
4. After "go", call create_post once per planned post, as a draft, with:
   caption, group_ids, media_ids, per_channel (one caption per account),
   cta_url and campaign "<CAMPAIGN SLUG>", label "<CLIENT> week <NN> post <n>".
5. Do not call schedule_post or request_approval.
</steps>

Report using the reporting table from your standing instructions.
```

A linha "wait for go" no passo 3 custa uma mensagem e barra a maioria dos planos ruins antes que eles virem quarenta rascunhos.

## Prompt 3: variação de legenda por conta

Use este quando uma única legenda mestre aprovada precisa virar várias. Ele traz exemplos, porque exemplos orientam o tom melhor do que adjetivos.

```text
Rewrite the master caption below for each account in the post <POST_ID> in
workspace "<CLIENT WORKSPACE NAME>". Call get_post to read the accounts.

<master_caption>
<PASTE MASTER CAPTION>
</master_caption>

<rules>
1. Keep every fact, offer and date exactly as in the master. Change wording,
   order and the opening line.
2. Anchor each version in something true about that account: its city, branch
   or audience, taken from the account name. Do not invent local details.
3. Same length as the master, within 20 percent.
4. No two versions may share the same first sentence.
</rules>

<examples>
<example>
Master: "Our winter menu starts Sunday."
Account "Cafe Lune Haifa": "Haifa, the soup is back. Winter menu from Sunday."
Account "Cafe Lune Eilat": "Yes, even in Eilat. The winter menu lands Sunday."
</example>
</examples>

Then call create_post as a new draft that copies the original's media_ids,
cta_url and campaign, with your captions in per_channel. Do not edit or cancel
the original. Report the new post_id.
```

O método por trás deste prompt é explicado com mais detalhes em [variação de legenda por conta com IA](/en/blog/caption-variation-per-account-with-ai).

## Prompt 4: agendar os rascunhos aprovados

Este é o único prompt que mexe com o relógio. Ele só funciona se a chave tiver o escopo `publish`, que é concedido por uma pessoa. É de propósito.

```text
Schedule the approved drafts in workspace "<CLIENT WORKSPACE NAME>".

<steps>
1. Call list_posts with status APPROVED. Show me the list.
2. Read the workspace timezone. For each post, compute schedule_at for the
   local date and time I give below, with the correct UTC offset for that date.
3. For any post targeting more than 50 accounts on one network, warn me how
   long the staggered run will take at the default stagger before scheduling.
4. Call schedule_post for each. If one fails, stop and show the error.
</steps>

<times>
<POST LABEL OR ID> : <YYYY-MM-DD HH:MM local>
</times>
```

O raciocínio por trás das regras de horário está em [estratégia de agendamento para agentes](/en/blog/scheduling-strategy-for-agents).

## Prompt 5: revisão antes do envio

Rode este como uma etapa separada, de preferência numa sessão nova, para que o revisor não seja o mesmo que acabou de escrever os rascunhos que está conferindo.

```text
You are reviewing drafts, not writing them. Do not create, edit, schedule or
cancel anything. Only call list_posts and get_post.

In workspace "<CLIENT WORKSPACE NAME>", review every post with status DRAFT or
APPROVED. For each, check:
1. Are any two per_channel captions identical, or identical apart from the
   account name?
2. Does any caption contain a fact not present in this brief?
   <brief><PASTE BRIEF></brief>
3. Is there a first_comment with a link on an Instagram or YouTube Short
   channel, where it will not be clickable?
4. Is a REEL or SHORT format set on media that is not vertical video?

Output one table: post label, account, issue, suggested fix. If there are no
issues, say so in one line.
```

Um revisor que não pode escrever é a camada de segurança mais barata que você vai construir. Ele combina bem com a aprovação humana descrita em [aprovação humana para posts de agentes](/en/blog/human-approval-for-agent-posts).

## Prompt 6: triagem de falhas

Numa execução grande, algumas contas vão falhar. A questão é com que rapidez você fica sabendo e se o agente piora a situação.

```text
Check the result of post <POST_ID> in workspace "<CLIENT WORKSPACE NAME>".

1. Call get_post. List every account whose state is not published, with the
   error message exactly as returned.
2. Group the failures by likely cause: expired or revoked connection, missing
   permission, media rejected, other.
3. For connection problems, do not retry. Tell me which account owner needs a
   new connect link. If I confirm, call create_connect_link with a label naming
   that account.
4. Do not create a replacement post unless I ask.
```

## Uma observação sobre chaves e contexto

Nenhum desses prompts contém uma chave de API, e nenhum deveria conter. A chave fica na configuração do cliente MCP ou numa variável de ambiente. Colar a chave num prompt a coloca em transcrições, logs e, às vezes, em históricos de conversa compartilhados.

## Perguntas frequentes

### Esses prompts funcionam com outros modelos além do Claude?

A estrutura funciona. Tags XML e nomes explícitos de ferramentas ajudam qualquer modelo competente. Talvez você precise ajustar a forma como as instruções fixas são carregadas, já que cada cliente tem seu próprio arquivo ou configuração para o contexto permanente.

### Por que não deixar o agente agendar direto a partir do prompt de rascunhos da semana?

Porque os erros mais caros acontecem no momento da publicação, e um prompt separado, com um escopo concedido à parte, torna esse momento deliberado. Desfazer um rascunho é barato. Um post em sessenta páginas, não.

### Qual deve ser o tamanho das instruções fixas?

O tamanho que suas regras rígidas exigirem, e nada além disso. Se uma regra nunca é violada na prática, provavelmente pode sair. Se um erro acontece duas vezes, ele vira regra.

## Próximos passos

Se o seu agente ainda não está conectado, a [página para agentes](/en/agents) mostra o endereço do MCP e a chamada de cadastro feito pelo próprio agente. Comece com os prompts 1 e 2 em um único cliente e acrescente os outros conforme o volume crescer.

---
Source: https://shager.ai/pt/blog/prompts-for-a-content-agent
