# Osysharp.Agents.Teaching — the two screens people teach an agent on

> `Osysharp.Agents.Teaching` draws "Correct this" on a piece of an agent's work, and an agent's Instructions page: what is waiting to be read, what is active, what was retired, who decided, and every change as a numbered set that can be rolled back.

<!-- id: agent-kit-agents-teaching · area: agent · stability: preview · html: https://osysharp.com/reference/agent/kit-agents-teaching/ -->

> **You are here:** [Building with agents](https://osysharp.com/reference/agent/guide/) › [The kits](https://osysharp.com/reference/agent/guide-kits/) › Agents.Teaching

## Summary        {#summary}
`Osysharp.Agents.Teaching` draws "Correct this" on a piece of an agent's work, and an agent's Instructions page: what is waiting to be read, what is active, what was retired, who decided, and every change as a numbered set that can be rolled back.

The screens decide nothing. Who may correct, who may make an instruction active and who may roll back are answered by `Osysharp.Agents`. A control a person may not use is not offered.

|  |  |
|---|---|
| Package | `Osysharp.Agents.Teaching`, version 1.2.0 |
| You add it with | `use Osysharp.Agents.Teaching;` in the app's manifest. |
| It sits on | [[agent-kit-agents\|Agents]] |
| It also uses | `Identity`, `Ui` — parts of the platform's own library |
| Its own test app | A small maritime museum whose labels are written by an AI agent — `kits/agents-teaching/tests` |

## Description    {#description}

### What do you get without writing anything?   {#free}
- A correction form: what was wrong, what it should have been, why — and an instruction proposed from it in the same breath.
- The Instructions page for an agent: propose, edit, activate, reject, retire, roll back.
- For each active instruction: how much work has been sent it, and whether that work was corrected since.

### When do you need it?   {#when}
When people who are not developers should improve an agent. The functions underneath (`CorrectAgentWork`, `ProposeAgentInstruction`, `ActivateAgentInstruction`) are in the core kit and work without these screens.

### What does it expose?   {#exposes}
The tables below are generated from the kit itself, not written by hand: `osy kits Osysharp.Agents.Teaching --surface` lists each of
them with the code of the kit's own test app that uses it, and the tests that show it working.

**Functions you call**, those its own tests show most first.

| Function | What it does | Tests that show it |
|---|---|---|
| `InstructionBoardOf(string agent)` | An agent's instructions, for its page: what is waiting to be read, what is active, what is past, and every change to the set — each as whoever is looking may read it. | 6 |
| `SendCorrection(Guid task, CorrectionForm form)` | Send a correction from the screen — and, when the person asked, propose an instruction from it in the same unit of work. | 5 |
| `WorkTeachingOf(Guid task)` | One piece of work, for teaching: what it was told, what it handed back, each step of its record, and the corrections people have made of it. | 4 |
| `ActivateFromPage(Guid instruction, string why = …)` | Make a proposed or retired instruction active. | 4 |

**Screens and components you mount** — each is one line in a page of yours.

| Component | What it draws |
|---|---|
| `CorrectThis(task, step, proposal, label, agent, changed, quiet)` | "correct this". |
| `CorrectionLine(c)` | One correction, as it reads on the work it corrects. |
| `WorkTeaching(task, beside)` | Teaching, on one piece of work — what a run's page shows so that a person can correct it: what it was told when it ran (and what the agent has been told since), what it handed back, each step of its record, each with "Correct this"; and the corrections made so far. |
| `AgentInstructions(agent)` | An agent's instructions, as a page's body. |
| `InstructionRow(card, mayTeach, agent, changed)` | One instruction: what the agent is told, what work it is for, where it came from, who decided — and, for whoever teaches, what can be done with it. |
| `SetRow(set, agent, agentName, mayTeach, changed)` | One line of the history: a change to the set, and the way back to it. |

## What to read next   {#read-next}
- [Osysharp.Agents.Inspector — one piece of an agent's work, readable by a person who was not there](https://osysharp.com/reference/agent/kit-agents-inspector/) — one piece of an agent's work, readable by a person who was not there
- [Osysharp.Agents.Management — the place a person runs an app's agents from](https://osysharp.com/reference/agent/kit-agents-management/) — the place a person runs an app's agents from
- [What stays under people's control — ten promises, and where each is shown](https://osysharp.com/reference/agent/overview-control/) — what stays under people's control — ten promises, and where each is shown

## Go deeper   {#see-also}
- [Correct this, and an agent's Instructions page — the screens people teach an agent on (Agents.Teaching kit)](https://osysharp.com/reference/agent/teaching-screens/) — the two screens
- [Correcting an agent, and what it is told from then on — corrections, instructions, instruction sets and rollback (Agents kit)](https://osysharp.com/reference/agent/teaching/) — corrections, instructions, instruction sets, rollback
