Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

Criar um projeto

Neste guia, você pode aprender como criar e registrar um novo projeto de agente usando os seguintes comandos:

  1. agentengine create: obtém um modelo inicial, reescreve os campos de identidade do projeto e escreve um arquivo de ambiente personalizado que usa seus valores de configuração.

  2. agentengine init: registra seu agente no Atlas Agent Engine e gera arquivos de desenvolvimento local.

Se você preferir criar os arquivos de projeto manualmente em vez de usar um modelo inicial, consulte a seção Configurar um agente manualmente.

Esta seção mostra como estruturar um novo projeto usando o comando agentengine create.

O comando agentengine create não exige agentengine auth login e não registra seu projeto no Atlas Agent Engine. Você pode personalizar manualmente os arquivos de andaime antes de executar e testar seu agente localmente.

Use o seguinte comando para estruturar um novo projeto:

agentengine create [--template <template-id>] [--name <display-name>] [--dir <path>] [--llm <provider>] [--llm-base-url <url>] [--llm-model <model>] [--llm-auth-header <header>] [--memory] [--yes]

Dependendo dos sinalizadores especificados, a CLI solicita que você configure seu projeto.

Esse comando cria um diretório de projeto que contém um arquivo project-config.yaml e estrutura o diretório de espaço de trabalho do seu agente em um subdiretório <project-directory>/agents/<slug>. O valor <slug> é uma versão em minúsculas e hifenizada do valor --name. O diretório do espaço de trabalho contém agent.yaml, .env e os outros arquivos específicos do agente descritos em seções futuras.

bandeira
Descrição

--template

Opcional. ID do modelo inicial. Valores suportados: hello-world-agent, hello-world-agent-adk, hello-world-agent-ts, insurance-agent, insurance-agent-adk, insurance-agent-ts ou chatbot-client. Consulte a seção Modelos suportados para obter descrições dos modelos. O padrão é insurance-agent.

--name

Nome de exibição do aplicativo. Obrigatório quando --yes está definido. Para saber os caracteres que você pode usar, consulte a seção Restrições do nome de exibição.

--dir

Opcional. Diretório do projeto de destino. Os arquivos do espaço de trabalho do seu agente estão organizados em um subdiretório agents/<slug> desse caminho. O padrão é ./<slug>.

--llm

Condicional (necessário se --yes estiver definido). Conexão LLM para o modelo inicial. Valores suportados: openai, anthropic, gemini, openrouter, openai-compatible, anthropic-compatible ou custom (configure no código).

--llm-auth-header

Condicional (necessário se --yes estiver definido e a CLI não puder inferir o cabeçalho). Cabeçalho que contém a chave de API, como authorization, api-key ou x-api-key. Válido apenas quando você usa as conexões openai-compatible e anthropic-compatible. Caso contrário, a CLI apresenta erros. Quando você usa authorization, a CLI envia a chave como Bearer <key>.

--llm-base-url

Condicional (necessário para uma conexão openai-compatible ou anthropic-compatible). URL base para uma conexão openai-compatible ou anthropic-compatible. Seu host é adicionado a network.egress.

--llm-model

Condicional (necessário para conexões OpenRouter e compatíveis). Nome do modelo ou sistema.

--memory

Opcional. Ative a memória para modelos iniciais de agente e solicite um VOYAGE_API_KEY. Quando você seleciona um fornecedor de LLM compatível, a CLI configura a extração de memória para reutilizar a conexão e a credencial LLM do agente.

--memory-only

Opcional. Organize um projeto somente de memória que gera apenas project-config.yaml e não cria um agente. Não pode ser combinado com sinalizadores --template, --llm, --llm-base-url, --llm-model, --llm-auth-header, --memory ou --open-egress.

--open-egress

Opcional. Permitir acesso de saída aberto para agente e ferramenta em vez de listar os hosts LLM selecionados. Escreve network.egress_mode: allow_all no arquivo project-config.yaml e imprime um aviso. Este modo não é o padrão. Não pode ser combinado com --memory-only ou --template chatbot-client.

--yes

Opcional. Aceite os padrões para todos os prompts opcionais, incluindo valores de variáveis de ambiente local detectados.

-h, --help

Opcional. Sinalizador de ajuda CLI padrão que exibe informações de uso para o comando.

A CLI copia o nome de exibição nos arquivos de origem gerados. O nome não pode conter os seguintes caracteres:

  • Aspas duplas (")

  • Barras invertidas (\)

  • Backtiques

  • Caracteres de controle, quebra de linha ou direção de texto

Se você inserir um nome inválido ao usar a CLI interativa, a CLI exibirá um erro e solicitará novamente. Se você passar um nome inválido para o sinalizador --name, o comando falhará com um erro que nomeia o caractere não permitido ou a categoria de caracteres.

A tabela a seguir descreve os modelos iniciais que você pode passar para o comando agentengine create:

template
Tipo
Caso de uso

hello-world-agent

Agente inicial

Um agente mínimo do Atlas Agent Engine com memória opcional.

hello-world-agent-adk

Agente inicial

Um agente mínimo criado com o Google Agent Development Kit (ADK).

hello-world-agent-ts

Agente inicial

Um agente TypeScript LangGraph mínimo que suporta a funcionalidade ser humano-in-the-loop e fusos horários IANA.

insurance-agent

Agente inicial

Um agente realista com ferramentas, políticas, declarações, memória opcional e revisão humana.

insurance-agent-adk

Agente inicial

Um agente de domínio de seguros criado com o Google ADK.

insurance-agent-ts

Agente inicial

Um agente TypeScript completo que combina um orquestrador de agente detalhados, um subagente e ferramentas suportadas por memória.

chatbot-client

Aplicativo cliente

Uma interface de bate-papo do Next.js e do Vercel AI SDK para um agente implantado existente.

Quando você escolhe uma conexão LLM no catálogo do provedor, agentengine create solicita os detalhes da conexão necessária, como uma chave de API. Se LLM_API_KEY estiver configurado em seu ambiente de shell, o comando o oferecerá como padrão. Quando você confirma o valor, o comando o grava no arquivo .env gerado como LLM_API_KEY. Você não precisa configurar este valor manualmente.

Dica

Para rotear as chamadas LLM do seu agente por meio de um gateway, consulte a seção Configuração do gateway LLM.

Quando a memória está ativada, o agentengine create detecta o VOYAGE_API_KEY do seu ambiente local e o oferece como padrão. Confirmar o valor grava no .env gerado.

Quando você executa agentengine create com o sinalizador --yes, o comando não solicita valores de ambiente detectados. Para cada opção do catálogo do fornecedor exceto custom, você deve definir LLM_API_KEY em seu ambiente antes de executar o comando. Quando você também passar --memory --yes, deverá definir VOYAGE_API_KEY em seu ambiente antes de executar o comando, ou o comando falhará.

Observação

Quando você seleciona um provedor LLM compatível, a CLI grava sua credencial LLM no arquivo .env gerado sob o nome de variável LLM_API_KEY compartilhado e usa o mesmo valor LLM_API_KEY que api_key_secret para extração de memória em project-config.yaml . Isso permite que o agente e a extração de memória compartilhem um segredo carregado. Para saber mais, consulte Adicionar memória ao seu agente.

O modelo chatbot-client gera um arquivo .env.local em vez de um arquivo .env. Antes de executar o aplicativo, você deve preencher manualmente o arquivo .env.local com os seguintes valores:

  • URL da API do seu agente implementado

  • IDdo projeto

  • ID doseu workspace

  • Seu token de acesso à conta de serviço

Após a conclusão de agentengine create, navegue até o diretório do espaço de trabalho do seu agente em <project-directory>/agents/<slug> e revise os arquivos gerados.

Todos os agentes gerados incluem a habilidade atlas-agent-engine em .agents/skills/atlas-agent-engine (para Codex, Copiot e outros agentes) ou .claude/skills/atlas-agent-engine (para laudo código).

Ao usar um modelo de início de agente , revise a origem do agente gerada e o arquivo .env para confirmar se a conexão LLM atende aos seus requisitos. O cliente LLM, o modelo, o endpoint e o comportamento de autenticação são configurados no código-fonte do agente gerado.

Para opções de catálogo que configuram uma conexão LLM, o arquivo .env gerado contém a credencial compartilhada como LLM_API_KEY. Se você escolher Manual setup, configure a conexão LLM no código do agente e adicione quaisquer segredos que o código exija ao arquivo .env. Para saber mais, consulte Configurar um gateway LLM no código.

Ao usar o modelo chatbot-client, revise o arquivo .env.local e confirme se você definiu corretamente a URL da API, a ID do projeto, a ID do espaço de trabalho e o token de acesso à conta de serviço do agente implantado. Não há nenhum arquivo agent.yaml em um aplicativo cliente de chatbot.

Observação

Os modelos são obtidos usando suas credenciais Git locais. O diretório de projeto gerado é inicializado automaticamente como um repositório Git.

Em vez de estruturar um agente usando o comando agentengine create, você mesmo pode criar os arquivos necessários. Cada agente exige os seguintes arquivos juntos em um diretório:

  • agent.yaml: Configuração do agente descrevendo como a plataforma executa seu agente

  • .env: Segredos de tempo de execução e variáveis de ambiente

  • pyproject.toml: Define os metadados do projeto Python, incluindo o campo [project].name

Este é o seu diretório de espaço de trabalho e você executa comandos agentengine a partir dele. Quando você executa posteriormente o comando agentengine init, o Atlas Agent Engine registra este diretório como um espaço de trabalho.

As etapas a seguir descrevem como configurar um agente manualmente.

1

Se você estiver começando de um diretório vazio, instale a ferramenta uv e inicialize um novo projeto:

mkdir my-agent && cd my-agent
uv init
2

O Atlas Agent Engine exige dois pacotes: agent-engine-runner-shared e agent-engine-sdk-langgraph. Execute o seguinte comando para adicioná-los ao seu projeto:

uv add agent-engine-runner-shared agent-engine-sdk-langgraph
3

Crie um arquivo agent.yaml no diretório do espaço de trabalho. Os campos entrypoint e sandboxes são obrigatórios.

A tabela a seguir descreve os campos agent.yaml disponíveis:

Campo
Obrigatório
Descrição

entrypoint

Sim

Caminho de importação do Python para a instância do aplicativo, no formato module.path:attribute.

sandboxes

Sim

Configura as sandboxes agent e tool que executam seu agente e suas ferramentas. Cada sandbox declara quais segredos e ferramentas ela pode acessar. Quando você declara sandboxes, sandboxes.agent é obrigatório e sandboxes.tool é opcional. Para saber mais sobre este campo, consulte Referência de contrato do agente.

name

No

Nome do agente usado como serviço Docker Compose e prefixo de nome de rede. Use um valor alfanumérico em minúsculas com hífens, mas não inclua hífens iniciais ou finais.

description

No

Descrição legível por humanos do agente. Use um máximo de 500 caracteres.

framework

No

Identificador de framework, como langgraph ou custom.

language

No

Idioma do agente. Os valores suportados são python e typescript. O padrão é python quando omitido.

version

No

Versão do agente. Aceita um valor semver rigoroso, auto para delegar ao manifesto de idioma (pyproject.toml ou package.json), ou um valor vazio para um agente não versionado.

mcp

No

Configuração remota do servidor MCP. Para saber mais, consulte Usar servidores MCP remotos.

agent_card

No

Recursos do agente exibidos na interface do usuário da plataforma. O campo aceita uma string summary e uma lista capabilities de strings.

services

No

Obsoleto. Mova substituições da porta de serviço local para um arquivo dev.yaml no mesmo diretório que o arquivo agent.yaml. Para saber mais, consulte Configurar configurações de desenvolvimento local.

features

No

Sinalizadores de recursos. O bloco aceita guardrails e memory como valores booleanos.

artifact_repositories

No

Declara registros de pacote privados para compilações gerenciadas. Para saber mais,consulte Esquema do Agente YAML.

O exemplo a seguir mostra uma configuração agent.yaml mínima:

entrypoint: my_agent.graph:app
name: my-agent
framework: langgraph
sandboxes:
agent:
secrets: ["*"]
tools: []
tool:
secrets:
- ANTHROPIC_API_KEY
tools:
- invoke_llm
4

Crie um arquivo .env no diretório do espaço de trabalho para fornecer os segredos exigidos pelo código do agente . Adicione as variáveis secretas exigidas pelo seu cliente LLM a este arquivo.

Configure o provedor LLM, modelo, endpoint e comportamento de autenticação no código do agente , não no agent.yaml. O arquivo .env é apenas para segredos, como chaves de API. Para saber mais sobre o arquivo agent.yaml, consulte o guia Referência de contrato do agente.

A tabela a seguir lista as variáveis obrigatórias e opcionais para um arquivo .env:

Variável
Obrigatório
Descrição

MONGODB_URI

Sim

string de conexão do MongoDB

<PROVIDER>_API_KEY

No

Chave do provedor LLM. A plataforma não exige um fornecedor específico nem valida credenciais de LLM, mas seu agente falha no tempo de execução sem um. As chaves comuns incluem OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY e CEREBRAS_API_KEY.

Importante

O arquivo .env é a única fonte de segredos validados no tempo de execução. As variáveis de ambiente do host são intencionalmente ignoradas pelo contêiner. O container só monta .env no tempo de execução, portanto, qualquer chave ausente do arquivo também estará ausente dentro do container. Não confirme nenhum segredo real em seu sistema de controle de versão.

A forma como seu agente faz e autentica chamadas LLM é determinada inteiramente em seu código. As instruções para definir variáveis de ambiente ou selecionar opções de LLM no agentengine create se aplicam somente aos modelos iniciais de exemplo . O Atlas Agent Engine não hospeda nem gerencia sua conexão LLM.

Há duas maneiras de configurar um gateway LLM:

  • Use um modelo inicial para estruturar uma conexão LLM funcional em um agente gerado.

  • Configure o gateway no código, que funciona para qualquer agente, inclusive aqueles que você não constrói a partir de um modelo inicial.

Ao executar o comando agentengine create, o comando solicita que você escolha uma conexão LLM, semelhante ao exemplo a seguir:

Which LLM connection do you want to use?
1) OpenAI
2) Anthropic
3) Google Gemini
4) OpenRouter
5) OpenAI-compatible - AWS Bedrock, Azure Foundry
6) Anthropic-compatible - AWS Bedrock, Azure Foundry
7) Manual setup - implement the LLM client in code

Se você escolher um fornecedor deste catálogo, o comando agentengine create solicitará os detalhes exigidos pela conexão, que poderão incluir o seguinte:

  • URL base

  • Nome do modelo ou sistema

  • Chave API

  • Cabeçalho de autenticação para conexões quando o host não é reconhecido

O comando grava o cliente LLM selecionado na origem do agente gerada e armazena a credencial compartilhada no arquivo .env gerado como LLM_API_KEY.

O comando também solicita que você escolha como o Agente e a Ferramenta acessam hosts externos:

  • Aplique a configuração network.egress recomendada. Se nenhum host de gateway estiver disponível, como quando você escolhe Manual setup (custom), essa opção instrui você a configurar a saída do LLM posteriormente.

  • Permitir todo o acesso de saída.

Importante

O provedor selecionado configura somente o projeto inicial criado por este comando agentengine create. Ele não configura automaticamente outros agentes que você cria posteriormente.

Se sua conexão LLM não for uma das opções listadas, escolha Manual setup e configure o gateway no código. Esta opção cria um stub de construtor de modelo para que você possa configurar a conexão no código do agente .

Para conectar um LLM ao seu agente, crie um modelo específico da framework e passe a instância do modelo resultante para o método app.llm(...) a partir do ponto de entrada do seu agente. Você pode colocar o código de construção de modelo em qualquer arquivo em seu código de agente , mas os modelos iniciais colocam um stub em um arquivo específico do idioma. Se você não usar um modelo inicial, poderá definir o modelo em outro lugar, desde que app.llm(...) receba um objeto de modelo compatível.

A tabela a seguir descreve as convenções para configurar um gateway LLM no código em diferentes tempos de execução:

Tempo de execução
arquivo
O que você devolve

Python LangGraph

src/<module>/llm.py (build_llm)

A LangChain BaseChatModel

LangGraph TypeScript

src/<module>/llm.ts (buildLLM)

A LangChain BaseChatModel

ADK Python

src/<module>/llm.py (build_llm)

Um ADK BaseLlm (Gemini, LiteLlm e assim por diante)

O construtor é o que define o endpoint, cabeçalhos de autenticação e nome do modelo. Por exemplo, o modelo LangGraph Python insurance-agent define build_llm() em src/<module>/llm.py e retorna um LangChain BaseChatModel. O ponto de entrada do agente importa build_llm() e passa o modelo retornado para app.llm(...).

Permita o host do gateway para que seu agente possa acessá-lo. Adicione o host do gateway personalizado e a porta ao bloco network.egress no arquivo agent.yaml. Por exemplo, para adicionar gateway.example.com:443 à lista de permissões de saída existente da sandbox de ferramenta, execute o seguinte comando:

agentengine agent egress add --component tool gateway.example.com:443

Para saber mais sobre como configurar a saída de rede para seu agente, consulte o guia Introdução à saída de rede.

Depois de estruturar seu agente, você pode registrá- agente e gerar arquivos de desenvolvimento local usando o comando agentengine init. Antes de executar este comando, execute as seguintes tarefas de pré-requisito:

No diretório do espaço de trabalho do agente , execute o seguinte comando para registrar o agente e gerar arquivos locais:

agentengine init [--workspace-id <id>] [--project-id <id>] [--org-id <id>] [--base-url <url>] [--context <name>]

Este comando seleciona ou cria interativamente uma organização e projeto, gera arquivos de desenvolvimento local e registra seu agente como um espaço de trabalho no Atlas Agent Engine.

bandeira
Descrição

--workspace-id

(Opcional) Vincula este diretório a um espaço de trabalho existente em vez de criar um.

--project-id

(Opcional) ID do projeto para usar sem prompts.

--org-id

(Opcional) ID da organização para usar sem prompts.

--base-url

(Opcional) Substitui o URL base da API do Atlas Agent Engine.

--context

(Opcional) Contexto local nomeado para criar ou atualizar.

Quando você executa o agentengine init, a CLI orienta você nas seguintes etapas:

  1. Lista suas organizações com um menu numerado, incluindo uma opção "Create a new organization...". Se não existirem organizações, a CLI solicitará que você insira um nome para criar uma.

  2. Lista seus projetos com um menu numerado depois que você escolhe uma organização, incluindo uma opção "Create a new project...". Se não existir nenhum projeto, a CLI solicitará que você insira um nome para criar um.

  3. Salva o projeto selecionado como seu project_id ativo no estado de autenticação local.

  4. Gera os seguintes arquivos dev locais em seu diretório de agente :

    • docker-compose.yml

    • .agentengine/Dockerfile

    • .agentengine/entrypoint.py

    • .dockerignore

    • .gitignore

  5. Registra o agente como um espaço de trabalho na plataforma e cria o arquivo .agentengine/state.json com o workspace_id, org_id e project_id especificado.

Observação

Se o arquivo .agentengine/state.json já existir, a CLI pulará o registro do espaço de trabalho. Execute novamente o comando agentengine init para registrar novamente o agente sem substituir os arquivos gerados. Se o nome do espaço de trabalho já existir na plataforma, o workspace_id existente será reutilizado.

As seções a seguir descrevem como iniciar o desenvolvimento local para cada tipo de modelo. Para saber mais sobre desenvolvimento e testes locais, consulte Executar e testar seu agente localmente e Testar seu agente.

Se você estiver usando um modelo TypeScript, instale as dependências do Node.js antes de iniciar seu agente localmente:

pnpm install

Depois de revisar seu agente com andaime, execute agentengine dev up para iniciar seu agente localmente:

agentengine dev up

Após definir os valores necessários no arquivo .env.local, instale as dependências e inicie o servidor de desenvolvimento:

pnpm install
pnpm run dev

Abra o http://localhost:3000 no seu navegador para usar a interface do usuário de bate-papo.