Saltar al contenido principal

Modo no interactivo

El modo no interactivo ejecuta un único prompt y sale. Úselo cuando quiera que IaC Code produzca una salida para una tarea repetible sin permanecer en el REPL.

Use --prompt para pasar el prompt directamente:

iac-code --prompt "Create an OSS Bucket"

Use --prompt - para leer el prompt desde la entrada estándar:

echo "Create a VPC and two ECS instances" | iac-code --prompt -

Use --output-format cuando el llamador necesite salida estructurada:

iac-code --prompt "Create an OSS Bucket" --output-format json

Use --max-turns para limitar cuánto tiempo puede trabajar el agente:

iac-code --prompt "Create a VPC" --max-turns 20

Los formatos de salida soportados son:

FormatoPropósito
textSalida legible para humanos. Este es el valor predeterminado.
jsonUn único resultado JSON para llamadores que analizan la respuesta final.
stream-jsonEventos JSON en streaming para llamadores que procesan progreso incremental.

Backups de sesión

Cuando IAC_CODE_CONFIG_BACKUP_DIR está definido, las ejecuciones no interactivas reflejan la sesión v2 en checkpoints clave. El checkpoint ordinario de fin de turno usa normal_turn_end; un fallo de backup en ese punto se registra como warning y queda guardado en .backup-state.json, sin hacer fallar la respuesta completada ni agregar un campo warning a la salida final. El modo Pipeline tiene sus propios gates de backup crítico.

Control de permisos en automatización

Cuando ejecute en modo no interactivo, use --permission-mode para controlar cómo el agente maneja las aprobaciones de herramientas:

iac-code --prompt "Deploy the stack" --permission-mode bypass_permissions

En bypass_permissions, las acciones de herramientas se aprueban automáticamente excepto las comprobaciones de seguridad, pero toda decisión allow que requiere un registro de auditoría sigue fallando en modo cerrado si falla la persistencia de auditoría. Las API de escritura de Alibaba Cloud siguen protegidas por separado fuera de bypass_permissions; para una automatización confiable más acotada, no use bypass_permissions y permita explícitamente cada API de escritura requerida:

iac-code --prompt "Deploy the stack" \
--allowed-tools 'aliyun_api(ros:CreateStack)' \
--permission-mode dont_ask

Para restringir lo que el agente puede hacer, combine --allowed-tools y --disallowed-tools:

iac-code --prompt "Check the stack status" \
--allowed-tools 'bash(git *),bash(ls:*)' \
--disallowed-tools 'bash(rm *)' \
--permission-mode dont_ask

Para todos los parámetros de inicio, consulte Opciones de línea de comandos.