Aeroshell 智能任务编排 是为 AI 终端设计的任务执行DSL。 它不是普通脚本语言,而是用于约束 AI 输出、编排远程主机任务、降低误操作风险的安全执行格式,适用于经常需要批量执行并行多机器任务。
用户只需要说“检查某台服务器磁盘”“批量查看 nginx 状态”, AI 会转换为 Aeroshell 可执行的 TaskScript。
DSL 限制了合法指令、命令格式、主机定位方式和危险操作, 避免 AI 直接生成不可控的 Shell 脚本。
支持单主机、多主机循环、并行任务, 可用于巡检、状态查询、服务检查、环境初始化等场景。
一个最小任务通常由三部分组成:定位主机、建立连接、发送命令。 每条 DSL 指令独立一行,便于执行器解析、审计和回放。
FETCHCRED 用来获取主机凭据。Aeroshell 会根据用户输入的主机信息, 选择 IP、HOST、NAME 或 UUID。
用户明确输入 IPv4 地址时使用,例如 192.168.1.10。
域名、普通主机字符串、server-01、prod-db 默认都使用 HOST。
只有用户明确说“主机名为 xxx”或“服务器名称为 xxx”时才使用 NAME。
适合检查单台服务器状态、查看磁盘、检查服务、执行一组有先后顺序的命令。
多台服务器执行完全相同的命令时,必须使用 FOR。 例如批量巡检磁盘、内存、系统版本、服务状态。
多台主机执行不同命令时,必须使用 PARALLEL。 每个 TASK 都是独立任务,不能共享连接状态。
TaskScript 支持常见安装场景,但要求命令必须无人值守、可重复执行, 且不能升级系统或执行远程脚本。
DSL 中每一行只能表达一个动作,例如 FETCHCRED、CONNECT 或 SENDCMD。 这样执行器可以逐行解析、逐步回显。
禁止 cmd1 && cmd2、cmd1 ; cmd2、cmd1 || cmd2。 多个操作必须拆成多条 SENDCMD。
禁止 passwd、su -、mysql_secure_installation、read、expect 等需要人工输入的命令。
默认禁止删除系统关键目录、格式化磁盘、清空数据库、关闭防火墙、破坏 sshd。
允许 wget 下载文件,但禁止 curl | sh、wget | sh、bash <(curl) 这类远程脚本直执行。
禁止使用 ~ 作为路径,要求使用绝对路径,避免不同用户环境导致执行结果不一致。
当用户描述缺少必要信息、存在逻辑冲突或涉及危险操作时, DSL 生成器会返回固定错误,避免继续生成不安全任务。