Diseñar un Proceso
Usa este skill para convertir una solicitud como "haz un proceso que cuente las palabras
en algún texto" en un plan de pasos. Luego constrúyelo con el skill create-process.
El paquete vive en process_package/. La clase padre es
process_package/toy_process/process.py.
1. Listar los pasos
Escribe el objetivo como una lista ordenada de acciones pequeñas, cada una como frase verbal:
WordReport
1. limpiar el texto
2. contar las palabras
3. construir el informe
Cada paso debe hacer una sola cosa y colocar su resultado en el diccionario compartido context.
2. Decidir qué es cada paso
Para cada paso, elige:
| Usa un paso de método cuando... | Usa un paso de subproceso cuando... |
|---|---|
| es una acción pequeña | son varias acciones que pertenecen juntas |
| solo se usa aquí | podría reutilizarse en otros procesos |
| no necesita configuraciones propias | tiene sus propios parámetros |
Los subprocesos pueden contener subprocesos. Mantén la anidación superficial: dos niveles es suficiente para la mayoría de los procesos de juguete.
3. Escribir el plan
Para cada proceso (padre y cada subproceso), registra:
- Nombre de clase: un sustantivo o frase verbal en
CamelCase, p.ej.CleanText. - Parámetros: nombre → valor predeterminado. Van en
set_parameters. - Pasos: en orden. Los métodos van en
snake_case; los subprocesos usan su nombre de clase. - Claves de contexto: qué lee y escribe cada paso.
Ejemplo de plan:
CleanText params: lowercase=True
- strip_punctuation lee texto escribe texto
- normalise_case lee texto escribe texto
WordReport params: text="", lowercase=True, top_n=3
- load_text lee - escribe texto
- CleanText(lowercase=...) (subproceso)
- count_words lee texto escribe counts
- build_report lee counts escribe report
4. Verificar el plan
- Cada clave de contexto que un paso lee ha sido escrita por un paso anterior.
- Cada parámetro que un paso usa está en los parámetros de ese proceso.
- A un subproceso se le pasan sus parámetros desde el padre como argumentos de
palabra clave, p.ej.
CleanText(lowercase=self.params["lowercase"]).
Muestra el plan al usuario si la solicitud fue vaga, luego sigue el
skill create-process.