用途
agent-observability-eval-bootstrap 是一个用于从生产环境 LLM 追踪数据中引导生成评估器(Evaluator)的技能。它给定一批生产 LLM 追踪样本,分析输入/输出模式与质量维度,然后提出一套可直接使用的评估器套件。
主要能力
技能提供四种输出模式:
- publish(默认):提出在线 LLM-judge 评估器,仅在用户确认套件后,通过 create_or_update_llmobs_evaluator 以禁用草稿(enabled: false)形式写入 Datadog。在 Phase 2 检查点确认前不会创建任何内容,且在 UI 中启用前不会对任何 span 评分——技能从不自动发布在线评估器。启用草稿后,它会在匹配的生产 span、trace 或 session 上自动运行(无需数据集、无需任务函数)。技能会根据判断所需范围自动将每个评估器分类为 span 作用域、trace 作用域或 session 作用域,用户可在检查点接受或覆盖该分类。仅当应用的 span 携带 session_id(Phase 1 探测验证)时才会提出 session 作用域评估器。
- sdk_code(按需,--sdk-code):生成使用 Datadog Evals SDK(BaseEvaluator / LLMJudge)的 Python .py 文件,用于离线实验。
- data_only(按需,--data-only):生成自包含的 JSON 规格,框架无关。
- emit_dataset(按需,--emit-dataset <path>):采样生产追踪并写出适合 LLMObs.create_dataset(records=...) 的 DatasetRecordRaw[] JSON 文件。完全跳过评估器提议与生成——此模式产出数据集而非评估器。由 agent-observability-eval-pipeline(Phase 4)用于从生产行为播种实验数据集。
publish 运行后,若用户想要同一套件的离线代码或可移植规格,只需提出请求,技能会在 sdk_code / data_only 模式下重新生成已确认的套件,无需重新探索。emit_dataset 模式独立于评估器工作流,从不复用先前的提议——它总是重新采样追踪。
使用方式
/eval-bootstrap <ml_app> [--timeframe <window>] [--sdk-code | --data-only | --emit-dataset <path>] [--trace-limit <N>]
参数说明:
- ml_app(必填):用于限定追踪范围的 ML 应用。
- timeframe(可选,默认 now-7d):回溯时间范围。
- rca_report(可选):来自 eval-trace-rca 技能的失败分类,或自由文本失败假设。
- --sdk-code(可选,默认关闭):输出 Python SDK .py 文件用于离线实验,而非在线发布。与 --data-only 和 --emit-dataset 互斥。
- --data-only(可选,默认关闭):输出自包含 JSON 规格文件,而非在线发布。与 --sdk-code 和 --emit-dataset 互斥。
- --emit-dataset <path>(可选,默认关闭):仅数据集模式。采样生产追踪并将 DatasetRecordRaw[] JSON 写入 <path>。完全跳过评估器工作流。与 --sdk-code 和 --data-only 互斥。
- --trace-limit(可选,默认 20,上限 50):emit_dataset 模式下采样的最大追踪数。
若缺少 ml_app,技能会先询问用户。无模式标志时默认 publish。若同时提供 --sdk-code、--data-only、--emit-dataset 中的多个,则报错并询问用户想要哪种模式。
后端检测
每次调用开始时,在采取任何行动前确定使用哪个后端:
- 若用户在调用中任意位置传入 --backend pup → 立即使用 pup 模式,无论是否存在 MCP 工具。跳过步骤 2–4。
- 检查活动工具列表中是否存在 MCP 工具。规范信号是 mcp__datadog-llmo-mcp__list_llmobs_evals 是否出现在可用工具中。
- 若存在 MCP 工具 → 全程使用 MCP 模式。
- 若不存在 MCP 工具 → 检查 pup 是否可执行:通过 Bash 运行 pup --version。包含 "version" 的 JSON 响应确认 pup 可用。
- 若 pup 响应 → 全程使用 pup 模式。
- 若两者都不可用 → 停止并告知用户连接 MCP 服务器或安装 pup。
pup 调用规则:通过 Bash 调用 pup llm-obs <subcommand> [flags];pup 始终输出 JSON,直接解析;若返回认证错误,提示用户运行 pup auth login 并停止;可在单条消息中发起多个 Bash 工具调用实现并行;时间标志接受裸时长字符串(1h、7d、30m)和 RFC3339 时间戳,不要使用 now- 前缀字符串。
可用工具
- search_llmobs_spans:按评估存在性、标签、span 类型、查询语法查找 span,用 cursor 分页。
- get_llmobs_span_details:元数据、评估(分数、标签、推理)以及显示可用字段与大小的 content_info 映射。
- get_llmobs_span_content:获取 span 字段的实际内容,支持通过 path 参数进行 JSONPath 定向提取。
- get_llmobs_trace:以 span 树形式获取完整追踪层级,含按类型统计的 span 数量。
- get_llmobs_agent_loop:按时间顺序的智能体执行时间线(LLM 调用、工具调用、决策)。
- list_llmobs_evals:列出调用者组织内所有 ml_app 配置的每个评估器,含启用状态与 ml_app。
- get_llmobs_evaluator:按名称获取完整持久化评估器配置。
- create_or_update_llmobs_evaluator:(publish 模式)将 LLM-judge 评估器配置写入 Datadog。全量替换语义。
- delete_llmobs_evaluator:(publish 模式)仅在用户明确要求移除评估器时使用,绝不推测性调用。
适用场景
- 需要从生产 LLM 追踪中快速建立评估覆盖的团队。
- 希望以在线 LLM-judge 评估器持续监控生产质量的场景。
- 需要为离线实验生成评估器代码或可移植规格的场景。
- 需要从生产行为播种实验数据集的场景。
限制
- 需要 Datadog MCP 服务器或 pup CLI 之一可用,否则无法运行。
- publish 模式下评估器以禁用草稿创建,需用户在 UI 中手动启用后才会评分。
- session 作用域评估器仅在应用 span 携带 session_id 时才会提出。
- 评估器在离线实验中运行时,input_data 与 output_data 来自用户数据集记录和任务函数,而非 span,数据集 schema 由用户定义,可能与 span 结构不匹配。
- 具体收费、价格、平台支持范围等事实暂未提供。