在悟空、Qoder、opencode 等 AI 编程工具中加载 Workbench CLI Skill,用自然语言驱动 Agent 完成 ECS 实例查询、命令执行与文件传输;借助结构化 JSON 输出与命令退出码透传,让 Agent 自主判断结果并链式调用后续操作。
为什么 AI Agent 适合使用 Workbench CLI
相比于其他 ECS 连接方式,Workbench CLI 在设计上天然适合 AI Agent 调用:
结构化 JSON 输出:所有命令都支持
--output json,返回可预测的字段结构(例如 exec 返回output、stderr、exit_code),Agent 无需正则解析文本输出。退出码透传:
workbench exec透传远程命令的退出码(与 SSH 一致),Agent 可据此判断远程命令是否成功;命令失败时--output json会输出结构化错误信息,便于 Agent 解析后决定重试或报错。无状态执行环境:
workbench exec每次调用都在独立环境中执行,无 shell 状态延续,Agent 无需维护会话上下文,也不会因遗留状态导致命令行为不可预期。命令语义直观:
list/exec/upload/download等命令的命名与常见运维动作一一对应,Agent 通过--help即可自主学习使用。
前置准备
已在本机安装 Workbench CLI 并完成凭证与最小 RAM 权限配置。具体操作,请参见 安装并配置 Workbench CLI 凭证。
已在本机安装目标 AI 编程工具(悟空、opencode 或其他支持执行 shell 命令的 AI 工具)。
建议先阅读 使用 Workbench CLI 管理 ECS 实例,熟悉各 workbench 子命令的用法,以便更好地判断 Agent 的输出。
加载 Workbench CLI Skill 到 AI 工具
阿里云官方已发布 Workbench CLI Skill,收录了所有子命令的用法、参数说明、退出码含义与典型工作流。将该 Skill 加载到 AI 编程工具后,Agent 即可在您用自然语言下达运维意图时自主调用 workbench 命令。以下按 Qoder、悟空、opencode 的顺序介绍加载方式。
Qoder
在 Qoder 所在的终端执行以下命令,通过 skills CLI 一键加载官方 Skill。
npx skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-workbench-cli --agent qoder -y --full-depth
加载完成后,在 Qoder 中可尝试以下对话验证:
您:把本地 app.jar 部署到实例 i-bp1a2b3c4d5e6f 的 /opt/app 目录
Agent:(依次调用 workbench upload、workbench exec 完成部署,并逐步汇报结果)
悟空
悟空暂不支持 skills CLI 一键加载,需手动下载 Skill 包并导入:
访问 Workbench CLI Skill 页面,下载 Skill 的 ZIP 包。
在悟空中导入下载的 ZIP 包。
导入后启用(加载)该 Skill。
加载完成后,在悟空中可尝试以下对话验证:
您:用 workbench 查一下华东1运行中的实例
Agent:(自动执行 workbench list ecs -r cn-hangzhou --status Running --output json 并汇总结果)
opencode
在 opencode 所在的终端执行以下命令,通过 skills CLI 一键加载官方 Skill。
npx skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-workbench-cli --agent opencode -y --full-depth
加载完成后,在 opencode 中可尝试以下对话验证:
您:连接到实例 i-bp1a2b3c4d5e6f 并查看磁盘使用情况
Agent:(自动执行 workbench exec -i i-bp1a2b3c4d5e6f -c "df -h" --output json 并解释结果)
更多 AI 工具的加载方式,请访问 Workbench CLI Skill 页面。
典型对话场景
场景一:查询运行中的实例
用户 prompt:
查一下华东1有哪些运行中的实例
Agent 执行:
workbench list ecs -r cn-hangzhou --status Running --output json
简化返回:
{
"instances": [
{ "instance_id": "i-bp1a2b3c...", "instance_name": "web-prod-01", "status": "Running", "private_ip": "172.16.0.10" },
{ "instance_id": "i-bp2x4y5z...", "instance_name": "api-prod-02", "status": "Running", "private_ip": "172.16.0.11" }
]
}
Agent 汇总:华东1(cn-hangzhou)当前有 2 台运行中的实例:web-prod-01(i-bp1a2b3c...)与 api-prod-02(i-bp2x4y5z...)。
场景二:执行远程命令并分析结果
用户 prompt:
看看 i-bp1a2b3c4d5e6f 上磁盘空间够不够
Agent 执行:
workbench exec -i i-bp1a2b3c4d5e6f -c "df -h" --output json
简化返回:
{
"output": "Filesystem Size Used Avail Use% Mounted on\n/dev/vda1 40G 36G 4.0G 90% /\n/dev/vdb1 100G 20G 80G 20% /data\n",
"stderr": "",
"exit_code": 0
}
Agent 分析:根实例 / 分区已用 90%,剩余 4.0G,接近瓶颈,建议清理日志或扩容根盘;/data 分区使用率 20%,容量充足。
场景三:传输文件
用户 prompt:
把 ./app-2.0.tar.gz 部署到 i-bp1a2b3c4d5e6f 的 /opt/deploy 目录,解压后验证
Agent 执行(依次调用):
workbench upload ./app-2.0.tar.gz /opt/deploy/app-2.0.tar.gz -i i-bp1a2b3c4d5e6f
workbench exec -i i-bp1a2b3c4d5e6f -c "cd /opt/deploy && tar xzf app-2.0.tar.gz" --output json
workbench exec -i i-bp1a2b3c4d5e6f -c "ls -lh /opt/deploy/app-2.0/" --output json
Agent 汇总:文件上传成功;解压完成,退出码 0;目录内包含 bin/、config/、app.jar(120M),部署完成。
权限与安全建议
为 AI Agent 使用独立的 RAM 用户或角色:与人工使用的凭证分离,便于在审计日志中区分"人工操作"与"Agent 操作",出问题时可快速定位。
用最小策略并按 Resource 收敛:只授予 Agent 需要的 Action,并通过实例 ARN 将
Resource收敛到指定实例,避免误操作扩散到其他实例。启用人机确认(HITL):
workbench connect内建 Agent 模式默认在执行任何命令前要求Y/n确认;外部 AI 工具建议同样启用命令执行前的用户确认。生产环境优先 RamRoleArn:Agent 场景往往长期运行、频繁使用凭证,静态 AK 一旦泄露风险高。优先使用 RamRoleArn 或 CredentialsURI 让凭证自动刷新。
常见问题
Agent 加载 Skill 后仍报 command not found 如何排查
原因:AI 工具执行子进程时使用的 shell 环境未继承用户 shell 的 PATH,找不到 workbench 二进制。
解决方案:
使用绝对路径
/usr/local/bin/workbench(Linux/macOS)或C:\Program Files\workbench\workbench.exe(Windows)。在 Skill 定义或 system prompt 中显式声明二进制路径。
检查 AI 工具的启动方式,是否继承了用户的 shell profile(
~/.bashrc、~/.zshrc)。
Agent 循环重试导致大量会话如何限制
原因:Agent 遇到错误反复重试,每次都新建会话,累计占用服务端资源。
解决方案:
在 Skill 或 prompt 中约束 Agent:遇到认证失败、实例不存在等不可重试的错误时(依据
--output json的message字段判断)立即向用户报错,不自动重试。会话在空闲约 30 分钟后自动回收;无需长期保持时,让 Agent 用完即以
/exit关闭会话。定期执行
workbench session close --all或workbench daemon stop清理残留会话。
如何强制 Agent 只使用 --output json
原因:Agent 默认可能使用文本输出,导致解析不稳定。
解决方案:在 Skill 定义或 system prompt 中明确要求 Agent 在所有 workbench 命令调用中附加 --output json,并按 JSON schema 解析结果——成功时字段为 output、stderr、exit_code,失败时输出 {code, message}。
相关文档
通过 Workbench CLI 连接实例:父节点,包含工具定位与快速开始。
安装并配置 Workbench CLI 凭证:CLI 安装与凭证/权限配置。
使用 Workbench CLI 管理 ECS 实例:各命令详解与故障排查(含 connect 会话内 AI 助手用法)。