Skip to content

Guides

Prompt

The dashboard prompt finds records and proposes reviewed changes in plain language.

Use the dashboard prompt to find records or propose bulk changes in plain language. For example, ask for "customers in Berlin added this month" or to "mark ACME as churned". It can use the Agentic Models, agents, and automations available to the signed-in user.

  • Reads open the matching view, with filters, search, and columns applied.
  • Writes are planned first. The user reviews the exact records and values, then confirms.
  • A record that changed after review is not overwritten; the prompt asks to review it again.
  • Every request runs with the user's own role and workspace scope.

Choosing the Planner Model

The prompt plans each request with a language model chosen on the server:

VariableValue
AGENTIC_DECISION_PROVIDERtypesafeAI (default) or openAI
TYPESAFE_API_KEYKey for typesafeAI
OPENAI_API_KEYKey for openAI
AGENTIC_DECISION_MODELOptional model override

Without a key, the prompt explains which variable is missing. Keys and cookies never reach the model.

Making a Model Promptable

The prompt option tells the planner how to name and search records:

server/models/customers.ts
export default defineAgenticModel(customers, {
  name: 'customer',
  scope: 'workspace',
  access: { list: 'member', get: 'member', update: 'admin' },
  prompt: { label: 'name', searchable: ['name', 'email'] },
})
  • label is the column that names a record in plans and results.
  • searchable columns match free text such as "ACME".
  • Operations follow access: a model without update access cannot be changed from the prompt.
  • description and field descriptions help the planner pick the right model and fields.

Adding Data That Is Not a Model

Agentic Models cover most data. For anything else, a feature can supply its own prompt resources: objects that implement Resource from @nuxtagentic-pro/core/prompt.

import type { Resource } from '@nuxtagentic-pro/core/prompt'
import { defineFeature } from '@nuxtagentic-pro/server'

export const ticketsFeature = defineFeature({
  id: 'tickets',
  requires: ['workspaces'],
  promptResources: (context): Resource[] => [createTicketResource(context)],
})

A resource describes its fields and implements list, get, create, update, delete, authorize, and validateInput.

  • Enforce your access rules in authorize.
  • Make update and delete check expectedFingerprint; reject stale records so a confirmed plan cannot overwrite a later edit.

Use an Agentic Model when the data lives in your database; it implements this contract for you.

Turning the Prompt Off

Set agentic: { features: { prompt: false } } in nuxt.config.ts, or pass features: selectDefaultFeatures({ prompt: false }) to defineVoidAgentic. See Features.