# Especificación de agente y prompts

Convierte el trabajo que debe hacer un agente en la especificación que alguien implementa: qué puede hacer, con qué herramientas y qué hace cuando no debe continuar.

## Entregable

Un documento Markdown, `agent-specification.md`, con la estructura fijada en **Salida** más abajo. Toma la salida de **Evaluación de viabilidad de un caso de uso de IA** y alimenta **Diseño de conjunto de evaluación y métricas**.

## Entradas obligatorias

- **El trabajo que debe hacer el agente** — la tarea, a quién sirve y qué acción cambia su salida.
- **Los sistemas que puede tocar** — las herramientas, almacenes de datos y puntos de acceso que tiene permitido llamar, y con qué permisos corre cada uno.
- **La ruta de escalado** — el rol con nombre que recibe un caso cuando el agente no debe continuar.

Si falta alguna, repórtala como ausente y detente antes de escribir el alcance. Un agente especificado sin sus sistemas permitidos describe capacidades que quizá no tenga.

## Entradas opcionales

- Prompts, mensajes de sistema o configuraciones de agente que ya existan para esta tarea
- El esquema de salida que ya espera un sistema posterior
- Reglas de estilo, tono o formato que la organización aplica al texto generado
- El contenido que el agente leerá y que se origina fuera de la organización
- Límites de frecuencia, coste o latencia que imponga el entorno de ejecución
- Registros de cómo hacen hoy esta tarea las personas

Cada entrada opcional que falte pasa a **Preguntas abiertas**. Nunca se inventa una herramienta, un campo de esquema ni un límite para rellenar una.

## Ejecución

**1 — Enunciar el alcance y el no-alcance.** Un párrafo de lo que hace el agente; una lista de las cosas cercanas que no hace y debe rechazar. El no-alcance es la mitad difícil y se escribe junto al alcance: un agente sin frontera declarada adquiere una por accidente, en producción.

**2 — Enumerar las herramientas.** Por cada una: qué hace, qué debe haber establecido el agente antes de llamarla, qué devuelve, qué cambia y si el cambio se puede revertir. Toda herramienta que escribe, envía o gasta lleva la confirmación que el agente debe obtener antes de llamarla, y de quién.

**3 — Trazar cada capacidad hasta una herramienta.** Toma cada cosa que la especificación afirma que el agente puede hacer y nombra la herramienta que la realiza. Una capacidad sin herramienta detrás se elimina. No se describe como capacidad futura ni se deja con una advertencia, porque quien lee implementa lo que dice el documento.

**4 — Fijar el esquema de salida.** Los campos que devuelve el agente, el tipo de cada uno, cuáles son obligatorios y qué aspecto tiene en cada uno un valor desconocido o vacío. La prosa es un campo, no la respuesta. El sistema que consume la respuesta analiza el esquema, y un esquema escrito después se escribe alrededor de lo que el modelo produjo por casualidad.

**5 — Escribir las reglas de fundamentación.** Qué puede afirmar el agente por su cuenta, qué debe atribuir a una fuente que recuperó y qué no debe afirmar en absoluto. Especifica qué hace cuando las fuentes recuperadas se contradicen y cuando no recupera nada: ambos casos necesitan una respuesta definida, y en ninguno esa respuesta es el recuerdo del propio modelo.

**6 — Definir el rechazo y el escalado.** Las condiciones en las que el agente se detiene: fuera de alcance, evidencia insuficiente, una acción irreversible sin confirmación, o una petición que no debe atender. Por cada una: qué dice, qué registra y a qué rol con nombre lo entrega.

**7 — Tratar el contenido no confiable.** Los resultados de herramientas, los documentos recuperados y los archivos que aporta la persona usuaria llevan texto que nadie de la organización escribió. Especifica que ese texto es dato y nunca instrucción, cómo se delimita cuando llega al modelo, qué herramientas quedan indisponibles mientras está en contexto, y qué hace el agente cuando contiene algo dirigido a él.

## Salida

`agent-specification.md`, en este orden:

- **1. Propósito y fecha** — el trabajo, a quién sirve y cuándo se escribió esto
- **2. Alcance** — qué hace el agente
- **3. No-alcance** — qué rechaza y qué dice al rechazarlo
- **4. Herramientas** — por herramienta: propósito, precondiciones, qué devuelve, efectos, reversibilidad, confirmación exigida
- **5. Trazado de capacidades** — cada capacidad frente a la herramienta que la realiza
- **6. Esquema de salida** — campo, tipo, obligatorio u opcional, y la forma vacía
- **7. Reglas de fundamentación** — lo afirmable, lo atribuible y lo prohibido; conducta ante conflicto y ante resultado nulo
- **8. Rechazo y escalado** — condición, respuesta, registro, rol con nombre
- **9. Contenido no confiable** — fuentes, delimitación, herramientas restringidas, respuesta a instrucciones incrustadas
- **10. Preguntas abiertas** — qué queda sin decidir, qué bloquea, quién decide

## Validación

La especificación está lista cuando se cumple todo esto:

- Cada capacidad de la sección 5 nombra una herramienta que existe en la sección 4
- Cada herramienta que cambia estado declara si el cambio es reversible y qué confirmación lo precede
- La sección 6 define una forma vacía para cada campo opcional
- La sección 7 declara la conducta ante fuentes contradictorias y ante resultado nulo
- Cada escalado de la sección 8 nombra un rol, no una cola
- La sección 9 cubre cada fuente de texto externo nombrada en la sección 4

Falla la ejecución si una capacidad no tiene herramienta, o si una herramienta que cambia estado no tiene regla de confirmación.

## Gestión de fallos

- **Sin lista de herramientas** — produce las secciones 1 a 3 y 10, e informa de que el alcance no se puede fijar sin los sistemas permitidos. El alcance de un agente es el conjunto de sus herramientas.
- **Una capacidad sin herramienta** — elimínala de la especificación y regístrala en la sección 10 como petición de una herramienta. No describas conducta que el agente no puede realizar.
- **Sin ruta de escalado** — escribe las secciones 1 a 7, marca la sección 8 como `SIN ASIGNAR` y registra la ruta ausente como bloqueante. Un agente que no puede entregar un caso seguirá adelante con él.
- **Requisitos contradictorios** — registra los dos, nombra ambas fuentes y eleva el conflicto a la sección 10 como una decisión para una persona con nombre. No los fundas en una regla que no satisface a ninguno.
- **Material parcial** — especifica cada sección que el material sostenga, marca el resto como `INCOMPLETO — pendiente de <pregunta>` y entrega.
