Lección 20: Empaquetar, desplegar y cerrar

Empaqueta un .bxa, envíalo a un destino real, y hacia dónde seguir desde aquí.

En esta página

Empaquetar, desplegar y cerrar

Has construido un agente con tools, skills, subagentes, una ruta HTTP, una conexión con una plataforma de chat, una UI web, una programación y una suite de pruebas. Esta última lección lo publica.

La cadena, de principio a fin

flowchart LR
    P["your project"] -->|"bxAgents build"| B[".build/app/<br/>a plain ColdBox app"]
    B -->|"bxAgents package"| A["dist/name-version.bxa<br/>+ .sha256 + redacted manifest.json"]
    A -->|"bxAgents deploy"| T["a target:<br/>local / ssh / ftp / sftp<br/>docker / digitalocean"]
    T --> RUN["boxlang-miniserver runs the unzipped app"]
    ENV["environment variables"] -->|"read at RUNTIME by bx-ai"| RUN

    style A fill:#eaf6ec,stroke:#155724
    style ENV fill:#fff3cd,stroke:#856404

Los secretos no entran nunca en el artefacto, en ningún paso - los .env y demás archivos ocultos se excluyen del zip incondicionalmente, y el manifiesto se redacta además de no llevar ninguno. Cada clave de API, token y contraseña se resuelve desde una variable de entorno real, en vivo, en tiempo de ejecución.

Empaquetar

bxAgents package --version=1.0.0

Comprime .build/app/ en dist/{agentName}-{version}.bxa, una suma de comprobación .sha256, y un manifest.json redactado. Empaquetar dos veces sobre el mismo build produce bytes de zip idénticos - útil para verificar que un artefacto construido en CI coincide con uno construido localmente. Un .bxaignore opcional (un patrón glob por línea) excluye rutas adicionales.

Desplegar

bxAgents deploy --destination=/path/to/somewhere   # local, no deploy/ folder needed
bxAgents deploy --name=production                  # any target, via deploy/production.bx

Seis destinos intercambiables: local (copiar el .bxa más reciente), ssh (scp más un reinicio opcional), docker (construir/publicar una imagen), digitalocean (App Platform), y ftp/sftp. Todos los destinos resuelven las credenciales únicamente desde variables de entorno - nunca desde la propia configuración de deploy/*.

// deploy/production.bx
class {
	function configure() {
		return {
			target       : "digitalocean",
			appName      : "my-agent",
			registry     : { type : "docr", repository : "myorg/my-agent" },
			envs         : [ { key : "OPENAI_API_KEY", scope : "RUN_TIME", type : "SECRET" } ]
		};
	}
}

Lo que registró cada build: el manifiesto

bxAgents inspect imprime de forma legible .build/manifest.json sin reconstruir:

bxAgents inspect
bxAgents inspect --json

Es un registro sellado con hashes de exactamente qué entró en el build - nombre del agente, modelo, entorno, y una entrada por cada archivo descubierto con un hash de contenido SHA-256. Esto es lo que hace que reconstruir un proyecto sin cambios sea idéntico byte a byte, la idea que conociste por primera vez en la Lección 2.

Limpiar

bxAgents clean

Elimina solo .build/ y dist/ - tus convenciones fuente no se tocan nunca.

Todos los verbos, en un solo sitio

A lo largo de este curso has usado new, build, test, chat, invoke, serve, package, deploy, inspect, clean y hash-password. El duodécimo verbo, doctor, es al que recurrirás cuando algo no funcione - comprueba tu versión de BoxLang, si bx-ai está cargado, si se encuentra Agent.bx y si el proyecto valida, sin necesitar un build previo. Consulta la Referencia de la CLI para cada flag de cada uno de ellos.

Hacia dónde seguir desde aquí

Pasaste de una terminal vacía a un agente probado, empaquetado y desplegable, con tools, skills, subagentes, una conexión con una plataforma de chat, una UI de navegador y una programación - en veinte lecciones. Todo lo que venga a partir de aquí es aplicar estas mismas convenciones a lo que realmente quieras construir.

Enhorabuena, y bienvenido a BxAgents.

Editar esta página Descargar Markdown Última actualización Sep 17, 2026, 5:15:06 PM
Lesson 20 of 20 - Introduction to BxAgents