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

# AI & Agent Features

> Configure providers, models, and presets; set up custom agents; manage tool permissions; and review plan approvals.

# AI & Agent Features

Fabriqa puts AI configuration in the chat input, not buried in settings. You can switch models mid-session, save provider+model combos as presets, configure custom agents, and control exactly which tools the agent is allowed to use.

## Provider and Model Picker

The **provider and model picker** lives in the chat input toolbar. Click it to open a dropdown showing:

* All configured providers (Anthropic, OpenAI, Ollama, and others).
* Available models for the selected provider.
* The currently active selection highlighted.

Switching here affects only the current chat. Other tabs keep their own model selection.

### Slash command

Open the model picker with `/models` from the chat composer.

## Presets

Presets let you save a provider+model combination with a name so you can switch between setups instantly.

**Creating a preset:**

1. Select the provider and model you want.
2. Click **Save as preset** in the picker dropdown.
3. Give it a name (e.g. "Fast Claude", "Local Llama").

**Using a preset:**

* Select it from the presets section in the picker dropdown.
* The provider and model switch immediately.

Presets are stored in application settings and are available across all workspaces.

## Custom Agent Configuration

Each chat can use a custom agent definition that controls the agent's behavior, system prompt, and available tools.

**Configure the agent for a chat:**

1. Click the **agent settings** button in the chat header.
2. Adjust the system prompt, tool list, and mode.
3. For advanced options, open the **Advanced** modal from the agent settings panel.

Custom agents can be saved and reused across chats. Saved agents appear in the agent picker.

## ACP Advanced Options

The ACP (Agent Communication Protocol) options panel gives you fine-grained control over how Fabriqa communicates with the AI process:

* **Mode selector** — switch between agentic mode (full tool use) and conversation-only mode.
* **Model selector** — override the model specifically for the ACP process.
* **Config options** — adjust context window behavior, max tokens, and other protocol-level settings.

Access via `/acp` or from the agent settings panel → Advanced.

## Tool Permissions

When the agent attempts to use a tool (read a file, run a shell command, access the network, etc.), Fabriqa shows a **permission dialog** if the action has not been pre-authorized.

The dialog presents:

* The tool name and a description of the action being requested.
* The specific parameters the agent wants to pass.

**Permission choices:**

| Option            | Effect                                                                   |
| ----------------- | ------------------------------------------------------------------------ |
| **Allow once**    | Permit this specific call; ask again next time                           |
| **Allow always**  | Save a permanent allow rule for this tool in this workspace              |
| **Reject**        | Deny the call; the agent receives a rejection and can try an alternative |
| **Reject always** | Save a permanent deny rule                                               |

Saved rules are visible and editable in **Workspace Settings → Permissions**.

<Note>
  Permanent rules are workspace-scoped. An "allow always" rule in one workspace does not apply to other workspaces.
</Note>

## Plan Approval

Some agents propose a plan before executing actions. When a plan is presented:

* Review the proposed list of steps shown in the plan block.
* Click **Approve** to let the agent proceed.
* Click **Reject** to stop the plan and redirect with a new instruction.

Plan approval gives you a checkpoint before potentially destructive or large-scale changes are made.

## Usage Statistics

Track token consumption with **`Cmd+U`** (macOS) / **`Ctrl+U`** (Windows / Linux) or `/usage`:

* Tokens used per message (input + output).
* Session totals and workspace cumulative totals.
* Per-model breakdowns when multiple models were used in a session.
