/agentsop-observability-setup
Enhancement-overlay skill — the DECISION + WIRING layer for LM observability that the single-backend skills [[langsmith]], [[phoenix]], [[mlflow]] do NOT cover. Each of those installs one backend; none of them help you DECIDE which backend fits your stack/scale/budget, nor give
$ npx -y skills add agentsope/SkillAlchemy --skill agentsop-observability-setup --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/agentsop-observability-setup
Context preview
The summary Claude sees to decide when to auto-load this skill.
Enhancement-overlay skill — the DECISION + WIRING layer for LM observability that the single-backend skills [[langsmith]], [[phoenix]], [[mlflow]] do NOT cover. Each of those installs one backend; none of them help you DECIDE which backend fits your stack/scale/budget, nor give
SKILL.md
agentsop-observability-setup.SKILL.mdname: agentsop-observability-setup
version: 0.1.0
description: |
Enhancement-overlay skill — the DECISION + WIRING layer for LM observability that the
single-backend skills [[langsmith]], [[phoenix]], [[mlflow]] do NOT cover. Each of those
installs one backend; none of them help you DECIDE which backend fits your stack/scale/budget,
nor give you a one-line autolog that turns it on fast. Use when starting any LM project,
before the first deploy, or the moment someone asks "why did it do that?" and there are no traces
to answer with. The skill picks a backend by stack (LangSmith for LangChain/LangGraph; Phoenix
for OSS/local OpenTelemetry; MLflow for ML-shops already on MLflow; Langfuse for self-host),
wires one-line autolog, verifies traces land, and adds eval hooks — instrumenting BEFORE you
need it. Cross-links the first-debug-move skill [[agentsop-prompt-history-inspect]]. Do NOT activate to
re-teach a backend you already chose (defer to its own skill), or for non-LM ML experiment
tracking with no LLM calls (that is plain MLflow).
Observability Setup — Which Backend + One-Line Autolog
> *"Instrument before you need it. The cheapest debugging session is a trace you already have."*
This is an **ENHANCE overlay**. The local skills [[langsmith]], [[phoenix]] and [[mlflow]] each teach **one** backend deeply. This skill sits one level up: it answers the question those skills cannot — *which one, and how do I turn it on in a single line right now* — then hands off to the chosen backend's own skill for depth.
---
1. 何时激活 (When to activate)
Activate at one of three moments — earlier is always cheaper:
| Trigger | Signal | |---|---| | **Starting any LM project** | First `dspy.LM` / `ChatOpenAI` / `LlamaIndex` / agent graph in the repo, and no tracing wired yet | | **Before first deploy** | About to ship an LM feature to real users with no trace UI — the AP-15 trap (§6) | | **"Why did it do that?" with no traces** | A bug surfaced, you reach for history, and there is nothing recorded — you are debugging blind | | **Multi-component pipeline** | Retriever + reranker + LLM + tools; per-call printing ([[agentsop-prompt-history-inspect]]) is no longer enough | | **Cost / latency regression** | Need aggregate token & latency dashboards across runs, not a single printout |
**Do NOT activate** when:
- You have already chosen a backend and just need its API — defer to [[langsmith]] / [[phoenix]] / [[mlflow]] directly.
- The task is classic ML experiment tracking with **no LLM calls** — that is plain MLflow, no decision needed.
- You only need to read **one** rendered prompt right now — that is [[agentsop-prompt-history-inspect]] (the cheaper first move).
The relationship to [[agentsop-prompt-history-inspect]]: that skill is the *reactive* first move (dump one prompt, no setup). This skill is the *proactive* layer — wire persistent tracing so the next "why" is answered by a trace that already exists, not a frantic re-run.
---
2. 核心心智模型 (Core mental model)
Instrument BEFORE you need it
───────────────────────────────────────────────
pick backend one-line verify add eval
by constraints → autolog turns → a trace → hooks (judge,
(stack/scale/ it on actually datasets,
budget) (~1 line) landed alerts)
───────────────────────────────────────────────
cost of skipping each stage compounds: a missing trace at deploy
becomes a multi-hour blind-debug later (AP-15, §6).Three load-bearing ideas:
1. **Choosing is the hard part, not wiring.** Every modern backend offers ~one-line autolog (`langsmith` env vars, `px.launch_app()`, `mlflow.<framework>.autolog()`). The real cost is picking the one that won't lock you in or under-serve you at scale (§4 decision table, §5 cases). 2. **The cheapest debugging is a trace you already have.** A trace recorded proactively costs near-zero; reconstructing one after a production bug costs hours and may be impossible (no repro). 3. **One backend, owned end-to-end.** Don't wire two trace backends "to be safe" — pick one, standardize on it, and let OpenTelemetry GenAI semantics keep you portable if you outgrow it (§7).
---
3. SOP (Standard operating procedure)
A five-step path. Each step gates the next.
Step 1 — Pick the backend by constraints
Run the decision table in §4 (OP-1). Inputs: **stack** (is it LangChain/LangGraph? OSS-only? already on MLflow?), **scale** (dev-only vs high-volume production), **budget/hosting** (managed-OK vs must-self-host). Output: exactly one backend.
Step 2 — One-line autolog
Wire the single call/env-var for the chosen backend (OP-2). Resist building a custom tracing layer first — autolog gets you a trace today; you can refine later.
Step 3 — Verify traces actually land
Run one real LM call, then open the trace UI and confirm the call appears with inputs, outputs, latency, and token counts (OP-3). A backend that is "configured" but shows no traces is the #1 silent failure (wrong project name, env var not exported, sampling at 0).
Step 4 — Add eval hooks
Once raw traces flow, attach what makes them actionable: an LLM-as-judge or rule evaluator, a dataset built from real traces for regression testing, and basic cost/latency alerts (OP-4). This is what turns "we have logs" into "we catch regressions before users do."
Step 5 — Hand off to the backend skill
Hand off to the chosen backend's own skill ([[langsmith]] / [[phoenix]] / [[mlflow]]) for the deep API once tracing and evals are flowing (OP-6).
**Step gating, explicitly.** Do not start Step *n+1* until Step *n* is observably true. The most common failure is jumping from Step 2 (wired) straight to Step 4 (evals) without Step 3 (verify) — you build evaluators on top of a trace stream that was silently empty the whole time. Each step has a one-line proof: Step 1 → a backend name written down; Step 2 → a
Read more
name: agentsop-observability-setup version: 0.1.0 description: | Enhancement-overlay skill — the DECISION + WIRING layer for LM observability that the single-backend skills [[langsmith]], [[phoenix]], [[mlflow]] do NOT cover. Each of those installs one backend; none of them help you DECIDE which backend fits your stack/scale/budget, nor give you a one-line autolog that turns it on fast. Use when starting any LM project, before the first deploy, or the moment someone asks "why did it do that?" and there are no traces to answer with. The skill picks a backend by stack (LangSmith for LangChain/LangGraph; Phoenix for OSS/local OpenTelemetry; MLflow for ML-shops already on MLflow; Langfuse for self-host), wires one-line autolog, verifies traces land, and adds eval hooks — instrumenting BEFORE you need it. Cross-links the first-debug-move skill [[agentsop-prompt-history-inspect]]. Do NOT activate to re-teach a backend you already chose (defer to its own skill), or for non-LM ML experiment tracking with no LLM calls (that is plain MLflow).
Observability Setup — Which Backend + One-Line Autolog
> *"Instrument before you need it. The cheapest debugging session is a trace you already have."*
This is an **ENHANCE overlay**. The local skills [[langsmith]], [[phoenix]] and [[mlflow]] each teach **one** backend deeply. This skill sits one level up: it answers the question those skills cannot — *which one, and how do I turn it on in a single line right now* — then hands off to the chosen backend's own skill for depth.
---
1. 何时激活 (When to activate)
Activate at one of three moments — earlier is always cheaper:
| Trigger | Signal | |---|---| | **Starting any LM project** | First `dspy.LM` / `ChatOpenAI` / `LlamaIndex` / agent graph in the repo, and no tracing wired yet | | **Before first deploy** | About to ship an LM feature to real users with no trace UI — the AP-15 trap (§6) | | **"Why did it do that?" with no traces** | A bug surfaced, you reach for history, and there is nothing recorded — you are debugging blind | | **Multi-component pipeline** | Retriever + reranker + LLM + tools; per-call printing ([[agentsop-prompt-history-inspect]]) is no longer enough | | **Cost / latency regression** | Need aggregate token & latency dashboards across runs, not a single printout |
**Do NOT activate** when:
- You have already chosen a backend and just need its API — defer to [[langsmith]] / [[phoenix]] / [[mlflow]] directly.
- The task is classic ML experiment tracking with **no LLM calls** — that is plain MLflow, no decision needed.
- You only need to read **one** rendered prompt right now — that is [[agentsop-prompt-history-inspect]] (the cheaper first move).
The relationship to [[agentsop-prompt-history-inspect]]: that skill is the *reactive* first move (dump one prompt, no setup). This skill is the *proactive* layer — wire persistent tracing so the next "why" is answered by a trace that already exists, not a frantic re-run.
---
2. 核心心智模型 (Core mental model)
Instrument BEFORE you need it
───────────────────────────────────────────────
pick backend one-line verify add eval
by constraints → autolog turns → a trace → hooks (judge,
(stack/scale/ it on actually datasets,
budget) (~1 line) landed alerts)
───────────────────────────────────────────────
cost of skipping each stage compounds: a missing trace at deploy
becomes a multi-hour blind-debug later (AP-15, §6).Three load-bearing ideas:
1. **Choosing is the hard part, not wiring.** Every modern backend offers ~one-line autolog (`langsmith` env vars, `px.launch_app()`, `mlflow.<framework>.autolog()`). The real cost is picking the one that won't lock you in or under-serve you at scale (§4 decision table, §5 cases). 2. **The cheapest debugging is a trace you already have.** A trace recorded proactively costs near-zero; reconstructing one after a production bug costs hours and may be impossible (no repro). 3. **One backend, owned end-to-end.** Don't wire two trace backends "to be safe" — pick one, standardize on it, and let OpenTelemetry GenAI semantics keep you portable if you outgrow it (§7).
---
3. SOP (Standard operating procedure)
A five-step path. Each step gates the next.
Step 1 — Pick the backend by constraints
Run the decision table in §4 (OP-1). Inputs: **stack** (is it LangChain/LangGraph? OSS-only? already on MLflow?), **scale** (dev-only vs high-volume production), **budget/hosting** (managed-OK vs must-self-host). Output: exactly one backend.
Step 2 — One-line autolog
Wire the single call/env-var for the chosen backend (OP-2). Resist building a custom tracing layer first — autolog gets you a trace today; you can refine later.
Step 3 — Verify traces actually land
Run one real LM call, then open the trace UI and confirm the call appears with inputs, outputs, latency, and token counts (OP-3). A backend that is "configured" but shows no traces is the #1 silent failure (wrong project name, env var not exported, sampling at 0).
Step 4 — Add eval hooks
Once raw traces flow, attach what makes them actionable: an LLM-as-judge or rule evaluator, a dataset built from real traces for regression testing, and basic cost/latency alerts (OP-4). This is what turns "we have logs" into "we catch regressions before users do."
Step 5 — Hand off to the backend skill
Hand off to the chosen backend's own skill ([[langsmith]] / [[phoenix]] / [[mlflow]]) for the deep API once tracing and evals are flowing (OP-6).
**Step gating, explicitly.** Do not start Step *n+1* until Step *n* is observably true. The most common failure is jumping from Step 2 (wired) straight to Step 4 (evals) without Step 3 (verify) — you build evaluators on top of a trace stream that was silently empty the whole time. Each step has a one-line proof: Step 1 → a backend name written down; Step 2 → a
Other skills on skillalchemy.
- /LEAP
LEAP — 落地执行引擎。内含两条管线:A 分支蒸馏(从 raw data 提取 skill)、 B 分支融合(多 skill 编织为一个)。被 SkillAlchemy 编排器调用。 Use when 编排器判断需要蒸馏或融合时。
Open skill - /Lens
Lens — 给你的问题加一层认知镜片。输入任意任务描述,输出增强版 description, 发现「你不知道自己不知道」的隐性维度、前置条件和认知路线。 Use when 用户说「帮我想想」「分析一下」「生成 skill」「蒸馏」「融合」 或输入看起来太简单需要展开。
Open skill - /agentsop-agent-topology-selection
Cross-framework enhancement overlay for choosing a multi-agent topology BEFORE writing any agent. A binary-question rubric — is single-agent + tools enough? do agents need to know about each other? does the output need one voice? — maps the answer to single-agent / supervisor /
Open skill - /agentsop-aider
SOP for terminal-based, git-native AI pair programming with Aider (git work-tree + tree-sitter repo-map + edit-format + human-in-loop REPL). Use when editing code in an existing git repo via an LLM, when you need to converge a change to 2-5 files, pick an edit format that fits
Open skill - /agentsop-bio-fraud-forensics
Screens biomedical / life-science papers for signs of data fabrication, image manipulation, and statistical anomalies, using the detection techniques distilled from the field's canonical exposure platforms (PubPeer, Data Colada, Science Integrity Digest, For Better Science) and
Open skill - /agentsop-bounded-loop
Universal discipline for any LM-driven loop — agent retries, plan-act-observe, multi-agent handoffs, optimiser passes, test-fix cycles. Encodes the one rule every framework documents quietly and every team relearns expensively: the LM in the loop is NEVER a reliable terminator.
Open skill

