See it first — 2 minutes, no waiting for your own data
The impact report and the skills leaderboard are most convincing on real data — so both ship with a one-command sandbox that seeds a realistic agent and trace corpus into your workspace. See the payoff before you instrument anything.For engineers
Catch regressions before they ship.Seeds a v1→v2 agent change and links you straight to the impact report — which production traces the change would break, which may behave differently, and which are unaffected.
For prompt engineers
Find skills that actually work.Seeds three skills with real, varied effectiveness and links you to the ranked registry — per-model pass rates and cross-org activation, not download counts.
You’ll do five things in this guide:
1
Install the SDK
1 minute.
2
Get your API key and verify your setup
1 minute.
3
Instrument your agent
3 minutes.
4
View your first trace in the dashboard
1 minute.
5
Add the GitHub Action so every PR gets a manifest impact report
5 minutes.
Run this in Colab
Run the SDK portion interactively — no local setup required.
1. Install the SDK
pip install "decimalai[langchain]" — shown per-framework in step 3.
Checkpoint:
decimalai --version prints a version number. If the demo command is missing, you’re on Python < 3.10 and pip silently installed an outdated release.2. Get Your API Key
Sign in to the DecimalAI Dashboard and navigate to Settings → API Key. Your first key has to come from the dashboard — thePOST /api-keys endpoint itself requires authentication, so it’s only useful for minting additional keys once you have one.
Checkpoint: Reading a ✗: on the first line it means no API key was found at all (nothing in
decimalai init prints all three green checks:DECIMAL_API_KEY or --api-key). On the second line you get ✗ Connection failed: followed by the underlying error, and that error is what tells you which problem you have: Client error '401 Unauthorized' means the key is wrong or truncated and '403 Forbidden' means it’s expired or revoked — either way, regenerate it at app.decimal.ai/settings. Only a timeout or DNS error is an actual network or --base-url problem, despite the “Check your API key and base URL” hint printed under both.3. Instrument Your Agent
- No framework
- LangChain
- OpenAI Agents
- Claude Agent SDK
- LlamaIndex
- CrewAI
- Environment Variables
Calling
openai / anthropic / google.genai directly, no agent framework in between? This is the shortest path — and it gets full skill routing:build_prompt_fragment stamps the routing decision and the offered skill names onto the active trace automatically — no extra logging calls. On a network failure it returns ("", None) so prompt assembly never blocks.Prefer zero manual logging?
decimalai.init(openai=True) auto-traces every raw OpenAI SDK call — it drives an OpenInference instrumentor, so install both: pip install "decimalai[openai]" openinference-instrumentation-openai. anthropic=True / google=True work the same way via openinference-instrumentation-anthropic / openinference-instrumentation-google-genai (no extra for those — install the instrumentor package directly). Don’t combine a provider flag with a framework flag that already traces the same provider.Auto-detection depth varies by framework. LangChain and OpenAI Agents (with explicit
install(agent=...)) extract full tool schemas; LlamaIndex / CrewAI extract tool names only. See the capability matrix before deciding which integration to commit to. AutoGen / AG2 is supported as a community/legacy OTel integration — see AutoGen.Checkpoint: run your agent once. Startup logs show
DecimalAI SDK initialized: base_url=https://api.decimal.ai ... with no auto-init failed or not installed warnings. Traces flush in the background and at process exit.4. View Your Traces
Open the Traces page in the dashboard. Your first trace should appear within seconds. Each trace is auto-tagged with the of the agent that produced it — this is what powers the regression check in the next step.Checkpoint: the Traces page shows a row for your run, tagged with a manifest hash, and the input/output you sent. Nothing after 30 seconds? Work through the silent no-ops below — the most common cause is an integration flag whose package isn’t installed.
5. Add the Regression Check to your PRs (recommended)
Now wire DecimalAI into your CI so every PR gets a manifest impact report. This is the most-used capability for engineering teams.What this step assumes, honestly:
- An importable agent factory. The CI script imports and calls one function that constructs your agent. If construction is spread across a script, extract a
build_agent()first. - A baseline builds on the first run. The Action’s first run finds no baseline manifest, records your current manifest as the baseline, and exits green — real diffs start on your second PR.
- Impact counts come from your ingested traces. A workspace that just finished step 4 has a handful of traces, so early reports will honestly say few or zero traces are affected. The report earns its weight over days as production tracing accumulates volume.
scripts/init_for_decimal.py that calls your agent factory, a .github/workflows/decimal.yml that runs it under DECIMALAI_MODE=manifest_only, and your DECIMAL_API_KEY in GitHub Secrets. Here’s what runs on every PR:
1. Add scripts/init_for_decimal.py — five lines that import and call your existing agent factory. In manifest_only mode the SDK reads tools, prompts, and models from the runtime objects, then exits without any LLM calls:
scripts/init_for_decimal.py
.github/workflows/decimal.yml:
.github/workflows/decimal.yml
DECIMAL_API_KEY secret in Settings → Secrets and variables → Actions → New repository secret, with the value from app.decimal.ai/settings.
That’s the whole setup. Once a baseline exists and traces have accumulated, each PR gets a comment like this within ~30 seconds:
Checkpoint: open a trivial PR. The
Decimal Manifest Impact check runs green, and the PR gets a comment. On the very first run the comment says “First run for this agent. Recorded the current manifest as the baseline.” — that’s the expected day-one state, not a failure. Impact counts like the example above appear from the second PR onward, sized by how many traces you’ve ingested.If something looks wrong: the six silent no-ops
The SDK is deliberately fail-open: a misconfiguration degrades quietly instead of crashing your agent. These are the six places that bites, in the order people hit them.1. A registry skill is never offered to your agent
1. A registry skill is never offered to your agent
Browsing or previewing a skill on the public registry doesn’t make it routable — you have to adopt it into your org first. Either way works — Use (
router.use("name") or the Use button) creates a linked pointer that tracks the author’s updates, and Fork (router.fork("name"), or router.install("name") to also write it to disk, or the Fork button) creates an editable copy you own. The Skill Router offers both. If you use per-agent assignments, also assign it to the requesting agent. Until you Use or Fork it, the skill never appears in your agent’s menu, with no warning anywhere.3. The load_skill tool never appears
3. The load_skill tool never appears
The on-demand body loader is opt-in: pass
enable_skill_loader=True to install() on the openai_agents or pydantic_ai adapters. On the anthropic adapter there is no tool loop — enable_skill_loader=True there injects the skill menu into system (the offered rung only); add init(inject_skill_body=True) if you want full bodies delivered, and note enable_load_skill_tool is accepted but dormant. Kill-switch: init(load_skill_tool=False) or DECIMALAI_LOAD_SKILL_TOOL=0.4. An integration flag whose package is missing
4. An integration flag whose package is missing
decimalai.init(langchain=True) (and every other framework flag) logs a warning and continues untraced when the framework package isn’t importable — your agent runs, nothing is recorded. The same applies to DECIMAL_AUTO_TRACE (auto-init warns and skips) and to the raw-provider flags (openai=True etc.), which soft-skip when the matching OpenInference instrumentor is absent. Fix: for a framework flag, install the matching extra, e.g. pip install "decimalai[langchain]"; for a raw-provider flag, install the instrumentor package the startup warning names, e.g. pip install openinference-instrumentation-openai (the [openai] extra covers only the provider SDK, not the instrumentor). Then re-check startup logs.5. Skill injection skips callable instructions and prebuilt prompts
5. Skill injection skips callable instructions and prebuilt prompts
Adapters only inject skills into prompt shapes they can safely rewrite. On
openai_agents, an agent whose instructions is a user-supplied callable is left untouched; on langchain, a prebuilt PromptValue (or any unrecognized prompt shape) passes through unchanged. The agent runs normally — with zero skills injected and no error raised.6. The impact report says 0 traces (or 'first run')
6. The impact report says 0 traces (or 'first run')
The regression check needs two things before it can say anything real: a baseline manifest (recorded automatically on the Action’s first run, or by
decimalai.init() running in production) and ingested traces to measure blast radius against. A fresh workspace legitimately reports “first run — no baseline” and then near-zero affected traces. That’s honesty, not breakage — reports gain weight over days as production trace volume accumulates.Here for skills instead?
The steps above wire up the regression capability — what most teams start with. The skills workflow is a separate, shorter track (no GitHub Action needed):1
Browse the registry
Find skills ranked by SkillScore in the public registry — no signup.
2
Try a skill with no account
skills pull is fully anonymous — no API key, no signup:playwright-cli’s SKILL.md (plus its eval.yaml test suite) to disk and prints its scorecard — the Install a Skill tutorial walks this exact skill end-to-end. Your runtime auto-discovers it from there; the whole keyless route is in Use skills without the SDK.3
Prove one helps
A/B-benchmark a skill with
skillevaluation (pip install "skillevaluation[runner]") to measure its lift on your own cases.4
Install it
Fork it into your workspace and write it to disk with
router.install(...) — see the Skills guide.Next Steps
Regression Check Guide
Full configuration, troubleshooting, and severity tuning for the GitHub Action.
Manifests Guide
What manifests capture, how diffs work, and the compatibility policy model.
Concepts
How traces, manifests, evals, and datasets connect.
Training Pipeline
End-to-end: trace → evaluate → fine-tune.