首页
/ Skyvern CLI命令行工具全攻略:从基础操作到高级应用

Skyvern CLI命令行工具全攻略:从基础操作到高级应用

2026-04-09 09:46:15作者:裘旻烁

功能模块:构建完整工作流体系

环境配置:初始化与服务管理

Skyvern CLI提供一站式环境配置方案,通过简洁命令即可完成从环境检测到服务启动的全流程。该模块核心价值在于降低部署门槛,实现"一键就绪"的开发体验。

核心命令集

skyvern quickstart  # 自动检测Docker环境并初始化完整服务栈
skyvern run all     # 启动API服务器与UI界面
skyvern stop all    # 停止所有Skyvern相关服务

操作示例

# 基础初始化(含浏览器与数据库)
skyvern quickstart

# 轻量启动(仅API服务,无UI和数据库)
skyvern quickstart --server-only --no-postgres

注意事项

  • 首次执行需确保Docker服务处于运行状态
  • 8000/8080端口需保持可用,冲突时可通过--port参数自定义
  • 国内用户建议配置Docker镜像加速以提升组件拉取速度

常见问题

  • Q: 启动时报"port 8000 is already in use"? A: 使用skyvern stop server终止占用进程或添加--port 8001指定其他端口

  • Q: Docker未安装时如何处理? A: 命令会自动提示安装指引,完成后需重启终端使环境变量生效

工作流管理:从创建到执行的全周期控制

工作流是Skyvern的核心概念,代表一组自动化任务的有序集合。CLI提供完整的工作流生命周期管理,支持从模板创建、参数配置到执行监控的全流程操作。

核心命令集

skyvern workflow list        # 列出所有可用工作流
skyvern workflow run <id>    # 执行指定工作流
skyvern workflow status <id> # 查询运行状态
skyvern workflow cancel <id> # 取消正在执行的工作流

操作示例

# 列出所有模板工作流
skyvern workflow list --template

# 带参数运行工作流
skyvern workflow run wf_12345 --parameters '{"url": "https://example.com"}' --title "数据抓取任务"

# 查看运行详情(含任务列表)
skyvern workflow status wr_67890 --tasks

注意事项

  • 工作流ID(wf_xxx)与运行ID(wr_xxx)为不同概念,状态查询需使用运行ID
  • 参数JSON需严格符合格式要求,建议先用jq工具验证
  • 长时间运行的工作流建议配合--max-steps限制执行步骤数

常见问题

  • Q: 参数传递出现解析错误? A: 检查JSON格式是否正确,字符串值需用双引号,特殊字符需转义

  • Q: 如何获取历史运行记录? A: 使用skyvern workflow list-runs --workflow-id wf_12345查看指定工作流的所有运行记录

任务控制:精细化作业管理

任务是工作流的执行单元,CLI提供细粒度的任务监控与控制能力,支持查看任务状态、提取执行结果和调试失败任务。

核心命令集

skyvern tasks list --workflow-run-id <run_id>  # 列出指定工作流的所有任务
skyvern tasks status <task_id>                 # 查询单个任务详情
skyvern tasks artifacts <task_id>              # 获取任务生成的 artifacts

操作示例

# 列出特定工作流运行的所有任务
skyvern tasks list --workflow-run-id wr_67890

# 获取任务执行结果
skyvern tasks artifacts tk_abcdef --format json > output.json

注意事项

  • 任务状态包括:pending(待执行)、running(执行中)、completed(完成)、failed(失败)
  • Artifacts可能包含截图、日志等调试信息,建议定期清理以节省存储空间
  • 任务ID可通过工作流状态命令获取

常见问题

  • Q: 任务失败后如何调试? A: 使用skyvern tasks artifacts <task_id>获取错误截图和日志,结合skyvern workflow status分析失败原因

  • Q: 如何导出任务结果? A: 添加--format json/csv参数指定输出格式,配合重定向符号保存到文件

高级功能:脚本执行与多智能体协作

Skyvern CLI支持直接运行Python脚本和启动MCP服务器,满足复杂场景下的定制化需求。MCP服务器 - 多智能体协作协议服务,允许多个智能体协同处理复杂任务。

核心命令集

skyvern run code <script.py>  # 执行Python脚本
skyvern run mcp               # 启动MCP服务器

操作示例

# 带参数执行脚本
skyvern run code data_extractor.py --params '{"source": "api", "limit": 100}'

# 后台启动MCP服务器
skyvern run mcp --daemon

注意事项

  • 脚本需符合Skyvern SDK规范,入口函数应为def run(context: Context) -> None
  • MCP服务器默认占用5005端口,可通过--port参数修改
  • 生产环境建议配合进程管理工具(如systemd)使用

常见问题

  • Q: 脚本中如何引用Skyvern内部API? A: 需导入from skyvern.client import SkyvernClient并通过环境变量配置认证信息

  • Q: MCP服务器启动后无法访问? A: 检查防火墙设置,确保5005端口开放,或使用--host 0.0.0.0允许外部访问

场景应用:命令组合实战

自动化部署流程

构建完整的持续部署流水线,从代码拉取到服务启动的全自动化:

# 1. 克隆代码仓库
git clone https://gitcode.com/GitHub_Trending/sk/skyvern
cd skyvern

# 2. 初始化环境(跳过浏览器安装)
skyvern quickstart --skip-browser-install

# 3. 启动服务并后台运行
skyvern run all --daemon

# 4. 部署完成后验证服务状态
skyvern status server --port 8000

此流程适用于CI/CD环境,可通过脚本整合到Jenkins、GitHub Actions等平台。部署成功后,可通过skyvern workflow run命令触发自动化测试工作流。

故障排查方案

当工作流执行失败时,可按照以下步骤诊断问题:

故障排查流程图

# 1. 检查工作流状态获取失败原因
skyvern workflow status wr_67890

# 2. 列出所有任务找到失败项
skyvern tasks list --workflow-run-id wr_67890

# 3. 获取失败任务的详细日志
skyvern tasks artifacts tk_abcdef --type logs > error.log

# 4. 调整参数后重新运行
skyvern workflow run wf_12345 --parameters '{"retry": true}'

故障排查四步法:检查状态→定位失败步骤→分析 artifacts→调整参数重试,配合UI界面的可视化 timeline 可快速定位问题。

数据抓取与处理

使用工作流+脚本组合实现周期性数据抓取:

# 1. 创建数据抓取工作流
skyvern workflow create --name "新闻抓取" --prompt "抓取科技新闻首页标题"

# 2. 运行工作流并获取ID
skyvern workflow run wf_news --title "每日科技新闻"

# 3. 导出结果到CSV
skyvern tasks artifacts tk_news --format csv > news.csv

# 4. 运行处理脚本
skyvern run code analyze_news.py --params-file news_params.json

此方案可通过cron或类似工具设置定时任务,实现无人值守的数据采集与分析流程。

进阶技巧:效率提升与最佳实践

命令对比与选择指南

命令场景 推荐命令 替代方案 适用场景
快速启动 skyvern quickstart skyvern run all 首次使用或开发环境
生产部署 skyvern run server --daemon docker-compose up -d 服务器环境
工作流调试 skyvern workflow run --debug skyvern run code 开发测试阶段
批量操作 skyvern workflow batch-run 循环调用run 多实例并行处理
资源监控 skyvern status resources docker stats 性能优化

效率提升技巧

批量操作工作流

# 创建工作流批量运行脚本
for id in $(skyvern workflow list --template --format ids); do
  skyvern workflow run $id --title "批量测试_$(date +%F)"
done

设置命令别名

# 在.bashrc或.zshrc中添加
alias sk="skyvern"
alias skstart="skyvern run all --daemon"
alias skstop="skyvern stop all"
alias skstatus="skyvern workflow list --running"

参数文件复用

# 创建通用参数文件 params.json
{
  "proxy_location": "us",
  "timeout": 300,
  "max_retries": 3
}

# 运行时引用
skyvern workflow run wf_123 --params-file params.json

高级配置与优化

自定义环境变量: 创建.env.skyvern文件设置默认参数:

SKYVERN_API_PORT=8001
SKYVERN_UI_PORT=8081
SKYVERN_LOG_LEVEL=INFO

资源限制设置

# 限制工作流内存使用
skyvern workflow run wf_123 --resource-limit memory=2G

# 设置任务超时时间
skyvern tasks run --timeout 600 task_def.json

性能优化参数

# 启用脚本缓存加速执行
skyvern run code script.py --cache-script

# 调整并行任务数
skyvern workflow run wf_batch --parallel 4

总结与资源

Skyvern CLI通过模块化设计提供了从环境配置到任务控制的完整功能集,其核心优势在于将复杂的自动化流程封装为简洁命令。无论是快速原型开发还是大规模生产部署,CLI都能提供一致且高效的操作体验。

扩展学习资源

通过本文介绍的功能模块、场景应用和进阶技巧,用户可以构建高效、可靠的自动化工作流,充分发挥Skyvern在Web自动化和数据处理方面的优势。随着项目的持续发展,CLI工具将不断扩展更多实用功能,为用户提供更强大的自动化能力。

登录后查看全文
热门项目推荐
相关项目推荐