设计与多媒体

cargo-analytics

试用

从 Cargo 拉取运行指标、下载结果,并跨 runs、batches、spans 执行 SQL 查询。

它能做什么

回答"发生了什么"和"把数据给我"——聚合运行指标(成功率/错误率、按节点统计的 credits)、按运行导出 CSV/JSON、批量结果、segment 导出,以及对编排表执行临时 SQL。用 `run get-metrics` 和 `run count` 做工作流级聚合,用 `run download` 拿到多运行的状态一览,用 `run download-outputs` 取每个运行的输入与输出。"为什么失败"交给 cargo-diagnostics,credits 或账单问题交给 cargo-billing。

什么时候用它

  • 把工作流的运行结果导出为 CSV/JSON,做线下分析
  • 查询错误率与失败运行数,监控某个工作流或批量
  • 对 runs、batches、spans 跑临时 SQL,做跨工作流分析
  • 按节点过滤,只下载批量里某个节点(比如 enrichment 节点)的输出

技能文档

Cargo CLI — Analytics

Measurement and export: monitoring run metrics, downloading run and batch results, and exporting segment data.

See references/response-shapes.md for full JSON response structures. See references/troubleshooting.md for common errors and how to fix them. See references/examples/run-analytics.md for run metrics and error monitoring. See references/examples/exports.md for data export and download examples. For billing, usage metrics, and subscription: use the cargo-billing skill.

Bootstrap

Already signed in (cargo-ai whoami returns a workspace)? Skip to the next section.

npm install -g @cargo-ai/cli            # no global install? prefix every command with `npx @cargo-ai/cli`
cargo-ai login --email you@company.com  # emailed code, no browser; creates the account on first use
                                        # alternatives: --oauth (browser) · --token  (CI)
cargo-ai whoami                         # confirm the active workspace before any write

Every command prints JSON to stdout; failures exit non-zero with {"errorMessage": "..."}. Anything that creates a run or a batch is async — pass --wait-until-finished or poll the matching get. When the full skill bundle is installed, ../cargo/references/prerequisites.md adds the CLI version pin, token scopes, and the admin-only surface.

Scope — measure and export, not explain

This skill answers "what happened" and "give me the data": metrics, counts, downloads, exports. The moment the question becomes "why" — why did this run fail, why is the output wrong or empty, which root cause explains these errors, why is this play so expensive — switch to the cargo-diagnostics skill; its runbooks sequence the raw surfaces into a diagnosis.

The question sounds like…Load
"What's the error rate?" / "How many runs failed this week?" / "Export the results / segment"this skill
"Why did this run fail?" / "Run succeeded but the output looks wrong"cargo-diagnosticsreferences/run-trace.md
"Why does this batch have errors? Which node keeps failing, and is it one cause or many?"cargo-diagnosticsreferences/batch-error-sweep.md
"Why is this play so expensive? Where do the credits go?"cargo-diagnosticsreferences/play-optimize-credits.md

The two skills chain naturally: analytics detects (error rate spiked, batch reports failures), diagnostics explains (18 of 20 failures share one root cause), then analytics retrieves the clean results once the cause is fixed and the runs re-executed.

Discover resources first

Most analytics commands require UUIDs. Discover them before querying.

cargo-ai orchestration play list            # all plays (name, workflowUuid)
cargo-ai orchestration tool list            # all tools (name, workflowUuid)
cargo-ai orchestration workflow list        # all workflows (uuid only — no name)
cargo-ai ai agent list                     # all agents (uuid, name)
cargo-ai connection connector list          # all connectors (uuid, name, integrationSlug)
cargo-ai storage model list                # all models (uuid, name, slug)

Quick reference

cargo-ai orchestration run get-metrics --workflow-uuid 
cargo-ai orchestration run download --workflow-uuid  --is-finished
cargo-ai orchestration run count --workflow-uuid  --statuses error
cargo-ai orchestration query execute "SELECT status, count() FROM runs GROUP BY status"
cargo-ai segmentation segment download --model-uuid  --filter '{"conjonction":"and","groups":[]}'

Picking the right command:

  • run get-metrics / run count — workflow-scoped, predefined aggregations. Best when you already have a workflowUuid.
  • orchestration query execute — ad-hoc SQL across the entire workspace (runs, batches, spans, records). Best for cross-workflow analytics, per-node breakdowns, and time-series.
  • run download / run download-outputs — per-record output retrieval.
  • segment download / storage query execute — storage data (Companies, Contacts, …).

Workflow run metrics

Aggregated metrics for workflow runs (success/error rates, credits per node).

# Metrics for a workflow
cargo-ai orchestration run get-metrics --workflow-uuid 

# Scoped to a release, batch, or date range
cargo-ai orchestration run get-metrics --workflow-uuid  --release-uuid 
cargo-ai orchestration run get-metrics --workflow-uuid  --batch-uuid 
cargo-ai orchestration run get-metrics --workflow-uuid  \
  --created-after  --created-before 

Run count

Count runs matching specific criteria — useful for monitoring.

cargo-ai orchestration run count --workflow-uuid  --statuses error
cargo-ai orchestration run count --workflow-uuid  --is-finished \
  --created-after  --created-before 
cargo-ai orchestration run count --workflow-uuid  --batch-uuid 

Supports: --statuses, --batch-uuid, --release-uuid, --is-finished, --created-after, --created-before, --record-id, --record-title.

For cross-workflow analytics or shapes that run count doesn't expose (per-node failure breakdowns, p95 durations, error rate over time), use orchestration query execute — see the Ad-hoc execution analytics section.

Ad-hoc execution analytics (orchestration query)

Run SQL against orchestration runtime tables — runs, batches, spans, records — for analytics that the canned metrics commands don't cover. Tables are referenced without a schema prefix; workspace scoping is automatic. See cargo-orchestration/references/examples/queries.md for schemas and limits.

# Error rate across the workspace in the last day
cargo-ai orchestration query execute \
  "SELECT countIf(status='error') / count() AS error_rate FROM runs WHERE created_at > now() - INTERVAL 1 DAY"

# Failed runs per workflow this week
cargo-ai orchestration query execute \
  "SELECT workflow_uuid, count() AS errors FROM runs WHERE status='error' AND created_at > now() - INTERVAL 7 DAY GROUP BY workflow_uuid ORDER BY errors DESC"

# Per-node failure counts (last 24h)
cargo-ai orchestration query execute \
  "SELECT node_slug, count() AS failures FROM spans WHERE execution_status='error' AND execution_started_at > now() - INTERVAL 1 DAY GROUP BY node_slug ORDER BY failures DESC"

# Credit spend by workflow this month
cargo-ai orchestration query execute \
  "SELECT workflow_uuid, sum(credits_used_count) AS credits FROM batches WHERE created_at >= toStartOfMonth(now()) GROUP BY workflow_uuid ORDER BY credits DESC"

Read-only and capped: 30s execution time, 10 000 result rows, 10 000 000 rows scanned. Narrow with a created_at/execution_started_at predicate to stay under the row-scan cap.

Downloading run results

Two distinct commands — pick the right one for the job.

run download — one row per run, one column per node (gzipped CSV)

Returns {"url": "..."} — a signed URL to a gzipped CSV. Each row is a run: _uuid, _workspace_uuid, _workflow_uuid, _record_id, _record_title, _created_at, _finished_at, _status, _error_message, followed by one column per node slug.

Each node column holds that execution's title — a truncated human-readable summary, not the node's output. There is no runContext and no executions[] in this file. Treat it as a status board across many runs (which node errored, on which record), never as evidence of what a node produced — the same rule cargo-diagnostics applies to title everywhere else.

# Every run of a workflow
cargo-ai orchestration run download --workflow-uuid 

# Date range
cargo-ai orchestration run download --workflow-uuid  \
  --created-after  --created-before 

# Specific statuses (run statuses: idle, pending, running, success, error,
# cancelling, cancelled, skipped — NOT "finished"/"failed")
cargo-ai orchestration run download --workflow-uuid  --statuses success,error

# Every run that reached a terminal state. `--is-finished` is `finished_at IS
# NOT NULL`, which is wider than success+error: cancelled and skipped runs
# stamp finishedAt too, so don't substitute one for the other.
cargo-ai orchestration run download --workflow-uuid  --is-finished

# From a specific batch
cargo-ai orchestration run download --workflow-uuid  --batch-uuid 

run download-outputs — per-run input + output (CSV/JSON via signed URL)

This is the canonical way to get action results out of the platform. Maps to API POST /v1/orchestration/runs/download-outputs. Returns {"url": "..."} — a signed URL to a CSV (default) or JSON file. One row per run: the same _-prefixed run metadata, plus input (the first node's resolved config) and output (the chosen node's context, defaulting to the last executed node when --output-node-slug is omitted).

# --workflow-uuid is the only required flag
cargo-ai orchestration run download-outputs \
  --workflow-uuid  \
  --format json \
  --limit 20

# Pin the output node explicitly, and filter by batch
cargo-ai orchestration run download-outputs \
  --workflow-uuid  \
  --output-node-slug  \
  --batch-uuid 

To find the output-node-slug: cargo-ai orchestration release get → look at nodes[].slug. The terminal output node is typically named output or end. Without --limit, the file covers every matching run of the workflow, so pass one when you only need a sample.

Getting the full runContext for several runs

You can't, in one call. The full per-node context is a per-run S3 object, and orchestration run get is the only command that hydrates it — one run at a time. The two exports above are projections: download gives you node titles across many runs, download-outputs gives you first-node input + one node's output across many runs. For everything in between, loop run get over the UUIDs from the discovery ladder in ../cargo-diagnostics/references/run-trace.md § 0.

Orchestration SQL is not an alternative here: runs and spans carry status, timing, and credits, but no node input/output columns.

Downloading batch results

cargo-ai orchestration batch download --uuid  --output-node-slug 

To find the output-node-slug: run cargo-ai orchestration release get (get the release UUID from the batch) and look at nodes[].slug.

Handling partial batch failures

A batch with status: "success" can still contain individual run failures. Always inspect the batch for errors before treating results as complete.

Step 1 — Check the batch summary:

cargo-ai orchestration batch get 
# → .runsCount          = total records submitted
# → .executedRunsCount  = records that reached a terminal state (success or error)
# → .failedRunsCount    = records that errored

Step 2 — Count and download the failed runs:

cargo-ai orchestration run count \
  --workflow-uuid  \
  --batch-uuid  \
  --statuses error

cargo-ai orchestration run download \
  --workflow-uuid  \
  --batch-uuid  \
  --statuses error

Step 3 — Diagnose. Working out why they failed — grouping failures by root cause, picking exemplar runs, reading runContext — is the cargo-diagnostics skill's job: load ../cargo-diagnostics/references/batch-error-sweep.md and feed it the batch UUID.

Step 4 — Re-run only the failed records:

After the diagnosis and fixing the underlying issue (connector credentials, bad input data, rate limits):

# Extract record IDs from the failed run download, then:
cargo-ai orchestration batch create \
  --workflow-uuid  \
  --data '{"kind":"recordIds","recordIds":["id1","id2","id3"]}'

Filtering by node output slug:

To download only a specific node's output from a batch (e.g. just the enrichment node, not the full run):

# 1. Get the release UUID from the batch
cargo-ai orchestration batch get 
# → .releaseUuid

# 2. Find the node slug
cargo-ai orchestration release get 
# → nodes[].slug

# 3. Download that node's output
cargo-ai orchestration batch download \
  --uuid  \
  --output-node-slug 

Segment data export

Filter JSON uses conjonction (not conjunction) — this is intentional. See the cargo-orchestration skill's references/filter-syntax.md for the full filter syntax.

# Full export (all records)
cargo-ai segmentation segment download \
  --model-uuid  \
  --filter '{"conjonction":"and","groups":[]}'

# With sorting and limit
cargo-ai segmentation segment download \
  --model-uuid  \
  --filter '{"conjonction":"and","groups":[]}' \
  --sort '[{"columnSlug":"created_at","kind":"desc"}]' \
  --limit 1000

IMPORTANT: segment download requires --model-uuid, not --segment-uuid. Get the modelUuid from segment list.

For live paginated queries with enrichment, use segmentation segment fetch from the cargo-orchestration skill.

Help

Every command supports --help:

cargo-ai billing usage get-metrics --help
cargo-ai orchestration run download --help
cargo-ai segmentation segment download --help

相关技能

在 Cargo CLI 上查看工作区余额、按工作流或连接器拆分用量、订阅状态、发票和支付方式。

15 次安装

检查并修改 Cargo 工作区的数据模型,并对存储运行 SQL 查询。

14 次安装

Explain what a Cargo run or batch actually did, after the fact — trace one run node by node, draw the graph it executed with the failing step marked, sweep a batch or play for errors grouped by root cause, and attribute credit spend down to the node and the provider. Triggers: "why did this fail", "it succeeded but the output is wrong", "half my rows are empty", "why is this column blank", "what broke in this batch", "why did that cost so much", "which node is burning credits", "it worked yesterday", "these results look wrong", "it went down the wrong path", "this step never ran", "show me what the run did". Skip when: setting up an alert for next time — use cargo-observability; just downloading the data — use cargo-analytics.

1 次安装

Define and use segments — named, saved filters over a Cargo model that become the audience for a batch run, a play trigger, or an export. Triggers: "build a segment of", "filter my contacts where", "who matches this criteria", "save this as a list", "how many companies match", "the Closed-Won segment", "everyone who has not been emailed", "target only accounts that", "what is in this segment", "narrow this down to". Filter JSON uses `conjonction` (not `conjunction`) — misspelling it fails silently. Skip when: running something over the segment — use cargo-orchestration; exporting its rows — use cargo-analytics; ad-hoc SQL over the model — use cargo-storage.

Guided first-run demo for Cargo — one persona question to 25 real leads with a cost receipt in under two minutes, ending by saving the pull as a recurring play. Triggers: "show me what Cargo can do", "give me a demo", "take me on a tour", "quickstart", "getting started with Cargo", "I just installed Cargo", "my workspace is empty", "does this actually work". Skip when: the user has a real job to run (build a list, enrich a CSV, find emails) — use cargo-gtm; when they want CLI reference or routing — use the cargo router skill.

1 次安装

Manage workspace knowledge files and libraries in the Cargo content domain — upload, list, rename, move, and remove files (PDFs, CSVs, text), and create or sync native and connector-backed libraries for retrieval-augmented generation (RAG). Use when the user wants to upload or organize knowledge files, build a knowledge library, or sync an external knowledge source. To attach these to an agent, use the cargo-ai skill.

1 次安装