> ## Documentation Index
> Fetch the complete documentation index at: https://docs.talkover.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Atualizar Conhecimento do Agente

> Atualizar a base de conhecimento de um agente específico

# Atualizar Conhecimento do Agente

Atualizar a base de conhecimento de um agente específico. Esta operação substitui completamente a base de conhecimento existente.

## Endpoint

```
PUT /api/v1/agents/{agent_id}/knowledge
```

## Parâmetros de caminho

<ParamField path="agent" type="string" required>
  O identificador único do agente. Você pode encontrá-lo na lista de agentes.
</ParamField>

## Cabeçalhos da requisição

<ParamField header="Authorization" type="string" required>
  Token Bearer para autenticação. Formato: `Bearer talq_your_environment_token_here`
</ParamField>

<ParamField header="Content-Type" type="string" required>
  Application JSON. Formato: `application/json`
</ParamField>

## Corpo da requisição

<ParamField body="knowledge_base" type="string" required>
  Nova base de conhecimento do agente (texto ou URL).
</ParamField>

## Exemplos de Requisição

<RequestExample>
  ```bash theme={null}
  # Requisição 1: Atualizar base de conhecimento com texto
  curl -X PUT "https://app.talkover.ai/api/v1/agents/agent-uuid-1/knowledge" \
    -H "Authorization: Bearer talq_your_environment_token_here" \
    -H "Content-Type: application/json" \
    -d '{
      "knowledge_base": "Este é um agente de atendimento ao cliente atualizado. Ele pode ajudar com informações sobre produtos, serviços, preços, suporte técnico e reclamações. O agente é especializado em resolver problemas rapidamente e fornecer informações precisas."
    }'
  ```

  ```javascript theme={null}
  // Requisição 1: Atualizar base de conhecimento com texto
  const response = await fetch('https://app.talkover.ai/api/v1/agents/agent-uuid-1/knowledge', {
    method: 'PUT',
    headers: {
      'Authorization': 'Bearer talq_your_environment_token_here',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      knowledge_base: 'Este é um agente de atendimento ao cliente atualizado. Ele pode ajudar com informações sobre produtos, serviços, preços, suporte técnico e reclamações. O agente é especializado em resolver problemas rapidamente e fornecer informações precisas.'
    })
  });

  const result = await response.json();
  console.log(result);
  ```
</RequestExample>

<RequestExample>
  ```bash theme={null}
  # Requisição 2: Atualizar base de conhecimento com URL
  curl -X PUT "https://app.talkover.ai/api/v1/agents/agent-uuid-1/knowledge" \
    -H "Authorization: Bearer talq_your_environment_token_here" \
    -H "Content-Type: application/json" \
    -d '{
      "knowledge_base": "https://example.com/knowledge-base.txt"
    }'
  ```

  ```javascript theme={null}
  // Requisição 2: Atualizar base de conhecimento com URL
  const response = await fetch('https://app.talkover.ai/api/v1/agents/agent-uuid-1/knowledge', {
    method: 'PUT',
    headers: {
      'Authorization': 'Bearer talq_your_environment_token_here',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      knowledge_base: 'https://example.com/knowledge-base.txt'
    })
  });

  const result = await response.json();
  console.log(result);
  ```
</RequestExample>

## Resposta

### Resposta de Sucesso (200 OK)

<ResponseExample>
  ```json theme={null}
  {
    "success": true,
    "message": "Base de conhecimento atualizada com sucesso",
    "data": {
      "id": "agent-uuid-1",
      "knowledge_base": "Este é um agente de atendimento ao cliente atualizado. Ele pode ajudar com informações sobre produtos, serviços, preços, suporte técnico e reclamações. O agente é especializado em resolver problemas rapidamente e fornecer informações precisas.",
      "updated_at": "2024-01-01T00:00:00Z"
    }
  }
  ```
</ResponseExample>

### Campos da Resposta

<ResponseField name="success" type="boolean" required>
  Indica se a operação foi bem-sucedida.
</ResponseField>

<ResponseField name="message" type="string" required>
  Mensagem de sucesso descrevendo a operação.
</ResponseField>

<ResponseField name="data" type="object" required>
  Dados da atualização.

  <Expandable title="Dados da Atualização">
    <ResponseField name="id" type="string" required>
      ID do agente atualizado.
    </ResponseField>

    <ResponseField name="knowledge_base" type="string" required>
      Nova base de conhecimento do agente.
    </ResponseField>

    <ResponseField name="updated_at" type="string" required>
      Timestamp ISO 8601 quando a base de conhecimento foi atualizada.
    </ResponseField>
  </Expandable>
</ResponseField>

## Respostas de erro

### 404 Não Encontrado

<ResponseExample>
  ```json theme={null}
  {
    "success": false,
    "message": "Agent not found"
  }
  ```
</ResponseExample>

### 422 Erro de Validação

<ResponseExample>
  ```json theme={null}
  {
    "success": false,
    "message": "The given data was invalid.",
    "errors": {
      "knowledge_base": [
        "The knowledge base field is required."
      ]
    }
  }
  ```
</ResponseExample>

### 401 Não Autorizado

<ResponseExample>
  ```json theme={null}
  {
    "success": false,
    "message": "Unauthorized"
  }
  ```
</ResponseExample>

### 500 Erro do Servidor

<ResponseExample>
  ```json theme={null}
  {
    "success": false,
    "message": "Internal server error."
  }
  ```
</ResponseExample>

## Códigos de erro

| Código             | Descrição                                 | Status HTTP |
| ------------------ | ----------------------------------------- | ----------- |
| `AGENT_NOT_FOUND`  | Agente especificado não existe            | 404         |
| `VALIDATION_ERROR` | Validação da requisição falhou            | 422         |
| `INVALID_TOKEN`    | Token de autenticação inválido ou ausente | 401         |
| `SERVER_ERROR`     | Erro interno do servidor ocorreu          | 500         |

## Notas Importantes

<Info>
  **Substituição completa.** Esta operação substitui completamente a base de conhecimento existente.
</Info>

<Info>
  **Suporte a URL.** A base de conhecimento pode ser fornecida como texto ou URL.
</Info>

<Info>
  **Processamento assíncrono.** URLs são processadas de forma assíncrona.
</Info>

<Warning>
  **Limites de caracteres.** A base de conhecimento tem limites de caracteres que devem ser respeitados.
</Warning>

## Melhores Práticas

1. **Backup antes de atualizar** - Faça backup da base de conhecimento atual antes de substituí-la
2. **Teste em rascunho** - Teste mudanças em agentes em modo rascunho antes de publicar
3. **Base de conhecimento detalhada** - Forneça informações abrangentes para melhor desempenho
4. **URLs confiáveis** - Use URLs confiáveis e acessíveis quando fornecer base de conhecimento via URL
5. **Validação de conteúdo** - Verifique se o conteúdo da base de conhecimento está correto antes de atualizar

## Endpoints relacionados

* **Obter Agente**: `GET /api/v1/agents/{agent_id}`
* **Atualizar Voz do Agente**: `PUT /api/v1/agents/{agent_id}/voice`
* **Publicar Agente**: `POST /api/v1/agents/{agent_id}/publish`
* **Listar Agentes**: `GET /api/v1/agents`
