Skip to content

sp app:应用管理 ​

AI 代理何时使用: 解析 appId、检查 Agent 连通性、注册服务,或列出应用最近的回放计划。

概要 ​

列出、创建和查看 Softprobe 应用。应用就是一个已注册的服务;录制、回放和策略都按 appId 划分。见 概念 —— 应用。

所有子命令都请带 --json。见 输出约定。

子命令 ​

子命令参数说明
list—当前调用方可见的应用,附 Agent 状态
create<appName>注册新应用(appId 由服务端分配)
status<appId>单个应用的 Agent 连通性
replays<appId>最近的回放计划(--limit)

list ​

bash
sp app list --json

REST: GET /api/applications/list

带 --json 时需要有 token(未设置 SP_TOKEN 时 CLI 会以认证错误退出)。结果按用户组、归属关系和跨组授权过滤,见 认证。

JSON 输出 ​

data.items 是列表行的数组。每行合并了应用配置和 Agent 实时状态(心跳阈值默认 60 秒,超时即为 offline)。

字段说明
appId稳定的 id,用于 Agent 配置和其他 sp 命令
appName、name显示名
agentStatusonline、degraded、offline 或 never,含义见 status
lastSeenAtUnix 毫秒,最新一次实例心跳
agentVersionAgent 构建版本字符串
env主环境标签,缺省为 production
tags打平后的标签值
worktreeDirectory可选的工作区路径
json
{
  "ok": true,
  "command": "app list",
  "data": {
    "items": [
      {
        "appId": "a1b2c3d4e5f67890",
        "appName": "order-service",
        "agentStatus": "online",
        "lastSeenAt": 1747564800000
      }
    ]
  }
}

create ​

bash
sp app create order-service-staging --json

REST: POST /api/applications/create

appName 必须唯一。CLI 发送 { "appName": "<arg>" };未提供 owners 时,服务端会从 JWT 中取当前用户填入。

请求体(REST) ​

字段必填说明
appName是唯一名称(CLI 位置参数)
owners否所有者用户名;默认为当前用户
visibilityLevel否0 公开,1 私有
groupId、groupName否所属用户组

JSON 输出 ​

字段说明
success是否创建成功
appId生成的 id —— 用于 Agent 配置和 sp replay run --app
msgsuccess 为 false 时的详情
json
{
  "ok": true,
  "command": "app create",
  "data": {
    "success": true,
    "appId": "f3e2d1c0b9a87654"
  }
}

status ​

bash
sp app status f3e2d1c0b9a87654 --json

REST: GET /api/applications/{appId}/agent-status

汇总该应用各 JVM 实例的心跳。status 以最新的实例为准:

取值含义
never当前没有实例记录(实例记录在最后一次心跳约 3 分钟后过期)
online最新心跳在阈值内(默认 60 秒)
degraded在线,但至少有一个心跳正常的实例处于限流或降级状态
offline有实例记录,但阈值内没有心跳
字段说明
appId应用 ID
statusnever、online、degraded 或 offline
instanceCount阈值内有心跳的实例数
lastSeenAtUnix 毫秒
agentVersion来自最新的实例
json
{
  "ok": true,
  "command": "app status",
  "data": {
    "appId": "f3e2d1c0b9a87654",
    "status": "online",
    "instanceCount": 2,
    "lastSeenAt": 1747564800000
  }
}

replays ​

bash
sp app replays f3e2d1c0b9a87654 --limit 10 --json

REST: GET /api/applications/{appId}/replays/recent?limit=N

参数默认值说明
--limit5最大计划条数(CLI 拒绝小于 1 的值;大于 100 的值截断为 100;服务端同样截断到 1–100)

data 是回放计划摘要的数组(planId、planName、status、用例数、createTime、triggeredBy 等)。拿到 planId 后可配合 sp replay 和 replay case 使用。

JSON 输出 ​

json
{
  "ok": true,
  "command": "app replays",
  "data": {
    "items": [
      {
        "planId": "plan-6644220011",
        "planName": "nightly-regression-20260904",
        "status": 3,
        "totalCaseCount": 42,
        "replayCaseCount": 42,
        "successCaseCount": 40,
        "failCaseCount": 2,
        "createTime": 1747564800000,
        "triggeredBy": "ci-pipeline"
      }
    ]
  }
}

REST 接口对照 ​

子命令方法路径
listGET/api/applications/list
createPOST/api/applications/create
statusGET/api/applications/{appId}/agent-status
replaysGET/api/applications/{appId}/replays/recent

请求头:access-token: <JWT>。

替代 sp_api ​

sp_api 接口sp 命令
list_applicationssp app list
agent_statussp app status
recent_replayssp app replays

捕获 Session · 审查 Steps · 改进关键所在