Skip to content

Assistants and Templates

Thorsten Sommer edited this page Oct 31, 2026 · 3 revisions

This page shows how you prepare AI Studio for the work of your colleagues: which assistants they see, which chat templates, profiles, and policies they get, what the start page tells them, which assistant plugins you approve, and how the Slide Assistant uses your corporate design.

Assistants

Hiding assistants

Hide the built-in assistants your organization doesn't need:

CONFIG["SETTINGS"]["DataApp.HiddenAssistants"] = { "BIAS_DAY_ASSISTANT", "JOB_POSTING_ASSISTANT" }

The values are GRAMMAR_SPELLING_ASSISTANT, ICON_FINDER_ASSISTANT, REWRITE_ASSISTANT, PROMPT_OPTIMIZER_ASSISTANT, TRANSLATION_ASSISTANT, AGENDA_ASSISTANT, CODING_ASSISTANT, TEXT_SUMMARIZER_ASSISTANT, SWOT_ANALYSIS_ASSISTANT, EMAIL_ASSISTANT, LEGAL_CHECK_ASSISTANT, SYNONYMS_ASSISTANT, MY_TASKS_ASSISTANT, JOB_POSTING_ASSISTANT, BIAS_DAY_ASSISTANT, ERI_ASSISTANT, DOCUMENT_ANALYSIS_ASSISTANT, SLIDE_BUILDER_ASSISTANT, LOG_VIEWER_ASSISTANT, VISUAL_BRIEFING_ASSISTANT, BATCH_PROCESSING_ASSISTANT, and I18N_ASSISTANT. The list is always locked, and a configuration with a higher priority replaces it as a whole.

Preview features

Some assistants and functions are previews. DataApp.PreviewVisibility sets the level of previews users may choose from, and DataApp.EnabledPreviewFeatures switches previews on. The second one adds up across your configurations:

CONFIG["SETTINGS"]["DataApp.EnabledPreviewFeatures"] = { "PRE_RAG_2024", "PRE_VISUAL_BRIEFING_ASSISTANT_2026" }
Value Preview
PRE_RAG_2024 Data sources and Semantic Search (beta), including the ERI Server Assistant
PRE_META_ASSISTANT_V1 The Assistant Builder (beta)
PRE_VISUAL_BRIEFING_ASSISTANT_2026 The Visual Briefing Assistant (beta)
PRE_MAILBOXES_2026 Mailboxes as data sources (prototype); needs PRE_RAG_2024 as well

Minimum confidence of assistants

Every assistant has settings of its own, behind the gear on its tile, including a minimum confidence for its provider. Users set most of them. You can manage the minimum for these:

Assistant Setting Applies
Batch Processing DataBatchProcessing.MinimumProviderConfidence Only while DataBatchProcessing.PreselectOptions is true; lock that as well
Assistant Builder DataAssistantBuilder.MinimumProviderConfidence Only while DataAssistantBuilder.PreselectOptions is true; lock that as well
Visual Briefing DataVisualBriefing.MinimumProviderConfidence Always
Document Analysis MinimumProviderConfidence in each policy, see below Always for that policy

For every other assistant, use the global minimum, see Confidence and Data Security. The example plugin lists further preselections of these assistants, such as their default provider or the output language.

Chat templates

A chat template starts a chat with a system prompt, optionally a predefined message, an example conversation, attached files, tools, data sources, a provider, a profile, and a workspace. The example plugin shows every field of CONFIG["CHAT_TEMPLATES"]. Easiest is to build the template in AI Studio and export it, see Testing and Exporting Configurations.

Tools and data sources

Leaving a field out and leaving it empty mean different things:

The template says A chat started with it
No ToolIds Starts with the tools the user chose as their chat default
ToolIds present but empty Starts without any tool
No DataSourceOptions Starts with the data source options of the user's chat default
DataSourceOptions present Starts with exactly these, including how the sources are searched

RetrievalMode in DataSourceOptions decides how the chat searches its data sources:

  • SEMANTIC_SEARCH (the default for templates): the AI searches the data sources itself, through the tool semantic_search, whenever a question calls for it. This needs a model that can use tools, and the tool must not be switched off.
  • EVERY_MESSAGE: AI Studio searches the data sources with every message, before the AI answers.

The data source IDs in an exported template stay as they are, because they point to the data sources of your organization. Check them against CONFIG["DATA_SOURCES"]: an ID that resolves to nothing is ignored.

Provider, profile, and workspace

The template says A chat started with it
ProviderId Starts with that provider, if it exists and meets the confidence required for chats
ProfileId Starts with that profile, if it exists. 00000000-0000-0000-0000-000000000000 means no profile. Ignored when AllowProfileUsage is false.
WorkspaceName Goes into that workspace, which AI Studio creates when needed, instead of becoming a disappearing chat

These are preselections, not locks: users can change the provider and the profile, and move the chat. Use IDs of providers and profiles from your configurations, which are the same on every device. A template exported from the app carries the IDs of the exporting computer, and the export starts with a comment saying so: replace them.

Profiles

A profile tells the AI who the user is and what they want. Roll out profiles in CONFIG["PROFILES"] with Id, Name, NeedToKnow, and Actions. DataApp.PreselectedProfile and DataChat.PreselectedProfile preselect one.

Document analysis policies

The Document Analysis Assistant analyzes documents by policies. Roll out policies in CONFIG["DOCUMENT_ANALYSIS_POLICIES"]:

CONFIG["DOCUMENT_ANALYSIS_POLICIES"][#CONFIG["DOCUMENT_ANALYSIS_POLICIES"]+1] = {
    ["Id"] = "7b8c9d0e-1f2a-4b3c-8d4e-5f6a7b8c9d0e",
    ["PolicyName"] = "Compliance summary",
    ["PolicyDescription"] = "Summarizes obligations and deadlines in contracts.",
    ["AnalysisRules"] = [===[
        Focus on obligations, deadlines, and required actions.
        Flag ambiguous or missing information.
    ]===],
    ["OutputRules"] = [===[
        Write a Markdown report with the headings Obligations, Deadlines, and Open Questions.
    ]===],
    ["MinimumProviderConfidence"] = "MEDIUM",
    ["AllowedToolIds"] = {},
    ["HidePolicyDefinition"] = false,
}
  • MinimumProviderConfidence keeps providers below that level away from this policy.
  • AllowedToolIds is a limit, not a preselection: tools that aren't listed can't be used with this policy. An empty or missing list means no tools.
  • PreselectedProvider and PreselectedProfile preselect a provider or a profile of your configuration.
  • HidePolicyDefinition = true shows users only the document selection, not the rules.

The Batch Processing Assistant can use these policies as well.

The start page

What How
Your own introductions CONFIG["INTRODUCTIONS"]: panels with Id, Title, Version, Index, and Markdown
Notices users must accept CONFIG["MANDATORY_INFOS"]: Id, Title, Version, Markdown, AcceptButtonText, and RejectButtonText. AI Studio asks again when the version, the title, or the text change.
A prompt for the user's API key CONFIG["USER_API_KEY_PROMPT"], see Providers and API Keys
The built-in panels DataApp.ShowQuickStartGuide, DataApp.ShowIntroduction, DataApp.ShowLastChangelog, DataApp.ShowVision
The page AI Studio opens with DataApp.StartPage: HOME, CHAT, ASSISTANTS, INFORMATION, PLUGINS, SUPPORTERS, or SETTINGS

Assistant plugins

Assistant plugins are assistants written in Lua, by your organization or by others. You can roll them out in your configuration archive, see Configuration Server, or with your device management into the regular plugin folder, marked with DEPLOYED_USING_CONFIG_SERVER = true.

Security audits and approvals

Before an assistant plugin can be enabled, AI Studio has an LLM check it for risks, a security audit. Instead, your organization can approve a plugin. An approval refers to the content of the plugin through a hash, not to its ID: when any Lua file of the plugin changes, the approval no longer applies.

CONFIG["SETTINGS"]["DataAssistantPluginAudit.EnterpriseApprovedPlugins"] = {
    {
        ["PluginHash"] = "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF",
        ["DisplayName"] = "Translation assistant of Example Organization",
        ["Comment"] = "Approved for internal rollout",
        ["ApprovedBy"] = "AI governance board",
        ["ApprovedAtUtc"] = "2026-10-01T09:30:00Z",
    }
}
  • Getting the hash: the security card of the plugin in AI Studio shows its "Current hash". With the source code of AI Studio, the command dotnet run --project app/Build -- assistant-plugin-hash "<plugin folder>" --lua-snippet prints it together with a ready Lua fragment.
  • Only your configurations may approve. AI Studio honors approvals only from configurations below .config, which your server deployed, or .config-tests, which you staged for a test. It ignores approvals in other configuration plugins, because an approval switches off a safety check in your name.
  • Approvals add up. A department configuration can approve further plugins without repeating the approvals of the base configuration.

Enabling a plugin for your colleagues

An approval says that a plugin is safe; whether it is enabled is a second decision. Two optional fields of an approval make it for your colleagues:

Activate AllowUserOverride Result
Not set Any Approved. Everybody enables the assistant themselves.
true true AI Studio enables the assistant once. Users may switch it off again, and their decision lasts.
true Not set AI Studio enables the assistant and keeps it enabled. The switch on the "Plugins" page is locked.

AI Studio enables only plugins that your organization actually rolled out: below .config or .config-tests, or marked with DEPLOYED_USING_CONFIG_SERVER. A copy of the same plugin that a user placed themselves stays approved, but isn't enabled for them. When several configurations approve the same plugin, one asking for the activation is enough, and users may switch it off only if every configuration that asks for it allows that.

Settings for audits and plugins

Setting Effect
DataAssistantPluginAudit.RequireAuditBeforeActivation Whether a plugin needs an audit or an approval before it can be enabled
DataAssistantPluginAudit.PreselectedAgentProvider The provider that runs the audits
DataAssistantPluginAudit.MinimumLevel The audit result a plugin must reach
DataAssistantPluginAudit.BlockActivationBelowMinimum Whether a plugin below that level can't be enabled at all
DataAssistantPluginAudit.AutomaticallyAuditAssistants Whether AI Studio audits plugins on its own
DataApp.AllowUserToImportPlugins Whether users may import plugin archives
DataApp.AllowUserToSharePlugins Whether users may share their plugins as archives

The Slide Assistant in your corporate design

The Slide Assistant plans slides for the layouts of a PowerPoint template (.pptx or .potx) and creates PowerPoint files in its design. OpenDocument templates can't serve as a template yet.

Template

Put the template next to your plugin.lua, or in a folder below it, and name it relative to the plugin:

CONFIG["SETTINGS"]["DataSlideBuilder.TemplatePath"] = "Corporate.potx"
CONFIG["SETTINGS"]["DataSlideBuilder.TemplatePath.AllowUserOverride"] = true
CONFIG["SETTINGS"]["DataSlideBuilder.PreselectOptions"] = true
  • With AllowUserOverride, your template is preselected and users may choose another one; without it, it is locked.
  • The template is one of the preselections of the Slide Assistant, so it applies only while preselections are on. Lock DataSlideBuilder.PreselectOptions to true so that nobody works without it.
  • The path must stay inside the plugin folder. An absolute path, for example, on a network share, works as well, as long as every device can read it.
  • A missing template isn't fatal. When a locked template can't be read at the moment, the assistant says so and plans an outline only.
  • Every device downloads the whole configuration archive, template included, at every start and with every change of your configuration.

Further preselections, each with AllowUserOverride:

Setting Effect
DataSlideBuilder.PreselectedFooterText The footer text of the slides
DataSlideBuilder.PreselectedMaxBulletPointsPerSlide At most 1 to 7 bullet points per slide, or 0 to let the LLM decide by the room of each layout
DataSlideBuilder.PreselectedKeepEmptyPicturePlaceholders true keeps picture placeholders that have no picture, for users who insert their own pictures
DataSlideBuilder.PreselectedLayouts Which layout of your template to use for which kind of slide, such as TITLE, CHAPTER, or CONTENT, each by the layout's name in the slide master. The example plugin lists all kinds of slides.
DataSlideBuilder.PreselectedTemplateSlideUses What to do with the slides of your template, by their number: OMIT (the default), KEEP, or EDIT

Picture library

The Slide Assistant can choose pictures and icons from a folder. The LLM reads only the file names, so clear names such as rocket-launch.jpg help. Only PNG and JPEG files count. A file whose name, or the name of one of its folders, starts with icon counts as an icon. From a folder with more than 5,000 pictures, the LLM gets a random 5,000 each time.

CONFIG["SETTINGS"]["DataSlideBuilder.PreselectedPictureLibraryPath"] = "Pictures"
CONFIG["SETTINGS"]["DataSlideBuilder.PreselectedPictureLibraryPath.AllowUserOverride"] = true

The same rules apply as for the template. For a large library, a network share is the better place, because every device downloads your whole archive.

Where to go next

Clone this wiki locally