Você pode integrar o MongoDB ao Vercel AI SDK para configurar a memória para seus agentes que persiste entre sessões. Este tutorial cria um provedor de memória MongoDB , cria um agente que salva e recupera memória e executa o agente duas vezes para mostrar que ele recupera informações de uma execução anterior.
Neste tutorial, você executa as seguintes tarefas:
Configure seu ambiente.
Construa um agente que tenha memória persistente.
Execute o agente e revise a saída.
Plano de fundo
O Vercel AI SDK é uma estrutura TypeScript para criar aplicativos e agentes de IA. O pacote @mongodb-developer/vercel-ai-memory fornece memória persistente apoiada MongoDB para agentes criados com o SDK. O pacote armazena memória em cinco níveis. Para saber mais sobre as camadas de memória, consulte Integrar MongoDB com o Vercel AI SDK.
Este tutorial usa os comandos da ferramenta de memória que o pacote expõe ao agente. O modelo chama o comando session_recent para restaurar o histórico de conversa no início de cada execução e chama os comandos session_append e semantic_save para armazenar novas informações.
Pré-requisitos
Para concluir este tutorial, você deve ter os seguintes recursos:
Um dos seguintes tipos de cluster MongoDB :
Um cluster do Atlas executando a versão do MongoDB 6.0.11, 7.0.2, ou posterior. Certifique-se de que seu endereço IP esteja incluído na lista de acesso do seu projeto Atlas.
Uma implantação local do Atlas criada usando Python e Docker. Instale
atlas-local-lib-py(pip install atlas-local-lib-py) para criar e gerenciar implantações locais programaticamente. Para saber mais, consulte o repositório atlas-local-lib-py.Um cluster MongoDB Community com Search e pesquisa vetorial instalados.
Uma chave de API da OpenAI. Você deve ter uma conta da OpenAI com créditos disponíveis para solicitações de API. Para aprender mais sobre como registrar uma conta OpenAI, consulte o website de API OpenAI.
Uma chave de API do Voyage AI. Para criar uma chave de API, consulte Gerenciar chaves de API do modelo Voyage AI.
Este tutorial configura uma URL base que roteia solicitações de incorporação para o endpoint Voyage AI do MongoDB. Se você gerou sua chave de API diretamente da Voyage AI, remova a opção
baseURLespecificada na etapa do fornecedor de memória.Node.js e npm.
Configurar o ambiente
Nesta seção, você prepara seu ambiente instalando as dependências necessárias, definindo suas variáveis de ambiente e criando um arquivo de projeto .
Instalar dependências.
Execute os seguintes comandos no seu terminal para criar um novo diretório denominado vercel-ai-mongodb-project e instalar as dependências necessárias:
mkdir vercel-ai-mongodb-projectcd vercel-ai-mongodb-projectnpm init -ynpm install @mongodb-developer/vercel-ai-memory ai mongodb zod @ai-sdk/openai voyage-ai-provider dotenvnpm install --save-dev tsx @types/nodeDefina suas variáveis de ambiente.
No seu diretório vercel-ai-mongodb-project, crie um arquivo .env e adicione o seguinte código:
OPENAI_API_KEY="<openai-api-key>"VOYAGE_API_KEY="<voyage-api-key>"MONGODB_URI="<connection-string>"Substitua <connection-string> pela string de conexão do seu cluster do Atlas ou da implantação local do Atlas.
Sua string de conexão deve usar o seguinte formato:
mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.netIMPORTANTE: certifique-se de que a string de conexão inclua as credenciais do usuário de banco de dados. Para aprender mais sobre como localizar sua string de conexão, consulte Conectar-se a um cluster por meio de bibliotecas de clientes.
Sua string de conexão deve usar o seguinte formato:
mongodb://localhost:<port-number>/?directConnection=truePara saber mais, consulte Connection strings.
Crie um arquivo de projeto.
No seu diretório vercel-ai-mongodb-project, crie um arquivo denominado main.ts. Adicione o seguinte código a este arquivo para carregar suas variáveis de ambiente e importar os módulos necessários:
import 'dotenv/config'import { createMongoDBMemory } from '@mongodb-developer/vercel-ai-memory'import { createVoyage } from 'voyage-ai-provider'import { openai } from '@ai-sdk/openai'import { ToolLoopAgent } from 'ai'Em etapas futuras, você adicionará o código a este arquivo para criar o provedor de memória e construir seu agente.
Construir um agente
Nesta seção, você cria um provedor de memória MongoDB , constrói um agente que usa o provedor para armazenar e recuperar memória e adiciona o código que executa o agente.
Crie o provedor de memória.
Adicione o seguinte código ao seu arquivo main.ts para criar um cliente Voyage AI e um fornecedor de memória que use um modelo de incorporação do Voyage AI:
const voyage = createVoyage({ apiKey: process.env.VOYAGE_API_KEY, baseURL: 'https://ai.mongodb.com/v1',})
const mongodbMemory = createMongoDBMemory({ uri: process.env.MONGODB_URI!, embedder: voyage.embeddingModel('voyage-4'),})Importante
As chaves de API do Voyage AI que você cria no Atlas exigem o endpoint do MongoDB Voyage AI, que a opção baseURL especifica. Se você gerou sua chave de API diretamente da Voyage AI, remova a opção baseURL.
O provedor se conecta ao MongoDB no primeiro uso e cria o banco de dadosagent_memory. Em seguida, ele adiciona uma collection para cada nível de memória ao banco de dados. O fornecedor também cria os índices do MongoDB Vector Search exigidos pela recuperação semântica. Para saber mais sobre as coleções e índices que o fornecedor cria, consulte Coleções e índices na referência do SDK do Vercel.
Crie o agente.
Adicione o seguinte código ao seu arquivo main.ts para criar um agente cujas ferramentas de memória tenham como escopo um usuário e uma sessão:
const agent = new ToolLoopAgent({ model: openai('gpt-4.1'), tools: mongodbMemory({ userId: 'alice', sessionId: 'sess-001' }), instructions: `You are an assistant with persistent memory. At the start of every conversation, call session_recent to restore context and semantic_search to recall facts about the user. Save each conversation turn with session_append. Save important facts about the user with semantic_save.`,})As instruções informam ao modelo quais comandos de memória chamar. Os valores userId e sessionId têm como escopo as memória s que o agente armazena e recupera.
Adicione o código que executa o agente.
Adicione o seguinte código ao seu arquivo main.ts para passar um prompt para o agente a partir da linha de comando, imprimir a resposta e fechar a conexão do MongoDB :
async function main() { const prompt = process.argv[2]
if (!prompt) { console.error('Usage: npx tsx main.ts "<your message>"') process.exit(1) }
const result = await agent.generate({ prompt }) console.log('[agent]:', result.text)
await mongodbMemory.close()}
main().catch((error) => { console.error(error) process.exit(1)})Execute o agente
Nesta seção, você executa o arquivo main.ts e fornece informações ao seu agente. Em seguida, execute o agente novamente e solicite que ele recupere essas informações.
Execute o agente e forneça informações pessoais.
No diretório vercel-ai-mongodb-project, execute o seguinte comando:
npx tsx main.ts "I'm a marine biologist who studies emperor penguins in Antarctica. Remember that."Se o comando for executado com êxito, a saída se assemelha ao seguinte:
[agent]: I've noted that you are a marine biologist studying emperorpenguins in Antarctica.Solicite ao agente que recupere as informações.
Execute o agente novamente e passe o seguinte prompt que solicita ao agente que recupere as informações anteriores:
npx tsx main.ts "What do I study, and where?"A saída se assemelha ao seguinte:
[agent]: You are a marine biologist who studies emperor penguins inAntarctica.O agente usa memória para responder ao prompt. Ambas as execuções passam pelos mesmos valores userId e sessionId, portanto, o modelo chama os comandos session_recent e semantic_search no início da segunda execução. Esses comandos restauram a conversa e as memória que a primeira execução armazenou no MongoDB.
Observação
Os índices do MongoDB Vector Search são construídos de forma assíncrona após a primeira execução. Se o agente não se lembrar das informações, aguarde alguns segundos e execute o comando novamente.
Próximos passos
Para saber mais sobre o fornecedor de memória, incluindo a referência completa do parâmetro, as opções de retenção e topologia e todos os comandos das ferramentas de memória, consulte Integrar o MongoDB ao SDK do Vercel AI.
Para saber mais sobre o Vercel AI SDK, consulte a documentação do Vercel AI SDK.