---
title: "Developing agents with AIA Studio"
canonical_url: "https://www.nutrient.io/sdk/ai-assistant/getting-started/studio/"
md_url: "https://www.nutrient.io/sdk/ai-assistant/getting-started/studio.md"
last_updated: "2026-08-28T07:05:47.211Z"
description: "Use AIA Studio to test and tune AI Assistant agents, manage saved configurations and versions, and import or export agents as JSON."
---

# Developing agents with AIA Studio

AIA Studio is a browser workspace for testing and tuning AI Assistant agents. Use it to choose a built-in preset or saved agent, edit its model override, system prompt, and skills, and test the result in a Nutrient Web SDK viewer.

Use Studio before you write platform-specific integration code. It gives you a short iteration loop for tuning how an agent behaves on representative documents and confirms that AI Assistant and its configured LLM provider are working.

Studio opens with a sample PDF. You can also upload a PDF that represents your application’s document workflow.

## Prerequisites

Before opening Studio, start AI Assistant using one of the Docker Compose examples:

- [AI Assistant with Nutrient Web SDK](https://www.nutrient.io/sdk/ai-assistant/getting-started/web.md)

- [AI Assistant with Nutrient Web SDK and Document Engine](https://www.nutrient.io/sdk/ai-assistant/getting-started/document-engine.md)

Wait until the AI Assistant server reports that it started. In this guide, `{ai-assistant-endpoint}` is the server URL, including the protocol and port when required.

## Opening Studio

Open `{ai-assistant-endpoint}/studio/` in your browser.

Studio and the other dashboard tools are protected by Basic authentication. In the Docker Compose examples, sign in with:

- Username: `dashboard`

- Password: `secret`

If you changed `DASHBOARD_USERNAME` or `DASHBOARD_PASSWORD` in your Compose file, use those values instead.

If the dashboard doesn’t load, confirm that both `DASHBOARD_USERNAME` and `DASHBOARD_PASSWORD` are set for the AI Assistant server. The dashboard is unavailable until both are configured.

## Configuring an agent

Choose the assistant that’s closer to your intended use case. AI Assistant ships three built-in presets:

- `agentic` — Full read and write document capabilities. This is the default.

- `chat` — Read-only question and answer, with no document modification.

- `base` — A minimal preset intended for full customization.

You can edit and test a built-in preset, but you can’t save changes to it. To keep a configuration, first [create a saved agent](#creating-a-saved-agent). You can then edit it in Studio or on the agents page. The [agents](https://www.nutrient.io/guides/ai-assistant/features/agents.md) guide describes each preset and how to select an agent from your application.

Saved agents also appear in the **Assistant to test** menu. Selecting one loads its saved configuration. Studio can save changes to an existing saved agent as a new version.

Tune the agent with the configuration editor:

- Model — Test a different configured model for the agent.

- System prompt — Refine the agent’s instructions, tone, constraints, and task strategy.

- Skills — Add reusable named capabilities the agent can invoke while it works. Each skill has a name, a short description, and instructions.

Use the bundled sample PDF for a quick test, or upload a PDF from your computer to tune the agent against the content, structure, and tasks your users will actually have.

Select **Try changes in viewer** to reload the viewer with the current configuration. Open AI Assistant from the viewer toolbar and run the workflow you want to support. For example, ask questions, request summaries, test extraction-style prompts, or check whether a custom skill changes the agent’s behavior as expected.

When you change the assistant, model override, system prompt, or skills, select **Try changes in viewer** again to apply the updated configuration. If you selected a saved agent, **Save changes** saves the current name and configuration as a new version. This action is available only for saved agents.

## Managing saved agents

Open `{ai-assistant-endpoint}/agents/` to manage the saved agents in your deployment. The dashboard home and Studio also link to this page.

The agents page provides:

- **New agent** and **Import agent** actions.

- A saved-agent list you can filter by name or identifier.

- An **unsaved** marker for agents with changes that you haven’t saved.

- A detail pane for editing the name, description, model override, system prompt, and skills.

- A version selector, export and delete actions, and an **Open in Studio** link.

Save your changes before you reload or close the page.

### Creating a saved agent

Select **New agent**, enter a name, and configure its model override, system prompt, and skills. Edit the suggested identifier if your application requires a specific value.

Select **Create agent**. Then use **Open in Studio** to test it against a document. After the agent exists, you can edit it from either page; every save creates a new version.

### Setting an agent identifier

Each saved agent has an identifier that your application uses to select it through the `agentId` field. The identifier must contain lowercase letters, numbers, and single dashes. It can’t use the UUID format.

Choose the identifier when you create or import the agent; it can’t be changed after creation. Use **Copy** to copy an existing agent’s identifier. See the [agents](https://www.nutrient.io/guides/ai-assistant/features/agents.md) guide for selection details and the [saved-agent authorization](https://www.nutrient.io/guides/ai-assistant/viewer-integration/client-authentication/generate-a-jwt.md#saved-agent-authorization) guide for the required JWT permissions.

### Agent versioning

Saving changes to an existing agent creates a new immutable version instead of overwriting its history. Use the version selector to load an earlier version into the editor. From there, you can:

- Select **Save new version** to create another version from the loaded configuration and any edits.

- Select **Restore** to make the selected version current again.

- Select **Discard changes** to return to the current saved version.

Select **Delete** to permanently remove the saved agent and its version history.

## Building a configuration with the config builder

The **Self-improvement draft** panel in Studio and the **Config builder** panel on the agents page let you describe how an agent should behave in natural language. The builder can propose changes to the system prompt and skills. Apply changes to other fields yourself.

Describe the outcome you want. Then select **Draft improvements**. Review the proposal and its change summary. Choose **Keep changes** in Studio, or **Keep** on the agents page, to leave the proposed prompt and skill changes in the editor. Choose **Discard** to restore the configuration that was present before the proposal.

Keeping a proposal doesn’t persist it. Select **Try changes in viewer** to test it. If you’re editing a saved agent, select **Save changes** in Studio or **Save new version** on the agents page to persist it. The agents-page builder is available only after you select an existing saved agent.

## Export and import an agent

Studio can move a saved agent between deployments or hand a copy to a colleague as a portable JSON file.

**Export** downloads the configuration currently visible in the detail pane to a `.agent.json` file, such as `my-agent-v2.agent.json`. This can be the current version, an earlier selected version, or that version plus unsaved edits.

Exported files exclude user identifiers and provider credentials. Configure the required provider credentials in the target deployment or send them with each run request.

**Import** loads a `.agent.json` file for review. If its identifier already exists, choose a new identifier or select **Add as a new version** for the existing agent.

Review the imported configuration, and then create the agent or save the new version. You can cancel the import without saving it.

## Using your agent in an application

Use Studio to settle the agent configuration: its model override, system prompt, skills, and expected behavior on representative documents. When a saved agent behaves the way you want, reference it from your application by its identifier.

Move to a platform-specific integration when you need to embed AI Assistant in your product, connect it to your own document sources, generate JSON Web Tokens (JWTs), manage sessions and users, or customize the viewer. Follow the guide for your target platform:

- [Nutrient Web SDK](https://www.nutrient.io/sdk/ai-assistant/getting-started/web.md)

- [Nutrient Web SDK with Document Engine](https://www.nutrient.io/sdk/ai-assistant/getting-started/document-engine.md)

- [Nutrient iOS SDK](https://www.nutrient.io/sdk/ai-assistant/getting-started/ios.md)

- [Nutrient Android SDK](https://www.nutrient.io/sdk/ai-assistant/getting-started/android.md)

For the agent API and the `agentId` field, see the [agents](https://www.nutrient.io/guides/ai-assistant/features/agents.md) guide. To authorize an application to read, run, create, update, or delete saved agents, see the [saved-agent authorization](https://www.nutrient.io/guides/ai-assistant/viewer-integration/client-authentication/generate-a-jwt.md#saved-agent-authorization) guide.
---

## Related pages

- [Getting started with AI Assistant](/sdk/ai-assistant/getting-started.md)
- [Getting started with AI Assistant and Nutrient Android SDK](/sdk/ai-assistant/getting-started/android.md)
- [Getting started with AI Assistant and Nutrient Web SDK + Document Engine](/sdk/ai-assistant/getting-started/document-engine.md)
- [Getting started with AI Assistant and Nutrient iOS SDK](/sdk/ai-assistant/getting-started/ios.md)
- [Getting started with AI Assistant and Nutrient Web SDK](/sdk/ai-assistant/getting-started/web.md)

