# What your AI can do

> The tools your app gives an AI: the same seven for any data, made to read your data's shape, plus the actions your app adds.

Your assistant does not see screens. It sees **tools**: named actions with a description and the inputs they take. Every app gives the same few tools for its data, plus the actions your app adds. A new field or a new kind of record shows up as soon as it is deployed.

## The tools for your data

| tool | what it does |
|---|---|
| `schema` | tells the assistant which kinds of records it may use, their fields, and what it may do with each |
| `list` | list the records of one kind: a filter, a sort, a page, the fields to return, related records to include |
| `get` | open one record by its id |
| `create` | create a record from its fields |
| `update` | change some fields of one record |
| `delete` | delete one record |
| `batch` | several creates, changes and deletes at once: all of them happen, or none |

The assistant calls `schema` first. It answers in a few lines: for orders, the fields with their types, their allowed values and what they point to, and the actions the account may run. The assistant then names the kind of record in each call: `list` with `orders` and a filter.

The assistant sees only what its account can use. A kind of record that only the app's root account can read does not appear, and every tool refuses it as if it did not exist. A computed list (a summary, a report the app defines) offers `list` and `get` only.

## Your app's own actions

An action your app has beyond plain records ("mail the invoice of this order", "close the month") can be a tool too. Ask for it: "let the AI send the invoice". The agent adds the tool with a clear description and marks whether it changes anything.

## How the assistant reads an answer

- A tool answers with the data, as the app's web API does.
- A refused call is an answer too, marked as an error, with the reason: "Only superusers can perform this action", a missing record, a field that does not accept that value. The assistant reads it and can tell you why.
- Read tools are marked read only. `delete` and `batch` are marked as destructive. A careful client asks you before it calls a destructive tool.

## What the assistant never gets

- Hidden fields, passwords and session keys.
- The rules themselves: it sees what it may do, never how the app decides.
- Files. They go through the app's screens.
- What your app hides from AI on purpose. See [Keep your AI in bounds](https://golocomotive.fr/docs/connect/control.md).
