Give your agent a private database, typed business logic, LLM-callable tools, and a sidebar UI.
## What You'll Learn
| Page | Topic | What you can build after |
|------|-------|--------------------------|
| [Agent Database](./models) | Define `.mod.yao` models, auto-migrate tables, query from hooks and MCP tools | Agent with private persistent storage |
| [Scripts & Processes](./scripts) | Export TypeScript functions as Yao Processes | Reusable business logic callable from anywhere |
| [MCP Tools (Yao Process)](./mcp) | Map Processes to MCP tools via `transport: "process"` | LLM-callable tools backed by your own code |
| [SUI Pages](./pages) | Build sidebar pages the agent navigates to | Structured UI inside the conversation |
| [Open Source Projects](./open-source) | Real-world reference projects | Know where to look for complete examples |
## Learning Path
```
models.mdx ← define the data layer first
│
▼
scripts.mdx ← write the business logic as Processes
│
▼
mcp.mdx ← expose Processes to the LLM as MCP tools
│
▼
pages.mdx ← add a sidebar UI the agent can navigate to
│
▼
open-source.mdx ← see all of this in a real project
```
Each step builds on the previous one. By the end, you will have an agent that stores data, runs typed business logic, exposes it to the LLM as tools, and displays results in a sidebar page.
## Prerequisites
- Completed or skimmed the [Yao Agent](/tutorials/en-us/agent/yao-agent) chapter — you should know what hooks are and how MCP tools work from the hook side.
- A running Yao app with at least one assistant (`package.yao`).