@arizeai/phoenix-cli

中文文档
1.20.0发布于 2026/11/06Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 3459

凤凰城的命令行界面

中文使用文档
文档目录43 节
  1. 安装
  2. 配置
  3. 简介
  4. 通过编辑器自动补全 $schema
  5. 图标
  6. pxi
  7. px setup
  8. px self update
  9. px trace list [directory]
  10. px trace get <trace-id>
  11. px trace annotate <trace-id>
  12. px trace add-note <trace-id>
  13. px trace-annotations delete
  14. px span list [file]
  15. px span annotate <span-id>
  16. px span add-note <span-id>
  17. px span-annotations delete
  18. px dataset list
  19. px dataset get <dataset-identifier>
  20. px experiment list --dataset <name-or-id>
  21. px experiment get <experiment-id>
  22. px prompt list
  23. px prompt-versions list <prompt-identifier>
  24. px prompt get <prompt-identifier>
  25. px project list
  26. px project get <name>
  27. px session list
  28. px session get <session-id>
  29. px session annotate <session-id>
  30. px session add-note <session-id>
  31. px session-annotations delete
  32. px annotation-config list
  33. px annotation-config get <config-identifier>
  34. px annotation-config create
  35. px annotation-config update <config-identifier>
  36. px annotation-config delete <config-id>
  37. px auth login
  38. px auth logout
  39. px auth status
  40. px api graphql <query>
  41. px docs fetch
  42. JSON 输出形状
  43. 社区

Arize Phoenix logo
@arizeai/凤凰-cli

NPM Version Documentation

用于命令行接口 阿里兹·凤凰获取痕迹,检查数据集,查询实验,并直接从您的终端访问提示——或者将它们管道入诸如克洛德码,克勒斯码,克勒斯码和双子座CLI等AI编码代理.

安装

npm install -g @arizeai/phoenix-cli
# or run without installing:
npx @arizeai/phoenix-cli

# once installed globally, update in place:
px self update

配置

export PHOENIX_ENDPOINT=http://localhost:6006
export PHOENIX_PROJECT=my-project
export PHOENIX_API_KEY=your-api-key  # if authentication is enabled

CLI 旗帜(--endpoint, (中文(简体) ), --project, (中文(简体) ), --api-key) 覆盖环境变量。 供当地互动使用, px auth login 将 OAuth 会话存储在您当前配置文件中; 会话得到登录用户的允许。 API 密钥在配置时优先 .

变量说明
PHOENIX_ENDPOINT凤凰基地 URL( 动画)
PHOENIX_COLLECTOR_ENDPOINT跟踪- 导出基址,通常与 PHOENIX_ENDPOINT· ; px 未设置时使用
PHOENIX_HOST基准 URL 的后退
PHOENIX_PROJECT项目名称或ID(名称)
PHOENIX_PROJECT_NAME项目名称或ID(上面的别名)
PHOENIX_API_KEYAPI 密钥( 如果启用了认证)
PHOENIX_CLIENT_HEADERS自定义标题为 JSON 字符串
PHOENIX_CLI_DANGEROUSLY_ENABLE_DELETES设定为时启用 CLI 删除命令 true

删除命令默认已禁用并需要 PHOENIX_CLI_DANGEROUSLY_ENABLE_DELETES=true。 。 。 .

CLI 也发现最近的 .env.phoenix 当前或以上的文件 工作目录。 配置优先级为: CLI 旗,进程环境, 活动简介, .env.phoenix,然后内置默认值。 全权证书问题已解决 作为一组,所以一个进程 API 密钥永远不会与文件提供的客户端结合 头. 如果高优先级证书与来自 文档中, CLI 警告一次并继续。 设定 PHOENIX_DISCOVER_CONFIG=false 以禁用发现.

简介

配置文件为凤凰城实例保存端点、工程、 API 密钥和标题, 名称如下: prod 或者说 staging。激活一个配置和每个 px 命令在不重新导出环境变量的情况下取取这些设置。 环境变量和CLI旗仍然会覆盖活性剖面,因此已存在的脚本继续工作.

px profile create prod --endpoint https://phoenix.example.com --project main \
                       --api-key sk-xxx --activate
px profile list                # all profiles, kubectl-style "current" column
px profile show                # the active profile (or pass <name>)
px profile use prod            # switch the active profile
px profile edit prod           # open in $EDITOR, validates on save
px profile delete prod         # remove a profile (--yes to skip prompt)

过 --profile <name> 改为 auth login, (中文(简体) ), auth logout,或 auth status 将单一援引的范围扩大到一个非现行概况.

通过编辑器自动补全 $schema

CLI写道: $schema 字段首次创建时自动  settings.json因此,像 VS 代码和JetBrains 等编辑验证和 自动完成框外的文件 :

{
  "$schema": "https://raw.githubusercontent.com/Arize-ai/phoenix/main/schemas/phoenix-cli-settings.json",
  "activeProfile": "prod",
  "profiles": { ... }
}

如果用手取出线条,则CLI不会添加回. 计划 生活状况 schemas/phoenix-cli-settings.json 在凤凰城仓库 并跟踪出版的Zod计划。 该指针目前被固定在 main一旦注册,我们将切换到SchemaStore条目.

用于 VS 全项目协会代码 .vscode/settings.json数字 :

{
  "json.schemas": [
    {
      "fileMatch": ["settings.json"],
      "url": "https://raw.githubusercontent.com/Arize-ai/phoenix/main/schemas/phoenix-cli-settings.json"
    }
  ]
}

图标

pxi

打开 临十一 (Phoenix Intelligence),与凤凰网互动终端聊天 探员 它连接到运行中的 Phoenix 实例, 是相同的服务器侧代理 赋予浏览器助手权力 —— 调查失败的痕迹, 显示 提示,把凤凰城从终点站开走.

pxi                                                          # uses PHOENIX_ENDPOINT / PHOENIX_API_KEY
pxi --endpoint http://localhost:6006 --provider OPENAI --model gpt-5.4
npx -y @arizeai/phoenix-cli pxi                              # run without installing

pxi 需要版本上的凤凰服务器 20.0.0或更新它检查服务器 版本在启动和退出时带有针对旧服务器的升级消息.

在聊天中,斜线命令(/help, (中文(简体) ), /clear, (中文(简体) ), /new, (中文(简体) ), /temporary, (中文(简体) ), /sessions, (中文(简体) ), /model, (中文(简体) ), /compact, (中文(简体) ), /exit)由当地处理。 见 PXI文件 为全旗和 斜线命令参考、模型设置和隐私控制.


px setup

把你的应用带去凤凰城 从应用程序根运行 :

px setup                                          # interactive
px setup --endpoint https://phoenix.example.com   # skip the endpoint prompt
npx -y @arizeai/phoenix-cli setup                 # try without installing

设置保存连接到 gitignored .env.phoenix,然后可选择 手动编码代理( Claude Code, Codex, Cursor, OpenCode) 仪器 任务和等待真实的跟踪出现。 之后它可以指点 px 地点 新建工程并安装凤凰城技能,以便代理商可以查询您捕获到的.

它提供连接凤凰Docs MCP服务器和代理商的方式 进行交接——通过经纪人拥有的CLI(claude mcp add),否则其每个项目的配置文件(.cursor/mcp.json, (中文(简体) ), opencode.json) (中文(简体) ). 接受这个提议就跳过了 .px/docs 完全下载——代理搜索 反之,文件是按要求提供的,它更快地设置,更便宜的代币. 任何失败都会被退回下载. 过 --docs-mcp 接受这个提议 没有被询问, --no-docs-mcp 永远不要问.

对于CI或特工,通过标记而不是回答提示:

# Connection only — write .env.phoenix, no source changes
px setup --no-input --endpoint http://localhost:6006 --project my-app

# Instrument too — requires --agent when there's no TTY to choose one
px setup --no-input --instrument --agent claude --yolo --language python --format raw

# Same, but connect the docs MCP instead of downloading the docs
px setup --no-input --instrument --agent claude --yolo --docs-mcp --format raw

只有找到线索 才能成功 代理商自己声称它完成了不算. 每个输出都这么说,所以 退出代码 :

退出含义
0已验证,只登记,或者您选择“ 稍后验证”
1意外错误
2已取消
3缺少或无效的旗帜( 错误打印出正确的引用)
4未经认证,或证书未经批准
5无法到达凤凰城终点
6等待时间已过,没有找到任何线索——没有证实追查工作有效

等不及了,就等着吧 6。不注册 --instrument,以及 回答“ 完成设置—— 我稍后核实” 0 这样啊 px setup && npm run dev 财务报告和审定财务报表 set -e 脚本继续工作 故意推迟.

单位 --format json|raw, (中文(简体) ), verification 实值 verified, (中文(简体) ), notVerified,或 deferred并且当没有可核实时缺席; tracesVerified 实值 布尔快手 verification == "verified"。 。 。 . --format pretty 打印 a traces: 线条。 不要在交接员自己的出口上得分 代码 – 它可能正确编辑应用程序, 然后退出很糟, 或者干净地退出 却一无所获.

后用:

px setup instrument --agent codex   # instrument and verify again
px setup skills                     # install coding-agent skills only

px setup mcp

登记凤凰城 远程 MCP 服务器 (单位:千美元)<endpoint>/mcp有编码 代理, 这样代理可以搜索、 查询和操作您的凤凰数据 。 这个 结束点推断自 --endpoint,活动剖面,或 PHOENIX_ENDPOINT —— 说 你永远不要重打它.

px setup mcp                        # pick scope (global default) + agent, interactively
px setup mcp --agent codex          # configure one agent
px setup mcp --agent claude --local # write this repo's config (.mcp.json)

支助代理人: claude, (中文(简体) ), codex, (中文(简体) ), gemini, (中文(简体) ), cursor, (中文(简体) ), opencode, (中文(简体) ), vscode。 。 。 . 如果代理人运送 mcp add (Claude、Codex、双子座、VS码全球) CLI 驱动它; 其余的则在他们的配置文件中获得合并( C)~/.cursor/mcp.json, (中文(简体) ), ~/.config/opencode/opencode.json, (中文(简体) ), .vscode/mcp.json) (中文(简体) ). 范围是 --global (全用户,默认值)或 --local (这个 repo — Codex 是全局的).

Auth 默认为 奥奥特: 配置是仅限 URL , 代理打开 Phoenix 的 浏览器登录在第一次使用时 。 对于无头客户端,请通过 API 键无头头 与 --header (可重复):

px setup mcp --agent codex --no-input --format raw
px setup mcp --agent claude --header 'Authorization: Bearer ${PHOENIX_API_KEY}'

px self update

检查 npm 登记册以获取最新的 CLI 发布并更新已安装 当有更新版本时,全球CLI到位.

px self update          # show current/latest and update if needed
px self update --check  # show current/latest without installing

全局支持自动更新 npm, (中文(简体) ), pnpm, (中文(简体) ), bun标准 deno install -g 包装器安装.

px trace list [directory]

从配置的工程中获取最近的痕迹 。 所有输出都是JSON.

px trace list --limit 10                          # stdout (pretty)
px trace list --format raw --no-progress | jq    # pipe-friendly compact JSON
px trace list ./my-traces --limit 50             # save as JSON files to directory
px trace list --last-n-minutes 60 --limit 20     # filter by time window
px trace list --since 2026-01-13T10:00:00Z       # since ISO timestamp
px trace list --since 2026-01-13T10:00:00Z --until 2026-01-14T10:00:00Z # time range
选项说明默认
[directory]将追踪保存为 JSON 文件到目录静态
-n, --limit <number>痕迹数量( 最新第一)10个
--last-n-minutes <number>只有最后N分钟的痕迹—— 说
--since <timestamp>ISO 时间戳后追踪—— 说
--until <timestamp>追踪在ISO 时间戳之前开始的周期( 专属)—— 说
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--no-progress抑制进度产出—— 说
--include-annotations包含跟踪和跨度说明—— 说
--include-notes包含跟踪和间距注释—— 说
# Find ERROR traces
px trace list --limit 50 --format raw --no-progress | jq '.[] | select(.status == "ERROR")'

# Sort by duration, take top 5 slowest
px trace list --limit 20 --format raw --no-progress | jq 'sort_by(-.duration) | .[0:5]'

# Extract LLM model names used
px trace list --limit 50 --format raw --no-progress | \
  jq -r '.[].spans[] | select(.span_kind == "LLM") | .attributes["llm.model_name"]' | sort -u

px trace get <trace-id>

凭身份证找到一个线索.

px trace get abc123def456
px trace get abc123def456 --format raw | jq '.spans[] | select(.status_code != "OK")'
px trace get abc123def456 --file trace.json
px trace get abc123def456 --include-notes --format raw | jq '{traceNotes: .notes, spanNotes: [.spans[].notes]}'

px trace annotate <trace-id>

由 OpenTeleometry 痕量ID 创建或更新人类痕量注释.

px trace annotate abc123def456 --name reviewer --label pass
px trace annotate abc123def456 --name reviewer --score 0.9 --format raw --no-progress
px trace annotate abc123def456 --name evaluator --label pass --annotator-kind LLM
px trace annotate abc123def456 --name reviewer --explanation "needs follow-up"

px trace add-note <trace-id>

由 OpenTeleometry track ID 添加一个音符到追踪.

px trace add-note abc123def456 --text "needs follow-up"
px trace add-note abc123def456 --text "agent triage complete" --format raw --no-progress

px trace-annotations delete

删除已配置项目的微量说明 。 要求数 --all (删除每行匹配) 或者说 两者 --start-time 财务报告和审定财务报表 --end-time 将删除绑入 a [start_time, end_time) 窗口 - --name, (中文(简体) ), --identifier,以及 --annotator-kind 正在缩小过滤器, 并且从未自行授权请求 。 删除默认已禁用; 设置 PHOENIX_CLI_DANGEROUSLY_ENABLE_DELETES=true 先说.

px trace-annotations delete --identifier "$PHOENIX_CODING_IDENTIFIER" --all -y
px trace-annotations delete --identifier "$PHOENIX_CODING_IDENTIFIER" --all -y --format raw --no-progress
px trace-annotations delete --start-time 2026-01-01T00:00:00Z --end-time 2026-01-02T00:00:00Z -y

产出(json/raw): { deleted: true, target: "trace", filter: { identifier?, name?, annotator_kind?, start_time?, end_time?, all? } }。 。 。 .


px span list [file]

以过滤选项获取配置项目的跨度 。 输出是JSON.

px span list --limit 50                                    # stdout (pretty)
px span list --span-kind LLM --limit 20                    # only LLM spans
px span list --status-code ERROR --format raw --no-progress # pipe-friendly error spans
px span list --name chat_completion --trace-id abc123       # filter by name and trace
px span list --span-id abc123 def456                        # fetch specific spans by ID
px span list --parent-id null                               # root spans only
px span list spans.json --limit 100 --include-annotations   # save to file with annotations
px span list --last-n-minutes 30 --span-kind TOOL RETRIEVER # multiple span kinds
px span list --since 2026-07-01T00:00:00Z --until 2026-07-02T00:00:00Z # time range
选项说明默认
[file]将跨度保存为 JSON 文件静态
-n, --limit <number>最大跨度( 最新第一个)100
--last-n-minutes <number>从最后N分钟开始—— 说
--since <timestamp>自ISO 时间戳以来的垃圾桶—— 说
--until <timestamp>Spans 开始于 ISO 时间戳( 专属)—— 说
--span-kind <kinds...>按跨度类型过滤( E)LLM, (中文(简体) ), CHAIN, (中文(简体) ), TOOL, (中文(简体) ), RETRIEVER, (中文(简体) ), EMBEDDING, (中文(简体) ), AGENT, (中文(简体) ), RERANKER, (中文(简体) ), GUARDRAIL, (中文(简体) ), EVALUATOR, (中文(简体) ), DECISION, (中文(简体) ), UNKNOWN(中文(简体) )—— 说
--status-code <codes...>按状态代码过滤( E)OK, (中文(简体) ), ERROR, (中文(简体) ), UNSET(中文(简体) )—— 说
--name <names...>按跨度名称过滤—— 说
--trace-id <ids...>通过微量ID过滤—— 说
--span-id <ids...>由 OpenTeleometry 进行跨 ID 过滤 。 需要凤凰城服务器 19.6.0.—— 说
--parent-id <id>按父跨 ID (使用) 过滤 "null" 仅用于根跨)—— 说
--include-annotations在输出中包含间距说明—— 说
--include-notes在输出中包含间距注释—— 说
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--no-progress抑制进度产出—— 说
# Find all ERROR spans
px span list --status-code ERROR --format raw --no-progress | jq '.[] | {name, status_code}'

# Get LLM spans with token counts
px span list --span-kind LLM --format raw --no-progress | \
  jq '.[] | {name, model: .attributes["llm.model_name"], tokens: (.attributes["llm.token_count.prompt"] + .attributes["llm.token_count.completion"])}'

# Root spans only, sorted by name
px span list --parent-id null --format raw --no-progress | jq 'sort_by(.name)'

px span annotate <span-id>

由 OpenTeleometry 跨 ID 创建或更新一个人类跨度注释 .

px span annotate 7e2f08cb43bbf521 --name reviewer --label pass
px span annotate 7e2f08cb43bbf521 --name reviewer --score 0.9 --format raw --no-progress
px span annotate 7e2f08cb43bbf521 --name checker --score 1 --annotator-kind CODE
px span annotate 7e2f08cb43bbf521 --name reviewer --explanation "looks good"

px span add-note <span-id>

由 OpenTeleometry 跨 ID 添加一个长度的注释 .

px span add-note 7e2f08cb43bbf521 --text "double-check tool output"
px span add-note 7e2f08cb43bbf521 --text "verified by agent" --format raw --no-progress

px span-annotations delete

删除已配置工程的间距说明 。 与 px trace-annotations delete 要求 --all 或两者兼有 --start-time 财务报告和审定财务报表 --end-time。 。 。 .

px span-annotations delete --identifier "$PHOENIX_CODING_IDENTIFIER" --all -y

px dataset list

列出所有数据集.

px dataset list --format raw --no-progress | jq '.[].name'

px dataset get <dataset-identifier>

从数据集获取示例.

px dataset get my-dataset --format raw | jq '.examples[].input'
px dataset get my-dataset --split train --split test
px dataset get my-dataset --version <version-id>
px dataset get my-dataset --file dataset.json

px experiment list --dataset <name-or-id>

列出一个数据集的实验.

px experiment list --dataset my-dataset --format raw --no-progress | \
  jq '.[] | {id, successful_run_count, failed_run_count}'

px experiment get <experiment-id>

获取所有运行数据的单一实验(输入,输出,评价,痕量ID).

# Find failed runs
px experiment get RXhwZXJpbWVudDox --format raw --no-progress | \
  jq '.[] | select(.error != null) | {input, error}'

# Average latency
px experiment get RXhwZXJpbWVudDox --format raw --no-progress | \
  jq '[.[].latency_ms] | add / length'

px prompt list

列出所有提示 .

px prompt list --format raw --no-progress | jq '.[].name'

px prompt-versions list <prompt-identifier>

按名称或ID列出所有提示版本, 首先是最新版本 。 表格显示每个 版本的ID,描述,模型提供者,模型名称,和创建日期. 创建 日期使用本地日期/ 时间格式化, 与旧日期连接时为空白 服务器。 标记不包含 .

px prompt-versions list my-evaluator
px prompt-versions list my-evaluator --limit 10 --format json
px prompt-versions list my-evaluator --format raw --no-progress | jq '.[].id'

无 --limit,获取全部页面。 JSON 和 原始输出包含一组全 版本对象; created_at 只在服务器返回时存在. JSON和生出输出保留了原来的时间戳字符串.

选项说明默认
--limit <number>要获取的最大版本数所有版本
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--endpoint <url>凤凰网 API 端点配置的终点
--api-key <key>凤凰 API 密钥配置了 API 密钥
--no-progress抑制进度产出已启用进度

px prompt get <prompt-identifier>

快拿来 这个 text 格式对 AI 助手来说是理想的.

px prompt get my-evaluator --format text --no-progress | claude -p "Review this prompt"
px prompt get my-evaluator --tag production --format json | jq '.template'
选项说明默认
--tag <name>通过标签获取版本—— 说
--version <id>获取特定版本最新消息
--format <format>pretty, (中文(简体) ), json, (中文(简体) ), raw,或 textpretty

使用 px prompt-versions list <prompt-identifier> 以发现版本ID --version。 。 。 .


px project list

列出所有可用的凤凰城项目.

px project list                                           # pretty output
px project list --format raw --no-progress | jq '.[].name'
px project list --limit 5
选项说明默认
--limit <number>每页最大项目数—— 说
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--no-progress抑制进度产出—— 说

px project get <name>

获取一个凤凰城项目的确切名称. 输出是单个记录(不是数组)——JSON和生生模式会放出一个赤色物体. 名称丢失时, 退出 ExitCode.FAILURE (1) 写道: StructuredError JSON 信封输入 --format json|raw。 。 。 .

px project get my-project
px project get my-project --format raw --no-progress | jq -r '.id'
px project get my-project --format json
选项说明默认
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--limit <number>基础搜索的页面大小100
--no-progress抑制进度产出—— 说

小写 Stderr( raw) : {"error":"Project 'foo' not found","code":"FAILURE","hint":"px project list --format raw"}。 。 。 .


px session list

列出一个项目的会话.

px session list                                            # latest 10 sessions
px session list --limit 20 --order asc                     # oldest first
px session list --format raw --no-progress | jq '.[].session_id'
px session list --include-annotations --include-notes --format raw | jq '.[].notes'
选项说明默认
-n, --limit <number>最多会议次数10
--order <order>排序顺序 : asc 或者说 descdesc
--include-annotations包括会议说明,不包括说明—— 说
--include-notes在当前时包含会话说明—— 说
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--no-progress抑制进度产出—— 说

px session get <session-id>

查看会话的对话流程 .

px session get my-session-id
px session get my-session-id --file session.json
px session get my-session-id --include-annotations --format raw | jq '.session.annotations'
px session get my-session-id --include-notes --format raw | jq '.session.notes'
选项说明默认
--file <path>保存会话到文件而非 stdout—— 说
--include-annotations包括会议说明,不包括说明—— 说
--include-notes在当前时包含会话说明—— 说
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--no-progress抑制进度产出—— 说

px session annotate <session-id>

通过 GlobalID 或用户提供创建或更新人类会话注释 session_id。 。 。 .

px session annotate my-session-id --name reviewer --label pass
px session annotate my-session-id --name reviewer --score 0.9 --format raw --no-progress
px session annotate my-session-id --name evaluator --label pass --annotator-kind LLM
px session annotate my-session-id --name reviewer --explanation "needs follow-up"

px session add-note <session-id>

GlobalID 或用户提供的会话中添加一个注释 session_id。需要凤凰服务器 14.17.0 或更新.

px session add-note my-session-id --text "needs follow-up"
px session add-note my-session-id --text "agent triage complete" --format raw --no-progress

px session-annotations delete

删除配置工程的会话说明 。 与微量/平面等同的授权门——要求 --all 或两者兼有 --start-time 财务报告和审定财务报表 --end-time。 。 。 .

px session-annotations delete --identifier "$PHOENIX_CODING_IDENTIFIER" --all -y

注释配置分为三种类型—— CATEGORICAL (一套固定的标签,每个标签都有可选的数字分数), CONTINUOUS (数字范围),和 FREEFORM (免费文本). 这个 create, (中文(简体) ), get, (中文(简体) ), update,以及 delete 命令将完整 CRUD 与 list。 。 。 .

指定绝对值

create 财务报告和审定财务报表 update 接受同样的绝对标签, 所以你只学习一次。 更倾向于可重复的,对外壳友好的旗帜;JSON形式是一种散装/代理替代.

# Repeatable flag: label with an optional score (label=score, or just label)
--value good=1 --value bad=0 --value needs-review

# JSON payload (handy for agents or large label sets)
--values '[{"label":"good","score":1},{"label":"bad","score":0}]'

这两种形式是相互排斥的——通过一种或另一种,而不是两种.


px annotation-config list

列出您 Phoenix 实例中定义的注释配置 .

# Show all annotation configs as a table
px annotation-config list

# Extract config names as JSON (agent-friendly)
px annotation-config list --format raw --no-progress | jq -r '.[].name'

# Fetch at most 10 configs
px annotation-config list --limit 10
选项说明默认
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--no-progress抑制进度产出—— 说

px annotation-config get <config-identifier>

按名称或ID获取单个注释配置 。 配置写入到选中的 stdout --format (一个用于 raw编号 :json) (中文(简体) ).

# Look up a config by name
px annotation-config get response-quality

# Resolve a config name to its ID (agent-friendly)
px annotation-config get response-quality --format raw --no-progress | jq -r '.id'

# Inspect the labels of a categorical config
px annotation-config get response-quality --format raw --no-progress | jq '.values'
选项说明默认
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--no-progress抑制进度产出—— 说

px annotation-config create

通过 POST /v1/annotation_configs。所创建的配置将写入选中的 --format。 。 。 .

# Pass/fail quality rating with scored labels (higher is better)
px annotation-config create --type CATEGORICAL --name response-quality \
  --value good=1 --value bad=0 --optimization-direction MAXIMIZE

# Sentiment labels without scores
px annotation-config create --type CATEGORICAL --name sentiment \
  --value positive --value neutral --value negative

# Confidence score between 0 and 1
px annotation-config create --type CONTINUOUS --name confidence --lower-bound 0 --upper-bound 1

# Free-text feedback from human reviewers
px annotation-config create --type FREEFORM --name reviewer-notes --description 'Free-form reviewer feedback'

# Create from a JSON payload and capture the new config ID (agent-friendly)
px annotation-config create --type CATEGORICAL --name response-quality \
  --values '[{"label":"good","score":1},{"label":"bad","score":0}]' \
  --format raw --no-progress | jq -r '.id'
选项说明默认
--type <type>CATEGORICAL, (中文(简体) ), CONTINUOUS,或 FREEFORM (必须)—— 说
--name <name>注释配置名称( 需要)—— 说
--description <description>说明—— 说
--optimization-direction <dir>MINIMIZE, (中文(简体) ), MAXIMIZE,或 NONENONE
--value <label[=score]>分类标签(可重复;类别配置)—— 说
--values <json>分类值为 JSON( CATEGOR 配置)—— 说
--lower-bound <number>下限( 连续/ FREFORM 配置)—— 说
--upper-bound <number>上行( 连续/ FREEFORM 配置)—— 说
--threshold <number>阈值( FREFORM 配置)—— 说
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--no-progress抑制进度产出—— 说

--type 财务报告和审定财务报表 --name 需要;a CATEGORICAL 配置还需要至少一个值. --type 财务报告和审定财务报表 --optimization-direction 属于对案件不敏感。 无效的输入——包括不适用于所选类型的旗帜——退出 INVALID_ARGUMENT。 。 。 .


px annotation-config update <config-identifier>

按名称或ID更新注释配置 。 只有您通过的字段被更改——命令获取已有的配置, 合并您的旗帜, 并将结果通过 PUT /v1/annotation_configs/{id}配置 type ; 要更改, 删除并重现配置。 更新的配置写入到选中的 stdout --format。 。 。 .

# Change only the description; every other field is preserved
px annotation-config update response-quality --description 'Pass/fail rating from human review'

# Rename a config and set its optimization direction
px annotation-config update response-quality --name answer-quality --optimization-direction MAXIMIZE

# Replace the label set of a categorical config
px annotation-config update response-quality --value good=1 --value acceptable=0.5 --value bad=0

# Widen the range of a continuous config
px annotation-config update confidence --lower-bound -1 --upper-bound 1

# Update and capture the config ID (agent-friendly)
px annotation-config update response-quality --description 'Updated' --format raw --no-progress | jq -r '.id'
选项说明默认
--name <name>新名称—— 说
--description <description>新说明—— 说
--optimization-direction <dir>MINIMIZE, (中文(简体) ), MAXIMIZE,或 NONE—— 说
--value <label[=score]>分类标签(可重复;类别配置)—— 说
--values <json>分类值为 JSON( CATEGOR 配置)—— 说
--lower-bound <number>下限( 连续/ FREFORM 配置)—— 说
--upper-bound <number>上行( 连续/ FREEFORM 配置)—— 说
--threshold <number>阈值( FREFORM 配置)—— 说
--format <format>pretty, (中文(简体) ), json,或 rawpretty
--no-progress抑制进度产出—— 说

需要至少一面战地旗. 无效的输入——包括不适用于配置类型(例如. --value 连续配置)——与 INVALID_ARGUMENT。 。 。 .


px annotation-config delete <config-id>

用 ID 删除注释配置 。 和所有删除命令一样,除非 PHOENIX_CLI_DANGEROUSLY_ENABLE_DELETES=true 已设定,并提示予以确认,除非 --yes 通过.

# Delete with an interactive confirmation prompt
px annotation-config delete QW5ub3RhdGlvbkNvbmZpZzoxMjM=

# Skip the confirmation prompt (for scripts and agents)
px annotation-config delete QW5ub3RhdGlvbkNvbmZpZzoxMjM= --yes

# Resolve a name to its ID, then delete it
px annotation-config get response-quality --format raw --no-progress | jq -r '.id' | xargs px annotation-config delete --yes
选项说明默认
-y, --yes跳过确认提示—— 说
--no-progress抑制进度产出—— 说

px auth login

登录基于浏览器的 OAuth 流并存储选定配置文件上的符号 。 URL总是被打印为stderr,因此SSH和无头用户可以手动打开. OAuth CLI 会话根据登录用户的许可行事.

CLI 自动刷新 REST、 GraphQL 和 到期访问符 PXI请求. 请求被驳回 401 触发一次刷新并重试; 旋转的令牌被坚持到选定的配置文件 .

px auth login
px auth login --no-browser
px auth login --profile staging --format raw
选项说明默认
--endpoint <url>凤凰网 API 端点—— 说
--api-key <key>凤凰 API 密钥—— 说
--profile <name>保存 OAuth 令牌的配置文件活动
--no-browser不打开浏览器而打印 URL—— 说
--no-input不为粘贴的重定向 URL 提示—— 说
--format <format>pretty, (中文(简体) ), json,或 rawpretty

px auth logout

从选中的配置中清除 OAuth 令牌 。 登录最优努力取消服务器上的刷新令牌, 并留下任何配置的 API 密钥未被更改 .

px auth logout
px auth logout --profile staging
px auth logout --format raw

px auth status

显示当前 Phoenix 认证状态, 包括配置的端点、 证书来源、 身份, 以及 OAuth 访问级别/ 到期 .

px auth status
px auth status --endpoint http://localhost:6006
px auth status --profile staging --format raw
选项说明默认
--endpoint <url>凤凰网 API 端点—— 说
--api-key <key>凤凰 API 密钥—— 说
--profile <name>要使用的配置文件活动
--format <format>pretty, (中文(简体) ), json,或 rawpretty

px api graphql <query>

根据凤凰城 API 进行认证的 GraphQL 查询 。 输出为 {"data": {...}} JSON——烟斗 jq '.data.<field>' 以提取值。 只允许查询;突变和订阅被拒绝.

px api graphql '<query>' [--endpoint <url>] [--api-key <key>]

将 HTTP 请求预览为 curl 不执行它:

px api graphql '{ projects { edges { node { name } } } }' --curl
px api graphql '{ projects { edges { node { name } } } }' --curl --show-token

--curl 在不进行网络呼叫的情况下,打印相应的 Stdout 请求并退出。 默认情况下,包括通过 PHOENIX_API_KEY 或者说 PHOENIX_CLIENT_HEADERS启用 --show-token 只有当您明确需要生成命令中的原始证书时.

目前的范围和行为:

  • --curl 目前正在为 px api graphql 只有这个.
  • --curl 不执行而打印请求.
  • --show-token 只对 --curl。 。 。 .
  • 授权口罩和信头正常化是为了配合用户使用的活请求行为 fetch。 。 。 .

使用反演来发现可用的字段 :

$ px api graphql '{ __schema { queryType { fields { name } } } }' | jq '.data.__schema.queryType.fields[].name'
"projects"
"datasets"
"prompts"
"evaluators"
"projectCount"
"datasetCount"
...

$ px api graphql '{ __type(name: "Experiment") { fields { name type { name } } } }' | \
    jq '.data.__type.fields[] | {name, type: .type.name}'
{"name":"id","type":"ID"}
{"name":"name","type":"String"}
{"name":"runCount","type":"Int"}
{"name":"errorRate","type":"Float"}
{"name":"averageRunLatencyMs","type":"Float"}

项目:

$ px api graphql '{ projects { edges { node { name traceCount tokenCountTotal } } } }' | \
    jq '.data.projects.edges[].node'
{"name": "default", "traceCount": 1482, "tokenCountTotal": 219083}

数据集 :

$ px api graphql '{ datasets { edges { node { name exampleCount experimentCount } } } }' | \
    jq '.data.datasets.edges[].node'
{"name": "eval-golden-set", "exampleCount": 120, "experimentCount": 4}
{"name": "rag-test-cases", "exampleCount": 50, "experimentCount": 1}

实验:

# List experiments per dataset with error rate and avg latency
$ px api graphql '{
  datasets {
    edges {
      node {
        name
        experiments {
          edges {
            node { name runCount errorRate averageRunLatencyMs }
          }
        }
      }
    }
  }
}' | jq '.data.datasets.edges[].node | {dataset: .name, experiments: [.experiments.edges[].node]}'

# Find experiments with failures
$ px api graphql '{
  datasets { edges { node { name experiments { edges { node { name errorRate runCount } } } } } }
}' | jq '.. | objects | select(.errorRate? > 0) | {name, errorRate, runCount}'

数一看:

$ px api graphql '{ projectCount datasetCount promptCount evaluatorCount }'
{"data": {"projectCount": 1, "datasetCount": 12, "promptCount": 3, "evaluatorCount": 2}}

px docs fetch

下载凤凰文档标记下的文件,供编码代理使用. 从中获取页面 页:1 索引,按工作流程类别过滤,并用自动生成的索引文件将其写入本地目录.

px docs fetch                                # fetch default workflows
px docs fetch --workflow tracing             # fetch only tracing docs
px docs fetch --workflow tracing --workflow evaluation
px docs fetch --dry-run                      # preview without downloading
px docs fetch --refresh                      # clear output dir and re-download
选项说明默认
--workflow <name>按工作流程类别过滤(可重复). 数值 : tracing, (中文(简体) ), evaluation, (中文(简体) ), datasets, (中文(简体) ), prompts, (中文(简体) ), integrations, (中文(简体) ), sdk, (中文(简体) ), self-hosting, (中文(简体) ), alltracing, (中文(简体) ), evaluation, (中文(简体) ), datasets, (中文(简体) ), prompts, (中文(简体) ), integrations
--output-dir <dir>下载文件输出目录.px/docs
--dry-run只发现链接; 不写入文件false
--refresh下载前清除输出目录false
--strict如果任何页面下载失败, 命令失败false
--workers <n>同时下载的工人人数10

JSON 输出形状

所有命令输出 JSON. 使用 --format raw 用于压缩 JSON 和 --no-progress 在管道时压制 stderr :

px trace list --format raw --no-progress | jq ...
px dataset list --format raw --no-progress | jq ...

追踪JSON结构:

{
  "traceId": "abc123def456",
  "status": "OK",
  "duration": 1250,
  "spans": [
    {
      "name": "chat_completion",
      "span_kind": "LLM",
      "status_code": "OK",
      "attributes": {
        "llm.model_name": "gpt-4",
        "llm.token_count.prompt": 512,
        "llm.token_count.completion": 256,
        "input.value": "What is the weather?",
        "output.value": "The weather is sunny..."
      }
    }
  ]
}

px api graphql 输出总是在 {"data": {...}}管道 jq '.data.<field>' 用来提取.


社区

版本与发布记录

@arizeai/phoenix-cli 共发布 90 个版本,首次发布于 2025/07/17;过去 12 个月发布了 89 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.20.0latest2026/11/061 天前
1.19.22026/11/052 天前
1.19.12026/11/035 天前
1.19.02026/10/308 天前
1.18.102026/10/2810 天前
1.18.92026/10/2217 天前

关于 @arizeai/phoenix-cli 的常见问题

@arizeai/phoenix-cli 是什么?

凤凰城的命令行界面

如何安装 @arizeai/phoenix-cli?

在项目目录运行 npm install @arizeai/phoenix-cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 px、pxi、phoenix-cli,可以用 npx px 直接运行。

@arizeai/phoenix-cli 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@arizeai/phoenix-cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@arizeai/phoenix-cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@arizeai/phoenix-cli 可以商用吗?

@arizeai/phoenix-cli 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@arizeai/phoenix-cli 的下载量有多少?

根据 npm 官方下载统计,@arizeai/phoenix-cli 在 2026/10/07 – 2026/11/05 这 30 天内被下载 3,459 次,日均约 115 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@arizeai/phoenix-cli 还在维护吗?

最新版本 1.20.0 发布于 2026/11/06(1 天前);至今共发布 90 个版本,其中过去 12 个月发布了 89 个;首次发布于 2025/07/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。