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

# Synthetic data and scenarios

> Turn a document, web page or pasted text into an agent definition, a fabricated dataset and sample scenarios, without connecting a real system. Plus what the Scenarios page is today.

AgentHub has two pages in this area. Neither is in the sidebar; you reach both by URL.

| Page | URL | Status |
| - | - | - |
| **Synthetic Setup** | `/{org}/{project}/synthetic` | Working. Calls a model and produces real output. |
| **Scenarios** | `/{org}/{project}/scenarios` | Preview only. Shows fixed example cards, not your data. |

Replace `{org}` and `{project}` with the slugs in your AgentHub address bar, for example `https://pillarforge.corepillar.ai/acme/support-bot/synthetic`.

## Synthetic Setup

Synthetic Setup lets you try CorePillar on material that looks like yours without connecting any production system. You give it a process description, a policy document or a public web page. It gives you back:

1. a reviewable **instruction file** (Markdown) describing an agent: its system prompt, red lines, memory and tools,
2. a **fabricated system of record**: a few small tables of made-up records shaped like your domain,
3. **sample scenarios** to test the agent against.

Nothing is saved to your project. Everything lives in the page until you copy or download it.

It runs in three steps, shown in a stepper at the top: **Source material**, **Review extraction**, **Synthetic setup**.

### Step 1: Source material

Under **Bring your own material** ("No data connection required"), choose one of three tabs:

<Tabs>
  <Tab title="Paste text">
    Paste into **Source material**. You need at least 40 characters; a counter shows "N characters. Ready." once you have enough. Click **Read this text**. Up to 200,000 characters can be pasted.
  </Tab>

  <Tab title="Upload file">
    Click **Choose a document** and pick a file. Accepted: `.md`, `.markdown`, `.txt`, `.text`, `.json`, `.csv`, `.html`, `.htm`, `.docx`, and PDFs with a text layer. Up to 4 MB. Reading starts as soon as you pick the file.

    Scanned PDFs hold images, not text, and can't be read. Paste the text instead.
  </Tab>

  <Tab title="Website URL">
    Enter a **Public page URL** and click **Fetch page** (or press Enter). Only public `http` and `https` pages work. Internal hostnames and private network addresses are refused, and so is any redirect that leads to one. The fetch follows at most 4 redirects, reads at most about 1.5 MB, and gives up after 12 seconds. The page is treated strictly as reference text, never as instructions.
  </Tab>
</Tabs>

**Advanced options** holds **System of record to mimic**, which shapes the fabricated dataset:

| Option | Value |
| - | - |
| Detect from source | Default. Let the model infer the domain. |
| ATS / recruiting (Greenhouse-style) | |
| CRM / sales (Salesforce-style) | |
| HRMS / people ops (Workday-style) | |
| ERP / finance (NetSuite-style) | |
| ITSM / service desk (Jira-style) | |
| Customer support (Zendesk-style) | |

Leave it on detect unless your material is ambiguous about which system the agent would work against. Reading the source makes no model call.

If the source can't be read, you see **That source could not be read** with the reason and a hint.

### Step 2: Review extraction

AgentHub shows what it extracted: the title, where it came from, the format (`markdown`, `text`, `html`, `docx`, `pdf` or `json`), the character count, a **truncated** badge if it was cut, any notes from extraction, and a preview of the first 6,000 characters.

| Limit | Value |
| - | - |
| Text kept after extraction | 60,000 characters |
| Text sent to the model | First 24,000 characters |

Below the preview, a cost line names the model used for generation, the approximate input tokens, and the most the run can cost. The line ends "Billed to CorePillar, not to you": synthesis runs on a CorePillar platform model, not your provider keys. The quoted figure assumes the full output budget is used, so the real cost is at or below it.

Click **Generate synthetic setup** to continue, or **Change source** to start again.

### Step 3: Synthetic setup

**Instruction file** (left). An editable Markdown file named after the agent, for example `refund-agent.md`, with sections for the system prompt, **Red Lines**, **Memory**, **Connected Tools** and the synthetic dataset. Edit it freely. **Copy** puts it on the clipboard; **Download** saves the `.md`. The page notes that "This file re-imports into the Cost Calculator as-is." See [Cost Calculator](/agenthub/cost-calculator).

**Agent summary** (right). The agent's name and tone, and counts of **Red lines**, **Memory facts** and **Connectors**, with each connector as a badge. Limits: up to 12 red lines, 12 memory facts and 10 tools or connectors.

**Synthetic dataset** (right). "N fabricated records across N tables." For each table: its name, description, which table it links to, and the rows. Columns whose values are generated (names, emails, phone numbers and similar) carry a `synth` marker. **CSV** downloads that table. Up to 6 tables, 20 fields and 40 rows each.

Under the tables, **Reconciliation ground truth** lists totals and counts computed from the rows by code, not written by the model, so an agent's arithmetic over the dataset has a right answer to be checked against.

If the model returned an agent but no dataset, you see **No synthetic dataset** with **Retry generation**. If it ran out of output budget, a note warns that the end of the setup may be short.

**Sample scenarios** (bottom). Click **Generate 3 scenarios** to draft three scenarios against this agent with the same scenario generator the Cost Calculator uses, for example a happy path, an edge case and a refusal. Each card shows the scenario's category (Happy path, Edge case, Refusal, Tool failure or Multi-turn) its number of user turns, and the drafted conversation. If some couldn't be drafted, a note says how many were skipped. **Regenerate** drafts a new set; **Start over with new material** goes back to step 1. Nothing is saved; this is a preview. A full batch belongs in the Cost Calculator, on your own key.

A badge in the page header ("\$… used") totals what this session has spent on generation.

### Errors

| Message | Cause |
| - | - |
| "Paste at least a paragraph of source material." | Fewer than 40 characters pasted. |
| "That file is larger than 4 MB." | Upload too big. |
| "That file was empty." | Zero-byte upload. |
| **Generation failed** | The model call failed. **Retry** runs it again. |
| **Scenario preview failed** | "The model could not draft scenarios for this agent. Try again." |
| "Scenario preview is not configured on this deployment." | The platform model isn't set up on this deployment. Contact your organization's super admins. |

Running generation needs the `run_agents` or `manage_agents` permission. Anyone without it can open the page but sees "Your role can view this workflow but not run generation."

## Scenarios page

The **Scenarios** page describes scenarios as "Generated batches from Cost Calculator or SDK `generate_scenarios()`. A scenario run is a trace tagged source=simulation." It has an **Open Cost Calculator** button.

<Warning>
  The cards on this page are fixed examples built into the product, not scenarios from your project, and their scores are placeholders. The **View as trace** links open the Traces list, not a specific trace. There is no SDK, so `generate_scenarios()` does not exist. To create, run and inspect real scenarios, use the [Cost Calculator](/agenthub/cost-calculator); their results are on [Simulations](/agenthub/simulations) and each executed scenario is a `simulation` trace on [Traces](/agenthub/traces).
</Warning>


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