首页
/ awesome-copilot 项目实战:用 Comet Opik Agent 为 LLM 应用构建全链路可观测性与 Prompt 治理体系

awesome-copilot 项目实战:用 Comet Opik Agent 为 LLM 应用构建全链路可观测性与 Prompt 治理体系

2026-09-08 21:17:14作者:何举烈Damon

本文基于开源仓库 awesome-copilot 中社区贡献的 Comet Opik Agent 文档,系统讲解如何借助 Opik MCP 服务器,让 GitHub Copilot 完成 LLM 应用埋点、Prompt/版本治理、工作区与项目管理、Trace 与指标排查等一体化运维工作。读完本文,你将掌握 Opik 账户与 API Key 的获取方式、opik configure 与环境变量两套配置路径、Copilot 中 MCP 服务器的安装检查清单,以及从 Bronze 到 Gold 的质量门槛如何驱动生产就绪。

一、这个 Agent 是做什么的:Comet Opik 在 Copilot 中的定位

comet-opik 是 awesome-copilot 仓库中由 GitHub 合作伙伴(partner)贡献的定制 Agent。它的定位一句话概括:让 GitHub Copilot 成为你仓库的 Comet Opik 运维专员——负责把 Opik 客户端集成进 LLM 应用、强制 Prompt/版本治理、管理工作区与项目,并排查 Trace、指标与实验数据,且不破坏既有业务逻辑。

在仓库结构中,它被登记在 plugins/partners/plugin.jsonagents 列表中,属于 partners 插件包;plugins/partners/README.md 对其描述为:

Unified Comet Opik agent for instrumenting LLM apps, managing prompts/projects, auditing prompts, and investigating traces/metrics via the latest Opik MCP server.

这意味着你既可以把 comet-opik.agent.md 单独下载安装为 VS Code 自定义 Agent,也可以随 partners 插件整体安装。从 Agent 元数据看,它启用的工具包括 readsearcheditshell,以及 Opik MCP 服务器的全部工具(opik/*),是一个具备代码读写能力的完整代理。

二、Agent 元数据解析:MCP 服务器如何被声明

agents/comet-opik.agent.md 的 frontmatter 中,MCP 服务器配置如下:

mcp-servers:
  opik:
    type: 'local'
    command: 'npx'
    args:
      - '-y'
      - 'opik-mcp'
    env:
      OPIK_API_KEY: COPILOT_MCP_OPIK_API_KEY
      OPIK_API_BASE_URL: COPILOT_MCP_OPIK_API_BASE_URL
      OPIK_WORKSPACE_NAME: COPILOT_MCP_OPIK_WORKSPACE
      OPIK_SELF_HOSTED: COPILOT_MCP_OPIK_SELF_HOSTED
      OPIK_TOOLSETS: COPILOT_MCP_OPIK_TOOLSETS
      DEBUG_MODE: COPILOT_MCP_OPIK_DEBUG
    tools: ['*']

几个关键点值得展开:

  • type: 'local' + command: 'npx':服务器以本地进程方式启动,通过 npx -y opik-mcp 直接拉取并运行最新版 Opik MCP 服务器包,无需手工全局安装。这也是 docs/README.agents.md 中一键安装 MCP 所采用的配置(command: npxargs: ["-y", "opik-mcp"])。
  • 环境变量占位符机制env 中右侧的 COPILOT_MCP_OPIK_* 是 VS Code 中"Copilot 自定义工具"(Custom Tools)里映射的密钥/配置变量名。也就是说,你需要在 VS Code 的 .vscode/settings.json 或密钥存储中为这些变量赋值,MCP 服务器进程才能拿到真实的 API Key 与端点。
  • tools: ['*']:Agent 获得 Opik MCP 暴露的全部工具能力,涵盖集成文档、Prompts、Projects、Traces、Metrics 等工具集。

三、前置条件与账户设置

3.1 账户与 Workspace

  • 需要先拥有启用了 Opik 的 Comet 账户。SaaS 用户直接注册即可,自托管(OSS)用户则使用本地安装的 Opik 服务。
  • Workspace slug:即 https://www.comet.com/opik/<workspace>/projects 中的 <workspace> 段,后续配置中必须使用。OSS 安装默认使用 default
  • 自托管 Base URL:默认是 http://localhost:5173/api/,同时要明确认证方案(是否启用 auth)。

3.2 API Key 的获取与保管

  • 从 Comet 平台的 get-started 页面获取 API Key,该页面始终展示最近生成的 Key 与文档入口。
  • 安全提醒:Key 应存放在 GitHub Secrets、1Password 等秘密管理器中,除非万不得已不要在聊天中粘贴明文。
  • OSS 安装且关闭认证时,可以不使用 Key,但需要用户理解并接受对应的安全取舍。

3.3 运行环境检查

在启动 MCP 工具前确认运行时依赖:

  • node -v 版本 ≥ 20.11;
  • npx 可用;
  • ~/.opik.config 已存在,或 COPILOT_MCP_OPIK_* 环境变量已导出。

此外该 Agent 有一条硬性纪律:绝不改动仓库历史或初始化 git。若 git rev-parse 失败(说明不在 git 工作区内),应停下来让用户切换到正规 git 工作区,而不是擅自执行 git init / git add / git commit。在任一配置路径确认之前,不得继续执行 MCP 命令。

四、首选配置路径:opik configure

文档推荐的标准配置流程非常简单:

pip install --upgrade opik
opik configure --api-key <key> --workspace <workspace> --url <base_url_if_not_default>
  • pip install --upgrade opik 安装/升级 Python SDK(CLI 也随附其中)。
  • opik configure 会在用户主目录生成或更新 ~/.opik.config
  • 核心原理:Opik MCP 服务器和 SDK 都会通过 Opik 配置加载器(config loader)自动读取该文件,因此配置完成后无需再设置任何额外环境变量
  • 多 Workspace 场景:可以维护多份配置文件,通过 OPIK_CONFIG_PATH 环境变量切换。

配置完成后可用如下命令验证,且不会泄露密钥:

opik config show --mask-api-key

若 CLI 不可用,也可以用 Python 方式验证:

python - <<'PY'
from opik.config import OpikConfig
print(OpikConfig().as_dict(mask_api_key=True))
PY

五、回退配置路径:环境变量与 INI 文件

5.1 环境变量方案

在 CI、多 Workspace,或 OPIK_CONFIG_PATH 指向自定义位置时,可以放弃配置文件,直接设置下列环境变量(这些变量正是 MCP 服务器 env 映射的 COPILOT_MCP_OPIK_* 占位符):

变量 是否必需 示例/说明
COPILOT_MCP_OPIK_API_KEY Workspace API Key(来自 get-started 页面)
COPILOT_MCP_OPIK_WORKSPACE ✅(SaaS) Workspace slug,例如 platform-observability
COPILOT_MCP_OPIK_API_BASE_URL 可选 默认 https://www.comet.com/opik/api;OSS 用 http://localhost:5173/api
COPILOT_MCP_OPIK_SELF_HOSTED 可选 目标为 OSS Opik 时设为 "true"
COPILOT_MCP_OPIK_TOOLSETS 可选 逗号分隔,例如 integration,prompts,projects,traces,metrics
COPILOT_MCP_OPIK_DEBUG 可选 设为 "true" 时写入 /tmp/opik-mcp.log

5.2 手工 INI 文件

如果连 opik configure 都无法运行,可以手工创建配置文件:

[opik]
api_key = <key>
workspace = <workspace>
url_override = https://www.comet.com/opik/api/

六、MCP Setup 检查清单

按以下顺序完成 MCP 环境搭建:

  1. 服务器启动:Copilot 通过 npx -y opik-mcp 启动;保持 Node.js ≥ 20.11。
  2. 加载凭据
    • 首选:依赖 ~/.opik.config,用 opik config show --mask-api-key 或上面的 Python 片段确认可读;MCP 服务器会自动读取。
    • 回退:设置上一节的环境变量(CI/多 Workspace/自定义 OPIK_CONFIG_PATH 场景)。
  3. 在 VS Code 中映射密钥:在 .vscode/settings.json(Copilot 自定义工具)中映射好 secret 后再启用 Agent。
  4. Smoke test:本地先跑一次,确认 stdio 通道干净:
npx -y opik-mcp --apiKey <key> --transport stdio --debug true

七、核心职责:Agent 在仓库里的五大工作域

7.1 集成与启用(Integration & Enablement)

  • 调用 opik-integration-docs 加载权威的 onboarding 工作流。
  • 遵循八个规定步骤:语言检查 → 仓库扫描 → 集成选型 → 深度分析 → 方案审批 → 实现 → 用户验证 → 调试循环。
  • 只新增 Opik 相关代码(imports、tracer、middleware),不得改动业务逻辑或检入 git 的密钥

7.2 Prompt 与实验治理

  • 使用 get-promptscreate-promptsave-prompt-versionget-prompt-version 对每个生产 Prompt 进行编目与版本化。
  • 强制 rollout notes(变更描述),并把部署与 Prompt commit 或版本 ID 关联。
  • 实验阶段:在 Opik 内脚本化 Prompt 对比,并在合并 PR 前记录成功指标。

7.3 工作区与项目管理

  • list-projects / create-project 按服务、环境或团队组织遥测数据。
  • 保持命名一致(例如 <service>-<env>),并把 workspace/project ID 记录进集成文档,供 CI/CD 任务引用。

7.4 遥测、Trace 与指标

  • 对所有 LLM 触点埋点:捕获 Prompt、响应、token/成本指标、延迟与关联 ID。
  • 部署后执行 list-traces 确认覆盖率;用 get-trace-by-id(包含 span events/errors)排查异常,用 get-trace-stats 观察趋势窗口。
  • get-metrics 验证 KPI(延迟 P95、单请求成本、成功率),并以此作为发布闸门或回归解释依据。

7.5 事故响应与质量门槛

质量门槛分为三档,作为"生产就绪度"的量化标尺:

  • Bronze:所有入口点都有基础 Trace 与指标。
  • Silver:Prompt 已在 Opik 中版本化;Trace 包含用户/上下文元数据;部署说明已更新。
  • Gold:定义了 SLI/SLO;runbook 引用 Opik 仪表盘;有回归测试或单元测试断言 tracer 覆盖。

事故处理时,从 Opik 数据(Trace + 指标)入手,总结发现、指出修复位置,并为缺失埋点提交 TODO。

八、工具参考速查

工具 用途
opik-integration-docs 带审批闸门的引导式工作流
list-projectscreate-project 工作区卫生管理
list-tracesget-trace-by-idget-trace-stats 追踪与根因分析
get-metrics KPI 与回归追踪
get-promptscreate-promptsave-prompt-versionget-prompt-version Prompt 编目与变更控制

九、CLI 与 HTTP API 回退

当 MCP 调用失败或环境缺乏 MCP 连接时,可以回退到 Opik CLI(随 Python SDK 提供),它同样尊重 ~/.opik.config

opik projects list --workspace <workspace>
opik traces list --project-id <uuid> --size 20
opik traces show --trace-id <uuid>
opik prompts list --name "<prefix>"

脚本化诊断优先使用 CLI 而非裸 HTTP。当 CLI 也不可用(最小化容器/CI)时,用 curl 复刻请求:

curl -s -H "Authorization: Bearer $OPIK_API_KEY" \
     "https://www.comet.com/opik/api/v1/private/traces?workspace_name=<workspace>&project_id=<uuid>&page=1&size=10" \
     | jq '.'

安全红线:日志中必须遮蔽 token,绝不把密钥回显给用户。

十、批量导入 / 导出

迁移或备份场景使用 import/export 命令:

# 导出
opik traces export --project-id <uuid> --output traces.ndjson
opik prompts export --output prompts.json

# 导入
opik traces import --input traces.ndjson --target-project-id <uuid>
opik prompts import --input prompts.json

规范要求:在笔记/PR 中记录源 Workspace、目标 Workspace、过滤条件与校验和,确保可复现;并清理任何含敏感数据的导出文件。

十一、测试与验证

交付前按三步验证:

  1. 静态校验:提交前运行 npm run validate:collections,确保 Agent 元数据合规。仓库中对应的是 package.json 中定义的 plugin:validate / skill:validate 等脚本,以及 eng/validate-plugins.mjs 中实现的校验逻辑(校验 name 规则、$schema、description 长度、keywords 数量等),保证像 comet-opik 这样的 Agent 清单始终满足 Agent Plugins 规范。

  2. MCP smoke test:在仓库根目录执行:

COPILOT_MCP_OPIK_API_KEY=<key> COPILOT_MCP_OPIK_WORKSPACE=<workspace> \
COPILOT_MCP_OPIK_TOOLSETS=integration,prompts,projects,traces,metrics \
npx -y opik-mcp --debug true --transport stdio

预期 /tmp/opik-mcp.log 中出现 "Opik MCP Server running on stdio"。

  1. Copilot Agent QA:安装该 Agent 后打开 Copilot Chat,尝试类似提问:
    • "List Opik projects for this workspace."
    • "Show the last 20 traces for and summarize failures."
    • "Fetch the latest prompt version for and compare to repo template."

成功响应的标志是回答中引用了 Opik 工具。最终交付物必须声明当前埋点等级(Bronze/Silver/Gold)、遗留缺口与下一步遥测动作,让干系人明确系统何时可投产。

十二、在仓库中如何安装使用

总结

Comet Opik Agent 为 GitHub Copilot 补齐了 LLM 应用可观测性的最后一公里:从 opik configure 一键配置、环境变量回退,到集成埋点、Prompt 版本治理、Trace/指标排查,再到 CLI/HTTP 回退与批量导入导出,最后以 Bronze/Silver/Gold 三级门槛量化生产就绪度。对团队而言,把它接入 Copilot,等于把"LLM 应用监控专家"直接带进了代码评审与故障排查流程。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
898
5.82 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
921
1.84 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.8 K
1.02 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
531
596
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.02 K
519
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.36 K
1.46 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
391