# Agentes de AI sobre provedores de LLM de terceiros

Um agente responde dentro de uma conversa, então cada turno paga pela chamada ao modelo e por tudo o que o agente faz em volta dela. Esta arquitetura coloca na Azion tudo o que está em volta da chamada: a interface, a lógica do agente e o estado do chat executam aqui, perto do usuário. O modelo não é um deles. Ele executa em um provedor de terceiros, como OpenAI ou Anthropic, e o agente o alcança pela API desse provedor, com a sua chave.

Use esta arquitetura quando o provedor já estiver escolhido. O que você quer perto do usuário é o próprio agente, o seu histórico e os documentos que ele lê. [AI Inference](/pt-br/documentacao/plataforma/ai-inference/) descreve a arquitetura em que Azion executa o modelo.

---

## Diagrama de arquitetura

O diagrama percorre um turno da conversa, do navegador até o provedor e de volta:

```mermaid
flowchart LR
  User["Usuário em um navegador"] -->|"Abre o agente"| Frontend["Aplicação frontend na Azion"]
  Frontend -->|"Lê o CSS, o HTML e os demais arquivos estáticos que ela serve"| Storage["Object Storage"]
  Frontend -->|"Requisição de API com a mensagem do usuário"| Agent["Função que executa o agente LangGraph"]
  Agent -->|"Escreve e lê o estado do chat"| Database["SQL Database"]
  Database -->|"Histórico do chat e documentos armazenados"| Agent
  Agent -->|"Prompt enviado pela API do provedor"| LLM["LLM de terceiros, fora da Azion"]
  LLM -->|"Texto gerado pelo modelo"| Agent
  Agent -->|"Resposta transmitida em streaming"| Frontend
  Frontend -->|"Exibe a resposta"| User
```

Leia o diagrama a partir da função, de dentro para fora. Todo nó dele executa na Azion, menos um: o LLM de terceiros está fora, e a seta que chega até ele é a única que sai. A função é onde a arquitetura converge, porque ela contém o agente, é dona das leituras e escritas do estado do chat e faz a chamada ao modelo. Object Storage fica fora desse caminho. Ele serve os arquivos estáticos que compõem a interface e os documentos que o agente usa depois para responder.

### Fluxo de dados

Uma requisição atravessa a arquitetura nesta ordem:

1. Uma requisição chega à Azion.
2. A aplicação frontend serve a interface do usuário, com os arquivos estáticos vindos do Object Storage.
3. A aplicação frontend envia uma requisição de API para a função de backend.
4. A função de backend lê e escreve o estado do chat no SQL Database, para persistência e contexto. Em seguida, ela executa o agente LangGraph e transmite a resposta para o cliente.
5. O agente chama o LLM de terceiros, usa os dados do banco de dados para formar uma resposta e a envia de volta pelo mesmo caminho.
6. A aplicação frontend exibe a resposta para o usuário.

---

## Componentes

- [Applications](/pt-br/documentacao/plataforma/applications/): hospeda o agente de AI na Azion. É o endereço com o qual o navegador se comunica, e roteia a interface e a requisição de API para o lugar certo, atrás de um único domínio.
- [Functions](/pt-br/documentacao/plataforma/functions/): contém a lógica do agente de AI. O seu código não executa em nenhum outro lugar desta arquitetura, então o grafo do LangGraph, a chamada ao provedor e o streaming da resposta ficam todos em uma única execução.
- [Object Storage](/pt-br/documentacao/plataforma/object-storage/): armazena os dados que o agente usa para responder às perguntas e os arquivos estáticos que a interface carrega. Nenhum dos dois vem de um servidor que você mantém no ar.
- [SQL Database](/pt-br/documentacao/plataforma/sql-database/): armazena o estado do chat e os documentos. É o que torna um turno contextual, porque o agente lê daqui as mensagens anteriores e os documentos correspondentes antes de escrever um prompt.
- **LLM de terceiros**: o serviço externo que executa o modelo, como OpenAI ou Anthropic. É a única parte que Azion não opera, então a disponibilidade, os limites de taxa e a cobrança dele ficam com o provedor.

> **nota**
>
> Uma implantação desta arquitetura usa [Application Accelerator](/pt-br/documentacao/plataforma/applications/#application-accelerator), [Functions](/pt-br/documentacao/plataforma/functions/) e [SQL Database](/pt-br/documentacao/plataforma/sql-database/), e pode gerar custos relacionados ao uso. Consulte a [página de preços](/pt-br/documentacao/fundamentos/precos/) para obter mais informações.

---

## Implementação

- [Como implantar o LangGraph AI Agent Boilerplate](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/frameworks/langgraph-ai-agent-boilerplate/) - cria o frontend, a função e o banco de dados que esta página descreve, e traz o carregador de documentos que os preenche.
- [Azion GitHub App](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/automacao/azion-github-app/) - conecta o repositório para o qual essa implantação envia o código, uma conexão que o guia exige antes de começar.

---

## Recursos relacionados

- [AI Inference](/pt-br/documentacao/plataforma/ai-inference.md): A arquitetura em que Azion executa o modelo, em vez de chamar um provedor de terceiros.
- [Vector Search](/pt-br/documentacao/plataforma/sql-database/vector-search.md): Como SQL Database responde a uma consulta por embeddings, o mecanismo sobre o qual a recuperação de documentos se apoia.
- [Vector Search com SQL Database](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/dados/edge-sql-vector-search.md): Constrói e consulta um repositório de embeddings diretamente, fora de um template.
- [SQL Database](/pt-br/documentacao/plataforma/sql-database.md): O repositório que guarda o estado do chat e os documentos.
- [Object Storage](/pt-br/documentacao/plataforma/object-storage.md): O repositório de onde vêm os arquivos estáticos e os documentos que o agente usa como fonte.
