Saltar al contenido

Deep Dives

Deep diveArtículoFunctionsAI AgentHerramientasMcpGithub

Separa la regla de negocio del prompt de tu agente

Una política de crédito, descuentos o elegibilidad puede vivir como código en GitHub y ejecutarse dentro del flujo como una Function. Así puedes cambiar y probar la regla por separado, y reconstruir después qué versión estaba vigente.

Riesgo define que el tope del microcrédito sube de 150 a 200 dólares. La regla que aplica ese tope está escrita dentro del prompt de tu agente, entre las instrucciones que dicen cómo saludar, cómo pedir el documento y cómo explicar un rechazo.

Meses después llega una consulta sobre una solicitud concreta: qué política estaba vigente cuando se evaluó, quién la cambió por última vez, qué se probó antes de publicarla. Para responder tienes que reconstruir el estado de esa regla en una fecha. Si la política y las instrucciones de conversación son el mismo texto, cada edición entra a la misma línea de tiempo, y distinguir un ajuste de redacción de un cambio de política queda a criterio de quien lea el historial.

Qué reglas escribir aparte

Versionar el prompt completo no separa el historial de la regla del historial de las instrucciones de conversación. Las dos siguen compartiendo archivo, autor y commit, aunque ese archivo esté en un repositorio.

No toda instrucción necesita separarse. La pregunta útil es si el resultado de esa regla tiene que poder comprobarse, y si su cambio tiene que poder revisarse o reconstruirse más adelante. Un monto máximo, un criterio de elegibilidad o un porcentaje de descuento cumplen las dos condiciones. Una instrucción sobre cómo saludar o pedir un dato puede seguir dentro del prompt.

Si necesitas comprobar el resultado o reconstruir el cambio, escribe la regla como lógica explícita. Así puedes probarla y desplegarla por separado, y su historial queda registrado como un cambio propio.

Dónde vive la regla y cómo se ejecuta

En un repositorio, la política entra al mismo circuito que cualquier otro cambio de software: puedes ver qué cambió, quién lo hizo y conservar su historial. Quién hace esa revisión y cómo se registra la aprobación del negocio lo define cada organización. La regla queda disponible para una revisión separada del prompt.

Jelou Functions hace que ese archivo corra dentro del flujo. Una Function es código TypeScript que despliegas y el agente invoca como herramienta. Recibe los datos que el flujo ya consultó, aplica la política y devuelve una decisión estructurada. En este patrón la Function no consulta nada por su cuenta, y por eso puedes ejecutarla contra datos que escribes tú.

No inventa la regla: ejecuta la que tu empresa ya decidió. En el ejemplo que seguimos, la política entera son tres constantes:

La política
const MAX_AMOUNT = 150;
const MIN_MONTHS = 3;
const MAX_MORA = 15;
El index.ts del repositorio abierto en tres bloques: las constantes de la política, el input con el monto pedido y los datos del cliente, y el output con la decisión y el monto aprobado
La política, los datos que entran y la decisión que sale.

La respuesta trae la decisión y las razones que la sostienen. El agente usa esas razones para explicar el resultado, y quien escribió por WhatsApp ve una sola conversación.

Qué pasa cuando Riesgo sube el tope

Riesgo sube el tope a 200 y eso es una línea en un archivo.

En el diff ves qué se modificó y nada más. Las pruebas corren contra los casos conocidos, con datos que no salen de producción. El despliegue tampoco se dispara solo, porque el workflow del ejemplo no tiene trigger por push: se ejecuta desde la pestaña Actions, cuando una persona le da Run workflow.

La misma solicitud de 180 dólares devuelve un rechazo con el tope en 150:

Rechazo con el tope en 150
{
  "decision": "rejected",
  "approvedAmount": 0,
  "reasons": ["El monto supera el tope de $150"],
  "nextStep": "none"
}

Con el tope en 200, devuelve una aprobación:

Aprobación con el tope en 200
{
  "decision": "approved",
  "approvedAmount": 180,
  "reasons": ["Cumple la política vigente"],
  "nextStep": "biometrics"
}

El prompt no se tocó. Para responder la consulta del principio puedes seguir tres registros: el commit muestra qué cambió y quién lo hizo; el historial de despliegues indica cuándo entró en producción; y, si pasó por un pull request, ahí queda registrada la revisión.

Cuándo dejarla donde está

Separar una regla cuesta: defines entradas y salidas, escribes pruebas, despliegas código y lo mantienes. Para una instrucción que orienta el tono de una respuesta ese costo no se justifica, y dentro del prompt está donde tiene que estar.

Abre el prompt de alguno de tus agentes y busca las frases que deciden algo: un monto, un límite, una elegibilidad. Por cada una, pregúntate si alguien podría necesitar comprobar por qué esa decisión salió así, o revisar el cambio que la modificó. Esas son buenas candidatas para llevar a una lógica separada.

Soporte

¿Te quedó una duda?

Ábrela en tu cuenta.

Cómo escribirnos