> ## Documentation Index
> Fetch the complete documentation index at: https://docs.decimal.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Concepts

> Every key concept in DecimalAI — how traces, manifests, evaluations, and multi-agent systems work together.

DecimalAI is built around a single idea: **when your agent changes, you need to know what still holds.** Every trace your agent produces is tied to the exact agent configuration that produced it — its **manifest**. When you change a prompt, swap a model, add a tool, or edit a sub-agent, DecimalAI knows precisely which past traces are still valid and which are now stale. This is **manifest-aware versioning**, and it is the foundation under everything else.

This page is the entry point — each section below has its own focused deep-dive.

## The foundation: manifest-aware versioning

A **manifest** is a structured snapshot of your agent across ten compatibility surfaces — prompt stack, model runtime, tool registry, skill registry, workflow, sub-agents, output contract, guardrails, context config, and environment. Every trace records the manifest it ran under. When the manifest changes, DecimalAI compares old to new surface-by-surface and tells you, for each past trace, whether it was structurally touched.

That single capability is what makes the three product capabilities possible:

| Capability | What it answers | What manifest-awareness gives it |
| - | - | - |
| **Regression checks** | Did this change break anything? | Knows exactly which surfaces changed, so it scopes the check to traces that actually depend on them |
| **Skills registry** | Which skills measurably help? | A skill is a manifest surface; SkillScore is measured against the manifest the trace ran under |
| **Training-data validation** | Which traces are safe to train on? | Stale traces — those whose manifest no longer matches the current agent — are filtered before they poison a dataset |

Each capability works on its own. They compound because they share one model of what an agent *is* — its manifest.

## The agent lifecycle

Manifest-aware versioning tracks your agent across its whole life — from the first prototype to a retrained model that starts the cycle again.

```mermaid theme={null}
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#f5f5f4','primaryBorderColor':'#a8a29e','primaryTextColor':'#44403c','lineColor':'#a8a29e'}}}%%
flowchart LR
    A[Prototype] --> B[Ship] --> C[Improve] --> D[Retrain] --> B
```

| Stage | What happens | What manifest-awareness does |
| - | - | - |
| **Prototype** | You build the agent and capture first traces | Records the initial manifest as the baseline |
| **Ship** | The agent runs in production | Stamps every trace with the manifest it ran under |
| **Improve** | You change a prompt, model, tool, or sub-agent | Runs a regression check; flags which past traces are now stale |
| **Retrain** | Valid traces become a training set; you fine-tune | Filters out stale traces, then a better model ships and the loop repeats |

The three capabilities each work standalone, but they compound on one foundation — manifest-aware versioning.

## The data model

These are the core entities DecimalAI captures and how they relate. A **session** groups the traces of one logical run; each **trace** is pinned to the **manifest** it executed under and decomposes into **spans** and **LLM calls**; a trace can link to a parent trace when a sub-agent is invoked.

```mermaid theme={null}
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#f5f5f4','primaryBorderColor':'#a8a29e','primaryTextColor':'#44403c','lineColor':'#a8a29e'}}}%%
erDiagram
    SESSION ||--o{ TRACE : groups
    MANIFEST ||--o{ TRACE : "pins (each trace runs under one)"
    TRACE ||--o{ SPAN : "decomposes into"
    TRACE ||--o{ LLM_CALL : "records"
    TRACE ||--o{ TRACE : "parent_trace_id (sub-agent)"
```

| Entity | What it is |
| - | - |
| **Session** | A logical run that groups one or more traces |
| **Trace** | One agent execution, pinned to the manifest that produced it |
| **Manifest** | The structured snapshot of the agent across its ten compatibility surfaces |
| **Span** | A single step inside a trace (a tool call, a retrieval, a sub-step) |
| **LLM Call** | A single model invocation recorded within a trace |
| **parent\_trace\_id** | Self-link on Trace — set when a sub-agent trace is spawned by a parent trace |

## Read in order

<CardGroup cols={2}>
  <Card title="Execution Model" icon="diagram-project" href="/concepts/execution-model">
    Traces, spans, LLM calls, sessions — how DecimalAI captures and organizes agent activity.
  </Card>

  <Card title="Versioning & Compatibility" icon="layer-group" href="/concepts/versioning">
    Manifests, components, compatibility verdicts, repair — the core innovation.
  </Card>

  <Card title="Evaluation" icon="circle-check" href="/concepts/evaluation">
    Evaluators, eval scores, eval verdicts, the unified decision engine.
  </Card>

  <Card title="Multi-Agent Systems" icon="network-wired" href="/concepts/multi-agent">
    Orchestrators, sub-agents, delegation vs handoff, drift detection.
  </Card>

  <Card title="Skills & Data Pipeline" icon="database" href="/concepts/skills-and-data">
    Skills (SKILL.md), datasets, export formats (SFT/DPO), replay, repair.
  </Card>

  <Card title="Glossary" icon="book-bookmark" href="/glossary">
    Quick A-Z reference for any term.
  </Card>
</CardGroup>

## The improvement loop

Putting all the concepts together, here's how they connect into a continuous cycle:

```mermaid theme={null}
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#f5f5f4','primaryBorderColor':'#a8a29e','primaryTextColor':'#44403c','lineColor':'#a8a29e'}}}%%
flowchart TD
    A[Agent runs] --> B[Traces captured]
    B --> C{Manifest change<br/>detected?}
    C -->|yes| D[Compatibility report<br/>drop incompatible traces]
    C -->|no| E[Evaluators score traces]
    D --> E
    E --> F{Eval verdict}
    F -->|pass| G[Keep for training]
    F -->|fail| H[Replay with new agent]
    H --> G
    G --> I[Build dataset<br/>keep + pass only]
    I --> J[Fine-tune model]
    J -->|better model produces<br/>better traces| A
```

This loop runs continuously. Each iteration produces a better model, which produces better traces, which produce better training data.

## Where to next

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    If you're new — install the SDK and get your first trace in 5 minutes.
  </Card>

  <Card title="2-Minute Demo" icon="play" href="/tutorials/two-minute-demo">
    One command seeds a demo agent and links you to a live impact report.
  </Card>

  <Card title="Glossary" icon="book-bookmark" href="/glossary">
    A-Z quick reference for any term used in these concept pages.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/authentication">
    Every REST endpoint with examples and schemas.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.