> ## 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.

# Step 1: Configure

> Every field on the Cost Calculator setup screen: the agent description, tone, skills, memory and tools, the model and key panel, the scenario count, and the live cost estimate.

Step 1 is where you describe the agent you want to cost and pick the models to test it on. Nothing on this screen calls a model or spends money. The cost estimate updates as you type.

If the project was created from a template, or a draft configuration was saved for it, the form opens pre-filled with the latest draft.

## What should this agent do?

The main text area is the agent's **system prompt**. Placeholder: "Describe what this agent should do, what it should watch out for, and when it needs to check with a human before acting."

* Required. **Generate Scenarios** shows "Add a system prompt to continue" if it is empty.
* Up to 20,000 characters.
* Both the scenario generator and every model under test receive it, so write it the way you would for production.

Three controls sit above the text area.

### Start from…

A menu of the ten built-in [templates](/agenthub/cost-calculator/templates). Choosing one replaces the system prompt, tone, skills, memory and tools with the template's ("Loaded "*name*" template"). The last option, **+ Start New Project (blank)**, clears the form. Neither option creates a project; they only change this form.

### Import

Upload a file to fill the form. Accepted: `.md`, `.markdown`, `.txt`, `.json`. The button reads **Parsing…** while it works.

| File | How it is read |
| - | - |
| JSON | Looks for `system_prompt` (or `systemPrompt`), `tone`, and a `tools` array. Each tool can be a string or an object with `kind` (`skill`, `memory`, `tool`, `connector`), `name`, `mode`, `description` and `content`. If the JSON has none of those, AgentHub asks a model to read it instead. |
| Markdown or text | Parsed for a system prompt, tone and tool list. If that finds little (a prompt under 40 characters and no tools), AgentHub asks a model to read the file. |

Results: "Imported *file* — form prefilled", "Imported *file* — parsed with AI", "Couldn't find an agent config in that file", or "Could not read that file". The AI fallback runs on CorePillar's platform key, not yours.

<Note>
  Import replaces the system prompt, tone and items in the form. It does not merge with what you had.
</Note>

### From traces

Opens **Import from traces**, which reads OpenTelemetry runs your agent already sent to this project. You can either merge what they show (system prompt, tone, tools) into this form, or adopt the runs directly as a finished, measured run. See [Import from traces](/agenthub/cost-calculator/import-from-traces).

## Tone & personality

A single line, for example "Analytical, direct, concise, no fluff". Optional, up to 2,000 characters. It is passed to the generator and to every model under test.

## Skills, Memory & Tools

"Skills define what the agent can do. Memory gives it context to work with. Tools connect it to external systems."

Three buttons add items:

| Button | Adds | How |
| - | - | - |
| **+ Skill** | A rule or capability, for example "Never merge two lead records on a company-name match alone". | Opens the **Configure** dialog. |
| **+ Memory** | A fact the agent knows, for example customer tiers or thresholds. | Opens the **Configure** dialog. |
| **+ Tool** | A connector the agent can call. | Opens a menu: Slack, NetSuite ERP, Stripe Billing, Greenhouse ATS, DocuSign, Ironclad CLM, Google Drive, Zendesk, Instacart, Google Keep, Jira. |

### The Configure dialog (Skill and Memory)

| Field | Details |
| - | - |
| **Name** | Up to 200 characters. Defaults to "Skill" or "Memory" if left blank. |
| **Content** | The full text, up to 20,000 characters. A live "\~*N* tokens" count appears as you type. |
| **Import file** | Fill the content from a `.md`, `.markdown`, `.txt`, `.json` or `.csv` file. Long files are trimmed to the 20,000-character limit. |

Click **Done** to save. When editing an existing item, a **Remove** action appears. Naming an item the same as another shows "Another item is already called "*name*". Saving adds a second one."

Configured skills and memory appear as rows you can click to edit (pencil) or remove (x). Tools appear as compact chips with their own remove button. All items together are capped at 50.

<Info>
  Tools are always simulated during a run. The model under test sees a realistic result for each call it makes, but nothing is sent to the real system.
</Info>

## Model & key

The right-hand card picks which models the scenarios will run on. It has two tabs.

### Saved Models

Every model registered to this project in [Model Manager](/agenthub/model-manager), as a checklist. Each row shows the provider icon, the provider and display name, and a badge for the key it is bound to.

* Tick one model to forecast its cost. Tick several to compare them; "Results run against each model independently."
* The first model in your selection is the **primary** model. The run is recorded against it, and the Agent Audit uses it.
* At least one model must stay selected. With exactly one selected you see "Locked in: a run needs at least one model selected." Trying to untick it shows "This model is locked in — a run needs at least one model. Select another model first, then this one can be cleared."

When the project has no models: "No models saved in your project yet." with links to **Add New** and **Model Manager**.

### Add New

Add a model without leaving the page.

| Field | Details |
| - | - |
| **Choose Provider** | The same providers as Model Manager. |
| **Choose Version** | The catalog models for that provider. |
| **Add API Key** | The provider key. |

Click **Add** (reads **Validating…**). AgentHub sends a small test request to that model with that key. On success the model is saved to the project, appears in a numbered list, and becomes the **Active** (primary) model. On failure: "That API key didn't work for *model* — double-check the key and that the model is enabled for it."

Under the card: "Encrypted and stored in your project's key vault. Used for generation only — never seen by the sandboxed agent." The key is stored in your organization's encrypted vault exactly as in Model Manager. Note that it is used to **run** scenarios on that model, which is billed to it; scenario generation itself never uses your keys.

<Note>
  **Revoke** in this list only removes the model from this session's selection. It does not revoke the key or delete the model from the project. To do either, use [Model Manager](/agenthub/model-manager).
</Note>

## Scenarios to generate

| Control | Details |
| - | - |
| **Scenarios to generate** | Default 30. Whole numbers from 1 to 1,000. Up and down arrows step by one. Errors: "Enter how many scenarios to generate.", "Scenarios must be a number.", "Scenarios must be a whole number.", "Generate at least 1 scenario.", "Generate at most 1,000 scenarios." |
| **Include multi-turn scenarios** | Off by default. "Multi-turn conversations take longer and cost more to run." When on, every batch contains at least one multi-turn scenario, and multi-turn scenarios play up to 16 user turns. When off, every scenario is a single user turn and the multi-turn category is left out. |

## Estimated cost

Once at least one model is selected and the count is valid, the card shows an **Estimated cost** line per model and, for several models, a **Total**. A summary line underneath reads like:

"30 scenarios ≈ 30 model calls · 1 turn each · \~*N* tokens" (one model, multi-turn off)

With several models it adds "per model" and "across all *N* models". When the batch mixes scenarios with different turn counts (multi-turn on), it says "*X* turns per scenario on average — the batch mixes *A*–*B*-turn scenarios" instead. Hover the line to see the batch mix, for example "15 happy path × 1 turn, 6 edge case × 1 turn, ...".

How it is calculated, without any network call:

* The batch is split into categories using the same mix the generator uses (see [categories](/agenthub/cost-calculator/scenarios#scenario-categories)).
* Each turn re-sends the system context, the whole conversation so far and every tool result so far, which is how real execution works. Long multi-turn scenarios therefore cost much more than short ones.
* Text is counted at about 4 characters per token. A synthetic user message is assumed to be about 25 tokens. Expected answer length is banded by the model's output price.
* Prices come from the [built-in catalog](/agenthub/model-manager#pricing). Each model's output cap is its configured default, or 1,024 tokens.

The same figure appears at the bottom of the page next to the main button: "Est. \$X.XX for this run" or "across *N* models".

<Warning>
  This is an estimate of the run you are about to pay for, not a cap. Actual spend depends on how verbose each model is. Reasoning models in particular can spend far more output tokens than estimated.
</Warning>

## Generate Scenarios

The main button at the bottom right. It reads **Generating…** while working and moves you to [Step 2](/agenthub/cost-calculator/scenarios). It is disabled, with a reason shown beside it, when:

* you do not have permission to run scenarios ("You need permission to run scenarios in this project."), or
* the scenario count is invalid ("Fix the scenario count to continue.").

It also stops with "Add at least one model to continue" if no model is selected.

### After applying Agent Audit fixes

If you came back here with **Apply changes & rerun** from the [Agent Audit](/agenthub/cost-calculator/results#agent-audit), a blue banner reads "*N* fixes applied to the system prompt", optionally followed by how many were left out because they no longer applied cleanly. "Review or edit it below. Clicking Run re-tests the same *N* scenarios from the previous run, so any change in the results comes from the prompt."

In this mode the main button reads **Run *N* Scenarios** and goes straight to execution on the previous run's scenarios. **Generate new scenarios instead** on the banner returns to the normal flow.


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