Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Crear un proyecto

En esta guía, aprenderá cómo crear y registrar un nuevo proyecto de agente utilizando los siguientes comandos:

  1. agentengine create: Obtiene una plantilla de inicio, reescribe los campos de identidad del proyecto y escribe un archivo de entorno personalizado que utiliza sus valores de configuración.

  2. agentengine init: Registra su agente en Atlas Agent Engine y genera archivos de desarrollo locales.

Si prefiere crear los archivos del proyecto manualmente en lugar de utilizar una plantilla de inicio, consulte la sección "Configurar un agente manualmente".

Esta sección muestra cómo crear la estructura básica de un nuevo proyecto utilizando el comando agentengine create.

El comando agentengine create no requiere agentengine auth login y no registra su proyecto en el motor de agentes de Atlas. Puede personalizar manualmente los archivos de andamiaje antes de ejecutar y probar su agente localmente.

Utilice el siguiente comando para generar la estructura básica de un nuevo proyecto:

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]

Dependiendo de las opciones que especifique, la interfaz de línea de comandos le pedirá que configure su proyecto.

Este comando crea un directorio de proyecto que contiene un archivo project-config.yaml y genera la estructura del directorio de espacio de trabajo de su agente en un subdirectorio <project-directory>/agents/<slug>. El valor <slug> es una versión en minúsculas y con guiones del valor --name. El directorio de espacio de trabajo contiene agent.yaml, .env y los demás archivos específicos del agente que se describen en secciones posteriores.

Flag
Descripción

--template

Opcional. ID de la plantilla inicial. Valores admitidos: hello-world-agent, hello-world-agent-adk, hello-world-agent-ts, insurance-agent, insurance-agent-adk, insurance-agent-ts o chatbot-client. Consulte la sección Plantillas admitidas para obtener descripciones de las plantillas. El valor predeterminado es insurance-agent.

--name

Nombre para mostrar de la aplicación. Obligatorio cuando se establece --yes. Para conocer los caracteres que puede usar, consulte la sección Restricciones del nombre para mostrar.

--dir

Opcional. Directorio del proyecto de destino. Los archivos del espacio de trabajo de su agente se generan en un subdirectorio agents/<slug> de esta ruta. Por defecto, se utiliza ./<slug>.

--llm

Condicional (obligatorio si --yes está configurado). Conexión LLM para la plantilla de inicio. Valores admitidos: openai, anthropic, gemini, openrouter, openai-compatible, anthropic-compatible o custom (configurar en el código).

--llm-auth-header

Condicional (obligatorio si --yes está configurado y la CLI no puede inferir el encabezado). Encabezado que contiene la clave API, como authorization, api-key o x-api-key. Solo válido cuando se utilizan las conexiones openai-compatible y anthropic-compatible. De lo contrario, la CLI genera un error. Cuando se utiliza authorization, la CLI envía la clave como Bearer <key>.

--llm-base-url

Condicional (obligatorio para una conexión openai-compatible o anthropic-compatible). URL base para una conexión openai-compatible o anthropic-compatible. Su host se agrega a network.egress.

--llm-model

Condicional (obligatorio para OpenRouter y conexiones compatibles). Nombre del modelo o de la implementación.

--memory

Opcional. Habilite la memoria para las plantillas de inicio del agente y solicite un VOYAGE_API_KEY. Al seleccionar un proveedor LLM compatible, la CLI configura la extracción de memoria para reutilizar la conexión y las credenciales LLM del agente.

--memory-only

Opcional. Crea un proyecto que solo utilice memoria y genere únicamente project-config.yaml, sin crear ningún agente. No se puede combinar con las opciones --template, --llm, --llm-base-url, --llm-model, --llm-auth-header, --memory o --open-egress.

--open-egress

Opcional. Permite el acceso saliente abierto para el agente y la herramienta en lugar de listar los hosts LLM seleccionados. Escribe network.egress_mode: allow_all en el archivo project-config.yaml e imprime una advertencia. Este modo no es el predeterminado. No se puede combinar con --memory-only ni --template chatbot-client.

--yes

Opcional. Acepte los valores predeterminados para todas las solicitudes opcionales, incluidos los valores detectados de las variables de entorno locales.

-h, --help

Opcional. Indicador de ayuda estándar de la interfaz de línea de comandos que muestra información de uso para el comando.

La interfaz de línea de comandos (CLI) copia el nombre para mostrar en los archivos fuente generados. El nombre no puede contener los siguientes caracteres:

  • Comillas dobles (")

  • Barras invertidas (\)

  • acentos graves

  • Caracteres de control, salto de línea o dirección de texto

Si introduce un nombre no válido al usar la interfaz de línea de comandos interactiva, esta mostrará un error y le pedirá que lo introduzca de nuevo. Si pasa un nombre no válido al indicador --name, el comando fallará con un error que indicará el carácter o la categoría de caracteres no permitidos.

La siguiente tabla describe las plantillas de inicio que puede pasar al comando agentengine create:

Template
Tipo
Caso de uso

hello-world-agent

Agente de inicio

Un agente mínimo de Atlas Agent Engine con memoria opcional.

hello-world-agent-adk

Agente de inicio

Un agente mínimo creado con el kit de desarrollo de agentes de Google (ADK).

hello-world-agent-ts

Agente de inicio

Un agente mínimo de TypeScript LangGraph que admite la funcionalidad de intervención humana y las zonas horarias de IANA.

insurance-agent

Agente de inicio

Un agente realista con herramientas, políticas, reclamaciones, memoria opcional y revisión humana.

insurance-agent-adk

Agente de inicio

Un agente del sector de seguros creado con el kit de desarrollo de anuncios de Google (Google ADK).

insurance-agent-ts

Agente de inicio

Un agente TypeScript con todas las funciones que combina un orquestador de agentes avanzado, un subagente y herramientas basadas en memoria.

chatbot-client

Aplicación cliente

Interfaz de chat basada en Next.js y el SDK de IA de Vercel para un agente ya implementado.

Al seleccionar una conexión LLM del catálogo de proveedores, agentengine create le solicita los detalles de conexión necesarios, como una clave API. Si LLM_API_KEY está configurado en su entorno de shell, el comando lo ofrece como valor predeterminado. Al confirmar el valor, el comando lo escribe en el archivo .env generado como LLM_API_KEY. No es necesario configurar este valor manualmente.

Tip

Para enrutar las llamadas LLM de su agente a través de una puerta de enlace, consulte la sección Configuración de la puerta de enlace LLM.

Cuando la memoria está habilitada, agentengine create detecta VOYAGE_API_KEY de su entorno local y lo ofrece como valor predeterminado. Al confirmar el valor, este se escribe en el .env generado.

Al ejecutar agentengine create con la bandera --yes, el comando no solicita valores de entorno detectados. Para todas las opciones del catálogo de proveedores, excepto custom, debe configurar LLM_API_KEY en su entorno antes de ejecutar el comando. Si también pasa --memory --yes, debe configurar VOYAGE_API_KEY en su entorno antes de ejecutar el comando; de lo contrario, el comando fallará.

Nota

Al seleccionar un proveedor LLM compatible, la CLI escribe su credencial LLM en el archivo .env generado bajo el nombre de variable compartido LLM_API_KEY y utiliza el mismo valor LLM_API_KEY que api_key_secret para la extracción de memoria en project-config.yaml. Esto permite que el agente y la extracción de memoria compartan un secreto cargado. Para obtener más información, consulte Agregar memoria a su agente.

La plantilla chatbot-client genera un archivo .env.local en lugar de un archivo .env. Antes de ejecutar la aplicación, debe completar manualmente el archivo .env.local con los siguientes valores:

Una vez que agentengine create se complete, navegue hasta el directorio del espacio de trabajo de su agente en <project-directory>/agents/<slug> y revise los archivos generados.

Todos los agentes generados incluyen la habilidad atlas-agent-engine en .agents/skills/atlas-agent-engine (para Codex, Copilot y otros agentes) o .claude/skills/atlas-agent-engine (para Claude Code).

Al usar una plantilla de agente inicial, revise el código fuente del agente generado y el archivo .env para confirmar que la conexión LLM cumple con sus requisitos. El cliente LLM, el modelo, el punto final y el comportamiento de autenticación se configuran en el código fuente del agente generado.

Para las opciones de catálogo que configuran una conexión LLM, el archivo .env generado contiene la credencial compartida como LLM_API_KEY. Si elige Manual setup, configure la conexión LLM en el código de su agente y agregue los secretos que dicho código requiera al archivo .env. Para obtener más información, consulte Configurar una puerta de enlace LLM en el código.

Al usar la plantilla chatbot-client, revise el archivo .env.local y confirme que ha configurado correctamente la URL de la API, el ID del proyecto, el ID del espacio de trabajo y el token de acceso a la cuenta de servicio de su agente implementado. No existe un archivo agent.yaml en la aplicación cliente del chatbot.

Nota

Las plantillas se obtienen utilizando tus credenciales locales de Git. El directorio del proyecto generado se inicializa automáticamente como un repositorio Git.

En lugar de generar un agente mediante el comando agentengine create, puede crear usted mismo los archivos necesarios. Cada agente requiere los siguientes archivos juntos en un mismo directorio:

  • agent.yaml: Configuración del agente que describe cómo la plataforma ejecuta su agente

  • .env: Secretos de tiempo de ejecución y variables de entorno

  • pyproject.toml: Define los metadatos del proyecto Python, incluido el campo [project].name.

Este directorio es su directorio de espacio de trabajo, y desde él ejecuta los comandos agentengine. Cuando posteriormente ejecuta el comando agentengine init, el motor del agente de Atlas registra este directorio como un espacio de trabajo.

Los siguientes pasos describen cómo configurar un agente manualmente.

1

Si parte de un directorio vacío, instale la herramienta uv e inicialice un nuevo proyecto:

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

El motor de agentes de Atlas requiere dos paquetes: agent-engine-runner-shared y agent-engine-sdk-langgraph. Ejecute el siguiente comando para agregarlos a su proyecto:

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

Crea un archivo agent.yaml en el directorio de tu espacio de trabajo. Los campos entrypoint y sandboxes son obligatorios.

La siguiente tabla describe los campos agent.yaml disponibles:

Campo
Requerido
Descripción

entrypoint

Sí

Ruta de importación de Python a la instancia de la aplicación, en formato module.path:attribute.

sandboxes

Sí

Configura los entornos aislados agent y tool que ejecutan tu agente y sus herramientas. Cada entorno aislado declara a qué secretos y herramientas puede acceder. Al declarar sandboxes, sandboxes.agent es obligatorio y sandboxes.tool es opcional. Para obtener más información sobre este campo, consulta la Referencia del contrato del agente.

name

No

El nombre del agente se utiliza como prefijo del servicio y del nombre de red de Docker Compose. Utilice un valor alfanumérico en minúsculas con guiones, pero no incluya guiones al principio ni al final.

description

No

Descripción del agente legible para humanos. Utilice un máximo de 500 caracteres.

framework

No

Identificador del marco de trabajo, como langgraph o custom.

language

No

Idioma del agente. Los valores admitidos son python y typescript. Si se omite, se utiliza python por defecto.

version

No

Versión del agente. Acepta un valor semver estricto, auto para delegar en el manifiesto del lenguaje (pyproject.toml o package.json), o un valor vacío para un agente sin versión.

mcp

No

Configuración remota del servidor MCP. Para obtener más información, consulte Uso de servidores MCP remotos.

agent_card

No

Capacidades del agente que se muestran en la interfaz de usuario de la plataforma. El campo acepta una cadena summary y una lista de cadenas capabilities.

services

No

Obsoleto. Mueva las anulaciones de puertos de servicio local a un archivo dev.yaml en el mismo directorio que el archivo agent.yaml. Para obtener más información, consulte Configurar los ajustes de desarrollo local.

features

No

Indicadores de características. El bloque acepta guardrails y memory como valores booleanos.

artifact_repositories

No

Declara registros de paquetes privados para compilaciones gestionadas. Para obtener más información, consulte el esquema YAML del agente.

El siguiente ejemplo muestra una configuración mínima de agent.yaml:

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

Crea un archivo .env en el directorio de tu espacio de trabajo para proporcionar los secretos que requiere el código de tu agente. Agrega las variables secretas que requiere tu cliente LLM a este archivo.

Configure el proveedor LLM, el modelo, el punto final y el comportamiento de autenticación en el código de su agente, no en agent.yaml. El archivo .env se utiliza exclusivamente para información confidencial, como claves API. Para obtener más información sobre el archivo agent.yaml, consulte la guía de referencia del contrato del agente.

La siguiente tabla enumera las variables obligatorias y opcionales para un archivo .env:

Variable
Requerido
Descripción

MONGODB_URI

Sí

Cadena de conexión de MongoDB

<PROVIDER>_API_KEY

No

Clave del proveedor LLM. La plataforma no requiere un proveedor específico ni valida las credenciales LLM, pero si no lo tiene, su agente fallará durante la ejecución. Las claves comunes incluyen OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY y CEREBRAS_API_KEY.

Importante

El archivo .env es la única fuente de secretos que se validan en tiempo de ejecución. El contenedor ignora intencionadamente las variables de entorno del host. El contenedor solo monta .env en tiempo de ejecución, por lo que cualquier clave que falte en el archivo también faltará dentro del contenedor. No guarde ningún secreto real en su sistema de control de versiones.

La forma en que su agente realiza y autentica las llamadas LLM se determina completamente en su código. Las instrucciones para configurar variables de entorno o seleccionar opciones LLM en agentengine create se aplican únicamente a las plantillas de ejemplo. El motor del agente Atlas no aloja ni gestiona su conexión LLM.

Existen dos maneras de configurar una puerta de enlace LLM:

Cuando ejecuta el comando agentengine create, el comando le solicita que elija una conexión LLM, similar al siguiente ejemplo:

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

Si elige un proveedor de este catálogo, el comando agentengine create le pedirá los detalles necesarios para la conexión, que podrían incluir lo siguiente:

  • URL base

  • Nombre del modelo o de la implementación

  • Clave de API

  • Encabezado de autenticación para conexiones cuando el host no es reconocido.

El comando escribe el cliente LLM seleccionado en la fuente del agente generado y almacena la credencial compartida en el archivo .env generado como LLM_API_KEY.

El comando también le solicita que elija cómo el Agente y la Herramienta acceden a los hosts externos:

  • Aplique la configuración network.egress recomendada. Si no hay ningún host de puerta de enlace disponible, como cuando elige Manual setup (custom), esta opción le indica que configure la salida LLM más adelante.

  • Permitir todo el acceso saliente.

Importante

El proveedor que seleccione configura únicamente el proyecto inicial creado mediante el comando agentengine create. No configura automáticamente otros agentes que cree posteriormente.

Si su conexión LLM no aparece entre las opciones listadas, seleccione Manual setup y configure la puerta de enlace mediante código. Esta opción crea un modelo auxiliar para que pueda configurar la conexión en el código de su agente.

Para conectar un LLM a tu agente, crea un modelo específico del framework y pasa la instancia del modelo resultante al método app.llm(...) desde el punto de entrada de tu agente. Puedes colocar el código de creación del modelo en cualquier archivo del código de tu agente, pero las plantillas de inicio colocan un fragmento de código en un archivo específico del lenguaje. Si no utilizas una plantilla de inicio, puedes definir el modelo en otro lugar, siempre que app.llm(...) reciba un objeto de modelo compatible.

La siguiente tabla describe las convenciones para configurar una puerta de enlace LLM en el código en diferentes entornos de ejecución:

Tiempo de ejecución
Archivo
Lo que devuelvas

LangGraph Python

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

Una cadena de Lang BaseChatModel

LangGraph TypeScript

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

Una cadena de Lang BaseChatModel

ADK Python

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

Un ADK BaseLlm (Gemini, LiteLlm, y así sucesivamente)

El constructor es el que establece el punto final, los encabezados de autenticación y el nombre del modelo. Por ejemplo, la plantilla LangGraph Python insurance-agent define build_llm() en src/<module>/llm.py y devuelve un LangChain BaseChatModel. El punto de entrada del agente importa build_llm() y pasa el modelo devuelto a app.llm(...).

Permita el host de la puerta de enlace para que su agente pueda acceder a él. Agregue el host y el puerto de la puerta de enlace personalizados al bloque network.egress en el archivo agent.yaml. Por ejemplo, para agregar gateway.example.com:443 a la lista de permisos de salida existente del entorno aislado de la herramienta, ejecute el siguiente comando:

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

Para obtener más información sobre cómo configurar la salida de red para su agente, consulte la guía "Primeros pasos con la salida de red".

Después de configurar su agente, puede registrarlo y generar archivos de desarrollo locales mediante el comando agentengine init. Antes de ejecutar este comando, realice las siguientes tareas previas:

Desde el directorio del espacio de trabajo de su agente, ejecute el siguiente comando para registrar el agente y generar archivos locales:

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

Este comando selecciona o crea interactivamente una organización y un proyecto, genera archivos de desarrollo locales y registra su agente como un espacio de trabajo en el motor de agentes de Atlas.

Flag
Descripción

--workspace-id

(Opcional) Vincula este directorio a un espacio de trabajo existente en lugar de crear uno nuevo.

--project-id

(Opcional) ID del proyecto que se utilizará sin que se solicite.

--org-id

(Opcional) ID de la organización que se utilizará sin necesidad de confirmación.

--base-url

(Opcional) Sobrescribe la URL base de la API de Atlas Agent Engine.

--context

(Opcional) Contexto local con nombre para crear o actualizar.

Cuando ejecutas agentengine init, la interfaz de línea de comandos te guía a través de los siguientes pasos:

  1. Muestra una lista de tus organizaciones con un menú numerado, que incluye la opción "Create a new organization...". Si no existen organizaciones, la interfaz de línea de comandos te pide que introduzcas un nombre para crear una.

  2. Una vez que seleccione una organización, verá una lista de sus proyectos en un menú numerado, que incluye la opción "Create a new project...". Si no existen proyectos, la interfaz de línea de comandos le pedirá que ingrese un nombre para crear uno.

  3. Guarda el proyecto seleccionado como su project_id activo en el estado de autenticación local.

  4. Genera los siguientes archivos de desarrollo locales en el directorio de tu agente:

    • docker-compose.yml

    • .agentengine/Dockerfile

    • .agentengine/entrypoint.py

    • .dockerignore

    • .gitignore

  5. Registra el agente como un espacio de trabajo en la plataforma y crea el archivo .agentengine/state.json con los parámetros workspace_id, org_id y project_id especificados.

Nota

Si el archivo .agentengine/state.json ya existe, la CLI omite el registro del espacio de trabajo. Vuelva a ejecutar el comando agentengine init para registrar nuevamente el agente sin sobrescribir los archivos generados. Si el nombre del espacio de trabajo ya existe en la plataforma, se reutiliza el archivo workspace_id existente.

Las siguientes secciones describen cómo iniciar el desarrollo local para cada tipo de plantilla. Para obtener más información sobre el desarrollo y las pruebas locales, consulte Ejecutar y probar el agente localmente y Probar el agente.

Si utiliza una plantilla de TypeScript, instale las dependencias de Node.js antes de iniciar su agente localmente:

pnpm install

Después de revisar su agente con estructura básica, ejecute agentengine dev up para iniciar su agente localmente:

agentengine dev up

Después de configurar los valores necesarios en el archivo .env.local, instale las dependencias e inicie el servidor de desarrollo:

pnpm install
pnpm run dev

Abre http://localhost:3000 en tu navegador para usar la interfaz de chat.