Prompts
Versionamento de prompts no Langfuse, convenção de nomenclatura, labels por ambiente e ciclo de validação antes do deploy em produção.
Prompts
Os prompts de cada agente do Hub vivem no Langfuse — não no banco do Hub. A API e o LangGraph buscam o prompt em runtime, com cache curto, e o agente passa a usar a versão marcada como production em até cinco minutos. Esta página descreve a estrutura, as labels, o ciclo de teste e as boas práticas que mantêm a operação estável.
Projeto canônico no Langfuse: Simplafy-Hub. Credenciais ficam no Infisical em /custom/hub-langgraph (LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY).
Estrutura de prompts
Cada agente do Hub aponta para um prompt no Langfuse via o campo langfuse_prompt_name no configurable do assistant. O nome segue uma convenção fixa para garantir unicidade entre agentes:
hub-<client_slug>-<agent_id>client_slug— nome do agente slugificado (ex.:lia-brasal). Omitir se o agente não tiver nome.agent_id— UUID do agente no Hub. Sempre presente, garante unicidade quando o slug se repete.
Exemplos válidos:
hub-lia-brasal-c17c7fcc-816e-4c0f-acb2-a26915ee072f
hub-a1b2c3d4-5e6f-7890-abcd-ef0123456789Cada prompt deve ter o campo config preenchido. Sem ele, o UI do Langfuse não exibe os metadados do modelo e o agente não consegue derivar provider / temperatura corretamente:
{
"model": "openai/gpt-4o",
"temperatura": 0.7,
"reasoning_model": false,
"reasoning_effort": "",
"provider": "openai"
}O campo model pode vir prefixado com o provider (openai/gpt-4o). O LangGraph detecta o prefixo e evita duplicar — passar provider: "openai" + model: "openai/gpt-4o" é seguro e não gera openai/openai/gpt-4o.
Versionamento via Langfuse
Toda atualização de prompt cria uma nova versão imutável no Langfuse. O agente não busca a "última" versão por número — busca pela label aplicada. Isso permite reverter trocando o destino da label, sem reescrever o prompt.
Fluxo de criação de um novo prompt:
Criar a versão no Langfuse
Via API pública do Langfuse:
curl -X POST https://langfuse.simplafy.com.br/api/public/v2/prompts \
-u "$LANGFUSE_PUBLIC_KEY:$LANGFUSE_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "hub-lia-brasal-c17c7fcc-816e-4c0f-acb2-a26915ee072f",
"type": "text",
"prompt": "Você é a Lia, assistente da Brasal...",
"labels": ["production", "latest"],
"config": {
"model": "openai/gpt-4o",
"temperatura": 0.7,
"reasoning_model": false,
"reasoning_effort": "",
"provider": "openai"
}
}'Apontar o agente para o prompt
Atualizar o configurable do assistant no LangGraph:
curl -X PATCH https://hub.simplafy.com.br/api/v1/assistants/{assistant_id} \
-H "Authorization: Bearer $HUB_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"configurable": {
"langfuse_prompt_name": "hub-lia-brasal-c17c7fcc-816e-4c0f-acb2-a26915ee072f"
}
}'O campo langfuse_prompt_name também pode ser definido via metadata._x_oap_langfuse_prompt para compatibilidade com configurações antigas.
Aguardar o cache expirar
O LangGraph mantém um cache de 5 minutos por prompt. Para aplicar imediatamente, reiniciar o pod simplafy-hub-langgraph no cluster — ou simplesmente esperar.
Labels e ambientes
O agente busca exclusivamente prompts marcados com a label production. Labels são o mecanismo de promoção entre ambientes.
| Label | Uso | Observação |
|---|---|---|
production | Versão ativa em produção. Obrigatória para o agente funcionar. | O LangGraph ignora qualquer versão sem essa label. |
latest | Última versão criada. Aplicada automaticamente pelo Langfuse. | Útil para testes manuais antes da promoção. |
staging | Convenção para validar em ambiente de teste antes de promover. | Opcional — configurar via langfuse_prompt_name no assistant de staging. |
Para promover uma nova versão para produção, mover a label production da versão antiga para a nova diretamente no UI do Langfuse ou via API:
curl -X PATCH https://langfuse.simplafy.com.br/api/public/v2/prompts/{name}/versions/{version} \
-u "$LANGFUSE_PUBLIC_KEY:$LANGFUSE_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"newLabels": ["production"]}'Mover a label production é o método de rollback. Não deletar versões antigas — manter o histórico permite voltar a qualquer ponto sem reescrever o prompt.
Testar no Lab
Antes de aplicar a label production, validar o prompt em um cenário controlado. O fluxo recomendado:
Reproduzir no Langfuse Playground
Abrir a versão latest do prompt no Langfuse e rodar diretamente no Playground com o modelo e a temperatura definidos no config. Isso valida o texto isolado das tools e do histórico do agente.
Rodar contra o agente em staging
Apontar o langfuse_prompt_name no assistant de staging para a versão sob teste (usar a label staging ou a versão específica). Disparar conversas de teste no canal de homologação e observar traces no Langfuse.
Comparar traces antes e depois
No Langfuse, abrir traces da versão atual e da versão nova lado a lado. Verificar:
- Tool calls que aparecem ou somem
- Mudança em latência e custo por mensagem
- Comportamento em conversas longas (efeito de compaction)
Promover para produção
Aplicar a label production à nova versão. O cache de 5min começa a expirar; em até 5 minutos todas as réplicas do LangGraph passam a usar o novo prompt.
Se a busca no Langfuse falhar em runtime, o LangGraph emite uma métrica langfuse_fallback com reason=langfuse_unavailable e o agente cai num prompt vazio. Monitorar essa métrica em rollouts de prompt.
Boas práticas
Sempre preencher config. Sem ele o agente pode acabar usando um provider/modelo diferente do esperado. O config do Langfuse sobrescreve o model definido no configurable do assistant.
Manter um latest separado de production. A label latest é automática. Não usar como destino do agente — usar production explícita para evitar deploys acidentais ao criar uma nova versão.
Não deletar versões antigas. O custo é zero e elas servem de rollback imediato. Para descontinuar, apenas remover labels.
Variáveis no prompt seguem o padrão {{VAR_*}}. O LangGraph faz substituição textual antes de enviar ao modelo. Variáveis sem valor viram string vazia, não erro.
Cache de 5 minutos é por pod. Em um deploy multi-réplica, a propagação não é simultânea. Para testes precisos de uma versão recém-promovida, reiniciar o deployment simplafy-hub-langgraph força refresh imediato em todas as réplicas.
Um agente, um prompt. Não compartilhar langfuse_prompt_name entre agentes diferentes — quebra rastreabilidade no Langfuse e impede ajustes isolados.
Agentes
Como criar, editar e organizar agentes no Hub. Estrutura de templates, deployments do LangGraph e configuração via UI.
Provedores e modelos
Provedores de LLM suportados pelo Hub (OpenAI, Anthropic, OpenRouter, xAI, ZhipuAI), seleção de modelo no UI, comportamento em caso de falha, custos e configuração de credenciais.