Skip to content

Language Support and Prompt Management ​

  • Version: 4.2.0
  • Status: Active

Overview ​

As of v4.2.0, Vault Intelligence supports multilingual interactions and managed system prompts. This document details the implementation strategy for developers.

Language Injection ​

Language support is implemented via a simple string injection strategy at the prompt level, rather than maintaining separate prompt files for each language.

Mechanism ​

  1. Setting: agentLanguage (string). Defaults to "English (US)".
  2. Placeholder: The system prompt template contains a token.
  3. Runtime Replacement:
    • Inside AgentService and GardenerService, the token is replaced with the user's selected language setting before being sent to the LLM.
    • If agentLanguage is strictly "English (US)" (the default), the instruction Language: Respond in is stripped entirely to save tokens and reduce prompt noise, as models default to English.

"Other" Language Support ​

The UI provides a hybrid dropdown/text selection:

  • Common presets are available in a dropdown.
  • Selecting "Other" switches the internal storage to "custom" and reveals a text input.
  • Validates against standard string availability but does not enforce strict BCP 47 format to allow for creative prompts (eg "Pirate").

Prompt Management ​

We have moved from "Static Default" settings to "Nullable Managed" settings to allow for easier updates.

Fallback Logic ​

  • Old behavior: Settings were initialized with the full text of the default prompt. Users never received updates to the persona because their settings were "custom" from day one.

  • New behavior:

    • systemInstruction defaults to null.
    • If null, the plugin uses DEFAULT_SYSTEM_PROMPT (const) at runtime.
    • This allows us to update DEFAULT_SYSTEM_PROMPT in the codebase and immediately improve the experience for all users who haven't explicitly customized it.

Migration Strategy ​

On plugin load (main.ts), a migration runs:

  1. It compares the current saved systemInstruction with valid historical default prompts.
  2. If it matches a known old default, it resets the setting to null.
  3. This seamlessly opt-in users to the new managed system without overwriting actual custom personas.

Architectural Implications ​

  • AgentService: Now accepts agentLanguage in its constructor/config.
  • UI Components: ResearchChatView and settings tabs now abstract the "Other" logic.