# Agents

The `agent` block describes an agent:

| Field | Required | Purpose |
|---|---|---|
| `instructions` | Yes | Tasks, decision rules, and when to use tools |
| `name` | No | Display name; defaults to the agent's key |
| `personality` | No | Voice and tone; defaults to warm, brief, and clear |
| `tools` | No | Tool keys the agent may call; defaults to an empty list |
| `knowledge` | No | Knowledge bases this agent reads |
| `links` | No | Urls this agent may hand out |

There is no `agent.key` to configure. A workspace runs exactly one agent, and
the runtime calls it `main`. To give signed-in visitors more than anonymous
ones, keep the one agent and mark the tools that read their data
`access: private`: those run only for a visitor verified through
[`auth:`](https://vatio.ai/docs/authentication/).

```yaml
agent:
  instructions: |
    Answer product questions using knowledge_lookup.
    If the knowledge does not answer the question, say what is missing.
  tools: [knowledge_lookup]
  knowledge: [docs]
```

`knowledge:` and `links:` belong to the agent, not to the workspace — the agent
states what it reads and which urls it may hand out.

Create the `docs` knowledge base with `vatio kb create docs` before pushing this
example: a referenced base must already exist.

## Business context

The business name, description and [opening hours](https://vatio.ai/docs/handoff#business-hours)
are not part of the manifest. Whoever runs the business sets them on the
**Business** page of [the inbox](https://vatio.ai/docs/channels/inbox). The name accepts up to 100
characters and the description 2,000.
They apply to every environment as soon as they are saved; a `business:` block
or an `hours:` block in `vatio.yml` is ignored with a warning.

Write instructions about your product and workflow. Vatio adds business
context, contact state, tool descriptions, and its platform instructions.
The agent normally replies in the visitor's language; specify a language in
`instructions` or `personality` when your product requires one.
