> ## Documentation Index
> Fetch the complete documentation index at: https://docs.heylua.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Features

> Built-in agent capabilities you can turn on or off per agent

## What are features?

**Features** are optional platform capabilities attached to your agent. When a feature is enabled, the runtime adds the right tools and prompt instructions so the model knows when and how to use them.

You toggle features per agent using the CLI (`lua features`) or via the platform APIs. For full command options and interactive flows, see the [Features command](/cli/features-command) reference.

<Card title="Current features" icon="toggle-on">
  There are three built-in features: **Knowledge Search** (`rag`), **Web Search** (`webSearch`), and **Inquiry Forms** (`inquiry`).
</Card>

## Knowledge Search (`rag`)

RAG-based search over your agent’s **resources** (documents you upload as the knowledge base).

**What it does:** Lets the agent retrieve relevant passages from your uploaded materials and answer with citations.

**How you add knowledge:** Use [`lua resources`](/cli/resources-command) from a skill project, or upload documents in the **Admin Dashboard** (recommended for many teams). Almost any common document type can be processed and used for retrieval.

**Best for:** FAQs, policies, product docs, internal knowledge that should stay in *your* data—not the open web.

See also: [Resources](/overview/resources).

***

## Web Search (`webSearch`)

Real-time answers grounded in web search results, with source links attached to the response.

**What it does:** The agent can run a web search for a natural-language query and get a synthesized answer plus source links. It is **not** a web scraper: it does not open arbitrary URLs or extract full page HTML.

Depending on your agent's model, search runs one of two ways under the hood:

* **Native search** — models with a built-in, cited web search path (OpenAI, Anthropic, Google/Gemini, xAI, and Zhipu AI's GLM models) use the provider's own search tool, with real source links.
* **Assisted search** — every other model falls back to Lua's own web-search tool, which still returns source links alongside the answer.

Either way, responses come back with the same citation format, so nothing about how you consume search results changes based on which model your agent uses.

**Best for:** Current events, public facts, or anything not in your uploaded resources.

**On by default.** Like the other built-in features, new agents start with Web Search enabled. If your agent doesn't need it — or you want to avoid the extra latency and per-search cost that native search adds on some models — turn it off with `lua features disable --feature-name webSearch` or from the Admin Dashboard.

For details and limitations, see the [Features command](/cli/features-command) reference (Web Search section).

***

## Inquiry Forms (`inquiry`)

Structured data collection through conversational **forms** you define.

**What it does:** The agent can present forms (questions/fields), collect responses, and store submissions. Submissions appear in the **Admin Dashboard** so your team can review them—similar to how legacy “support tickets” worked, but inquiry forms are general-purpose (leads, intake, feedback, or support-style flows).

**Best for:** Lead capture, onboarding questionnaires, support intake, or any workflow where you need structured answers from users.

***

## Enabling and disabling features

<Card title="Defaults" icon="sparkles">
  Every new agent you create starts with **all built-in features enabled** — Knowledge Search, Web Search, and Inquiry Forms. Turn off what you don't need on a per-agent basis.
</Card>

You can toggle features and customize their per-agent instructions from either the CLI or the Admin Dashboard — both call the same API, so changes in one show up in the other.

### From the CLI

From your skill project directory (with `lua.skill.yaml` configured):

```bash theme={null}
lua features list
lua features enable --feature-name webSearch
lua features disable --feature-name rag
lua features view --feature-name inquiry
```

See [Features command](/cli/features-command) for interactive mode, context editing, and troubleshooting.

### From the Admin Dashboard

The dashboard mirrors the CLI with two surfaces:

1. **Create Agent dialog** — when you create an agent, a **Capabilities** section lets you pre-select which features to enable. All features are ticked by default; untick any your agent doesn't need.
2. **Features section** — on an existing agent's workspace, the **Features** section appears in the overview sidebar (next to Webhooks, Knowledge, and other primitives) with an inline toggle per feature. Click **View all** to open the full `/admin/agents/<agentId>/features` page (also reachable from the settings gear → **Features**) where you can:
   * Flip each feature on or off.
   * Override the per-agent instructions that the model sees when the feature is active.
   * Reset an override back to the platform default without disabling the feature.

The dashboard edits the same `featuresOverride` map on the agent that `lua features` writes to, so customizations flow straight through to the runtime's dynamic tool injection.
