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

# Core concepts

> The shared vocabulary behind Gradient: agents, nodes, tools, versions, datasets, and rubrics.

This is the shared vocabulary used across the docs. Each concept links to the page that covers it in depth.

## Agents and topology

**Agent**: a conversational program made of prompt nodes wired together, with one node as the entrypoint. The same agent serves both chat and voice.

**Node**: the core primitive, a single-prompt step with a stable key, a label and description, a model binding, a system prompt, and a list of tools.

**Topology**: the graph of nodes that makes up an agent. A conversation traverses one path through it; different callers take different paths.

**Entrypoint**: the node every conversation starts on. Its published version pins the whole reachable graph.

**Handoff (`agent_swap`)**: how control moves between nodes. A handoff is a callable tool on a node that targets another node as `(target_key, target_version)`. If it is not present as a tool, the agent cannot take that path.

```mermaid theme={null}
flowchart TD
    T["triage<br/>entrypoint"]
    L["patient_lookup"]
    S["scheduling"]
    X(["end_call"])

    T -->|"agent_swap"| L
    L -->|"agent_swap"| S
    S --> X
```

See [Agents](/build/agents).

## Tools

**Tool**: anything the model can call on a node. There are four shapes:

* `agent_swap`: move control to another node (a handoff).
* `end_call`: end the conversation.
* `custom`: call code your organization deployed.
* `http_req`: make a declarative external HTTP request.

**Custom tool**: your own code, deployed to Gradient and run by the engine as a tool. It has a slug, name, description, JSON input schema, runtime, source, deploy status, an endpoint URL, and an immutable deploy history. Authored in the Tools tab. See [Custom tools](/build/custom-tools).

See [Tools](/build/tools).

## Knowledge and skills

**Knowledge base**: a collection of documents, chunked and embedded, that a node can search to ground its answers in your content (retrieval).

**Skill**: a reusable block of instructions you write once and attach to any node, instead of copying the same guidance into many prompts.

See [Knowledge and skills](/build/knowledge-and-skills).

## Versions

**Draft**: the single mutable builder graph. Every edit lands here. It is never a numbered version and keeps that identity forever.

**Published version**: an immutable snapshot minted by publishing, which copies the reachable draft into the next positive integer (`1`, `2`, and so on). Live traffic resolves to a published version; restoring copies a published revision back over the draft. Each node versions independently, but the entrypoint version pins the whole reachable graph.

See [Versions](/publish/versions).

## Data

**Dataset**: a Postgres database holding your agent's world: patients, orders, accounts, whatever the tools read and write. Each organization gets a managed Postgres project, and each dataset is a database inside it, browsable as tables with a SQL console.

**Snapshot**: a pinned point in a dataset's history. Forks taken from it start from a known state.

**Fork**: a private, writable copy of a dataset created for a single conversation. Tool calls read and write the fork, so multi-step scenarios keep state, and the real dataset is never touched. Forks power the [redteam](/evaluate/redteam).

See [Datasets](/evaluate/datasets).

## Evaluation

**Rubric**: a topology's definition of correct, a set of scenarios, each carrying rules. The same rubric grades both redteam and production conversations.

**Scenario**: one concrete situation the agent is meant to handle, bound to specific dataset rows so it is reproducible.

**Rule**: an LLM-judged assertion on a scenario, written as a sentence. A judge model reads the transcript and the tool calls and returns pass, fail, or skipped. Scoring excludes skips: pass divided by (pass plus fail).

**Trace**: the full record of one conversation, every turn, every handoff, and every tool call with its arguments and result. Chat and voice both produce traces, and rubrics grade them. See [Results](/evaluate/results).

See [Rubrics](/evaluate/rubrics).
