# AX-SYS-31: Ofrece a los agentes un sandbox que se comporte como producción

> Recovery and reliability · intermediate · AX-SYS-31

Ofrece un entorno aislado con la misma API y claves que funcionan, donde un agente pueda ensayar escrituras, pagos y acciones destructivas sin efecto real, y haz que sea imposible confundir pruebas con producción.

## Por qué

Los agentes aprenden una API llamándola. Si el único entorno es producción, cada experimento es un cobro real, un correo real o un borrado real, y lo prudente es no dejar que el agente pruebe nada. Un sandbox elimina ese dilema. Stripe lo define como un entorno de pruebas aislado donde los pagos no los procesan las redes de tarjetas ni los proveedores de pago, y ahora los crea directamente para agentes: su documentación indica a los agentes de código que ejecuten `stripe sandbox create` para obtener un sandbox anónimo con claves API que funcionan, sin registro de cuenta (la misma idea que [AX-SYS-43](ax-sys-43-design-agent-first-onboarding.mdx)). El sandbox solo sirve si se comporta como producción, con los mismos endpoints, errores y webhooks, para que lo que el agente aprende ahí siga siendo válido. También tiene que ser inconfundible: las claves de prueba de Stripe empiezan por `sk_test_` y las de producción por `sk_live_`, así que ni el agente ni quien lea un registro puede confundirlas, y los objetos de la API llevan un campo `livemode`. Mathias Biilmann incluye "¿Ofreces sandboxes y entornos?" entre las preguntas de orquestación que hace a los productos pensados para agentes.

## Haz

Ofrece un sandbox con la API de producción, credenciales de prueba distintas y un indicador tipo `livemode` en cada respuesta.

## No hagas

Obligar a los agentes a probar contra producción, ni dejar que el sandbox se aleje tanto del comportamiento real que enseñe algo equivocado.

## Artefacto

```bash
# Crea un sandbox anónimo con claves que funcionan, sin registro
stripe sandbox create --help
```

```json
{ "id": "pi_3Mtw...", "object": "payment_intent", "amount": 2000, "livemode": false }
```

Las claves de prueba empiezan por `sk_test_` y las de producción por `sk_live_`.

## Fuentes

1. [Stripe Docs: Sandboxes](https://docs.stripe.com/sandboxes): A sandbox is an isolated test environment: payments created there aren't processed by card networks or payment providers. Coding agents should install the Stripe CLI and run stripe sandbox create --help to provision an anonymous Stripe sandbox with working API keys. No account registration required
2. [Stripe Docs: API keys](https://docs.stripe.com/keys): Sandbox keys start with pk_test_, rk_test_ and sk_test_; live mode keys start with pk_live_, rk_live_ and sk_live_
3. [Stripe API Reference: The Event object](https://docs.stripe.com/api/events/object): livemode (boolean): if the object exists in live mode, the value is true; if the object exists in test mode, the value is false
4. [Mathias Biilmann: One Year of AX](https://biilmann.blog/articles/one-year-of-ax/): Among the questions of the Orchestration pillar: Can you trigger agent runs from your product? Can you pass the right context along? Do you offer sandboxes and environments?

---
Source: Agent Experience Principles (axprinciples.com)