You are here: Building with agents › The kits
Summary#
You never add 29 kits. You add the two or three your shape takes, and the bridges between them arrive by themselves.
Solid boxes are kits you add with one line. Dashed pills are bridges: nobody writes them in an app.
Description#
How do I read the map?#
- Left, bottom to top. Llm is every call to a model. Agents sits on it. Three kits draw screens on top of Agents. Under Llm are the providers and a router: you pick the ones you use.
- Right. Five kits that have nothing to do with AI. Each is useful in an app with no agent in it: a list of process runs, an approval in an inbox, a piece of work owned until it is done.
- Between. When an app uses a kit from the left and a kit from the right, a bridge connects them. A bridge
is a small kit of its own. It is not written in the app:
osy lockadds it and says that it did. Neither of the two kits it joins knows about the other.
That last point is why the family comes apart cleanly. An app with agents and no business processes carries no process code. An app that adds Processes later gets the agents-and-processes bridge the same day, with nothing to wire.
Which kits does my shape take?#
| Shape | You add | Arrives by itself |
|---|---|---|
| [[agent-guide-assistant|1. An assistant]] | [[agent-kit-llm|Llm]], a provider, [[agent-kit-agents|Agents]] | — |
| [[agent-guide-approvals|2. Approvals]] | + [[agent-kit-human-requests|HumanRequests]], [[agent-kit-work-queues|WorkQueues]] | [[agent-kit-agents-human-requests|Agents.HumanRequests]] |
| [[agent-guide-process|3. A process]] | + [[agent-kit-processes|Processes]], [[agent-kit-agents-inspector|Agents.Inspector]] | [[agent-kit-agents-processes|Agents.Processes]], [[agent-kit-human-requests-processes|HumanRequests.Processes]] |
| [[agent-guide-team|4. A team]] | nothing | — |
| work owned until it is done | + [[agent-kit-assignments|Assignments]], [[agent-kit-work-repositories|WorkRepositories]] | [[agent-kit-assignments-agents|Assignments.Agents]], [[agent-kit-work-repositories-agents|WorkRepositories.Agents]], [[agent-kit-assignments-work-queues|Assignments.WorkQueues]] |
| people's data under their own request | + [[agent-kit-privacy|Privacy]] | the six Privacy bridges |
What is each kit for?#
Models
| Kit | In one sentence |
|---|---|
| [[agent-kit-llm|Osysharp.Llm]] | Every call to a model: which one, what it may cost, what it did cost. |
| [[agent-kit-llm-router|Osysharp.LlmRouter]] | The cheapest model that is good enough for each kind of work. |
| [[agent-kit-anthropic|Osysharp.Models.Anthropic]] | Anthropic's models as a provider. |
| [[agent-kit-openai|Osysharp.Models.OpenAi]] | OpenAI's models, and anything that speaks the same wire. |
| [[agent-kit-gemini|Osysharp.Models.Gemini]] | Google's Gemini models as a provider. |
Agents
| Kit | In one sentence |
|---|---|
| [[agent-kit-agents|Osysharp.Agents]] | An agent as a class with its own account; typed jobs; the gate; proposals; delegation; receipts; teaching. |
| [[agent-kit-agents-testing|Osysharp.Agents.Testing]] | A script in place of the model, so tests cost nothing. |
| [[agent-kit-agents-inspector|Osysharp.Agents.Inspector]] | One piece of work on one page, for somebody who was not there. |
| [[agent-kit-agents-teaching|Osysharp.Agents.Teaching]] | "Correct this", and an agent's Instructions page. |
| [[agent-kit-agents-management|Osysharp.Agents.Management]] | Eight screens to run an app's agents from. |
People
| Kit | In one sentence |
|---|---|
| [[agent-kit-work-queues|Osysharp.WorkQueues]] | The inbox: queues, who holds what, the time promised. |
| [[agent-kit-human-requests|Osysharp.HumanRequests]] | A question, an approval or a form put to a person, and the answer coming back. |
| [[agent-kit-agents-human-requests|Osysharp.Agents.HumanRequests]] (bridge) | An agent's proposals and questions in that person's inbox. |
Processes
| Kit | In one sentence |
|---|---|
| [[agent-kit-processes|Osysharp.Processes]] | Every run of a business process, listed, drawn and told. |
| [[agent-kit-agents-processes|Osysharp.Agents.Processes]] (bridge) | An agent's work told on the run it is a step of, and charged to it. |
| [[agent-kit-human-requests-processes|Osysharp.HumanRequests.Processes]] (bridge) | What a run asks of people, told on the run in the state that asked. |
Work that lasts
| Kit | In one sentence |
|---|---|
| [[agent-kit-assignments|Osysharp.Assignments]] | A piece of work owned until its outcome is reached. |
| [[agent-kit-work-repositories|Osysharp.WorkRepositories]] | What an assignment knows, kept as versioned items. |
| [[agent-kit-assignments-agents|Osysharp.Assignments.Agents]] (bridge) | An agent's work attached to the assignment it is for. |
| [[agent-kit-work-repositories-agents|Osysharp.WorkRepositories.Agents]] (bridge) | What an agent finds, kept as items. |
| [[agent-kit-assignments-work-queues|Osysharp.Assignments.WorkQueues]] (bridge) | What an assignment asks of people, in their inboxes. |
| [[agent-kit-shop-agents|Osysharp.Shop.Agents]] (bridge) | A description writer on the shop's desk: drafts offered in the product editor. |
Privacy
| Kit | In one sentence |
|---|---|
| [[agent-kit-privacy|Osysharp.Privacy]] | What the app holds about a person, and what their request does to it. |
| [[agent-kit-privacy-agents|Osysharp.Privacy.Agents]] (bridge) | What agents did for and about a person. |
| [[agent-kit-privacy-llm|Osysharp.Privacy.Llm]] (bridge) | The model calls made for a person. |
| [[agent-kit-privacy-assignments|Osysharp.Privacy.Assignments]] (bridge) | The people on an assignment, and the person it is about. |
| [[agent-kit-privacy-work-repositories|Osysharp.Privacy.WorkRepositories]] (bridge) | The items a piece of work keeps about a person. |
| [[agent-kit-privacy-human-requests|Osysharp.Privacy.HumanRequests]] (bridge) | What was asked of a person, and what they answered. |
| [[agent-kit-privacy-agents-human-requests|Osysharp.Privacy.Agents.HumanRequests]] (bridge) | The inbox items a person handed to an agent. |
Released with the family
| Kit | In one sentence |
|---|---|
| [[agent-kit-color|Osysharp.Color]] | Colour maths for apps that let people choose colours. It has nothing to do with agents. |
What does a kit's page tell me?#
Every kit page has the same five parts:
- What it is for, in a sentence, and how you add it.
- What you get without writing anything.
- When you need it, by shape.
- What it exposes: its settings, the types you derive from, the policies you answer and what each admits until you do, the functions you call, the events you can hear, the slots you can fill, the screens you mount.
- Go deeper: the reference pages behind it.
Part 4 is not written by hand. It is generated from what the tools say about the kit, so it cannot list a function that is not there. You can ask the same question yourself:
| Ask | It answers |
|---|---|
osy kits Osysharp.Agents --surface | every setting, policy, function, event and slot, each with the code of the kit's own test app that uses it and the tests that show it working |
osy kits Osysharp.Agents --tests-for UsesAgents | those tests, whole |
osy kits find "ask a person for approval" | the kits that do a thing, ranked |
osy docs agent-autonomy | a reference page |
What to read next#
- Osysharp.Agents — an agent given a real job inside an app, and trusted with it — the core kit's page: start here to see what a kit page looks like
- One piece of work, followed end to end — one piece of work passing through six of these kits
- Deciding what to build — four shapes of app with agents in it — which kits your shape takes
Go deeper#
- Agents (a class with a job, its own account, a budget and a record) — the reference pages about agents, by subject
- The Llm kit — call a model, and know what each call cost — the Llm kit in full
- Processes — every run of a business process, listed and read from start to now (Processes kit) — the Processes kit in full
- The WorkQueues kit — queues, who holds what, and the service levels promised on any item — the WorkQueues kit in full
- The Privacy kit — erasure that keeps only what the company must or may — the Privacy kit in full