Substituições

Personalize cada conversa com um contexto individualizado para cada usuário.

Embora as substituições ainda sejam compatíveis para substituir completamente os prompts do sistema ou as primeiras mensagens, recomendamos usar Variáveis dinâmicas como a forma preferencial de personalizar as respostas do seu agente e inserir dados em tempo real. As variáveis dinâmicas oferecem melhor manutenção e uma abordagem mais estruturada para personalização.

As substituições permitem que seu assistente adapte o comportamento a cada interação do usuário. Você pode transmitir dados e configurações personalizados no início de cada conversa, permitindo que o assistente personalize suas respostas e conhecimentos com contexto em tempo real. As substituições substituem completamente os valores padrão do agente definidos no painel do agente.

Visão geral

As substituições permitem modificar o comportamento do seu agente de IA em tempo real sem criar vários agentes. Isso permite personalizar respostas com dados específicos do usuário.

As substituições podem ser ativadas para os seguintes campos nas configurações de segurança do agente:

  • Prompt do sistema
  • Primeira mensagem
  • Idioma
  • ID da voz
  • LLM (Large Language Model)
  • Ferramentas
  • Base de conhecimento
  • Modo somente texto
  • Estabilidade
  • Velocidade
  • Impulso de similaridade
  • Palavras-chave de ASR

Quando as substituições estão ativadas para um campo, fornecer uma substituição ainda é opcional. Se ela não for fornecida, o agente usará os valores padrão definidos no painel do agente. Para a maioria dos campos, ocorrerá um erro se uma substituição for fornecida quando esse campo não estiver com substituições ativadas.

As palavras-chave de ASR usam recusa suave: se a opção de Segurança estiver desativada e o cliente ainda enviar asr.keywords, a conversa continuará e as palavras-chave serão ignoradas (sem erro). Ative a substituição de palavras-chave de ASR nas configurações de Segurança quando quiser aplicar o reforço de palavras-chave por conversa. São compatíveis até 50 palavras-chave por conversa.

Veja alguns exemplos em que as substituições podem ser úteis:

  • Cumprimentar usuários pelo nome
  • Incluir detalhes específicos da conta nas respostas
  • Ajustar o idioma ou o tom do agente com base nas preferências do usuário
  • Transmitir dados em tempo real, como saldos de conta ou status do pedido
  • Melhorar a transcrição de nomes ou termos por chamada (por exemplo, nomes de empresas no CRM) por meio de palavras-chave de ASR

As substituições são particularmente úteis para aplicativos que exigem interações personalizadas ou que lidam com dados confidenciais do usuário que não devem ser armazenados na configuração base do agente.

Guia

Pré-requisitos

Este guia mostra como substituir o prompt do sistema, a primeira mensagem, o LLM, as ferramentas, a base de conhecimento, as configurações de TTS e as palavras-chave de ASR padrão do agente.

1

Ativar substituições

Por motivos de segurança, as substituições vêm desativadas por padrão. Ative os campos cuja substituição você deseja permitir, como first_message, prompt.prompt, prompt.tool_ids, prompt.knowledge_base, language ou asr.keywords.

Acesse as configurações do seu agente e selecione a aba Segurança. Ative First message, System prompt, Tools, Knowledge base, ASR keywords e quaisquer outras substituições de que você precise, como LLM.

Ativar substituições

2

Substituir a conversa

No seu código, onde a conversa é iniciada, transmita as substituições como um parâmetro. As substituições de ferramentas e base de conhecimento substituem os arrays padrão daquela conversa. As substituições de palavras-chave de ASR substituem a lista de palavras-chave padrão do agente naquela conversa (máximo de 50 palavras-chave).

Payload de início da conversa
{
"conversation_config_override": {
"agent": {
"prompt": {
"tool_ids": ["tool_7101k5zvyjhmfg983brhmhkd98n6"],
"knowledge_base": [
{
"type": "file",
"name": "Unladen Swallow Facts",
"id": "5xM3yVvZQKV0EfqQpLrJ",
"usage_mode": "auto"
}
]
}
},
"asr": {
"keywords": ["Acme Corp", "Contoso", "Globex"]
}
}
}

Verifique se você tem o SDK mais recente instalado.

from elevenlabs.conversational_ai.conversation import Conversation, ConversationInitiationData
...
conversation_override = {
"agent": {
"prompt": {
"prompt": f"The customer's bank account balance is {customer_balance}. They are based in {customer_location}.", # Optional: override the system prompt.
"llm": "gpt-4o", # Optional: override the LLM model.
"tool_ids": [
"tool_7101k5zvyjhmfg983brhmhkd98n6"
], # Optional: replace the tools available to the agent.
"knowledge_base": [
{
"type": "file",
"name": "Unladen Swallow Facts",
"id": "5xM3yVvZQKV0EfqQpLrJ",
"usage_mode": "auto",
}
], # Optional: replace the knowledge base available to the agent.
},
"first_message": f"Hi {customer_name}, how can I help you today?", # Optional: override the first_message.
"language": "en" # Optional: override the language.
},
"tts": {
"voice_id": "custom_voice_id", # Optional: override the voice.
"stability": 0.7, # Optional: override stability (0.0 to 1.0).
"speed": 1.1, # Optional: override speed (0.7 to 1.2).
"similarity_boost": 0.9 # Optional: override similarity boost (0.0 to 1.0).
},
"conversation": {
"text_only": True # Optional: enable text-only mode (no audio).
},
"asr": {
"keywords": ["Acme Corp", "Contoso"] # Optional: boost ASR for per-call terms (max 50). Requires Security → ASR keywords.
}
}
config = ConversationInitiationData(
conversation_config_override=conversation_override
)
conversation = Conversation(
...
config=config,
...
)
conversation.start_session()

Ao usar substituições, omita os campos que não deseja substituir em vez de defini-los como strings vazias ou valores nulos. Inclua apenas os campos que você deseja personalizar especificamente.

Para encontrar a string correta do modelo LLM, consulte a referência da API de Agentes, que lista todos os modelos LLM compatíveis e seus identificadores de string exatos.