Understand which agent settings live in the dashboard and which live in your code, and where to change each one.
An agent is configured in two places. The dashboard holds everything the hosted runtime needs to reason — its instructions, the documents it can search, the tools it can call — plus how the embed looks. Your code holds what only your application can supply: identity, the token exchange, and client tools.
Knowing which side owns a setting tells you how it ships. Dashboard settings reach visitors without a deploy. Code settings are part of your bundle.
| Setting | Configured in | Takes effect |
|---|---|---|
| System prompt | Dashboard | Next message, no deploy |
| Knowledge documents | Dashboard | Next message, no deploy |
| Built-in toolkits | Dashboard | Next message, no deploy |
| MCP servers | Dashboard | Next message, no deploy |
| API keys | Dashboard | Immediately |
| Appearance and theme | Dashboard or code | Next page load |
| Composer and start screen | Dashboard or code | Next page load |
| Permission modes | Dashboard or code | Next page load |
| Client tools | Code | Next deploy |
Everything marked "or code" can be set in either place. The embed reads the appearance saved for your project, and any prop you pass overrides it, field by field. See Appearance for how to choose.
Client tools run in the browser with the signed-in person's session, so their implementations never leave your application. The hosted runtime only ever receives each tool's name, description, and schema. Identity works the same way: your server mints every browser credential, so the agent never sees your API key.
Instructions, documents, and server-side tools are different. The runtime needs them to plan a response before the browser is involved, so they are stored with the project and fetched on every run. Appearance is stored with the project too, which is what lets you restyle a deployed agent without shipping a release.
Dashboard settings are scoped to a single project. Use separate projects for staging and production so prompt or tool changes can be validated before they reach customers.