Skip to content

Commit bfa67c6

Browse files
mamigotclaude
andcommitted
docs: add Agent Settings: Grader; enrich Support, Evals, and LTI
New page — Agent Settings: Grader — covering the grading toggle (a Grading tool attachment), the Grading setup sub-tab (what gets graded, feedback detail, grading instructions), and the Rubric sub-tab (criteria table, add/edit/delete modals, points total), plus the misconfiguration and no-access states. Linked from the overview recap. Enriched three existing pages with sub-screens that were documented but not pictured: Evals gains a "Managing Benchmarks" section (benchmark library, Q&A items, manual vs CSV entry, the Evaluate dialog and LLM picker, manual scores are 0-1); Support gains the ticket detail pane and reply thread; LTI Keys gains the key detail dialog; LTI Tools gains the auth audience and deployment IDs fields plus the create dialog. Each of the four pages now closes with a "Building X Into Your Own App" section pointing at the corresponding iblai/vibe skill and SDK component. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 13d5866 commit bfa67c6

6 files changed

Lines changed: 167 additions & 2 deletions

File tree

os/agent-settings/evals.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ The panel lists every evaluation run for the agent in a table with **Evaluation*
2222

2323
Each row's **Actions** menu (``) exposes:
2424

25+
![Actions menu open on an evaluation run, listing View results, New review, Check status, Export CSV, and Delete](/images/docs/os/agent-settings/agent_settings_evals_actions.webp)
26+
2527
#### View results
2628
Opens the run detail — every trace with its input, expected output, actual output, and any scores.
2729

@@ -37,6 +39,36 @@ Downloads the run's results as a spreadsheet — one row per item with `item_id`
3739
#### Delete
3840
Removes the run. This is destructive and is confirmed before it proceeds.
3941

42+
![Delete evaluation confirmation modal warning that the run cannot be recovered](/images/docs/os/agent-settings/agent_settings_evals_delete.webp)
43+
44+
**View results**, **New review**, and **Export CSV** stay disabled until the run reaches **Completed**. The status badge is colored by state — green for COMPLETED, red for FAILED, blue for anything still in flight — and **Check status** refreshes a single row without reloading the table.
45+
46+
## Managing Benchmarks
47+
48+
**Manage benchmarks** opens the benchmark library. Benchmarks are **organization-wide**, not tied to one agent — the same test set can be run against several agents, which is what makes it possible to compare them on equal footing. The dialog lists every benchmark with a search box and a **New Benchmark** action that takes a name and a description.
49+
50+
![Manage benchmarks dialog listing the organization's benchmarks with a search box and a New Benchmark button](/images/docs/os/agent-settings/agent_settings_evals_manage_benchmarks.webp)
51+
52+
![New Benchmark dialog with name and description fields](/images/docs/os/agent-settings/agent_settings_evals_new_benchmark.webp)
53+
54+
Opening a benchmark shows its **Q&A items** — the question/answer pairs the agent is tested against. Each item pairs an input with an optional expected output.
55+
56+
![Benchmark items view listing the question and answer pairs in a benchmark, with an Add Q&A button](/images/docs/os/agent-settings/agent_settings_evals_benchmark_items.webp)
57+
58+
**Add Q&A** offers two paths:
59+
60+
#### Manual entry
61+
Type the question and, optionally, the expected answer directly into the form — the quickest way to add a handful of cases.
62+
63+
![Add Q&A dialog on the manual tab, with fields for the question and its expected output](/images/docs/os/agent-settings/agent_settings_evals_add_qa_manual.webp)
64+
65+
#### CSV upload
66+
Upload a UTF-8 CSV with a required `input` column and an optional `expected_output` column, up to 10 MB or 10,000 rows. Rows with a blank question are skipped.
67+
68+
![Add Q&A dialog on the CSV tab, showing the file upload area and the required column format](/images/docs/os/agent-settings/agent_settings_evals_add_qa_csv.webp)
69+
70+
The benchmark selector picks the first available benchmark automatically, and **New Evaluation** stays disabled until at least one benchmark exists — so creating a benchmark is the first step on a new agent.
71+
4072
## Reviews (LLM-as-Judge)
4173

4274
![Evaluation run detail showing raza-eval-2 marked Completed, 3 traces produced, a Reviews section with a completed accuracy review scored by gpt-5, and the benchmark items listed with their score counts](/images/docs/os/agent-settings/agent_settings_evals_experiment.webp)
@@ -45,14 +77,28 @@ Opening a completed run shows its header — benchmark name, when it started, an
4577

4678
A review grades every response in the run automatically. Selecting **New review** defines a **criteria** rubric in plain language (for example, "Evaluate the response on accuracy") and picks the judge model; a separate LLM then reads each item's input, expected output, and the agent's actual output and assigns a score. Each review shows its status, the judge model that ran it (for example, `gpt-5`), and when it finished. Completed review scores roll up under each benchmark item, so an item can carry several scores from different reviews.
4779

80+
The **Evaluate** dialog collects the criteria, a **score name** (the label the resulting scores are filed under, such as `accuracy`), a **max concurrency** limit for how many traces are judged in parallel, and the judge model.
81+
82+
![Evaluate dialog with a criteria textarea, a score name field, a max concurrency field, and the LLM selector](/images/docs/os/agent-settings/agent_settings_evals_new_review.webp)
83+
84+
The model is chosen provider-first: pick the provider, then one of its models. Any LLM configured for your organization can act as the judge — including a model different from the one the agent itself runs on, which is the usual setup for an independent second opinion.
85+
86+
![LLM picker inside the Evaluate dialog, listing providers and the models available under the selected provider](/images/docs/os/agent-settings/agent_settings_evals_llm_picker.webp)
87+
4888
![Expanded accuracy review showing the criteria field and four produced scores, each with a numeric value and the judge's written reasoning for that benchmark item](/images/docs/os/agent-settings/agent_settings_evals_review.webp)
4989

5090
Expanding a review reveals its **Criteria** and the **scores produced** — one per benchmark item, each with a numeric value and the judge's written reasoning. In the example above, the *accuracy* review explains why a clear, correct answer earned a full score while an empty or unanswerable response received a lower, neutral one. Reviews are the automated grading path; individual human, numeric, boolean, or categorical annotations can also be attached to any trace, and reusable rubrics can be saved and referenced across runs.
5191

92+
Scores can also be added by hand from a trace. A manual score takes a name, a value between **0 and 1**, and an optional comment, and sits alongside the judge's scores on the same item. Score writes are ingested asynchronously, so a freshly added score appears immediately in the open panel and is confirmed on the next refresh.
93+
5294
## Programmatic Access
5395

5496
Everything in this panel is available over the platform API, so evaluations can run in CI or from an AI agent: create benchmarks and items (JSON, CSV upload, or from chat traces), start experiment runs, launch LLM-as-Judge reviews, read scores, and export CSV. The API is packaged as the `iblai-api-agent-eval` skill at [github.com/iblai/api](https://github.com/iblai/api).
5597

98+
## Building Evals Into Your Own App
99+
100+
The Evals panel is one of the agent-settings tabs published in the ibl.ai SDK, so the same screen can be mounted in a product you build yourself. Install the [iblai/vibe](https://github.com/iblai/vibe) skills and mount `<AgentEvaluationTab>` from `@iblai/iblai-js/web-containers/next` inside an `AgentSettingsProvider`. It handles benchmarks, runs, reviews, scores, export, and delete on its own; the host supplies a `getLLMProviderDetails` function so the judge picker can show provider logos and display names. The reusable skill for this workflow is [`iblai-vibe-agent-evals`](https://github.com/iblai/vibe/tree/main/skills/iblai-vibe-agent-evals), and the SDK overview is at [Vibe SDK](/developer/applications/vibe).
101+
56102
## Related
57103

58104
- [Agent Settings: Analytics](analytics.md) — usage reports and dashboards for the agent

os/agent-settings/grader.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Agent Settings: Grader
2+
3+
![Grader panel on the Grading setup sub-tab, showing the grading toggle in its helper banner, the Grading setup and Rubric sub-tabs, the What gets graded and Feedback shared with the person selectors, the grading instructions textarea, and a Save button](/images/docs/os/agent-settings/agent_settings_grader_setup.webp)
4+
5+
## Overview
6+
7+
The Grader panel is where you set up how an agent grades work against a rubric you define. The panel header reads "Grader" with the subtitle "Set up how your agent grades work against a rubric you define," and a helper banner explains: "Let your agent grade work. When this is on, the agent scores what people submit against the rubric you set up below and shares the result as feedback — great for essays, projects, and practice exercises."
8+
9+
Grading has two halves, split across two sub-tabs. **Grading setup** decides *what* the agent grades and how much of the result it shares back. **Rubric** decides *how* it is scored: a table of criteria, each worth a number of points, with the overall score reported as points earned out of the total.
10+
11+
Grading only runs when all three pieces are in place — the **Grading** tool is attached to the agent, a grading setup has been saved, and the rubric has at least one criterion. Until then the panel shows an amber warning naming what is still missing.
12+
13+
To reach this screen, open the **Edit Agent** modal, keep the **Configurations** tab group selected, and click **Grader** in the left sidebar. The panel is permission-gated: a user without access to the grading endpoints sees a "No access to grading settings" notice in place of the sub-tabs.
14+
15+
## Target Audience
16+
17+
**Administrator** | **Instructor** | **Agent Builder**
18+
19+
## Panel Reference
20+
21+
#### Grading toggle
22+
The switch in the helper banner attaches or detaches the **Grading** tool on the agent — it is the single activation control. While it is off, both sub-tabs are hidden and the panel shows a hint instead. Turning it off does **not** discard anything: the grading setup and the rubric are kept, so re-enabling grading restores the configuration you already built.
23+
24+
#### Grading setup / Rubric sub-tabs
25+
Two sub-tabs organize the panel. **Grading setup** holds the three configuration fields; **Rubric** holds the criteria table. The rubric shows a hint to save the setup first until a grading configuration exists.
26+
27+
#### What gets graded
28+
A dropdown with two options. **A submission** grades a piece of work the person hands in, like an essay or an answer. **The conversation** grades how the whole conversation went.
29+
30+
#### Feedback shared with the person
31+
A dropdown controlling how much detail the person receives: **Overall feedback only**, **Feedback per criterion**, or **Overall + per criterion**. The overall score is always calculated — this setting only governs how much of it is shared back.
32+
33+
#### Grading instructions
34+
A required textarea holding the context the agent uses every time it grades. This is where calibration lives: the audience and grade level, how strictly to weigh mistakes, what earns full credit, and what to do when a score is borderline.
35+
36+
#### Save
37+
Enabled once the grading instructions are non-empty and something on the form has changed. The first save creates the grading configuration; later saves update it.
38+
39+
#### Rubric table
40+
Each row is one thing the agent looks for and how many points it is worth, with **Name**, **Criteria**, and **Points** columns and a per-row actions menu. A footer reports "Total possible points: N" and "Overall score = points earned ÷ N."
41+
42+
![Rubric sub-tab showing a criteria table with Name, Criteria, and Points columns, an Add criterion button, and a footer with the total possible points and the overall-score formula](/images/docs/os/agent-settings/agent_settings_grader_rubric.webp)
43+
44+
#### Criterion actions menu
45+
The `` menu on each rubric row offers **Edit** and **Delete**.
46+
47+
![Per-row actions menu on a rubric criterion, offering Edit and Delete](/images/docs/os/agent-settings/agent_settings_grader_rubric_actions.webp)
48+
49+
#### Add / Edit criterion
50+
A modal with three fields: **Name** (required — a short label such as "Clarity"), **Criteria** (required — what earns the points), and **Points** (a positive number).
51+
52+
![Add criterion modal with Name, Criteria, and Points fields](/images/docs/os/agent-settings/agent_settings_grader_criterion_add.webp)
53+
54+
![Edit criterion modal pre-filled with an existing criterion's name, description, and points](/images/docs/os/agent-settings/agent_settings_grader_criterion_edit.webp)
55+
56+
#### Delete criterion
57+
A confirmation modal shown before a criterion is removed. The last remaining criterion cannot be deleted while grading is set up — add a replacement first, since a rubric with no criteria would leave grading misconfigured.
58+
59+
![Delete criterion confirmation modal](/images/docs/os/agent-settings/agent_settings_grader_criterion_delete.webp)
60+
61+
## How to Use
62+
63+
#### Step 1: Turn grading on
64+
Open the **Edit Agent** modal, keep **Configurations** selected, click **Grader** in the sidebar, and switch the toggle in the helper banner on. This attaches the **Grading** tool to the agent — the same state you would see in the Tools panel — and reveals the two sub-tabs.
65+
66+
#### Step 2: Choose what gets graded
67+
On the **Grading setup** sub-tab, pick **A submission** if the agent should score work the person hands in, or **The conversation** if it should judge how the exchange went overall.
68+
69+
#### Step 3: Decide how much feedback to share
70+
Set **Feedback shared with the person**. Start with **Overall feedback only** for a light touch, or **Overall + per criterion** when the person should see exactly where each point went.
71+
72+
#### Step 4: Write the grading instructions
73+
Fill in the required **Grading instructions**. Be explicit about the audience, the calibration you want, and how to resolve borderline scores — this text is sent with every grading run. Then **Save** to create the configuration.
74+
75+
#### Step 5: Build the rubric
76+
Switch to the **Rubric** sub-tab and use **Add criterion** to add each thing the agent should look for, with a description of what earns the points and a point value. The footer keeps a running total, and the overall score is points earned divided by that total.
77+
78+
#### Step 6: Confirm nothing is missing
79+
If the amber misconfiguration warning is still showing, grading is on but either the setup has not been saved or the rubric is empty. Grading runs only once the tool is attached, the setup is saved, and at least one criterion exists.
80+
81+
## Behavior Notes
82+
83+
- **The toggle is a tool attachment.** Turning grading on adds the **Grading** tool to the agent; turning it off removes it. If the Grading tool is not available in your organization's tool catalogue, enabling the toggle reports an error.
84+
- **Your configuration survives a disable.** Detaching the tool deliberately leaves the grading setup and rubric intact, so rubric work is never lost across a disable/re-enable cycle. Re-attaching the tool provisions the configuration record again.
85+
- **An empty first run is normal.** On a brand-new agent there is no grading configuration yet; the panel treats that as the first-run state, not an error, and the first save creates it.
86+
- **Grading is scored out of the rubric total.** The overall score is always points earned ÷ total possible points, regardless of the feedback setting.
87+
88+
## Building Grading Into Your Own App
89+
90+
The Grader panel is one of the agent-settings tabs published in the ibl.ai SDK, so the same screen can be mounted in a product you build yourself. Install the [iblai/vibe](https://github.com/iblai/vibe) skills and mount `<AgentGraderTab>` from `@iblai/iblai-js/web-containers/next` inside an `AgentSettingsProvider`; every label is overridable through a `labels` prop. The reusable skill for this workflow is [`iblai-vibe-agent-grader`](https://github.com/iblai/vibe/tree/main/skills/iblai-vibe-agent-grader), and the SDK overview is at [Vibe SDK](/developer/applications/vibe).

os/agent-settings/lti-keys.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,14 @@ Each key is a row with:
3232
- **PUBLIC KEY** — a truncated preview of the PEM-encoded public key (beginning `-----BEGIN PUBLIC KEY-----`).
3333
- **ACTIONS** — a menu per row. **Edit** opens the key detail, where you can rename the key and view its full PEM public key and its public JWK (the JSON Web Key form published at the JWKS endpoint). **Delete** removes the key after confirmation — note that a key cannot be deleted while an LTI tool still references it.
3434

35-
The list is paginated when there are many keys.
35+
The list is paginated at 10 rows per page.
36+
37+
#### Key detail
38+
Choosing **Edit** opens the key's detail dialog: the key name can be changed here, and the full **Public Key (PEM)** and **Public JWK** are shown with copy buttons. Only the public halves are exposed — the private key never leaves the platform, which is what lets the LMS verify a launch without ever holding a secret of yours.
39+
40+
![LTI key detail dialog showing the key name field, the full PEM-encoded public key, and the public JWK, each with a copy button](/images/docs/os/agent-settings/agent_settings_lti_key_detail.webp)
41+
42+
Deleting is blocked while a tool still references the key, and the reason is surfaced in the dialog rather than failing silently — re-point the tool at another key first.
3643

3744
## How to Use
3845

os/agent-settings/lti-tools.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,13 @@ Opens the tool registration form. Its fields hold values that come from the LTI
3131
- **Auth login URL** — the platform's OIDC authorization endpoint.
3232
- **Auth token URL** — the platform's OAuth2 token endpoint.
3333
- **Key set** — the platform's public keys, provided either as a **JWKS URL** (for example `https://lms.example.com/.well-known/jwks.json`) or as raw JWKS JSON.
34+
- **Auth audience** — optional, and usually left blank; set it only when the platform requires a specific audience value on the token request.
3435
- **Signing key** — one of the platform-wide keys from the **Keys** sub-tab, used to sign LTI messages for this platform. Create the key first if none exists.
36+
- **Deployment IDs** — the deployment identifiers the LTI platform assigns, entered one per line or comma-separated. A single registration can carry several deployments, which is how one LMS covers multiple sub-accounts or course shells.
37+
38+
Every field except the auth audience is required. Title, issuer, client ID, and the two OIDC URLs come straight from the LMS registration — copy them rather than retyping, since a single character's difference makes launches fail verification.
39+
40+
![Create LTI Tool dialog with fields for the title, issuer, client ID, auth login and token URLs, auth audience, the JWKS key set, the signing key selector, and deployment IDs](/images/docs/os/agent-settings/agent_settings_lti_tool_create.webp)
3541

3642
#### Tools table
3743
Each registered platform is a row with:

0 commit comments

Comments
 (0)