用于命令行接口 阿里兹·凤凰获取痕迹,检查数据集,查询实验,并直接从您的终端访问提示——或者将它们管道入诸如克洛德码,克勒斯码,克勒斯码和双子座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_KEY | API 密钥( 如果启用了认证) |
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,或 raw | pretty |
--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,或 raw | pretty |
--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,或 raw | pretty |
--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,或 text | pretty |
使用 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,或 raw | pretty |
--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,或 raw | pretty |
--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 或者说 desc | desc |
--include-annotations | 包括会议说明,不包括说明 | —— 说 |
--include-notes | 在当前时包含会话说明 | —— 说 |
--format <format> | pretty, (中文(简体) ), json,或 raw | pretty |
--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,或 raw | pretty |
--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,或 raw | pretty |
--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,或 raw | pretty |
--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,或 NONE | NONE |
--value <label[=score]> | 分类标签(可重复;类别配置) | —— 说 |
--values <json> | 分类值为 JSON( CATEGOR 配置) | —— 说 |
--lower-bound <number> | 下限( 连续/ FREFORM 配置) | —— 说 |
--upper-bound <number> | 上行( 连续/ FREEFORM 配置) | —— 说 |
--threshold <number> | 阈值( FREFORM 配置) | —— 说 |
--format <format> | pretty, (中文(简体) ), json,或 raw | pretty |
--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,或 raw | pretty |
--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,或 raw | pretty |
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,或 raw | pretty |
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, (中文(简体) ), all | tracing, (中文(简体) ), 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>' 用来提取.